
On Sun, 1 May 2005, Jesper Louis Andersen wrote:
I am reporting on a number of issues with the package. The rationale for this report is to inform various parties of the problems I have encountered, so they can be thought of in later releases. As a consequence the emphasis of this mail will target the build system, the system infrastructure at york(!) and interfacing with NetBSD in general. Communication often makes the difference between a success and failure when porting software. I also hope Krister does not feel I have hi-jacked his work.
No problem. I have not had much time lately, and know that the pkgsrc Haskell stuff has bit rotted. And it is always nice to hear that the packages are used! :-)
The first problem with updating the package is the retrieval phase. This is done by a program, ftp(1), which will try to fetch the file ftp://ftp.cs.york.ac.uk/pub/haskell/nhc98/nhc98src-1.18.tar.gz. Unfortunately, this fails because the york ftp-server and ftp(1) agrees on entering Extended Passive Mode (EPRT and EPSV as per RFC 2428) which I then suspect the york firewall to disallow. Note that programs such as FreeBSDs fetch(1) and wget(1) of GNU chooses not entering EPRT/EPSV mode; thus having no problems fetching the source code.
The direct solution to this problem would be to fix the firewall. We could add a workaround into the packages fetching process, but this has a number of implications. First, it is not the correct solution to the problem. Second, the fetching is generalized and not necessarily done by ftp(1). Altering the options given to the ${FETCH_COMMAND} is not portable if another retrieval program is chosen.
Hmm. I didn't get this problem when downloading the files. I suggest not adding a workaround in pkgsrc -- the file will be mirrored on ftp.netbsd.org for those who has problems (and pkgsrc will use this mirror automagically in case of problems with the master site).
The next problem I ran into in the upgrade process from 1.16 is a number of old patches we put on the source code before compiling. The patches are all laid out at the following url:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/nhc98/patches/
I will write [aa] for patch-aa, [ab] for patch-ab and so forth. Here is my findings. [aa] concerns an addition of $LDFLAGS to the curses compilation. This is done because the NetBSD package system can set further linker directives in this variable and we need to honour them. [ab] concerns an errornous way of calling abort(3). This is fixed in 1.18 and can go away. [ac, ad, af, ag] are all patches from the nhc98 homepage for nhc1.16. These are obviously not needed for 1.18 and can go away. [ae] does not seem to apply anymore. I am on a -current NetBSD and had no build problems. [ah] adjusts for $(CC) by substituting it for $(BUILDCOMP). I think this is the correct solution, so I have adapted that one.
That is all. Unless I get complaints from any department - I will submit a change to the NetBSD bug-tracker in a couple of days.
I actually made essentially the same changes to my local source tree a couple of days ago, and am planning to commit them to pkgsrc later today, after I have tested it on some more platforms... /Krister