Daily Ports+ #4: Some Issues and Its Workaround2008年01月20日 12時16分42秒

There are still some issues. Today, when I attempted to upgrade kdebase3, ports+ failed. I had hoped that one of bug fixes to make environment had fixed this bug. However, it apparently not.

Most of times, "make" programs are invoked recursively. BSD make and GNU make passes its argument and environment variables to its children processes differently. Specially, if GNU make calling BSD make, it becomes quite tricky. Some packages fails because of this difference, and more investigation is required.

Fortunately, there is a way to work around. If build spots with ports+, try what is failing with manual command. For example in today's case, do "cd x11/kdebase3 && make configure" and see what happens. I saw that few others failed with ports+ but did not by hand or portupgrade.

This is where I started.

# ports+ test
# upgrade openoffice.org-2.2.0 to openoffice.org-2.3.1_1
# upgrade kdebase-3.5.8 to kdebase-3.5.8_1

The number of packages need upgrade is a few. So, I specify each one with -make-config-recursive as these two have options.

# ports+ -make--config-recursive /var/db/pkg/openoffice.org-2.2.0 \
/var/db/pkg/kdebase-3.5.8 -j4 -k
checking for glXChooseVisual in -lGL... (cached) yes
checking "struct ucred"... no
checking nogroup... nogroup
checking for getpeereid... yes
checking for xmkmf... /usr/local/bin/xmkmf
checking X paths... done
eval: 3: Syntax error: Unterminated quoted string
configure: WARNING: Cache variable kde_cv_defines_imake contains a newline.
===>  Script "configure" failed unexpectedly.
Please report the problem to kde@FreeBSD.org [maintainer] and attach the
"/ports/tmp/usr/ports/x11/kdebase3/work/kdebase-3.5.8/config.log" including
the output of the failure of your make command. Also, it might be a good idea
to provide an overview of all packages installed on your system (e.g. an `ls
*** Error code 1

Stop in /usr/ports/x11/kdebase3.

gmake: *** [/var/db/pkg/kdebase-3.5.8_1] Error 1

Kdebase3 failed on "make configure." Therefore, I run "make configure" out side of ports+.

# cd /usr/ports/x11/kdebase3/
# make configure
config.status: creating nsplugins/viewer/Makefile
config.status: creating nsplugins/wrapper/Makefile
config.status: creating pics/Makefile
config.status: creating pics/crystalsvg/Makefile
config.status: creating pics/wallpapers/Makefile
config.status: creating kdm/kfrontend/sessions/kde.desktop
config.status: creating khelpcenter/searchhandlers/khc_docbookdig.pl
config.status: creating khelpcenter/searchhandlers/khc_htdig.pl
config.status: creating config.h
config.status: executing depfiles commands

Good - your configure finished. Start make now

/usr/bin/sed -i.bak -e "s@^\s*Exec=.*\$@Exec=ElectricEyes@"  /ports/tmp/usr/port
/usr/bin/sed -i.bak -e 's/444/644/g'  /ports/tmp/usr/ports/x11/kdebase3/work/kde

The configure script finished without errors this time. I can resume with ports+ from this point on.

# ports+ /var/db/pkg/kdebase-3.5.8
===>   Registering installation for kdebase-3.5.8_1
      This port has installed the following binaries which execute with
      increased privileges.

      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:

Previous Next.