when an older version of a package is installed. This is the case when an
executable links with installed libraries and with uninstalled libraries
that link with other uninstalled libraries. For each of the directly
linked libraries the executable will have an rpath (/usr/local/lib for the
installed libraries and a path under WRKDIR for each of the uninstalled
libraries), but not for the indirect libraries. Both ld(1) and rtld(1)
search the rpath of the executable first before any rpath of libraries, so
the indirectly linked libraries will be found in /usr/local/lib if they are
installed instead of in WRKDIR.
With this commit executables will overlink with uninstalled indirect
libraries again so their location is added to the rpath of the executable.
This partially reverts r358784.
PR: 191611
Approved by: portmgr (bapt)
changes that Debian made to their libtool. The first command applies to
libtool versions 1.4 and up. The second command is somewhat more elaborate
but essentially it uses the sed hold space to move an "elif...fi" block
down. It applies to 2.x. Together these reduce overlinking to unpatched
.la files (from ports that don't have USES=libtool yet but also .la files
in the work directory).
The third and fourth command fix relinking. During staging libtool may
relink libA when it links to another library in the work directory libB.
The reason is that libA created during build phase has its runpath set to
the location of libB in the work directory. This allows running an
executable that links to libA from within the work directory. The relink
removes this extra runpath.
When libtool relinks libA it replaces "libB.la" on the linker command line
with "-L${STAGEDIR}${PREFIX}/lib -lB" with the intention to link to libB in
the stage directory but this -L flag isn't necessarily the first so another
libB may be linked instead. The two sed commands make relink the same as a
normal link. This means libtool will relink with libraries from the work
directory using a path similar to "../srcB/.libs/libB.so" without -L flags.
This applies to libtool 1.4 and up. Earlier versions don't seem to relink
libraries.
(This fixes ports like devel/apr1 so they link with freshly built libraries
instead of installed libraries.)
Fix all ports with missing libraries.
Additionally:
archivers/rpm4: USES=patchfix.
databases/gdbm: INSTALL_TARGET=install-strip.
devel/gnome-vfs: remove patch that doesn't change anything.
devel/ois: INSTALL_TARGET=install-strip and use standard USE_AUTOTOOLS.
devel/zziplib: INSTALL_TARGET=install-strip, MAKE_CMD.
multimedia/mjpegtools: remove USE_AUTOTOOLS, use modern compiler on i386
instead of disabling optimisations.
net/libnetdude: disable static plugins.
PR: 190941
Exp-run: antoine
Approved by: portmgr (antoine)
- Remove leading article from COMMENT
- Convert to USES=tar:bzip2
- Use option helper
- Move things to proper places and simplify where needed
- Install striped binaries
-Update libtool and libltdl to 2.2.6a.
-Remove devel/libtool15 and devel/libltdl15.
-Fix ports build with libtool22/libltdl22.
-Bump ports that depend on libltdl22 due to shared library version change.
-Explain what to do update in the UPDATING.
It has been tested with GNOME2, XFCE4, KDE3, KDE4 and other many wm/desktop
and applications in the runtime.
With help: marcus and kwm
Pointyhat-exp: a few times by pav
Tested by: pgollucci, "Romain Tartière" <romain@blogreen.org>, and
a few MarcusCom CVS users. Also, I might have missed a few.
Repocopy by: marcus
Approved by: portmgr
- Bump PORTREVISION for all ports depending on libglut since the shlib
version number went from 4 to 3.
- Bump PORTREVISION for all ports depending on libXaw as libXaw.so.8 isn't
installed anymore.
- Couple of ports fixes (mostly missing xorg components added to USE_XORG).
- Label NOT_FOR AMD64 since it coredumps.
- Sync the patches with those on CVS.
- No functional change.
PR: 126037
Submitted by: "Pedro F. Giffuni" <pfgshield-freebsd at yahoo dot com>
- Remove USE_XLIB/USE_X_PREFIX/USE_XPM in favor of USE_XORG
- Remove X11BASE support in favor of LOCALBASE or PREFIX
- Use USE_LDCONFIG instead of INSTALLS_SHLIB
- Remove unneeded USE_GCC 3.4+
Thanks to all Helpers:
Dmitry Marakasov, Chess Griffin, beech@, dinoex, rafan, gahr,
ehaupt, nox, itetcu, flz, pav
PR: 116263
Tested on: pointyhat
Approved by: portmgr (pav)
- Shared lib version and PORTREVISION bumb for all affected ports.
While I'm here:
- Remove USE_MESA knob where it was (35 ports).
It marked as depricated for 2 years.
PR: ports/90247
Submitted by: Ermal Lu?i <eri--@albabsd.org>
in bsd.autotools.mk essentially makes this a no-op given that all the
old variables set a USE_AUTOTOOLS_COMPAT variable, which is parsed in
exactly the same way as USE_AUTOTOOLS itself.
Moreover, USE_AUTOTOOLS has already been extensively tested by the GNOME
team -- all GNOME 2.12.x ports use it.
Preliminary documentation can be found at:
http://people.FreeBSD.org/~ade/autotools.txt
which is in the process of being SGMLized before introduction into the
Porters Handbook.
Light blue touch-paper. Run.
Begin autotools sanitization sequence by requiring ports to explicitly
specify which version of {libtool,autoconf,automake} they need, erasing
the concept of a "system default".
For ports-in-waiting:
USE_LIBTOOL=YES -> USE_LIBTOOL_VER=13
USE_AUTOCONF=YES -> USE_AUTOCONF_VER=213
USE_AUTOMAKE=YES -> USE_AUTOMAKE_VER=14
Ports attempting to use the old style system after June 1st 2004 will be
sorely disappointed.
USE_MOTIF and generates a LIB_DEPENDS to x11-toolkits/open-motif. As
before, it implies USE_XPM (and therefore USE_XLIB). Motif-dummy is
removed from PKG_IGNORE_DEPENDS, whose sole resident is now XFree86-3.
Most of the simple ".if defined(HAVE_MOTIF)"s are removed to always
have USE_MOTIF. ftp/moxftp will define USE_MOTIF unless
WANT_ATHENA_VERSION (new variable) is defined. I merged the X cases
in cad/mars, so USE_MOTIF is used iff WITHOUT_X11 is not defined.
I will remove x11-toolkits/Motif-dummy (which has been repo copied to
open-motif) in a few days.
XFree86 (3 or 4) to depend to when USE_XLIB is set.
XFREE86_VERSION defaults to 3 for now, but adventurous users can
override it in /etc/make.conf. When XFREE86_VERSION=3, USE_XLIB
will add a dependency to x11/XFree86; when it is set to 4, the
dependency will be to x11/XFree86-4-libraries. When
XFREE86_VERSION=4, the PKG_IGNORE_DEPENDS and ALWAYS_BUILD_DEPENDS
hacks to avoid messing with XFree86 are turned off.
Since XFree86 version 4 includes some software that used to be
separate ports, when XFREE86_VERSION=3 the following variables are
provided:
USE_DGS LIB_DEPENDS on x11/dgs
USE_FREETYPE LIB_DEPENDS on print/freetype
USE_MESA LIB_DEPENDS on graphics/Mesa3
USE_XPM LIB_DEPENDS on graphics/xpm
When XFREE86_VERSION=4, these variables have no effect. The
LIB_DEPENDS in the tree for the above four ports have all been
converted to the USE_* counterparts. For your information, this
is the count of the number of ports:
USE_DGS 0
USE_FREETYPE 16
USE_MESA 36
USE_XPM 236
There is a new variable, XAWVER, which is set to 6 when
XFREE86_VERSION=3 and 7 when XFREE86_VERSION=4. This is also
passed to PLIST_SUB so ports that build Xaw based shared libraries
can use this variable to substitute the shlib version number.
There is also a provision of using a separate mtree file for
XFREE86_VERSION=4, but that part is not enabled yet.
Reviewed by: the ports list
Tested by: make index (XFREE86_VERSION=3 only)
(2) Add hebrew to list of valid categories.
Submitted by: nbm