isn't actually a pkgpattern; what we really want is <pkgwildcard>. This
should fix breakage with the "update" and "replace" targets introduced in
revisions 1.1275 and 1.1278.
"${PKG_BEST_EXIST} pkgpattern" instead of "${PKG_INFO} -e pkgpattern". The
latter can return multiple package names if there are multiple versions of
a piece of software installed. PKG_BEST_EXIST is defined to be
"${PKG_ADMIN} -b -d ${_PKG_DBDIR} -s "" lsbest", so it searches for the
best installed package that matches the given pkgpattern or else returns
the empty string.
Bump PKGTOOLS_REQD to 20030912 since pkg_admin(1) needs to know about "-b"
and "-d <dir>".
gcc buildlink2.mk files and splitting the non-buildlink2.mk bits out
into compiler.mk.
this allows USE_GCC2 and USE_GCC3 to work with non-buildlink2 packages
again.
DEFAULT_VIEW.${PKGBASE} default view for ${PKGBASE}
VIEWBASE base location of files at run-time
The first is meant to be set by package Makefiles or in /etc/mk.conf, while
the latter is meant to read/used only. VIEWBASE is either ${LOCALBASE} or
or ${LOCALBASE}/${DEFAULT_VIEW.${PKGBASE}} depending on whether the first
variable is the empty string or not.
to by a package Makefile. This is passed as the environment when running
the test target. We often need this since packages can require setting
up LD_LIBRARY_PATH so that we can test before installation.
"pkg_delete -O pkgname" actually remove file entries for pkgname from the
pkgdb.byfile.db database. This makes FORCE_PKG_REGISTER work again (this
must have been broken for a long time).
Introduce private variables _{MAKEINFO,TEXINFO_REQD}_{MAJOR,MINOR}
holding the major and minor number version numbers of available makeinfo
and of the minimum required version.
Use these to sort out if devel/gtexinfo is needed as dependency.
we've already seen:
-[DILR]*|-Wl,-R*|-Wl,-*,/*
These are all only useful the first time we see them. All other
instances are redundant.
-l*
Extra libraries are suppressed if they're repeated, e.g.,
"-lm -lm -lm -lX11 -lX11 -lm -lm" -> "-lm -lX11 -lm".
The screen output is still likely to be very verbose, but you can check
in work/.work.log to see the actual commands executed.
do it for rpath specifications, e.g. -Wl,-R/dir, -Wl,-rpath,/dir, etc.
This lets the depot directory for a package, in addition to the usual
/usr/pkg/lib, to be added to the rpath of a program or shared library
of an "overwrite" package. Now, if the package instance in the
default view is forcibly removed, then shared library references will
still resolve to the existing shared libraries in the depot directory.
In the following example, I've built jpeg as a pkgviews package, and
tiff as an "overwrite" package:
% ldd /usr/pkg/lib/libtiff.so
/usr/pkg/lib/libtiff.so:
-ljpeg.62 => /usr/pkg/lib/libjpeg.so.62
-lz.0 => /usr/lib/libz.so.0
-lm.0 => /usr/lib/libm387.so.0
-lm.0 => /usr/lib/libm.so.0
% pkg_delete -f jpeg-6b
pkg_delete: package `jpeg-6b' is required by other packages:
tiff-3.5.7nb1
% ldd /usr/pkg/lib/libtiff.so
/usr/pkg/lib/libtiff.so:
-ljpeg.62 => /usr/pkg/packages/jpeg-6b/lib/libjpeg.so.62
-lz.0 => /usr/lib/libz.so.0
-lm.0 => /usr/lib/libm387.so.0
-lm.0 => /usr/lib/libm.so.0
The benefit here is that if the jpeg package is updated and also has
a bump in the major number of the shared lib, e.g. libjpeg.so.63.0,
then you can remove the old jpeg instance from the default view and
add the new jpeg package into the default view, and
/usr/pkg/lib/libtiff.so will _still_ resolve its libjpeg.so.62
reference.
Welcome to the power of Package Views!
PKG_SYSCONFBASE when they want PKG_SYSCONFDIR stripped of
PKG_SYSCONFSUBDIR. This makes PKG_SYSCONFBASE=/etc work with pkgviews by
installing all config files into /etc/packages/<pkg> instead of
occasionally putting some directly into /etc.
Also only create PKG_SYSCONFDIR if we're actually going to copy config
files.
automatically added to CFLAGS and CXXFLAGS. Note that -D... and -I...
settings should go into BUILDLINK_CPPFLAGS.<pkg> instead. BUILDLINK_CFLAGS
is reserved for stuff like "-pthread" or other compiler-specific flags.
Also note why we add BUILDLINK_CPPFLAGS.<pkg> to both CFLAGS and CXXFLAGS
(because a lot of software just uses CFLAGS and ignores any CPPFLAGS value
that we pass to it).
modules that will work with more than one version of the apache web server
to not require a separate package for each version of apache. This was
originally based on java-vm.mk
Makefile variables added:
PKG_APACHE_ACCEPTED : Contains the list of valid versions of apache.
USE_APR : If set, the package required apr to run.
User variabled added:
PKG_APACHE_DEFAULT : The version of apache to install, if there is
none yet. Defaults to apache13
Variables set:
PKG_APACHE : Which version of apache is being used.
This fix NO_MTREE installation on Solaris when ${PREFIX} already exists
and is a symlink.
Example:
# uname -sr
SunOS 5.9
# cd /tmp
# rm -f foo
# ln -s /etc foo
# /bin/mkdir -p /tmp/foo
mkdir: "/tmp/foo": Exists but is not a directory
#
well as stripping -L to subdirs of these directories from dependency_libs
lines in *.lai files. This corrects the changes in revision 1.18 of this
file and restores some functionality accidentally removed in version 1.19
of this file. Should fix the subversion buildlink/libtool problem
reported on tech-pkg@.
is meant for {,DE}INSTALL_EXTRA_TMPL. Package makefiles should explicitly
set those variables if they want to use them in conjunction with
USE_PKGINSTALL.
${LOCALBASE}/bin/gmake. ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}/make
technically works, too, but this covers the (unsupported!!) case where the
user has GNU_PROGRAM_PREFIX="" and has moved the "make" binary directly
over the "gmake" symlink created by pkgsrc (Jeremy Reed reported this
problem on tech-pkg@ because he uses this a a debugging technique to find
out whether GNU make is actually needed by a package or not).
thing.
(*) Move the code to adjust Makefiles to refer to the correct
PKGLOCALEDIR into bsd.pkg.mk and reimplement it using subst.mk so
that it's non-USE_BUILDLINK2 packages can use it, too.
(*) Reimplement the PKGCONFIG_OVERRIDE code in bsd.pkg.mk using subst.mk.
(*) Reimplement the unbuildlink code in bsd.buildlink2.mk using subst.mk.
facility for different classes of files in ${WRKSRC}. For each class of
files, a target <class>-subst is created to perform the text replacement.
The following variables are used:
SUBST_STAGE.<class>
"stage" at which we do the text replacement, e.g. pre-configure,
post-build, etc.
SUBST_MESSAGE.<class>
message to display, noting what is being substituted
SUBST_FILES.<class>
files on which to run the substitution; these are relative to
${WRKSRC}
SUBST_SED.<class>
sed(1) substitution expression to run on the specified files
This basically extracts a useful piece of code from bsd.buildlink2.mk and
puts it in a place that allows it to be more widely used, and so that the
functionality doesn't depend on USE_BUILDLINK2 being defined.
${TOOLS_DIR}/bin/make. If a package wants GNU make, then it should
set:
USE_GNU_TOOLS+= make
in the package Makefile. Allow for USE_GMAKE to continue to work
until we get a chance to sweep through pkgsrc and remove the usage
of this now-redundant variable.
This change allows us to avoid patching makefiles that use a bare
"make" command to invoke sub-make processes. Idea suggested by
salo@netbsd.org in pkg/22509.
before trying to create the binary package. This makes:
cd pkgsrc/category/foo
make install
pkg_delete foo
make package
fail because package "foo" isn't actually installed, so no binary package
can be built.
to ${LOCALBASE}/bin/gmake. Patch by Soren Jacobsen in PR pkg/22506.
(Not closing that PR, as we should determine a procedure to bootstrap
on a system without any make.)
devel/gettext and other pkgs installing libraries ending in eg.
`x.y.z.so' rather than `.so.x.y.z'.
also fix off-by-one bug in shlib handling awk script causing the
first .so entry to not be commented out in the PLIST when it should
be.
ok'd by jlam.
file exist when installing a package and it does not contain at
least one line starting with '*' then remove it and let install-info
create a new one.
This should address PR pkg/22555 from reed@.
to run ldd if it is executable.
fixes bug where binaries just installed would be run (!) and the
install process possibly "hang" on Darwin because Darwin has no ldd!