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.
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).
file's sole purpose was to provide a dependency on pkg-config and set
some environment variables. Instead, turn pkg-config into a "tool"
in the tools framework, where the pkg-config wrapper automatically
adds PKG_CONFIG_LIBDIR to the environment before invoking the real
pkg-config.
For all package Makefiles that included pkg-config/buildlink3.mk, remove
that inclusion and replace it with USE_TOOLS+=pkg-config.
Submitted by Alexander Mayr (maintainer) in PR 29349.
Changes between 0.11.7 - 0.11.8:
giftd 0.11.8:
* Shares are now keyed by pathname instead of by hash. (Hashes
weren't guaranteed to exist, could collide for identical files,
and no lookup function was provided in any case).
* Handle syncing properly. Share objects are no longer freed
without letting plugins know, and plugin-specific data is no
longer leaked.
* ImageMagick support removed and replaced by Jef Pokanzer's
image_size. This fixes a multitude of problems related to
dependencies, performance, stability and security.
* The --index-only option no longer tries to bind to the interface
port.
* Avoid aborting on transfers >=2Gb. Such transfers still don't
work, though, but this is a stdio limitation and cannot be portably
solved.
giftd 0.11.7:
* Filter LOCATE requests so that they are not delivered to protocol plugins
which do not have a registered hash handler for the hash type being
searched for.
* Preserve extension when renaming downloaded files because the file name
is already used.
* Removed requirement for state files having leading dot on Windows.
* Fixed bug which prevented completed dir from being shared if no sharing
root was set.
* Added meta data extraction for bittorrent files.
* Added check to not share incoming dir if not specifically allowed by
config.
* Fixed some bugs which could lead to shares db corruption.
* Added saving of download paused state across restarts.
libgift 0.11.8.1:
* Fixed a serious bug in TCP buffering introduced in 0.11.8.
libgift 0.11.8:
* The SI suffixes k, M and G multiply configuration values by 2^10,
2^20 and 2^30 respectively.
libgift 0.11.7:
* Fixed VA_COPY bug in strobj which led to crashes on AMD64 (possibly other
platforms?)
* Fixed fd leak in platform_child() implementation.
* Fixed a bug where we possibly send SIGTERM to random processes
in platform_cleanup().
libgiftproto 0.11.8:
* Synchronized the version to match giftd.
libgiftproto 0.11.7:
* Synchronized the version to match giftd.
automatically by pthread.buildlink3.mk. Also, factor out the pthread
library out of PTHREAD_LDFLAGS into a standalone variable PTHREAD_LIBS
and use it in packages where necessary (usually the ones that don't
have a GNU configure script).
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".
What is giFT, you ask? giFT is a modular daemon capable of abstracting the
communication between the end user and specific filesharing protocols
(peer-to-peer or otherwise). The giFT project differs from many other similar
projects in that it is a distribution of a standalone platform-independent
daemon, a library for client/frontend development, and our own homegrown
network, OpenFT.