Kampbell / isode-8.0

The original ISODE open source code version 8.0 ported to modern Linuces
16 stars 10 forks source link

Build on Ubuntu 16.04.4 fails. #7

Closed 9600 closed 6 years ago

9600 commented 6 years ago

Running Ubuntu 16.04.4 x86_64. In an effort to resolve the first error appended -lcrypt to OPTIONS += line in CONFIG.make, but didn't appear to help. Fatal errors below.

//

make[2]: Entering directory '/var/SW/isode-8.0/ftam2' Makefile:33: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:110: warning: ignoring old recipe for target '.c.o' ../pepsy/xpepsy -A -f -h -m docs.py pepsy 8.0 #3 (snow) of Sun 19 Aug 20:44:25 BST 2018 DOCS none decode none: FTAM-1-Parameters FTAM-1-Datatype1 FTAM-3-Parameters FTAM-3-Datatype1 NBS-9-Parameters NBS-9-Datatype1

comptag:warning implicit tag of unknown type Attribute-Names comptag:treated as implicit cc -w -g -I. -I../h -DPEPYPATH -c ftamd.c cc -w -g -I. -I../h -DPEPYPATH -c ftamsystem.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-manage.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-select.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-trans.c cc -w -g -I. -I../h -DPEPYPATH -c ftamsbr.c cc -w -g -I. -I../h -DPEPYPATH -c DOCS_tables.c cc -o xftamd ftamd.o ftamsystem.o ftamd-manage.o \ ftamd-select.o ftamd-trans.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm ../libisode.a(chkpassword.o): In function chkpassword': /var/SW/isode-8.0/compat/chkpassword.c:89: undefined reference tocrypt' collect2: error: ld returned 1 exit status Makefile:78: recipe for target 'xftamd' failed make[2]: [xftamd] Error 1 cc -w -g -I. -I../h -DPEPYPATH -c ftam.c cc -w -g -I. -I../h -DPEPYPATH -c ftamuser.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-assoc.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-dir.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-get.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-glob.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-ls.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-mgmt.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-put.c cc -o xftam ftam.o ftamuser.o ftam-assoc.o \ ftam-dir.o ftam-get.o ftam-glob.o ftam-ls.o \ ftam-mgmt.o ftam-put.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm ftam-dir.o: In function f_lcd': /var/SW/isode-8.0/ftam2/ftam-dir.c:60: undefined reference to_getcwd' ftam-dir.o: In function f_pwd': /var/SW/isode-8.0/ftam2/ftam-dir.c:247: undefined reference to_getcwd' collect2: error: ld returned 1 exit status Makefile:114: recipe for target 'xftam' failed make[2]: [xftam] Error 1 make[2]: Target 'all' not remade because of errors. make[2]: Leaving directory '/var/SW/isode-8.0/ftam2' Makefile:131: recipe for target 'all-ftam' failed make[1]: [all-ftam] Error 2 make[1]: Leaving directory '/var/SW/isode-8.0' Makefile:108: recipe for target 'everything' failed make: [everything] Error 2

zosrothko commented 6 years ago

Hi... really surprised that someone be interested by isode-8.0. Welcome to the ISODE world In effect, -lcrypt should solve the first missing reference, but the command line does not seem to have the -lcrypt option added

cc -o xftamd ftamd.o ftamsystem.o ftamd-manage.o
ftamd-select.o ftamd-trans.o ftamsbr.o DOCS_tables.o
../libftam.a ../libisode.a -lm

The other link error is an unresolved reference to getcwd which is part of glibc,, the implicit linked library of the C runtime. That is quite strange

BTW, you could also add the -lcryptto LDFLAGS in CONFIG.make

9600 commented 6 years ago

I was delighted to discover someone had ported it to Linux! Back in the mid-90s I built an e-mail gateway for a national utilities company, to route between DEC ALL-IN-ONE internal mail and X.400, using DEC MAILbus 400 MTA and X.500 DSA on OpenVMS, with X.400<>SMTP routing via other MAILbus software on an OSF/1 host.

Then in 1999 used the Isode commercial products for X.400 connection to an ADMD for EDI messaging, and Solstice OSI for FTAM over X.25 to transfer payment information from a bank. We had a DSA connected to NameFLOW-Paradise just for fun also.

Hence I have a soft spot for ISO networking and applications, and would love to get this up and running.

Previous output was without -lcrypt in CONFIG.make. Appending this to LDFLAGS I get:

cc -lcrypt -o xftamd ftamd.o ftamsystem.o ftamd-manage.o \ ../libisode.a(chkpassword.o): In function chkpassword': /var/SW/isode-8.0/compat/chkpassword.c:89: undefined reference tocrypt' collect2: error: ld returned 1 exit status make[2]: [xftamd] Error 1 cc -lcrypt -o xftam ftam.o ftamuser.o ftam-assoc.o \ ftam-dir.o: In function f_lcd': /var/SW/isode-8.0/ftam2/ftam-dir.c:60: undefined reference to_getcwd' ftam-dir.o: In function f_pwd': /var/SW/isode-8.0/ftam2/ftam-dir.c:247: undefined reference to_getcwd' collect2: error: ld returned 1 exit status make[2]: [xftam] Error 1 make[2]: Target 'all' not remade because of errors. make[1]: [all-ftam] Error 2 make: [everything] Error 2

9600 commented 6 years ago

I read that the position of -lcrypt can be important and appending it to LDFLAGS it was appearing earlier on, so I moved it to after -lm on LSOCKET. Not sure if it's now getting further and encountering another error, or this has actually created another problem.

//

-rw-rw-r-- 2 andrew andrew 1464746 Aug 20 10:45 libftam.a FTAM library built normally make[2]: Leaving directory '/var/SW/isode-8.0/ftam' cd ftam2; ./make DESTDIR= -w -k all make[2]: Entering directory '/var/SW/isode-8.0/ftam2' Makefile:33: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:112: warning: ignoring old recipe for target '.c.o' ../pepsy/xpepsy -A -f -h -m docs.py pepsy 8.0 #1 (snow) of Mon 20 Aug 10:44:55 BST 2018 DOCS none decode none: FTAM-1-Parameters FTAM-1-Datatype1 FTAM-3-Parameters FTAM-3-Datatype1 NBS-9-Parameters NBS-9-Datatype1

comptag:warning implicit tag of unknown type Attribute-Names comptag:treated as implicit cc -w -g -I. -I../h -DPEPYPATH -c ftamd.c cc -w -g -I. -I../h -DPEPYPATH -c ftamsystem.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-manage.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-select.c cc -w -g -I. -I../h -DPEPYPATH -c ftamd-trans.c cc -w -g -I. -I../h -DPEPYPATH -c ftamsbr.c cc -w -g -I. -I../h -DPEPYPATH -c DOCS_tables.c cc -o xftamd ftamd.o ftamsystem.o ftamd-manage.o \ ftamd-select.o ftamd-trans.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm -lcrypt cc ftamd.o xftamd -o ftamd xftamd: In function __bss_start': (.bss+0x2c): multiple definition ofcflag' ftamd.o:(.bss+0x0): first defined here xftamd: In function ftam_adios': /var/SW/isode-8.0/ftam2/ftamd.c:154: multiple definition offtam_adios' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:154: first defined here xftamd: In function data_start': (.data+0x30): multiple definition ofmyname' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:52: first defined here xftamd: In function _fini': (.fini+0x0): multiple definition of_fini' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o:(.fini+0x0): first defined here xftamd: In function __bss_start': (.bss+0x30): multiple definition ofdebug' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:52: first defined here xftamd: In function advise': /var/SW/isode-8.0/ftam2/ftamd.c:305: multiple definition ofadvise' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:305: first defined here xftamd: In function ftam_diag': /var/SW/isode-8.0/ftam2/ftamd.c:189: multiple definition offtam_diag' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:189: first defined here xftamd: In function data_start': (.data+0x0): multiple definition ofdata_start' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:(.data+0x0): first defined here xftamd: In function data_start': (.data+0x8): multiple definition ofdso_handle' /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o:(.data+0x0): first defined here xftamd:(.rodata+0x0): multiple definition of _IO_stdin_used' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:(.rodata.cst4+0x0): first defined here xftamd: In functiondata_start': (.data+0x28): multiple definition of ftamfd' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:52: first defined here xftamd: In function_start': (.text+0x0): multiple definition of _start' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:(.text+0x0): first defined here xftamd: In functionmain': /var/SW/isode-8.0/ftam2/ftamd.c:52: multiple definition of main' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:52: first defined here xftamd: In functionadios': /var/SW/isode-8.0/ftam2/ftamd.c:277: multiple definition of adios' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:277: first defined here xftamd: In function_init': (.init+0x0): multiple definition of _init' /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o:(.init+0x0): first defined here xftamd: In functionftam_advise': /var/SW/isode-8.0/ftam2/ftamd.c:170: multiple definition of ftam_advise' ftamd.o:/var/SW/isode-8.0/ftam2/ftamd.c:170: first defined here /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o:(.tm_clone_table+0x0): multiple definition of__TMC_END__' xftamd:(.data+0x28f40): first defined here /usr/bin/ld: error in xftamd(.eh_frame); no .eh_frame_hdr table will be created. collect2: error: ld returned 1 exit status

: recipe for target 'ftamd' failed make[2]: *** [ftamd] Error 1 cc -w -g -I. -I../h -DPEPYPATH -c ftam.c cc -w -g -I. -I../h -DPEPYPATH -c ftamuser.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-assoc.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-dir.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-get.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-glob.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-ls.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-mgmt.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-put.c cc -o xftam ftam.o ftamuser.o ftam-assoc.o \ ftam-dir.o ftam-get.o ftam-glob.o ftam-ls.o \ ftam-mgmt.o ftam-put.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm -lcrypt ftam-dir.o: In function `f_lcd': /var/SW/isode-8.0/ftam2/ftam-dir.c:59: undefined reference to `_getcwd' ftam-dir.o: In function `f_pwd': /var/SW/isode-8.0/ftam2/ftam-dir.c:243: undefined reference to `_getcwd' collect2: error: ld returned 1 exit status Makefile:114: recipe for target 'xftam' failed make[2]: *** [xftam] Error 1 make[2]: Target 'all' not remade because of errors. make[2]: Leaving directory '/var/SW/isode-8.0/ftam2' Makefile:131: recipe for target 'all-ftam' failed make[1]: *** [all-ftam] Error 2 make[1]: Leaving directory '/var/SW/isode-8.0' Makefile:108: recipe for target 'everything' failed make: *** [everything] Error 2
zosrothko commented 6 years ago

Yes -lcrypt should be ordered in the command line after the first unresolved reference, hence just before or after -lm in that case.

The other issues are coming from these 2 lines

cc -o xftamd ftamd.o ftamsystem.o ftamd-manage.o
ftamd-select.o ftamd-trans.o ftamsbr.o DOCS_tables.o
../libftam.a ../libisode.a -lm -lcrypt
cc ftamd.o xftamd -o ftamd

The first one is producing xftamd that includes ftamd.o The second is producing ftamd combining ftamd.o with the previous xftamd, hence all ftamd.o external symbols are duplicate. The solution would be to avoid the second line, but I dpo not have a working Linux under hand and cannot explore a solution.

The problem is coming from this line in ftam2/Makefile

ftamd:      xftamd

Make has no rule to apply for producing ftamd from xftamd, thus it applies a default rule since it founds a ftam.o in the directory. May be adding an echo "" would solve the issue.

9600 commented 6 years ago

That seemed to do the trick and now it just fails with those _getcwd errors:

cc -w -g -I. -I../h -DPEPYPATH -c ftam-ls.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-mgmt.c cc -w -g -I. -I../h -DPEPYPATH -c ftam-put.c cc -o xftam ftam.o ftamuser.o ftam-assoc.o \ ftam-dir.o ftam-get.o ftam-glob.o ftam-ls.o \ ftam-mgmt.o ftam-put.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm -lcrypt ftam-dir.o: In function f_lcd': /var/SW/isode-8.0/ftam2/ftam-dir.c:59: undefined reference to_getcwd' ftam-dir.o: In function f_pwd': /var/SW/isode-8.0/ftam2/ftam-dir.c:243: undefined reference to_getcwd' collect2: error: ld returned 1 exit status Makefile:115: recipe for target 'xftam' failed

zosrothko commented 6 years ago

In h/usr.dirent.h and others/cl/h/dirent.h, comment out the line below as a workaround (the final fix should be guarded by a #define)

#define getcwd          _getcwd
9600 commented 6 years ago

Thanks, this got me further again. Next ftam was failing to build with similar duplicate symbol errors to ftamd, so I added an echo "" line for this also. Now it's failing with ftp.c:

cc -o xftam ftam.o ftamuser.o ftam-assoc.o \ ftam-dir.o ftam-get.o ftam-glob.o ftam-ls.o \ ftam-mgmt.o ftam-put.o ftamsbr.o DOCS_tables.o \ ../libftam.a ../libisode.a -lm -lcrypt

make[2]: Leaving directory '/var/SW/isode-8.0/ftam2' cd ftam-ftp; ./make DESTDIR= -w -k all make[2]: Entering directory '/var/SW/isode-8.0/ftam-ftp' Makefile:37: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:112: warning: ignoring old recipe for target '.c.o' cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamd.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamsystem.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamd-manage.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamd-select.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamd-trans.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamsbr.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ftp.c In file included from ftp.c:44:0: /usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:4:2: error: #error "GCC no longer implements ."

error "GCC no longer implements ."

^ /usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:5:2: error: #error "Revise your code to use ."

error "Revise your code to use ."

^ In file included from ftp.c:46:0: ftp_var.h:86:14: error: conflicting types for ‘sys_errlist’ extern char sys_errlist[]; ^ In file included from /usr/include/stdio.h:853:0, from /usr/include/malloc.h:24, from ../h/general.h:154, from ftp.c:30: /usr/include/x86_64-linux-gnu/bits/sys_errlist.h:27:26: note: previous declaration of ‘sys_errlist’ was here extern const char const sys_errlist[]; ^ ftp.c: In function ‘hookup’: ftp.c:97:10: error: conflicting types for ‘inet_addr’ u_long inet_addr(); ^ In file included from ../h/internet.h:36:0, from ftp.c:37: /usr/include/arpa/inet.h:34:18: note: previous declaration of ‘inet_addr’ was here extern in_addr_t inet_addr (const char *cp) THROW; ^ ftp.c: In function ‘command’: ftp.c:193:1: error: expected declaration specifiers before ‘va_dcl’ va_dcl { ^ ftp.c:197:14: error: macro "va_start" requires 2 arguments, but only 1 given va_start (ap); ^ ftp.c:206:1: error: expected declaration specifiers before ‘_command’ _command(ap) ^ ftp.c:217:29: error: ‘ap’ undeclared (first use in this function) _asprintf (buffer, NULLCP, ap); ^ ftp.c:217:29: note: each undeclared identifier is reported only once for each function it appears in Makefile:37: recipe for target 'ftp.o' failed make[2]: [ftp.o] Error 1 cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ftp_lib.c In file included from ftp_lib.c:42:0: ftp_var.h:86:14: error: conflicting types for ‘sys_errlist’ extern char sys_errlist[]; ^ In file included from /usr/include/stdio.h:853:0, from ftp_lib.c:38: /usr/include/x86_64-linux-gnu/bits/sys_errlist.h:27:26: note: previous declaration of ‘sys_errlist’ was here extern const char const sys_errlist[]; ^ Makefile:37: recipe for target 'ftp_lib.o' failed make[2]: [ftp_lib.o] Error 1 make[2]: Target 'all' not remade because of errors. make[2]: Leaving directory '/var/SW/isode-8.0/ftam-ftp' cd ftp-ftam; ./make DESTDIR= -w -k all make[2]: Entering directory '/var/SW/isode-8.0/ftp-ftam' Makefile:37: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:112: warning: ignoring old recipe for target '.c.o' cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ftpd.c In file included from ftpd.c:66:0: /usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:4:2: error: #error "GCC no longer implements ."

error "GCC no longer implements ."

^ /usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:5:2: error: #error "Revise your code to use ."

error "Revise your code to use ."

^ ftpd.c:81:14: error: conflicting types for ‘sys_errlist’ extern char sys_errlist[]; ^ In file included from /usr/include/stdio.h:853:0, from /usr/include/malloc.h:24, from ../h/general.h:154, from ../h/sys.file.h:26, from ftpd.c:45: /usr/include/x86_64-linux-gnu/bits/sys_errlist.h:27:26: note: previous declaration of ‘sys_errlist’ was here extern const char const sys_errlist[]; ^ ftpd.c: In function ‘reply’: ftpd.c:330:1: error: expected declaration specifiers before ‘va_dcl’ va_dcl { ^ ftpd.c:334:14: error: macro "va_start" requires 2 arguments, but only 1 given va_start (ap); ^ ftpd.c:343:1: error: expected declaration specifiers before ‘lreply’ lreply(va_alist) ^ ftpd.c:348:14: error: macro "va_start" requires 2 arguments, but only 1 given va_start (ap); ^ ftpd.c:358:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘int’ int n; ^ ftpd.c:360:9: error: declaration for parameter ‘ap’ but no such parameter va_list ap; ^ ftpd.c:359:9: error: declaration for parameter ‘c’ but no such parameter char c; ^ ftpd.c:366:24: error: ‘n’ undeclared (first use in this function) printf ("%d%c%s\r\n", n, c, buffer); ^ ftpd.c:366:24: note: each undeclared identifier is reported only once for each function it appears in Makefile:37: recipe for target 'ftpd.o' failed make[2]: [ftpd.o] Error 1 make[2]: No rule to make target 'ftpcmd.y', needed by 'ftpcmd.c'. cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamuser.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-assoc.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-dir.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-get.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-glob.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-ls.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-mgmt.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftam-put.c cc -w -g -I. -I../h -DPEPYPATH -DBRIDGE -I../ftam2/ -c ../ftam2/ftamsbr.c make[2]: Target 'all' not remade because of errors. make[2]: Leaving directory '/var/SW/isode-8.0/ftp-ftam' Makefile:159: recipe for target 'all-ftam-ftp' failed make[1]: [all-ftam-ftp] Error 2 make[1]: Leaving directory '/var/SW/isode-8.0' Makefile:108: recipe for target 'everything' failed make: [everything] Error 2 andrew@snow:/var/SW/isode-8.0$

zosrothko commented 6 years ago

This is the main issue

In file included from ftp.c:44:0:
/usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:4:2: error: #error "GCC no longer implements <varargs.h>."
#error "GCC no longer implements <varargs.h>."
^
/usr/lib/gcc/x86_64-linux-gnu/5/include/varargs.h:5:2: error: #error "Revise your code to use <stdarg.h>."
#error "Revise your code to use <stdarg.h>."

Since I have no Linux machine under hands, I cannot fix this one... May be you could fix on your own?

9600 commented 6 years ago

Thanks for all our help! Managed to resolve a few more errors by commenting out lines where it was redefining variables, e.g. inet_addr, with conflicting types. Just reading up how to move from using varargs to stdarg.

9600 commented 6 years ago

Now uses stdarg in place of varargs, which fixes the previous build errors. Now build gets further and fails with:

make[2]: Leaving directory '/var/SW/isode-8.0/ftam2' cd ftam-ftp; ./make DESTDIR= -w -k all make[2]: Entering directory '/var/SW/isode-8.0/ftam-ftp' Makefile:37: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:112: warning: ignoring old recipe for target '.c.o' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/SW/isode-8.0/ftam-ftp' cd ftp-ftam; ./make DESTDIR= -w -k all make[2]: Entering directory '/var/SW/isode-8.0/ftp-ftam' Makefile:37: warning: overriding recipe for target '.c.o' ../config/CONFIG.make:112: warning: ignoring old recipe for target '.c.o' make[2]: No rule to make target 'ftpcmd.y', needed by 'ftpcmd.c'. make[2]: Target 'all' not remade because of errors. make[2]: Leaving directory '/var/SW/isode-8.0/ftp-ftam' Makefile:159: recipe for target 'all-ftam-ftp' failed make[1]: [all-ftam-ftp] Error 2 make[1]: Leaving directory '/var/SW/isode-8.0' Makefile:108: recipe for target 'everything' failed make: *** [everything] Error 2

Any ideas?

zosrothko commented 6 years ago

this file ftpcmd.yis missing in the ftp-ftam directory, thus make cannot build ftpcmd.c from ftpcmd.y

make[2]: *** No rule to make target 'ftpcmd.y', needed by 'ftpcmd.c'.
9600 commented 6 years ago

Just occurred to ask: have you had this building on Linux, or was/is it very much a work in progress? I ask as tried make all-quipu and that result in a lot of errors.

zosrothko commented 6 years ago

At that time, I did not need the full Isode modules, only the TSAp up to the AcSAP. That 's why some others modules are merely a WorkInProgress... (and quipu is one of them for sure)

9600 commented 6 years ago

Ah, good to know. I've just forked the repo and will split up the changes made so far into separate commits. Will see then if I can work through some of the remaining errors, but seems like it would be a lot of work and, since I'm definitely not a C programmer, I'm not sure the result is ever going to be PR-worthy. That said, I'll ping you if I make any substantial progress.

zosrothko commented 6 years ago

BTW, do you need all modules of Isode-8.0 or some specific ones that are not yet ready?

9600 commented 6 years ago

I was hoping to run a Quipu DSA and maybe experiment with PP also.

zosrothko commented 6 years ago

Huu great challenge... let me know if you need help..I should get a working Linux box in 2/3 weeks

JonathanWilbur commented 2 years ago

Hello @9600 and @zosrothko , have either of you got this working on a modern Linux distro? I was planning to create a Docker image of Quipu (and possibly other services if it's not too hard), but it seems like we all run into the same issues when trying to build it.

Also, @9600 I am looking into this because I wrote my own X.500 directory server (docs) and I wanted to test integration with it. Sorry to plug my own work here, but you specifically expressed an interest in this kind of thing.

9600 commented 2 years ago

@JonathanWilbur I never got very far with this I'm afraid and it's probably beyond my skill level also. Very cool indeed to see that you wrote your own DSA, though. I look forward to trying this out!

JonathanWilbur commented 2 years ago

Just a heads up to you both, @9600 and @zosrothko : I submitted a bounty of $1500 for somebody to get this compiling, installing, and running. https://app.bountysource.com/issues/109508245-will-not-compile-on-a-modern-linux-system-bounty

zosrothko commented 2 years ago

@JonathanWilbur ok, I am interested and will try to get it compile. Just let some time since I will do it on my spare time.

zosrothko commented 2 years ago

@JonathanWilbur Is your bounty proposal of 1500$ is always running?

JonathanWilbur commented 2 years ago

I don't understand your question @zosrothko . If you mean my bounty is still active, then yes.

JonathanWilbur commented 2 years ago

Just a heads up: there are fees associated with withdrawing money from BountySource, which you can read about here: https://app.bountysource.com/fees

zosrothko commented 2 years ago

I don't understand your question @zosrothko . If you mean my bounty is still active, then yes.

I am and was not aware of this BountySource system. I registered and will start working on it.

zosrothko commented 2 years ago

@9600 Could you commit and push in the branch develop all your work you have done to compile isode-8.0?

bl00mber commented 2 years ago

@zosrothko I am already working on this and almost done

9600 commented 2 years ago

@zosrothko I didn't get far previously and in any case, couldn't speak to the quality of the changes I made.

Really looking forward to being able to build this on a modern Linux system!

zosrothko commented 2 years ago

@9600 I do not think there is a quality code evaluation. All changes needed have to be done for following the new C standard. As such, the quality of thoses changes are a t the same micro level as the code they replace.

zosrothko commented 2 years ago

@zosrothko I am already working on this and almost done

Well good for you... but I have done all changes in most of the isode-8.0 modules... So it would be a little bit unfair if you get the 1500$ by closing the BountySource challenge!

zosrothko commented 2 years ago

@JonathanWilbur By the way, if you are interested in the OSI world, I restart some years ago a complete rewriting of all OSI specifications in C++ as well as a ASN.1 compiler in C++ with support of all the 4 ASN.1 specifications.

Here the repository of the ISODE project: https://github.com/Kampbell/ISODE Let me know if you want to access to the ASN.1 compiler, it is a private github repository.

bl00mber commented 2 years ago

@zosrothko the bounty is for finishing the task, not for previous work. Anybody can claim bounty if he will get done what is written in bounty description, isn't that true @JonathanWilbur

JonathanWilbur commented 2 years ago

That is true, @bl00mber . It is a race to get it done. That's just part of the deal.

JonathanWilbur commented 2 years ago

@zosrothko My code standards for this are not particularly high. I just want something that builds and runs. I don't expect any bugs to be fixed or code quality to be improved at all. That said, I do expect to review the code just to make sure you didn't make it work in a hacky way. :smiley_cat:

Also, I would be very interested in seeing your ASN.1 compiler. I think you and I have very similar interests, because I actually wrote an ASN.1 compiler myself which is also private. Mine compiles to Typescript. I'll show you mine if you show me yours!

9600 commented 1 year ago

Curious if anyone got any further with this?

zosrothko commented 1 year ago

The BountyCourse is closed as the target of providing the full Isode-8.0 stack on modern linux has been achieved: See this git repository :Isode-8.0

9600 commented 1 year ago

@zosrothko Thanks, I'd somehow missed that. Just built and installed and looking forward to trying it out.

zosrothko commented 1 year ago

@9600 If you know someone interested in a fully ITU compliant ASN.1 compiler producing C++ code which is a serious WIP, let me know.

9600 commented 1 year ago

@zosrothko Sure, I'll bear this in mind if I hear of such a requirement.

BTW, do you know if the port can be used with ISO TP4 (native and not RFC1006)? It looks as though this needed OS support, e.g. on Solaris via Sunlink/Solstice OSI.

zosrothko commented 1 year ago

As far as I can remember, I do not think so. Since TCP/IP is considered as a reliable internet transport provider, only TP0 is supported. By tyhe way, RFC006 is mandatory.

JonathanWilbur commented 1 year ago

@9600 Can I ask what your interest in TP4 is? I was on the fence about implementing this in Meerkat DSA, but I'll implement it if you have a use for it. I currently have a mostly working RFC 1006 ISO Transport Over TCP (ITOT) stack in this branch. It is not too much more work to support TP4, I believe.

zosrothko commented 1 year ago

@JonathanWilbur That's does not make sense to support TP4 over TCP/IP with the RFC1006 since TCP/IP IS A RELIABLE transprt.

TP4 would have a sense if it is build over the UDP datagram or the IP layer for exemple .

I

9600 commented 1 year ago

@JonathanWilbur I'm guessing by TP4 you mean IP protocol number 29? I was meaning native ISO TP4 CLNS / Ethernet, without any IP stack. I'm most familiar with using this via DECnet/OSI on VMS and DEC OSF/1. Also used TP4 on Sun systems via the Sunlink/Solstice product, along with TP0 CONS X.25.

For TP4 CLNS / Ethernet I'd have expected we'd need kernel support. Or maybe with modern Linux it's now possible from user space? BSD gained ISO networking support with 4.3 and this looks to have been in NetBSD up until at least 6.x. I have wondered if it could easily be added back in to current NetBSD and whether this might then make a more interesting target OS than Linux.

https://man.netbsd.org/NetBSD-6.0/iso.4 https://man.netbsd.org/NetBSD-6.0/clnp.4 https://man.netbsd.org/NetBSD-6.0/tp.4

My interest is mainly from a computing history / conservation perspective and I'd like to get a few different systems up and running here with ISO networking and applications. E.g. OpenVMS and DECnet/OSI via the hobbyist programme, which up until the OS and programme were handed over to VMS Software Inc., you could also get licenses for a fully fledged X.500 DSA and X.400 MTA. And it could also be fun to set up an enthusiast (inter)network with tunnels — you could just use RFC1006, but it wouldn't be quite as interesting.

Although I do also recognise the benefits of things such as X.500 shadowing and chaining for commercial directory deployments. And of course X.400 is still in use in aviation and military, and ISO networking in certain telecoms apps and perhaps industrial too.