diff options
author | B. Watson <urchlay@slackware.uk> | 2022-08-20 21:43:38 +0100 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-08-27 22:50:20 +0700 |
commit | 346d647f43136be36d304c20267c52e5c180020a (patch) | |
tree | d154616103fda9343b7b200fd89f8c0f925fcdad /network/fujinet-pc | |
parent | 8c2383418e0e09ab1a29ca9752e37fad621e60f5 (diff) |
network/fujinet-pc: Added (Linux port of FujiNet firmware)
Signed-off-by: Dave Woodfall <dave@slackbuilds.org>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'network/fujinet-pc')
-rw-r--r-- | network/fujinet-pc/README | 24 | ||||
-rw-r--r-- | network/fujinet-pc/doinst.sh | 9 | ||||
-rw-r--r-- | network/fujinet-pc/fnconfig.ini.gz | bin | 0 -> 391 bytes | |||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.1 | 157 | ||||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.SlackBuild | 135 | ||||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.desktop | 9 | ||||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.info | 12 | ||||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.rst | 117 | ||||
-rw-r--r-- | network/fujinet-pc/fujinet-pc.sh | 33 | ||||
-rw-r--r-- | network/fujinet-pc/slack-desc | 19 |
10 files changed, 515 insertions, 0 deletions
diff --git a/network/fujinet-pc/README b/network/fujinet-pc/README new file mode 100644 index 000000000000..df9c8f7fa041 --- /dev/null +++ b/network/fujinet-pc/README @@ -0,0 +1,24 @@ +fujinet-pc (Linux port of FujiNet firmware) + +FujiNet is a network adaptor for the Atari 8-bit line of computers. It +has many features, including the ability to netboot the Atari from a +disk image on an Internet TNFS server. It's a piece of hardware which +plugs into the Atari's SIO port and connects to a wireless network. + +fujinet-pc is a Linux port of the FujiNet firmware, which allows using +most of the FujiNet's features with just an SIO2PC cable and a PC. +The package contains both fujinet-pc and the Atari disk images from +the fujinet-sd-card git repo. + +See https://github.com/FujiNetWIFI/fujinet-pc for the current +status of fujinet-pc. See also the FujiNet documentation wiki: +https://github.com/FujiNetWIFI/fujinet-platformio/wiki + +Since fujinet-pc wasn't designed to be installed systemwide on a Linux +system, this SlackBuild includes a wrapper script which allows each +user to have a fujinet-pc environment in his home directory. Simply +run "fujinet-pc" or choose FujiNet-PC from your desktop's application +menu; the ~/.fujinet-pc directory will be created and populated if it +doesn't already exist. + +To exit fujinet-pc, press ^C or close the terminal it's running in. diff --git a/network/fujinet-pc/doinst.sh b/network/fujinet-pc/doinst.sh new file mode 100644 index 000000000000..3e5691a052b5 --- /dev/null +++ b/network/fujinet-pc/doinst.sh @@ -0,0 +1,9 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/network/fujinet-pc/fnconfig.ini.gz b/network/fujinet-pc/fnconfig.ini.gz Binary files differnew file mode 100644 index 000000000000..927f41f4c29c --- /dev/null +++ b/network/fujinet-pc/fnconfig.ini.gz diff --git a/network/fujinet-pc/fujinet-pc.1 b/network/fujinet-pc/fujinet-pc.1 new file mode 100644 index 000000000000..21b51e4e2c48 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.1 @@ -0,0 +1,157 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "FUJINET-PC" 1 "2022-07-19" "2206.1" "SlackBuilds.org" +.SH NAME +fujinet-pc \- peripheral emulator and network adaptor for Atari 8-bit computers +.\" RST source for fujinet-pc(1) man page. Convert with: +. +.\" rst2man.py fujinet-pc.rst > fujinet-pc.1 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.sp +fujinet\-pc [\fB\-V\fP] [\fB\-u\fP \fIhost:port\fP] [\fB\-c\fP \fIconfig\-file\fP] [\fB\-s\fP \fISD\-directory\fP] +.SH DESCRIPTION +.sp +FujiNet is a network adaptor for the Atari 8\-bit line of computers. It +has many features, including the ability to netboot the Atari from a +disk image on an Internet TNFS server. It\(aqs a piece of hardware which +plugs into the Atari\(aqs SIO port and connects to a wireless network. +.sp +fujinet\-pc is a Linux port of the FujiNet firmware, which allows using +most of the FujiNet\(aqs features with just an SIO2PC cable and a PC. +.sp +FujiNet features that work with fujinet\-pc: +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +Disk drive (D:) emulation with support for ATR disk images and XEX files (no ATX yet) +.IP \(bu 2 +Modem emulation (R:) +.IP \(bu 2 +Printer emulation (P:) +.IP \(bu 2 +APETIME protocol +.IP \(bu 2 +TNFS File System to access image files over network +.IP \(bu 2 +Web interface to control program\(aqs settings, browse TNFS hosts and mount disk images +.IP \(bu 2 +FujiNet network device (N:) with support for various network protocols: +TCP, UDP, TNFS, HTTP, FTP, Telnet \fB[*]\fP +.UNINDENT +.UNINDENT +.UNINDENT +.sp +Not (yet) working: +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +CP/M emulation +.IP \(bu 2 +SSH and SMB support for N: +.IP \(bu 2 +SAM voice synthesizer +.IP \(bu 2 +MIDIMaze support +.IP \(bu 2 +Program recorder (tape) emulation +.UNINDENT +.UNINDENT +.UNINDENT +.sp +\fB[*]\fP Note that some applications using the N: device may rely on the SIO +\fBPROCEED\fP line being connected. Most SIO2PC cables don\(aqt have this +line connected. +.SH OPTIONS +.INDENT 0.0 +.TP +.B \fB\-V\fP +Print version number (including build date and OS). +.TP +.B \fB\-u\fP \fIhost:port\fP +Host interface and port to listen on, for the web user interface. Default is +\fB0.0.0.0:8000\fP, meaning TCP port 8000 on all interfaces. To access the +web UI, point a browser at e.g. \fBhttp://localhost:8000\fP\&. Leaving off +the \fI:port\fP isn\(aqt actually an error, but it causes \fBfujinet\-pc\fP to +choose a random port number (which it doesn\(aqt tell you; you\(aqd have +to use \fBnetstat\fP(8) to find it). +.TP +.B \fB\-c\fP \fIconfig\-file\fP +Use \fIconfig\-file\fP instead of the default \fBfnconfig.ini\fP\&. +.TP +.B \fB\-s\fP \fISD\-directory\fP +Use \fISD\-directory\fP instead of the default \fBSD/\fP for the virtual +SD card. +.UNINDENT +.SH FILES +.INDENT 0.0 +.TP +.B \fB~/.fujinet\-pc/\fP +The default directory for \fBfujinet\-pc\fP, containing the following: +.TP +.B \fBfnconfig.ini\fP +The default config file for \fBfujinet\-pc\fP\&. This is where settings +are saved when they\(aqre changed with the web user interface. This file +can also be edited with a regular text editor. +.TP +.B \fBSD/\fP +The FujiNet hardware device has a slot for a Micro\-SD card. For fujinet\-pc, +the contents of this directory will be available in the host list, under +the name \fBSD\fP\&. The default contents of this directory include a good +selection of DOS and utility disk images. +.UNINDENT +.\" AUTHOR +. +.\" ====== +. +.\" normally I would put the upstream author's name here, but I have +. +.\" no idea what it is. The github user is just called FujiNetWIFI, +. +.\" and I haven't found any contact info anywhere in the source git +. +.\" repo. *shrug*. +. +.SH COPYRIGHT +.sp +See the file /usr/doc/fujinet\-pc\-2206.1/LICENSE for license information. +.SH SEE ALSO +.sp +\fBatariserver\fP(1), \fBtnfsd\fP(1), \fBtnfs\-fuse\fP(1) +.sp +The fujinet\-pc homepage: \fI\%https://github.com/FujiNetWIFI/fujinet\-pc\fP +.sp +The FujiNet documentation wiki: \fI\%https://github.com/FujiNetWIFI/fujinet\-platformio/wiki\fP +.\" Generated by docutils manpage writer. +. diff --git a/network/fujinet-pc/fujinet-pc.SlackBuild b/network/fujinet-pc/fujinet-pc.SlackBuild new file mode 100644 index 000000000000..febf79d1daf4 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.SlackBuild @@ -0,0 +1,135 @@ +#!/bin/bash + +# Slackware build script for fujinet-pc + +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=fujinet-pc +VERSION=${VERSION:-2206.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +SRCVER="release-$VERSION" + +SDVER="${SDVER:-2021-04-29}" + +HOST="${HOST:-$( hostname -s )}" +PORT="${PORT:-/dev/ttyUSB0}" + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$SRCVER +tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz +cd $PRGNAM-$SRCVER +chown -R root:root . +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +PKGBIN=$PKG/usr/bin +PKGLIBX=$PKG/usr/libexec/$PRGNAM +PKGSHARE=$PKG/usr/share/$PRGNAM +mkdir -p $PKGDOC $PKGBIN $PKGLIBX $PKGSHARE + +# fujinet-pc itself: +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release .. + make VERBOSE=1 + make dist + install -s -m2755 -oroot -gdialout dist/fujinet $PKGLIBX/fujinet + + cp -a dist/{SD,data} $PKGSHARE + + # we don't need the upstream run-fujinet script +cd .. + +cp -a CREDITS.md README.md LICENSE $PKGDOC + +# config file has \r\n line endings, keep it gzipped in git to avoid +# git "fixing" it. +gzip -dc < $CWD/fnconfig.ini.gz | \ + sed -e "s,_HOST_,$HOST," \ + -e "s,_PORT_,$PORT," \ + > $PKGSHARE/fnconfig.ini + +# our wrapper script replaces run-fujinet +install -m0755 -oroot -groot $CWD/$PRGNAM.sh $PKGBIN/$PRGNAM + +# fujinet-sd-card content: +tar xvfC \ + $CWD/fujinet-sd-card-fujinet-sd-card-$SDVER.tar.gz \ + $PKGSHARE/SD \ + --strip-components=1 + +ln -s ../../share/$PRGNAM/SD/README.md $PKGDOC/README-fujinet-sd-card.md + +# .desktop and man page written for this SlackBuild. +mkdir -p $PKG/usr/man/man1 +gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz + +mkdir -p $PKG/usr/share/applications +cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop + +for px in 16 32 48 64 128; do + size="${px}x${px}" + DIR=$PKG/usr/share/icons/hicolor/$size/apps + mkdir -p $DIR + convert -resize "$size!" \ + $PKGSHARE/data/www/favicon.ico \ + PNG32:$DIR/$PRGNAM.png +done + +mkdir -p $PKG/usr/share/pixmaps +ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png + +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/network/fujinet-pc/fujinet-pc.desktop b/network/fujinet-pc/fujinet-pc.desktop new file mode 100644 index 000000000000..e288dea54462 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Name=FujiNet-PC +GenericName=Atari 8-bit Peripheral Emulator +Icon=fujinet-pc +Exec=/usr/bin/fujinet-pc +Terminal=true +Type=Application +Categories=Network; diff --git a/network/fujinet-pc/fujinet-pc.info b/network/fujinet-pc/fujinet-pc.info new file mode 100644 index 000000000000..8dc82909f117 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.info @@ -0,0 +1,12 @@ +PRGNAM="fujinet-pc" +VERSION="2206.1" +HOMEPAGE="https://github.com/FujiNetWIFI/fujinet-pc" +DOWNLOAD="https://github.com/FujiNetWIFI/fujinet-pc/archive/release-2206.1/fujinet-pc-release-2206.1.tar.gz \ + https://github.com/FujiNetWIFI/fujinet-sd-card/archive/fujinet-sd-card-2021-04-29/fujinet-sd-card-fujinet-sd-card-2021-04-29.tar.gz" +MD5SUM="f1d3dd2aafaf052309a56601ab5a448e \ + d53e0b655351b987223106fadee9e5a2" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/network/fujinet-pc/fujinet-pc.rst b/network/fujinet-pc/fujinet-pc.rst new file mode 100644 index 000000000000..0296f813df97 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.rst @@ -0,0 +1,117 @@ +.. RST source for fujinet-pc(1) man page. Convert with: +.. rst2man.py fujinet-pc.rst > fujinet-pc.1 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 2206.1 +.. |date| date:: + +========== +fujinet-pc +========== + +----------------------------------------------------------------- +peripheral emulator and network adaptor for Atari 8-bit computers +----------------------------------------------------------------- + +:Manual section: 1 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +fujinet-pc [**-V**] [**-u** *host:port*] [**-c** *config-file*] [**-s** *SD-directory*] + +DESCRIPTION +=========== + +FujiNet is a network adaptor for the Atari 8-bit line of computers. It +has many features, including the ability to netboot the Atari from a +disk image on an Internet TNFS server. It's a piece of hardware which +plugs into the Atari's SIO port and connects to a wireless network. + +fujinet-pc is a Linux port of the FujiNet firmware, which allows using +most of the FujiNet's features with just an SIO2PC cable and a PC. + +FujiNet features that work with fujinet-pc: + + - Disk drive (D:) emulation with support for ATR disk images and XEX files (no ATX yet) + - Modem emulation (R:) + - Printer emulation (P:) + - APETIME protocol + - TNFS File System to access image files over network + - Web interface to control program's settings, browse TNFS hosts and mount disk images + - FujiNet network device (N:) with support for various network protocols: + TCP, UDP, TNFS, HTTP, FTP, Telnet **[\*]** + +Not (yet) working: + + - CP/M emulation + - SSH and SMB support for N: + - SAM voice synthesizer + - MIDIMaze support + - Program recorder (tape) emulation + +**[\*]** Note that some applications using the N: device may rely on the SIO +**PROCEED** line being connected. Most SIO2PC cables don't have this +line connected. + +OPTIONS +======= + +**-V** + Print version number (including build date and OS). + +**-u** *host:port* + Host interface and port to listen on, for the web user interface. Default is + **0.0.0.0:8000**, meaning TCP port 8000 on all interfaces. To access the + web UI, point a browser at e.g. **http://localhost:8000**. Leaving off + the *:port* isn't actually an error, but it causes **fujinet-pc** to + choose a random port number (which it doesn't tell you; you'd have + to use **netstat**\(8) to find it). + +**-c** *config-file* + Use *config-file* instead of the default **fnconfig.ini**. + +**-s** *SD-directory* + Use *SD-directory* instead of the default **SD/** for the virtual + SD card. + +FILES +===== + +**~/.fujinet-pc/** + The default directory for **fujinet-pc**, containing the following: + +**fnconfig.ini** + The default config file for **fujinet-pc**. This is where settings + are saved when they're changed with the web user interface. This file + can also be edited with a regular text editor. + +**SD/** + The FujiNet hardware device has a slot for a Micro-SD card. For fujinet-pc, + the contents of this directory will be available in the host list, under + the name **SD**. The default contents of this directory include a good + selection of DOS and utility disk images. + +.. AUTHOR +.. ====== +.. normally I would put the upstream author's name here, but I have +.. no idea what it is. The github user is just called FujiNetWIFI, +.. and I haven't found any contact info anywhere in the source git +.. repo. *shrug*. + +COPYRIGHT +========= + +See the file /usr/doc/fujinet-pc-|version|/LICENSE for license information. + +SEE ALSO +======== + +**atariserver**\(1), **tnfsd**\(1), **tnfs-fuse**\(1) + +The fujinet-pc homepage: https://github.com/FujiNetWIFI/fujinet-pc + +The FujiNet documentation wiki: https://github.com/FujiNetWIFI/fujinet-platformio/wiki diff --git a/network/fujinet-pc/fujinet-pc.sh b/network/fujinet-pc/fujinet-pc.sh new file mode 100644 index 000000000000..51e44f101e44 --- /dev/null +++ b/network/fujinet-pc/fujinet-pc.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +SHARE=/usr/share/fujinet-pc +EXE=/usr/libexec/fujinet-pc/fujinet + +if [ "$1" = "-help" -o "$1" = "--help" -o "$1" = "-h" ]; then + echo -n "Usage: $( basename $0 ) " + $EXE --help 2>&1 | grep '^Usage:' | cut -d' ' -f3- + exit 0 +fi + +FUJINET_HOME="${FUJINET_HOME:-$HOME/.fujinet-pc}" +if [ ! -e "$FUJINET_HOME" ]; then + echo "$FUJINET_HOME does not exist, populating from $SHARE" + mkdir -p "$FUJINET_HOME" || exit 1 + cp -a $SHARE/* "$FUJINET_HOME" || exit 1 +fi + +cd "$FUJINET_HOME" || exit 1 + +echo "Starting FujiNet" +$EXE "$@" +rc=$? + +# from sysexits.h +# #define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ +while [ $rc -eq 75 ]; do + echo "Restarting FujiNet" + $EXE "$@" + rc=$? +done + +echo "FujiNet ended with exit code $rc" diff --git a/network/fujinet-pc/slack-desc b/network/fujinet-pc/slack-desc new file mode 100644 index 000000000000..745c06b4447f --- /dev/null +++ b/network/fujinet-pc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +fujinet-pc: fujinet-pc (Linux port of FujiNet firmware) +fujinet-pc: +fujinet-pc: FujiNet is a network adaptor for the Atari 8-bit line of computers. It +fujinet-pc: has many features, including the ability to netboot the Atari from a +fujinet-pc: disk image on an Internet TNFS server. It's a piece of hardware which +fujinet-pc: plugs into the Atari's SIO port and connects to a wireless network. +fujinet-pc: +fujinet-pc: fujinet-pc is a Linux port of the FujiNet firmware, which allows using +fujinet-pc: most of the FujiNet's features with just an SIO2PC cable and a PC. +fujinet-pc: +fujinet-pc: |