aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authorBoris Samorodov <bsam@FreeBSD.org>2008-04-20 04:51:13 +0800
committerBoris Samorodov <bsam@FreeBSD.org>2008-04-20 04:51:13 +0800
commite53decf13873ea20e55f554c6921652d6adca790 (patch)
tree292e58488e982765082888a963cad608eb699567 /emulators
parentd4413455b8e7fc9b4410c64d69abe05a48ccedb9 (diff)
downloadfreebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.tar.gz
freebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.tar.zst
freebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.zip
1. Add a symlink from /compat/linux/lib/librt.so.1 to
/compat/linux/usr/lib/librt.so.1. This bug exists only at linux_base-fc4 _and_ osrelease=2.4.2. 2. Bump PORTREVISION. Note: The symlink is created at pkg-install script since the first run of '/compat/linux/sbin/ldconfig -r /compat/linux' seems to remove the link. Tijl Coosemans <tijl at ulyssis.org>: ----- This is not really a bug of linux compat, but is because of the following: 1. opening /path/to/somefile under linux compat first tries /compat/linux/path/to/somefile then /path/to/somefile. 2. linux binaries have two search paths for librt.so.1: /lib and /usr/lib. 3. fc4 has a librt.so.1 in /lib but it is rejected under 2.4.2 emulation. 4. fc4 does not have a librt.so.1 under /usr/lib so when the runtime linker tries this search path it ends up opening FreeBSD /usr/lib/librt.so.1 (because of point 1) and fails. By adding a softlink in /compat/linux/usr/lib to the librt.so.1 in /compat/linux/lib, the linker doesn't open the FreeBSD librt.so.1 anymore. Instead, under 2.4.2, it rejects this lib and then tries an internal search path /lib/obsolete/linuxthreads where it finds the correct version. Under 2.6.16 the softlink doesn't change anything, so imho this is something the fc4 port/package should deal with. ----- PR: 121494 Submitted by: Jason Bacon <jwbacon at tds.net> Convinced by: Tijl Coosemans <tijl at ulyssis.org> Patched by: bsam (me)
Diffstat (limited to 'emulators')
-rw-r--r--emulators/linux_base-fc4/Makefile2
-rw-r--r--emulators/linux_base-fc4/pkg-install5
-rw-r--r--emulators/linux_base-fc4/pkg-plist1
3 files changed, 7 insertions, 1 deletions
diff --git a/emulators/linux_base-fc4/Makefile b/emulators/linux_base-fc4/Makefile
index 2db3d660a562..e5c8619ba74a 100644
--- a/emulators/linux_base-fc4/Makefile
+++ b/emulators/linux_base-fc4/Makefile
@@ -8,7 +8,7 @@
PORTNAME= fc
PORTVERSION= 4
-PORTREVISION= 11
+PORTREVISION= 12
CATEGORIES= emulators linux
MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX}
MASTER_SITE_SUBDIR= ${PORTVERSION}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \
diff --git a/emulators/linux_base-fc4/pkg-install b/emulators/linux_base-fc4/pkg-install
index 5a429d6996b7..d98be7c05604 100644
--- a/emulators/linux_base-fc4/pkg-install
+++ b/emulators/linux_base-fc4/pkg-install
@@ -48,6 +48,11 @@ POST-INSTALL)
echo 'Running linux ldconfig...'
${PKG_PREFIX}/sbin/ldconfig -r ${PKG_PREFIX}
#
+# Create a symlink to disallow using a FreeBSD native library, but find
+# linux one at /lib/obsolete/linuxthreads
+#
+ ln -s ${PKG_PREFIX}/lib/ld-2.3.6.so ${PKG_PREFIX}/usr/lib/librt.so.1
+#
# Create linux mtree
#
mkdir -p ${PKG_PREFIX}/var/yp
diff --git a/emulators/linux_base-fc4/pkg-plist b/emulators/linux_base-fc4/pkg-plist
index e07ac02cc6ff..29def63f8ef6 100644
--- a/emulators/linux_base-fc4/pkg-plist
+++ b/emulators/linux_base-fc4/pkg-plist
@@ -657,6 +657,7 @@ usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
usr/lib/libstdc++-libc6.1-1.so.2
usr/lib/libstdc++-libc6.2-2.so.3
+usr/lib/librt.so.1
usr/lib/libttf.so.2
usr/lib/libttf.so.2.3.0
usr/lib/libz.so.1