[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1920: problems with Pine source build



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>


Reply to: