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 revision Previous revision
Next revision
Previous revision
more_software [2018/08/16 20:22]
wiki_admin
more_software [2021/09/19 18:00] (current)
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 
- +  GNU screen 4.0.2 — successful on 2.03, gcc-2.7.2.3 
-gzip 1.3.5 — 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 
-GNU screen 4.0.2 — 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 
-GNU make 3.80 — 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 
-wget 1.9.1 — successful on 2.03, gcc-2.7.2.3 +  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 
-Nethack 3.4 — successful on 2.03, gcc-2.7.2.3 +  ntp-4.2.0 — successful and working on 2.1 
- +  bash-1.14.7 — successful and working on 2.1 
-apache 1.3.31 — successful on 2.03, gcc-2.7.2.3 +  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 
-gcc 2.4.5 — successful on 2.03, AMIX gcc, then recompiled with itself +  rsync 2.6.3 — successful and working on 2.1 
-gcc 2.5.8 — successful on 2.03, gcc 2.4.5, then recompiled with itself +  GNU tar 1.14 — successful and working on 2.1, needs changes to compile (see below) 
-gcc 2.6.3 — successful on 2.03, gcc 2.5.8, then recompiled with itself +  GNU coreutils 5.2.1 — successful and working on 2.1, needs changes to compile (see below) 
-gcc 2.7.2.3 — successful on 2.03, gcc 2.6.3, then recompiled with itself +  GNU patch 2.5.4 — successful and working on 2.1, needs changes to compile (see below) 
-ntp-4.2.0 — successful and working on 2.1 +  lynx 2.7.2 — successful and working on 2.1, needs changes to compile (see below) 
-bash-1.14.7 — successful and working on 2.1 +  zlib 1.2.2 — successful and working on 2.1 
-bash-3.0 — successful and working on 2.1, needs changes to compile (see below) +  perl 5.005_4 — successful and working on 2.1, care needed during configuration (see below) 
-bzip2 1.0.2 — successful and working on 2.1 +  openssl 1.0.0d — successful and working on 2.1, needs changes to compile (see below)
-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** **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.1534443762.txt.gz · Last modified: 2021/09/19 18:00 (external edit)