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

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
more_software [2018/08/16 20:22] wiki_adminmore_software [2019/12/13 19:39] – updated SysV-part wiki_admin
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 ======
  
Line 33: Line 142:
 **SUCCESS** **SUCCESS**
  
-NCSA httpd 1.5.2a — successful on 1.1, AMIX gcc +  * NCSA httpd 1.5.2a — successful on 1.1, AMIX gcc 
-gzip 1.3.5 — successful on 2.03, gcc-2.7.2.3 +  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 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 +  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 +  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 +  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 +  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.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.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.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 +  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 +  ntp-4.2.0 — successful and working on 2.1 
-bash-1.14.7 — 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) +  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 +  bzip2 1.0.2 — successful and working on 2.1 
-rsync 2.6.3 — 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 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 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) +  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) +  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 +  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) +  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)+  openssl 1.0.0d — successful and working on 2.1, needs changes to compile (see below)
  
 **FAILS** **FAILS**
  
-amiwm 0.20pl48 — fails on 2.03, compiles, object files do not link, AMIX gcc +  * 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?+  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 +  binutils 2.15 — no m68k-cbm-sysv4 target for gas or ld, makes this useless pretty much 
-apache 2.x — compilation failure +  apache 2.x — compilation failure 
-mysql 4.x — compilation failure +  mysql 4.x — compilation failure 
-lynx 2.8.x — compilation failure, assembler takes a dump +  lynx 2.8.x — compilation failure, assembler takes a dump 
-netrik — missing, uncompilable libraries +  netrik — missing, uncompilable libraries 
-w3m — missing, uncompilable libraries +  w3m — missing, uncompilable libraries 
-GNU gettext — nope (last tested on 2.03) +  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) +  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. +  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?+  wm2 — Wants ANSI C headers. Man, just ask for the world why dontcha?
  
 **IN PROCESS** **IN PROCESS**
  
-WindowLab 1.32 +  * WindowLab 1.32Add -lnsl and -lsocket to EXTRA_LIBS in MakefileComment out defines for shape extension in top of MakefileChange XROOT to /usr/XChange 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/1XHOLY SHIT A WINDOW MANAGER COMPILED ON AMIX
-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**
 changes needed for successful compilation on AMIX 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 +  * 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 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 +  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 +  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 +  coreutils 5.2.1 Added #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) to lib/fts.c 
-Perl 5.005_4 +  Perl 5.005_4Compiled only standard extensions, shared objectsLink gcc-2.7.2.3 cpp to /usr/local/bin/cpp to prevent use of ancient /usr/public/bin/cpp before running ConfigureUse my own malloc, do not use Perl malloc 
-Compiled only standard extensions, shared objects +  openssl 1.0.0d perl5 needed for compilationsvr4 unsupported, run ./Configure gcc instead of ./configDefine NO_STRINGS_H in Makefile CFLAGSedit crypto/o_str.c to change strings.h ifdef to use NO_STRINGS_Hinclude sys/types.h in crypto/bio/bss_bio.c, replace all instances of ssize_t with size_tifdef NO_STRINGS_H apps/apps.cadd -lnsl -lsocket to EX_LIBS in apps/Makefile and in test/Makefile to fix lots of missing symbols 
-Link gcc-2.7.2.3 cpp to /usr/local/bin/cpp to prevent use of ancient /usr/public/bin/cpp before running Configure +  prngd 0.9.29Oh 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 entryAMIX 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 nowSeems to work, but will dump core if you fail to provide a socket to run on. Provide that socket... 
-Use my own malloc, do not use Perl malloc +  openssh 3.9p1Proceeding 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 guyCommented 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 inCompilation finished, now recompiling since AMIX doesn't have /dev/random and I need to use prngd for entropy...binaries seem to work otherwiseAdd #define PRNGD_SOCKET /var/run/egd-pool and #define PRNGD_PORT 708 to ssh-rand-helper.c so ssh actually uses prngdWorks 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 
-openssl 1.0.0d +  rhapsody 0.25bREQUIRES ncurses from DRASTIC UPGRADES file galleryadd #define bzero(b, n) memset(b, '\0', n) to src/defines.hadd #define strncasecmp(a, b, c) strncmp(a, b, c) to src/defines.hadd #define strcasecmp(a, b) strcmp(a, b) to src/defines.hcomment 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"
-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** **WANT-TO-BUILD**
  
 ANY modern window manager for X — Please ANY modern window manager for X — Please
more_software.txt · Last modified: 2021/09/19 18:00 by 127.0.0.1