Amiga Unix Wiki

Because AmigaOS just isn't obscure enough today!

User Tools

Site Tools


more_software

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
more_software [2018/08/16 20:19] – created wiki_adminmore_software [2021/09/19 18:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +//This page will be re-written in the future, for now it's here as-is being copy-pasted from several sources.//
 +
 +----
 +
 +====== SysV pkg-files ======
 +
 +
 +<file>
 +NB: All the shell stuff assumes you are running bash. If you are using
 +    sh or ksh, you will need to manually expand the brace expansions and
 +    if you are using csh or tcsh, you will need to adjust the for-loops
 +    and brace expansions for that shell.
 +
 +To make a SysV pkg from a cpio file:
 +
 +1. Make a temp/working directory
 +
 +2. In the temp/working dir, blow up the cpio file (as root, or with sudo
 +   if you have that installed):
 +
 +  cpio -idmv /path/to/foo.cpio
 +
 +2b. If the cpio file was already installed, an alternative to expanding
 +    the cpio file again is to pipe the output of 'cpio -cit < foo.cpio'
 +    to 'pkgproto' to build the prototype file in the next step, but it
 +    is not as easy to search for symlinks using this method.
 +
 +3. Build the pkg prototype file (does not have to be done as root):
 +
 +  echo 'i pkginfo' > prototype
 +  pkgproto {dirs,created,from,cpio} >> prototype
 +
 +3a. This is the tricky part. If there are any symbolic links in the
 +    pkg, for some reason, the pkgproto for AMIX doesn't include them
 +    in the prototype file, so, we have to add them manually. You'll
 +    need the coreutils package installed to get the 'readlink' command.
 +    The following example just searches the 'usr' subdirectory, but if
 +    the pkg installs stuff outside of 'usr', then they will need to be
 +    searched/accounted for as well:
 +
 +  find usr -type l -print > one
 +  for i in `cat one` ; do readlink -f $i ; done | sed -e "s|`pwd`||" -e "s|^/||" > two
 +  paste -d= one two | awk '{print "s none", $1}' >> prototype
 +
 +    The 'one' and 'two' files can be removed after the 'paste' command.
 +
 +3b. At this point, it's not a bad idea to check the prototype file for
 +    any inconsistancies with regards to permissions and file ownership.
 +    For the most part, everything should probably be 'root root', or maybe
 +    'bin bin', but there are exceptions.
 +
 +4. Create a pkginfo file. The 'PKG' name can only be up to 9 characters
 +   long.
 +
 +  PKG=pkgname
 +  ARCH=m68k
 +  NAME=My nifty package
 +  VERSION=1.2.3
 +  CATEGORY=utilities
 +
 +5. Make the package structure:
 +
 +  pkgmk -d `pwd` -r /
 +
 +6. Bundle it up into a package file:
 +
 +  pkgtrans -s `pwd` /path/you/store/pkgs/pkgname-1.2.3.pkg
 +
 +7. To install your new pkg (as root, or with sudo):
 +
 +  pkgadd -d /path/you/store/pkgs/pkgname-1.2.3.pkg
 +
 +---
 +
 +If you configure/install packages to install to their own directory
 +(/usr/local/pkgname, /opt/AmixBP/pkgname, etc), then you can build your
 +prototype file with something like:
 +
 +  cd / ; find usr/local/pkgname | pkgproto >> /path/to/working/dir/prototype ; cd -
 +
 +as the command step of 3 above. Just keep an eye out for bits that might
 +have been installed elsewhere, like gcc likes to put the man pages in
 +/usr/man/* regardless of the --prefix supplied during the configure
 +step.
 +
 +If you just install everything to /usr/local, which makes it easier on
 +the PATH, I use 'find' to look for files newer than the Makfile for the
 +package that was just installed:
 +
 +  cd / ; find usr -newer ~/dl/foo-2.04/Makefile | pkgproto >> /path/to/working/dir/prototype
 +
 +The prototype file will need a little cleaning, make sure that there are
 +entries for all directories:
 +
 +i pkginfo
 +d none usr 0755 root root
 +d none usr/local 0755 root root
 +d none usr/local/bin 0755 root root
 +
 +The above 'find' command will probably only find /usr/local/bin, you'll
 +need to manually add the two directory entries above it. Also, check
 +lower in the file for other examples, like '/usr/local/man/man1' (for
 +man pages), might need to add an entry for '/usr/local/man', etc. If you
 +miss any, 'pkgmk' will let you know. Just fix them, then re-run pkgmk,
 +adding the '-o' flag to 'overwrite' the previous run.
 +</file>
 +
 +----
 +
 ====== Installing AmixBP software ====== ====== Installing AmixBP software ======
  
-More information on [[http://amixbp.sourceforge.net|AmixBP]].+More information on [[http://amixbp.sourceforge.net|AmixBP]] (backports for Amix, not updated since 2009).
  
 After downloading the desired files from sourceforge.net, to unpack them into the default location /opt/amixbp on your Amiga UNIX machine run the following command: After downloading the desired files from sourceforge.net, to unpack them into the default location /opt/amixbp on your Amiga UNIX machine run the following command:
Line 11: Line 120:
 You need to add /opt/amixbp/bin to your path. If you would like files installed to take precedence over the native utilities, add it to the front of your path. If you want to Amiga UNIX commands and utilities to take precedence, add it to the back of your path. In that case, to force the use of AmixBP software (for example: Amiga UNIX provides an old gcc, but so does AmixBP) you will need to specify the full path. ie: /opt/amixbp/bin/gcc You need to add /opt/amixbp/bin to your path. If you would like files installed to take precedence over the native utilities, add it to the front of your path. If you want to Amiga UNIX commands and utilities to take precedence, add it to the back of your path. In that case, to force the use of AmixBP software (for example: Amiga UNIX provides an old gcc, but so does AmixBP) you will need to specify the full path. ie: /opt/amixbp/bin/gcc
  
-Installing software from the file galleries +====== Installing software from the file galleries ======
  
 Installing the software is fairly simple. You will need bzip2 to handle the archives, this is provided here for the binary only. If you like, you can download the full bzip2 archive from the file galleries, which requires bzip2 to extract. To install the bzip2.Z file, as root do: Installing the software is fairly simple. You will need bzip2 to handle the archives, this is provided here for the binary only. If you like, you can download the full bzip2 archive from the file galleries, which requires bzip2 to extract. To install the bzip2.Z file, as root do:
Line 29: Line 137:
  
 Note that most archives will unpack to /usr/local, so you need to add directories like /usr/local/bin and /usr/local/sbin to your path if you want to execute them without explicitly specifying the location of the files (ie: instead of make you would have to do /usr/local/bin/make if /usr/local/bin is not in your path). Note that most archives will unpack to /usr/local, so you need to add directories like /usr/local/bin and /usr/local/sbin to your path if you want to execute them without explicitly specifying the location of the files (ie: instead of make you would have to do /usr/local/bin/make if /usr/local/bin is not in your path).
 +
 +====== Compilation ======
 +
 +**SUCCESS**
 +
 +  * NCSA httpd 1.5.2a — successful on 1.1, AMIX gcc
 +  * gzip 1.3.5 — successful on 2.03, gcc-2.7.2.3
 +  * GNU screen 4.0.2 — successful on 2.03, gcc-2.7.2.3
 +  * GNU make 3.80 — successful on 2.03, gcc-2.7.2.3
 +  * wget 1.9.1 — successful on 2.03, gcc-2.7.2.3
 +  * Nethack 3.4 — successful on 2.03, gcc-2.7.2.3
 +  * apache 1.3.31 — successful on 2.03, gcc-2.7.2.3
 +  * gcc 2.4.5 — successful on 2.03, AMIX gcc, then recompiled with itself
 +  * gcc 2.5.8 — successful on 2.03, gcc 2.4.5, then recompiled with itself
 +  * gcc 2.6.3 — successful on 2.03, gcc 2.5.8, then recompiled with itself
 +  * gcc 2.7.2.3 — successful on 2.03, gcc 2.6.3, then recompiled with itself
 +  * ntp-4.2.0 — successful and working on 2.1
 +  * bash-1.14.7 — successful and working on 2.1
 +  * bash-3.0 — successful and working on 2.1, needs changes to compile (see below)
 +  * bzip2 1.0.2 — successful and working on 2.1
 +  * rsync 2.6.3 — successful and working on 2.1
 +  * GNU tar 1.14 — successful and working on 2.1, needs changes to compile (see below)
 +  * GNU coreutils 5.2.1 — successful and working on 2.1, needs changes to compile (see below)
 +  * GNU patch 2.5.4 — successful and working on 2.1, needs changes to compile (see below)
 +  * lynx 2.7.2 — successful and working on 2.1, needs changes to compile (see below)
 +  * zlib 1.2.2 — successful and working on 2.1
 +  * perl 5.005_4 — successful and working on 2.1, care needed during configuration (see below)
 +  * openssl 1.0.0d — successful and working on 2.1, needs changes to compile (see below)
 +
 +**FAILS**
 +
 +  * amiwm 0.20pl48 — fails on 2.03, compiles, object files do not link, AMIX gcc
 +  * gcc 2.95.3 — fails on 2.03, with gcc 2.7.2.3, collect2 has unresolved symbols (forget which, sys_sig.h?)
 +  * binutils 2.15 — no m68k-cbm-sysv4 target for gas or ld, makes this useless pretty much
 +  * apache 2.x — compilation failure
 +  * mysql 4.x — compilation failure
 +  * lynx 2.8.x — compilation failure, assembler takes a dump
 +  * netrik — missing, uncompilable libraries
 +  * w3m — missing, uncompilable libraries
 +  * GNU gettext — nope (last tested on 2.03)
 +  * GNU readline — nyet (last tested on 2.03, integrated readline on bash 3.0 compiled fine on 2.1)
 +  * UNIX top 3.5.1 — Can get it to compile, but only displays one process (init), free mem is wrong, and crashes on update.
 +  * wm2 — Wants ANSI C headers. Man, just ask for the world why dontcha?
 +
 +**IN PROCESS**
 +
 +  * WindowLab 1.32: Add -lnsl and -lsocket to EXTRA_LIBS in Makefile. Comment out defines for shape extension in top of Makefile. Change XROOT to /usr/X. Change snprintf() in menufile.c to use sprintf(), remove "sizeof" parameter (Buffer overflows? What buffer overflows??). Rename windowlab.1x to windowlab, compress with compress and move to /usr/man/1X. HOLY SHIT A WINDOW MANAGER COMPILED ON AMIX
 +
 +**CHANGES NEEDED**
 +changes needed for successful compilation on AMIX
 +
 +  * bash 3.0 Needed to edit some stuff for libintl to compile...will redo this and add the info later
 +  * GNU tar 1.14 Need to #include stdlib.h in src/xheader.c and src/incremen.c to provide free
 +  * GNU patch 2.5.4 Edit argmatch.c, change strncasecmp call to strncmp
 +  * lynx 2.7.2 Add "-DNO_BCOPY" to defines in Makefile for svr4
 +  * coreutils 5.2.1 Added #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) to lib/fts.c
 +  * Perl 5.005_4: Compiled only standard extensions, shared objects. Link gcc-2.7.2.3 cpp to /usr/local/bin/cpp to prevent use of ancient /usr/public/bin/cpp before running Configure. Use my own malloc, do not use Perl malloc
 +  * openssl 1.0.0d perl5 needed for compilation. svr4 unsupported, run ./Configure gcc instead of ./config. Define NO_STRINGS_H in Makefile CFLAGS. edit crypto/o_str.c to change strings.h ifdef to use NO_STRINGS_H. include sys/types.h in crypto/bio/bss_bio.c, replace all instances of ssize_t with size_t. ifdef NO_STRINGS_H apps/apps.c. add -lnsl -lsocket to EX_LIBS in apps/Makefile and in test/Makefile to fix lots of missing symbols
 +  * prngd 0.9.29. Oh dear, one of these where you edit the Makefile and config.h manually, and oh generic sysv4 isn't supported so I have to make my own defines... Defined AMIX, copied SYSLIBS from NCR sysv4 entry. AMIX doesn't have ssize_t is has size_t, many files need to be edited (add ifdefs later). AMIX closelog requires () made AMIX entry in config.h, provided file locations for entropy collection borrowed Solaris 7 prngd.conf file, need to fix it but it will work for now. Seems to work, but will dump core if you fail to provide a socket to run on. Provide that socket...
 +  * openssh 3.9p1. Proceeding well, now that I realize ldd expects to find everything in /usr/lib and/or /usr/ccs/lib and cannot be changed (permanently) without a recompile, and gee we don't have the sources for that guy. Commented out include of shadow.h in auth.c and auth-shadow.c since it caused redefinition of struct spwd. This allowed compile to continue but I wonder if I'll be able to log in. Compilation finished, now recompiling since AMIX doesn't have /dev/random and I need to use prngd for entropy...binaries seem to work otherwise. Add #define PRNGD_SOCKET /var/run/egd-pool and #define PRNGD_PORT 708 to ssh-rand-helper.c so ssh actually uses prngd. Works now but only root can login...others get setuid error...think I found a fix, add to config.h: #define SETEUID_BREAKS_SETUID 1, #define BROKEN_SETREUID 1, #define BROKEN_SETREGID 1
 +  * rhapsody 0.25b. REQUIRES ncurses from DRASTIC UPGRADES file gallery. add #define bzero(b, n) memset(b, '\0', n) to src/defines.h. add #define strncasecmp(a, b, c) strncmp(a, b, c) to src/defines.h. add #define strcasecmp(a, b) strcmp(a, b) to src/defines.h. comment out #include strings.h in: src/screen.c, src/ctcp.c, src/dcc.c, src/main.c, src/config.c, src/comm.c, src/misc.c in main.c change #include <sys/signal.h> to #include "/usr/local/lib/gcc-lib/m68k-cbm-sysv4/2.7.2.3/include/sys/signal.h"
 +
 +**WANT-TO-BUILD**
 +
 +ANY modern window manager for X — Please
more_software.1534443548.txt.gz · Last modified: 2021/09/19 17:59 (external edit)