- DESTDIR support
- Add check for inttypes.h and sys/socket.h
- Provide compatibility fallback for netdb.h and the RFC2553 API
(getaddrinfo), supoprting IPv4 only. Code from OpenSSH.
- Use normal autoconf checks for fixed size bit types. Stop using the
older BSD types (u_intXX_t) in libnbcompat.
- Add implementation of shquote (from NetBSD).
- Fix a buglet in the getenv/setenv/unsetenv detection.
- Fix a buglet in the mkdtemp/mkstemp detection.
provided by the system and if one is lacking use the file. Don't short
cut the list as before and do a second iteration, it is just confusing.
This breaks the regression introduced by the last commit on OS X.
- declare endpwent and endgrent if system headers are missing them
- check for existance of statfs.f_flags before using it
- drop a bunch of redundant function checks
Based on the work of Timothy Larson.
Many of the hash function headers are incompatible with the OpenSSL
headers, so don't include them by default and require the caller to
include them on demand.
including inplace.mk causes a PIC version of libnbcompat to be built
alongside the regular static libnbcompat.
This will be used to extend the features framework in two ways:
1) Support linking features into shared modules
2) Ability to cherry-pick individual objects to link from the libnbcompat
build directory rather than linking the whole archive.
Add vsnprintf prototype as the function is implemented and used.
Add all the macros from NetBSD's sys/queue.h defined for the types
implemented.
Bump version to libnbcompat-20070622.
Tested by dmcmahill@NetBSD.org on Solaris.
OK jlam@, agc@
Changes since 20070507:
Completely rewrote the fgetln implementation, since the previous version
couldn't handle files that don't end with a '\n' character. Tested on IRIX,
NetBSD and Solaris.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
anonymous empty string. the macro uses the argument multiple times
and the logic relies on identical strings having the same address,
which is compiler dependent and not guaranteed to be the case.
problem observed with pax(1) built with sunpro 11 on Solaris.
from segv@netctl.net in PR pkg/32097.
user, so it's not nice to try to use an option that will try to chown if
the repository isn't owned by the builder.
(Some OS's do in fact cause an error when the chown in "cp -p" fails.)
include fixing fgetln() to account for \0 characters due to implementing
it using fgets() (analysis provided by Urban Boquist). Also add a
definition for __restrict if not present since it is used in the regex
implementation code from src HEAD.
This has been tested to work correctly on:
FreeBSD-4.8/i386
NetBSD-1.6.2/i386
Solaris 9
include:
* Rework the way that poll() is detected so that it more closely
follows how the rest of the replacement functions are detected.
* Split err*() and warn*() functions into separate err.c and warn.c
files so that we can more finely isolate the objects files pulled
in by the linker. This should fix building textproc/nbsed on Solaris.
* Move more definitions from nbcompat.h into nbcompat/*.h. This makes
it more clear which NetBSD headers are expected to provide which
function declarations and macro definitions.
* Clean out nbconfig.h by moving all of the relevant definitions into
the correct nbcompat/*.h files.
* Update all of the library functions to the latest from src HEAD.
Also change the way that sources are modified when imported -- we
now include <nbcompat.h> before the first system header, include
<nbcompat/*.h> versions of headers instead of system ones where
available, and "#if 0" the sections that make no sense when being
built outside of the NetBSD source tree. This should make future
updates from src HEAD, e.g. for security updates or bug fixes,
easier.
* Move all private headers into a subdirectory and include the headers
from the private directory. This avoids any nameclashes with system
headers with the same name.
the Makefiles so that they can be built by really basic make programs.
Move the awk script in the Makefile into a separate file for clarity, and
so that really basick make programs won't choke on the continuation lines.
include:
* Adding a regex(3) implementation for those platforms that don't
have one, e.g. IRIX 5.3.
* Allow nbcompat.h to be included multiple times in case it's needed
to override values of set by config.h in bootstrap packages. This
should fix problems with building pkg_install and pax on platforms
that have /usr/include/glob.h.
* Remove namespace.h, which should be a no-op since we're building
a userland library separate from the NetBSD sources.
* Remove HAVE_CONFIG_H checks from sources since we're always going
to have and and we're always going to be including it.
* Rename all inclusion guards in nbcompat/*.h to be _NBCOMPAT_*_H_ so
that it won't get triggered by any settings in system headers.
This has been tested on:
FreeBSD-4.8/i386 Debian Linux 3.0 (woody)
IRIX 6.5 MacOS X 10.2.8
MacOS X 10.3.5 NetBSD-1.6.2/i386
NetBSD-2.0_BETA/i386 Red Hat Linux 7.3
Solaris 7/sparc Solaris 8/sparc
Solaris 9/sparc
include working around an apparent bug in an autoconf macro defined in
aclocal.m4. This should now cause getopt_long() to be built on systems
that are missing getopt.h. This version of libnbcompat has been tested
on the following platforms:
FreeBSD-4.8/i386
MacOS X 10.2.8
NetBSD-1.6.2/i386
include:
* Re-adding a default value for pkg_use_nbcompat_vis; this was
causing the configure script to fail on platforms that had funky
versions of vis(). This should fix reported problems on Solaris 8
and on IRIX 5.3.
* Added setgroupent() and setpassent() compatibility functions so
that pwcache.c will build without complaining about an incompatible
pointer type assignment.
* Remove unused tests for <arpa/nameser.h>, <netdb.h>, h_errno and
hstrerror(). These were originally used to bootstrap lukemftp, but
tnftp doesn't need libnbcompat to build nowadays, so we don't need
these anymore.
* Cleanup: in cases where we test for a function using AC_REPLACE_FUNCS,
move the function prototype into a nbcompat header that is the
same name as the NetBSD header that contains that declaration,
and include that file in place of the original one within
nbcompat.h.
This version has been tested to build on the following systems:
FreeBSD-4.8/i386 NetBSD-1.6.2/i386
FreeBSD-5.2.1/i386 NetBSD-2.0_BETA/i386
IRIX 6.5 Red Hat Linux 8.0
MacOS X 10.3.4 Solaris 8
MacOS X 10.3.5 Solaris 9
include:
(1) Add a statvfs() implementation based on statfs(), and remove the
statfs() NetBSD-compatibility implementation. statvfs() is used
in src/usr.sbin/pkg_install on the HEAD branch.
(2) Add a fnmatch() implementation, needed by IRIX. fnmatch() is used
in src/usr.sbin/pkg_install on the HEAD branch.
(3) Remove fseeko(), inet_ntop(), inet_pton(), sl_*() strptime(), and
timegm() as they're not used by any of the bootstrap packages that
require libnbcompat (pax, mtree, pkg_install). All that's left is
what's necessary to bootstrap those three packages.