Subject: pkg/30172: games/xjewel build, install failures on MacOS X
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <jdbaker@mylinuxisp.com>
List: pkgsrc-bugs
Date: 05/08/2005 07:39:01
>Number: 30172
>Category: pkg
>Synopsis: games/xjewel build, install failures on MacOS X
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun May 08 07:39:01 +0000 2005
>Originator: John D. Baker
>Release: MacOS X 10.2.8
>Organization:
>Environment:
Darwin ed.local. 6.8 Darwin Kernel Version 6.8: Wed Sep 10 15:20:55 PDT 2003; root:xnu/xnu-344.49.obj~2/RELEASE_PPC Power Macintosh powerpc
>Description:
Several failure points building and installing xjewel on MacOS X 10.2.8.
First:
[...]
===> Configuring for xjewel-1.6nb1
imake -DUseInstalled -I/usr/pkg/lib/X11/config -I/usr/X11R6/lib/X11/config
make Makefiles
make includes
make depend
gccmakedep -- -I/usr/pkg/include -I/usr/X11R6/include -D__DARWIN__ -DNO_ALL
OCA -DX_LOCALE -DHSCORE_FILE=\"/var/games/xjewel.scores\" -DICON_WINDOW -DG
ETPWENT -DUSE_MAKEDEPEND -- xw.c jewel.c logic.c panel.c xhscore.c hscore.c gam
e.c intro.c help.c
In file included from xw.c:34:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
In file included from jewel.c:26:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
In file included from xhscore.c:21:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
In file included from game.c:24:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
In file included from intro.c:22:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
In file included from help.c:21:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
===> Building for xjewel-1.6nb1
gcc -pipe -O -Wall -Wpointer-arith -no-cpp-precomp -I/usr/pkg/include -I/usr
/X11R6/include -D__DARWIN__ -DNO_ALLOCA -DX_LOCALE -DHSCORE_FILE=\"/var/ga
mes/xjewel.scores\" -DICON_WINDOW -DGETPWENT -no-cpp-precomp -I/usr/pkg/includ
e -c xw.c
In file included from xw.c:34:
xw.h:50:36: stropts.h: No such file or directory
xw.h:51:33: poll.h: No such file or directory
xw.c: In function `xw_sync_sleep':
xw.c:120: warning: implicit declaration of function `poll'
xw.c: In function `xw_main_loop':
xw.c:162: error: storage size of `fds' isn't known
xw.c:165: error: `POLLIN' undeclared (first use in this function)
xw.c:165: error: (Each undeclared identifier is reported only once
xw.c:165: error: for each function it appears in.)
xw.c:165: error: `POLLPRI' undeclared (first use in this function)
xw.c:162: warning: unused variable `fds'
xw.c: In function `xw_init':
xw.c:402: warning: implicit declaration of function `toupper'
*** Error code 1
Stop.
bmake: stopped in /Volumes/NetBSD/pkgsrc/games/xjewel/work/xjewel-1.6
[...]
Second:
Installation fails as follows:
[ed:pkgsrc/games/xjewel] jdbaker% bmake install
===> *** No /Volumes/NetBSD/pkgsrc/distfiles/pkg-vulnerabilities file found,
===> *** skipping vulnerability checks. To fix, install
===> *** the pkgsrc/security/audit-packages package and run
===> *** '/usr/pkg/sbin/download-vulnerability-list'.
===> Installing for xjewel-1.6nb1
===> Becoming root@ed.local. to install xjewel.
/usr/bin/sudo Password:
install -c -o root -g wheel -s -m 2555 -o root -g games xjewel /usr/pkg/bin/xje
wel
install: unknown group games
*** Error code 67
Stop.
bmake: stopped in /Volumes/NetBSD/pkgsrc/games/xjewel/work/xjewel-1.6
[...]
Third:
[ed:pkgsrc/games/xjewel] jdbaker% bmake install
===> *** No /Volumes/NetBSD/pkgsrc/distfiles/pkg-vulnerabilities file found,
===> *** skipping vulnerability checks. To fix, install
===> *** the pkgsrc/security/audit-packages package and run
===> *** '/usr/pkg/sbin/download-vulnerability-list'.
===> Installing for xjewel-1.6nb1
===> Becoming root@ed.local. to install xjewel.
/usr/bin/sudo Password:
install -c -o root -g wheel -s -m 2555 -o root -g games xjewel /usr/pkg/bin/xje
wel
touch /var/games/xjewel.scores
touch: /var/games/xjewel.scores: No such file or directory
*** Error code 1
Stop.
bmake: stopped in /Volumes/NetBSD/pkgsrc/games/xjewel/work/xjewel-1.6
[...]
Fourth:
[ed:pkgsrc/games/xjewel] jdbaker% bmake install
===> *** No /Volumes/NetBSD/pkgsrc/distfiles/pkg-vulnerabilities file found,
===> *** skipping vulnerability checks. To fix, install
===> *** the pkgsrc/security/audit-packages package and run
===> *** '/usr/pkg/sbin/download-vulnerability-list'.
===> Installing for xjewel-1.6nb1
===> Becoming root@ed.local. to install xjewel.
/usr/bin/sudo install -c -o root -g wheel -s -m 2555 -o root -g games xjewel /u
sr/pkg/bin/xjewel
touch /var/games/xjewel.scores
chown games:games /var/games/xjewel.scores
chmod 664 /var/games/xjewel.scores
install in . done
+ install -c -o root -g wheel -m 0444 xjewel.6.html /usr/pkg/lib/X11/doc/html/xj
ewel.6.html
install: xjewel.6.html: No such file or directory
*** Error code 71
Stop.
bmake: stopped in /Volumes/NetBSD/pkgsrc/games/xjewel/work/xjewel-1.6
[...]
Fifth:
[ed:pkgsrc/games/xjewel] jdbaker% bmake install
===> *** No /Volumes/NetBSD/pkgsrc/distfiles/pkg-vulnerabilities file found,
===> *** skipping vulnerability checks. To fix, install
===> *** the pkgsrc/security/audit-packages package and run
===> *** '/usr/pkg/sbin/download-vulnerability-list'.
===> Installing for xjewel-1.6nb1
===> Becoming root@ed.local. to install xjewel.
/usr/bin/sudo Password:
install -c -o root -g wheel -s -m 2555 -o root -g games xjewel /usr/pkg/bin/xje
wel
touch /var/games/xjewel.scores
chown games:games /var/games/xjewel.scores
chmod 664 /var/games/xjewel.scores
install in . done
+ install -c -o root -g wheel -m 0444 xjewel.1.html /usr/pkg/lib/X11/doc/html/xj
ewel.6.html
install -c -o root -g wheel -m 0444 xjewel._man /usr/pkg/man/man6/xjewel.6
install.man in . done
/bin/ls: /usr/pkg/man/man6/xjewel.1: No such file or directory
===> Registering installation for xjewel-1.6nb1
/usr/pkg/sbin/pkg_create: can't stat `/usr/pkg/man/man6/xjewel.1'
>How-To-Repeat:
First:
cd .../pkgsrc/games/xjewel
bmake
Second and subsequent:
bmake install
>Fix:
First:
MacOS X, being a BSD-based system, provides select() rather than poll().
Workaround:
bmake patch
edit work/xjewel-1.6/Imakefile to add "|| defined(DarwinArchitecture)
to the conditional expression turning on "-DUSE_SELECT".
Second:
Workaround: Use NetInfoManager to manually create user/group "games".
Suggested fix: check for specified user/group and create if necessary
using sysutils/user_darwin
Third:
MacOS X does not have a /var/games directory by default.
Workaround: Manually create /var/games.
Suggested fix: check existence of full path, or install relative to
$LOCALBASE (usually /usr/pkg). E.g., /usr/pkg/var/games/...
Fourth:
The html documentation supplied is actually 'xjewel.1.html', but the
patches define MANSUFFIX=6. This is correct for the manual section,
but the transformation is being applied to the source file as well, causing
install to fail to find the file.
Workaround: edit the Makefile to explicitly install 'xjewel.1.html' in
the specified location.
----
$(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) xjewel.1.html $(DESTDIR)$(DO
CHTMLDIR)/xjewel.$$SUF.html)
----
Fifth:
Something's still not right. Now it's looking for the installed
'xjewel.6' in the right directory, but by the wrong name.
Unfortunately, it's this incorrect name that gets recorded in the
pkgdb. Not sure how to get around this one.
(Hack the pkgdb to contain the correct filename...)