Commit graph

11 commits

Author SHA1 Message Date
joerg
2d1ba244e9 Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
2009-03-20 19:23:50 +00:00
joerg
3b0d97b0de Add DESTDIR support. 2008-06-20 01:09:05 +00:00
schmonz
3a8e0d9a6c Update to 0.76. From the changelog:
* manpage spelling fixes, from Claus Assmann <ca+tinycdb (at) esmtp.org>.

  * little mods to allow compiling tinycdb by C++ compiler,
    from Olly Betts <olly (at) survex.com>.

  * use program_invocation_short_name on GLIBC, (modified) patch
    from Dmitry V. Levin  <ldv (at) altlinux.org>

  * manpage fix (cdb_findnext() prototype),
    from Dmitry V. Levin <ldv (at) altlinux.org>

  * (somewhat silly) GCC-4.x "signedness" warnings fix, modified patch
    from Dmitry V. Levin  <ldv (at) altlinux.org>

  * more signed vs unsigned char* fixes in various places

  * Makefile: always build libnss_cdb.so with libcdb_pic.a, no nss-shared
    target: to avoid extra dependency from /usr/lib/.

  * Makefile: use map files for lib*.so, with explicit list of exported
    symbols.  This, in particular, avoids exporting of libcdb symbols by
    libnss_cdb.so.

  * mark all internal routines as internal_function (defined as
    __attribute__((visibility("hidden"))) for GCC)

  * Makefile: add tests-shared, to use cdb-shared for testing

  * Makefile: allow to specify which binary (shared vs static) to install
    in install target, by using INSTALLPROG variable

  * Makefile: pass -DNSSCDB_DIR=... to compiler when building .lo files,
    to allow setting of system config dir (/etc by default) on command line.
    For nss_cdb module.

  * Makefile: use $(CP) instead of cp, to be able to specify `cp' options
    (CP="cp -p")

  * Use unlink(tmpname) + open(O_CREAT|O_EXCL) instead of
    open(O_CREAT|O_TRUNC) when creating the new CDB file.
    And use O_NOFOLLOW if defined.
    This also works around some (probably) possible symlink attacks.

  * Add -p perms option for cdb utility, to specify mode (permission bits)
    for newly created .cdb file (default is 0666&umask(), -p forces the given
    mode).

  * allow tmpname (cdb -t) to be `-', to mean no temp file gets created.
    Also check if tmpname is the same as database name and don't try to
    rename() if it is.

  * rewrite nss_cdb-Makefile a bit: simplify it, and use more sane
    permission scheme for /etc/shadow

  * fixed a typo in cdb_seek.c, -- it segfaulted if passed NULL dlenp
    pointer.  Thanks Daiki for the patch.  Closes: #383417

  * use MAP_FAILED to test mmap() return value, instead of hardcoded -1.

  * libcdb-dev replaces tinycdb<0.76
2007-01-18 22:46:12 +00:00
jlam
c16221a4db Change the format of BUILDLINK_ORDER to contain depth information as well,
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
2006-07-08 23:10:35 +00:00
jlam
9430e49307 Track information in a new variable BUILDLINK_ORDER that informs us
of the order in which buildlink3.mk files are (recursively) included
by a package Makefile.
2006-07-08 22:38:58 +00:00
rillig
96fc47c14f Aligned the last line of the buildlink3.mk files with the first line, so
that they look nicer.
2006-04-12 10:26:59 +00:00
reed
5abef9be14 Over 1200 files touched but no revisions bumped :)
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).
2006-04-06 06:21:32 +00:00
schmonz
da51292226 Don't forcibly override CFLAGS and other values pkgsrc might pass to
make(1). Idea from Andrzej Kukula in private mail.
2006-01-19 04:53:44 +00:00
schmonz
9aadcf7d4e Unquote a SUBST_MESSAGE to placate pkglint. 2006-01-19 04:41:09 +00:00
schmonz
8d110db4b1 Add buildlink3.mk. From Andrzej Kukula in private mail, with minor changes
by me.
2006-01-19 04:40:36 +00:00
schmonz
7df1d0fdb5 Initial import of tinycdb-0.75, a very fast and simple package for
creating and reading constant data bases, a data structure introduced
by Dan J. Bernstein in his cdb package. It may be used to speed up
searches in a sequence of (key,value) pairs with very big number
of records. Example usage is indexing a big list of users - where
a search will require linear reading of a large /etc/passwd file,
and for many other tasks. It's usage/API is similar to ones found
in BerkeleyDB, gdbm and traditional *nix dbm/ndbm libraries, and
is compatible in great extent to cdb-0.75 package by Dan Bernstein.

CDB is a constant database, that is, it cannot be updated at a
runtime, only rebuilt. Rebuilding is atomic operation and is very
fast - much faster than of many other similar packages. Once created,
CDB may be queried, and a query takes very little time to complete.
2006-01-07 06:47:10 +00:00