PACKAGE NAME ------------ neko_openssh SOURCE/VERSION -------------- openssh-7.5p1 / 41 IRIX/MIPSPRO VERSION -------------------- 6.5.22m / 7.4.4m CONFIGURE FLAGS --------------- setenv CC c99 setenv CFLAGS '-O2 -n32 -mips4' setenv LDFLAGS '-L/usr/nekoware/lib -Wl,-rpath,/usr/nekoware/lib' setenv MAKE /usr/nekoware/bin/gmake setenv PERL /usr/nekoware/bin/perl For builds on mips3 systems use: setenv CFLAGS '-O2 -n32 -mips3' BUILD ----- cd openssh-7.5p1 patch -p0 < openssh-7.5p1_irix_sizet.patch patch -p0 < openssh-7.5p1_irix_ksh.patch ./configure --prefix=/usr/nekoware --with-ssl-dir=/usr/nekoware --sysconfdir=/usr/nekoware/etc/ssh gmake >& make.log & `grep ge25519.c make.log | grep mips | sed 's/\ \-O2\ /\ \-O1\ /g'` gmake gmake tests (note: this will take several hours) gmake install su touch /etc/init.d/neko_sshd cd /etc/rc0.d ln -s ../init.d/neko_sshd K02neko_sshd cd ../rc2.d ln -s ../init.d/neko_sshd S98neko_sshd chmod go+r /usr/nekoware/libexec/ssh-keysign cd /usr/nekoware/bin ln -s ssh slogin cd /usr/nekoware/share/man/man1 ln -s ssh.1 slogin.1 KNOWN DEPENDENCIES ------------------ neko_openssl.sw.lib 1.0.2l (version 33) neko_zlib.sw.lib 1.2.8 (version 9) neko_gmake and neko_perl to build the program and perform unittests. ERRORS/MISCELLANEOUS -------------------- I've included two sets of patches. First, the sizet.patch refers to size_t objects printed with the %zu and %zd fields in printf statements. These are part of the C99 standard, but MIPSPro's C99 only has partial support for C99 fields. Because of this, the 'make tests' will crash at places where verbose output of certain tests are generated. This has been reported by Rainer Canavan: https://bugzilla.mindrot.org/show_bug.cgi?id=2301 The fix is to substitute every '"%zu", (size_t) len' combination by '"%lu", (unsigned long) len' in the entire code. Second, the ksh.patch fixes incompatible $( ) and $(( )) command expressions in IRIX' ksh. These expressions are needed to hand over output from external commands to the test-shell script. ksh can't handle these, but backquote expressions can be substituted: ` ` for $( ) and `expr ` for $(( )) Packaging /usr/nekoware/libexec/ssh-keysign will not work because it is only readable by root. You can briefly set it to go+r permissions, and when the gendist idb and spec files are updated, the ssh-keysign file needs to have permission 4711 set when building the package. 'gmake tests' will bomb out at test-sshkey with the error "-21 : invalid key" if you compile with -O2 optimization or higher. test_sshkey: ........................... regress/unittests/sshkey/test_sshkey.c:462 test #28 "certify key" ASSERT_INT_EQ(sshkey_from_blob(sshbuf_ptr(b), sshbuf_len(b), &k3), 0) failed: sshkey_from_blob(sshbuf_ptr(b), sshbuf_len(b), &k3) = -21 0 = 0 /bin/sh[6]: 264642 Abort gmake[1]: *** [unit] Error 134 gmake[1]: Leaving directory `/usr/people/feverdij/src/openssh-o2/regress' gmake: *** [tests] Error 2 The b sshbuf structure holds an elliptic curve key and it's the actual computation of the curve in a few c source files where the unit test comparison goes wrong at a later part in the test source. I resolved it by recompiling ge25519.c with -O1 flag. Support for ssh1 and rsa1 keys has been removed. Use other ssh2 type keys. Also support for ssh-dss is disabled by default, which means that people with dss private keys cannot log in to default configured ssh servers. This can be re-enabled by setting: PubkeyAcceptedKeyTypes=+ssh-dss in /usr/nekoware/etc/ssh/sshd_config If there is no sshd user in /etc/passwd the exit script creates one (and the sshd group) by running /usr/nekoware/bin/chreate-sshd-user.sh . This is needed for the sshd server priviledge separation. This package has dual support for both mips3 and mips4 architecture, controlled by the mach(CPUARCH=R4000) switch for libraries and executables. PACKAGED BY ----------- S/N VER PORTER DATE ------------------------------------------------------------ 35 6.2p1 Rainer Canavan 40 6.7p1 Rainer Canavan 41 7.5p1 Frank Everdij (dexter1) 2017-08-18 Below are the former Release Notes from (i presume) Rainer Canavan. I have included them here because they differ significantly in setup and layout, but wanted to preserve it: # PACKAGE NAME # ------------ # neko_openssh # # for more information on this packge, use relnotes neko_openssh, # grelnotes neko_openssh or select "Release Notes" from the "Help" # Submenu in your toolchest # # This is a Makefile that should contain all steps required to configure, # build, install and produce a .tardist for this package # SOURCE/VERSION # -------------- # Portable OpenSSH 6.7p1 VERSION=6.7p1 # IRIX/MIPSPRO VERSION: # --------------------- # 6.5.30 / 7.4.4 # ENVIRONMENT VARIABLES # --------------------- export CC=c99 export MAKE=gmake export CXX=CC export CFLAGS=-O3 -mips4 -OPT:Olimit=0:roundoff=3 -TARG:platform=IP27:proc=r10000 -n32 export CXXFLAGS=-O3 -mips4 -OPT:Olimit=0:roundoff=3 -TARG:platform=IP27:proc=r10000 -n32 export CPPFLAGS=-I/usr/nekoware/include export LDFLAGS=-L/usr/nekoware/lib -Wl,-rpath,/usr/nekoware/lib export PKG_CONFIG=/usr/nekoware/bin/pkg-config export GNUMAKE=/usr/nekoware/bin/make export PERL=/usr/nekoware/bin/perl export PATH:=/usr/nekoware/bin:$(PATH) UNPACK: # ----- gunzip -c src/openssh-$(VERSION).tar.gz | tar -xf - CONFIGURE: # -------- cd openssh-$(VERSION) && ./configure \ --prefix=/usr/nekoware \ --mandir=/usr/nekoware/man \ --with-ssl-dir=/usr/nekoware/lib \ --with-pam \ --with-mantype=man BUILD: # ---- cd openssh-$(VERSION) && nice gmake -j `sysconf NPROC_ONLN` all CHECK: # ---- cd openssh-$(VERSION) && nice gmake tests INSTALL: # ------ cd openssh-$(VERSION) && gmake install PACKAGE: # ------ @if [ `id -u ` -ne 0 ]; then echo PACKAGE as root, since libexec/ssh-keysign is not readable otherwise; false; fi gzip -c relnotes/neko_openssh.html > relnotes/neko_openssh.html.gz gendist -sbase / -idb dist/neko_openssh.idb -spec dist/neko_openssh.spec -verbose -dist out cd out && tar -cf ../neko_openssh-$(VERSION).tardist neko_openssh neko_openssh.*