ports/113470: [patch] print/freetype2 does not compile in (some) jails
Cristian KLEIN
cristi at net.utcluj.ro
Fri Jun 8 06:10:24 UTC 2007
>Number: 113470
>Category: ports
>Synopsis: [patch] print/freetype2 does not compile in (some) jails
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jun 08 06:10:23 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Cristian KLEIN
>Release: FreeBSD 6.2
>Organization:
Technical University of Cluj-Napoca
>Environment:
FreeBSD mail.xxx.xxx 6.2-RELEASE-p3 FreeBSD 6.2-RELEASE-p3 #5: Fri Apr 27 20:01:20 EEST 2007 cristi at bavaria.xxx.xxx:/usr/obj/usr/src/sys/BAVARIA-SMP i386
>Description:
print/freetype2 has a mechanism to autodetect the system it should compile on. (for example, ansi or unix). This autodetection mechanism relies on the fact that '/sbin/init' exists on every unix system. This is not necessarily true for FreeBSD jails, in which a paranoic system administrator would delete '/sbin/init' (it isn't useful in a jail anyway).
When attempting to compile print/freetype2 in such a jail, it will incorrectly detect the system as 'ansi' and stop with the following error:
===> Building for freetype2-2.2.1_2
cc -I./objs -I./builds/ansi -I./include -O -pipe -march=pentium4 -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER -DFT2_BUILD_LIBRARY -DFT_CONFIG_MODULES_H="<ftmodule.h>" -o objs/ftsystem.o src/base/ftsystem.c
In file included from ./include/freetype/config/ftconfig.h:43,
from src/base/ftsystem.c:29:
./include/freetype/config/ftoption.h:439:1: warning: "TT_CONFIG_OPTION_BYTECODE_INTERPRETER" redefined
<command line>:2:1: warning: this is the location of the previous definition
/usr/lib/crt1.o(.text+0x82): In function `_start':
: undefined reference to `main'
gmake: *** [objs/ftsystem.o] Error 1
*** Error code 2
Stop in /usr/ports/print/freetype2.
>How-To-Repeat:
First solution:
1) create a FreeBSD jail, as described in jail(8)
2) delete /sbin/init from the jail
3) install the ports collection
4) install print/freetype2
Dangerous, but should prove the point:
1) chflags noschg /sbin/init
2) mv /sbin/init /sbin/init.0
3) install print/freetype2
4) mv /sbin/init.0 /sbin/init
5) chflags schg /sbin/init
>Fix:
Workaround: type the following command in the jail environment:
touch /sbin/init
or, add the attached patch to print/freetype2/files
Patch attached with submission follows:
--- builds/unix/detect.mk.orig Tue Jan 31 15:12:28 2006
+++ builds/unix/detect.mk Fri Jun 8 08:48:32 2007
@@ -21,6 +21,10 @@
is_unix := $(strip $(wildcard /sbin/init) \
$(wildcard /usr/sbin/init) \
$(wildcard /hurd/auth))
+ # Being part of the FreeBSD ports collection
+ # I'm pretty sure we're on a unix system.
+ is_unix := true
+
ifneq ($(is_unix),)
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list