Package: pine Version: 3.91-3 As you can see from the transcript below,
1. debian.rules is not executable. 2. There is a problem in os_lnx.c involving struct iovec. 3. The debian.rules file does not notice errors during the build process and carries on regardless - this happens several times: once after os_lnx fails (and hence the C-client library fails), once when I press ^C (see where make says it was interrupted) and once at the end when it thinks the build has succeeded and says `done' despite having produced several errors about the missing binaries. Perhaps I should turn into H.J. Lu: Please use set -e when writing shell scripts, including Makefiles. Please use set -e when writing shell scripts, including Makefiles. Please use set -e when writing shell scripts, including Makefiles. Please use set -e when writing shell scripts, including Makefiles. Please use set -e when writing shell scripts, including Makefiles. If you do not use that or a similar method errors will go unnoticed. If you do not use that or a similar method errors will go unnoticed. If you do not use that or a similar method errors will go unnoticed. If you do not use that or a similar method errors will go unnoticed. If you do not use that or a similar method errors will go unnoticed. :-/ NB: this isn't really a criticism of the Pine maintainer - everybody since the dawn of time seems to have made this mistake, including Bourne himself when he made `set +e' the default. I've got this wrong myself often enough to know how hard it is to remember it all the time, and how strongly Bourne shell works to make this difficult. Perhaps if I preach set -e enough I'll remember to practice it too ... Ian. -chiark:pine-3.91> ./debian.rules build bash: ./debian.rules: Permission denied -chiark:pine-3.91> make -f ./debian.rules build ./build CC=gcc OPTIMIZE=-O2 LDFLAGS=-s lnx make args are "CC=cc CC=gcc OPTIMIZE=-O2 LDFLAGS=-s" Making c-client library, mtest and imapd make[1]: Entering directory `/usr/src/pine-3.91/imap' make build SYSTYPE=ANSI OS=lnx make[2]: Entering directory `/usr/src/pine-3.91/imap' echo lnx > OSTYPE rm -rf systype ln -s ANSI systype cd ANSI/c-client; make lnx make[3]: Entering directory `/usr/src/pine-3.91/imap/ANSI/c-client' make mtest OS=lnx EXTRADRIVERS="" \ STDPROTO=bezerkproto \ RSHPATH=/usr/bin/rsh CFLAGS="-g -O " make[4]: Entering directory `/usr/src/pine-3.91/imap/ANSI/c-client' ./drivers imap nntp pop3 mh mtx tenex mmdf bezerk news phile dummy rm -f OSTYPE CFLAGS LDFLAGS osdep.h echo lnx > OSTYPE echo -g -O > CFLAGS echo -s > LDFLAGS ln -s os_lnx.h osdep.h gcc -g -O -DSTDPROTO=bezerkproto \ -DRSH=\"rsh\" -DRSHPATH=\"/usr/bin/rsh\" \ -c os_lnx.c In file included from /usr/include/linux/socket.h:6, from /usr/include/sys/socket.h:5, from os_lnx.c:42: /usr/include/linux/uio.h:18: redefinition of `struct iovec' env_unix.c: In function `env_init': In file included from os_lnx.c:57: env_unix.c:206: warning: passing arg 1 of `cpystr' discards `const' from pointer target type tcp_unix.c: In function `tcp_open': In file included from os_lnx.c:58: tcp_unix.c:162: warning: passing arg 1 of `cpystr' discards `const' from pointer target type tcp_unix.c: In function `tcp_aopen': tcp_unix.c:225: warning: passing arg 1 of `cpystr' discards `const' from pointer target type make[4]: *** [osdep.o] Error 1 make[4]: Leaving directory `/usr/src/pine-3.91/imap/ANSI/c-client' make[3]: *** [lnx] Error 1 make[3]: Leaving directory `/usr/src/pine-3.91/imap/ANSI/c-client' make[2]: *** [build] Error 1 make[2]: Leaving directory `/usr/src/pine-3.91/imap' make[1]: *** [lnx] Error 1 make[1]: Leaving directory `/usr/src/pine-3.91/imap' Making Pico make[1]: Entering directory `/usr/src/pine-3.91/pico' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/usr/src/pine-3.91/pico' Making Pine. make[1]: Entering directory `/usr/src/pine-3.91/pine' gcc -DLNX -DSYSTYPE=\"LNX\" -O2 -c addrbook.c -o addrbook.o make[1]: *** [addrbook.o] Interrupt make[1]: Leaving directory `/usr/src/pine-3.91/pine' Links to executables are in bin directory: size: bin/pine: No such file or directory size: bin/mtest: No such file or directory size: bin/imapd: No such file or directory text data bss dec hex filename 94176 4096 764 99036 182dc bin/pico Done -chiark:pine-3.91>