"GNU gettext" detection outside of the BROKEN_GETTEXT_DETECTION block.
We will need this to happen all the time if we're using a built-in
gettext that isn't really GNU gettext.
is _not_ GNU gettext, so it's presence should not set IS_BUILTIN.gettext
to "yes", but it _can_ set USE_BUILTIN.gettext to "yes" to force that
it be used.
Also, create a new variable BROKEN_GETTEXT_DETECTION, which is yes/no
depending on whether or not a package's GNU configure script properly
detects -lintl. This variable currently defaults to "yes", but should
eventually be set to "no" and overridden on a package-by-package basis
for those packages that truly are broken.
API version 2 to choose the builtin library over GNU gettext shipped
with each package.
In fact, the gettext library included in a package should never be
used. Otherwise every such package would install charset.alias and
locale.alias, causing conflicts with each other when pkgviews is
enabled.
For platforms without ngettext() in their builtin libintl (assumed to
be gettext-lib-0.10.35nb1 by gettext-lib/builtin.mk), packages
requiring gettext API version 2 must add dependency on
gettext-lib>=0.10.36 to share devel/gettext-lib rather than to link
statically against the included gettext library.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
intended transformation: use "rm" to remove an option, "rmdir" to remove
all options containing a path starting with a given directory name, and
"rename" to rename options to something else.
that it can not be builtin. So also check for "This file is part
of the GNU C Library".
This helps with systems that have gettext(3) functionality
included in their glibc.
This also fixes build problem under Linux where devel/popt didn't
build "because some functions are defined both in gettext-lib and
in the native libc" as reported by minskim to tech-pkg on 21/Mar/2004.
by our native libintl. While it is not implemented, this allows us to build
programs against the native libintl, loosing very few functionality (some
translations of plural messages on few languages), and avoiding runtime
conflicts between native libintl and the gnu one (coming from the gettext
package).
Packages including .po files with uses of msgid_plural should define the
USE_MSGFMT_PLURALS variable to 'yes', so that the msgfmt wrapper is used.
(Do not use it when not really needed, as it will pull in perl5 as a build
dependancy).
dependencies unless USE_GNU_GETTEXT is defined or IMCOMPAT_GETTEXT is set
appropriately. This should allow packages to use the glibc gettext
routines on Linux.
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
built-in or not into a separate builtin.mk file. The code to deal
checking for built-in software is much simpler to deal with in pkgsrc.
The buildlink3.mk file for a package will be of the usual format
regardless of the package, which makes it simpler for packagers to
update a package.
The builtin.mk file for a package must define a single yes/no variable
USE_BUILTIN.<pkg> that is used by bsd.buildlink3.mk to decide whether
to use the built-in software or to use the pkgsrc software.
as PREFER_PKGSRC. Preferences are determined by the most specific
instance of the package in either PREFER_PKGSRC or PREFER_NATIVE. If
a package is specified in neither or in both variables, then PREFER_PKGSRC
has precedence over PREFER_NATIVE.
BUILDLINK_PREFER_PKGSRC
This variable determines whether or not to prefer the pkgsrc
versions of software that is also present in the base system.
This variable is multi-state:
defined, or "yes" always prefer the pkgsrc versions
not defined, or "no" only use the pkgsrc versions if
needed by dependency requirements
This can also take a list of packages for which to prefer the
pkgsrc-installed software. The package names may be found by
consulting the value added to BUILDLINK_PACKAGES in the
buildlink[23].mk files for that package.
Makefiles simply need to use this value often, for better or for
worse.
(2) Create a new variable FIX_RPATH that lists variables that should
be cleansed of -R or -rpath values if ${_USE_RPATH} is "no". By
default, FIX_RPATH contains LIBS, X11_LDFLAGS, and LDFLAGS, and
additional variables may be appended from package Makefiles.
if we don't actually require gettext-lib>=0.11.5. For other installations
where keeping an older gettext around isn't wanted, convert the gettext
dependency to >=0.11.5 and include the necessary buildlink2 magic for
libiconv support.
uses a compile/link test to determine the presence or absence of libintl.
Instead it uses a file existence test for libintl.{a,so,la} in specific
directories. buildlink2 can't work around this, but gettext.m4 does
provide a new configure option "--with-libintl-prefix" to specify in which
directory to look for libintl, so use it. It's harmless on older GNU
configure scripts as they will ignore unknown options, but it will fix
gettext detection with newer GNU configure scripts that use the new
gettext.m4. Also protect a forced cache value from being passed to the
configure script unless libintl really does exist.
There are too many changes to list in a sensible way.
The most visible change for me is that libintl requires libiconv now.
Also untangled the 3 sub-pkgs -- a common patch dir makes it too complex.
This pkg used to expose buildlink2 problems - the pkg libintl was
pulled in in cases where USE_GNU_GETTEXT was not set. There were
some improvements to libtool filtering, and x11/gtk builds now, so
I hope this is settled.
Linux systems that include gettext() routines in glibc. We now properly
substitute for libintl.la references in libtool archives, and we don't
produce the fake libintl.la since it has no meaning if there is not a real
libintl.
the version of the gettext library needed by a package. The system libintl
is considered to be equivalent to "gettext-lib-0.10.35nb1". Add a few
additional bits to fool newer configure scripts into accepting the system
libintl if GETTEXT_REQD == 0.10.35nb1.
INCOMPAT_GETTEXT that are analogous to INCOMPAT_ICONV and contain lists of
shell wildcards intended to match against ${MACHINE_PLATFORM}. These
variables are used to note those platforms that have the named packages in
the base system but are incompatible in some way from the pkgsrc version
of the same package. Change INCOMPAT_CURSES to have the same sematics as
above. These variables allow much greater precision in specifying which
platforms have broken (for the purposes of pkgsrc) versions of software in
the base system that must be ignored.
The buildlink.mk files for these packages define private _INCOMPAT_*
versions of these variables, and they contain the default lists of
platforms that are known to have incompatible software bits.
This addresses pkg/17775 submitted by Julien T. Letessier
<julien.letessier at sun dot com>.
pkgsrc. Instead, a new variable PKGREVISION is invented that can get
bumped independent of DISTNAME and PKGNAME.
Example #1:
DISTNAME= foo-X.Y
PKGREVISION= Z
=> PKGNAME= foo-X.YnbZ
Example #2:
DISTNAME= barthing-X.Y
PKGNAME= bar-X.Y
PKGREVISION= Z
=> PKGNAME= bar=X.YnbZ (!)
On subsequent changes, only PKGREVISION needs to be bumped, no more risk
of getting DISTNAME changed accidentally.
${INTLLIBS} through to the configure environment. This should fix
pkg/14360 (x11/gtk: gtk-config does not list "-lintl") by Jun-ichiro itojun
Hagino <itojun@itojun.org>.
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.
BUILDLINK_PREFIX.<pkgname>. This allows buildlink to find X11BASE packages
regardless of whether they were installed before or after xpkgwedge was
installed. Idea by Alistair Crooks <agc@pkgsrc.org>.
FOO_REQD=1.0 being converted to foo>=1.0, one can now directly specify
the dependency pattern as FOO_DEPENDS=foo>=1.0. This allows things like
JPEG_DEPENDS=jpeg-6b, or fancier expressions like for postgresql-lib.
Change existing FOO_REQD definitions in Makefiles to FOO_DEPENDS.