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.
Compared to existing mbone/vic there has 12 years of developments and
thus rather too much to list here. Highlights include:
v2.8ucl-1.4.0beta:
New Video window right-click menu
v2.8ucl-1.3.1:
New Codecs:
H.264 compliant with RFC3640 {NCHC, UCL}
MPEG4 compliant with RFC3894 {NCHC}
Advanced rendering:
Full-Screen mode, Video window scaling in software
X11 XVideo - hardware scaling/colourspace conversion
Source-Specific Multicast (SSM) support
v2.8ucl-1.2.0
New codec h261as - contributed by Rhys Hawkins (Rhys.Hawkins@anu.edu.au) at Australian National University (ANU). This codec enables interoperability with Rhys' VP tool available to the AccessGrid community. Use configure --disable-h261as to disable it.
Added image overlay support. This allows a PPM image to be used as an institutional logo, (for example, added sample UCL logo file: ucl_logo.ppm), which can be placed and moved over the video window. Overlays work with all grabbers and codecs. The logo image can also be specified as a vic resource (in .vic.tcl) so that it is made available at startup. Also, tweaked error return values from oTcl to C++, so that all errors relating to overlays are handled gracefully.
Added a LICENSE file.
Added focus property in the generic tcl mk.entry() function that builds text entry widgets.
Added more graceful error handling so Vic will bring up a warning dialogue instead of crashing.
Added Source-Specific Multicast (SSM) support - tested IPv4 on WinXP. IPv6 on Linux not fully tested.
v2.8ucl-1.1.7:
Updated video4linux2 driver so it works with latest API - i.e. with linux kernel 2.6.x. Modified configure to so it can be selected. The old v4l2 driver is still there as grabber-v4l2-old.
Updated configure so it includes both v4l1 v4l2 drivers as there are still devices that use v4l1 in 2.6.x kernel - like the Philips USB cams.
Modified xv-grabber so it's optional in configure. Also modified it to handle mulitple devices - though none to test with.
v2.8ucl-1.1.4:
Added check in configure to turn off optimisation in h261 decoder code if we're using GCC 2.96 (otherwise it crashes).
Added loopback fixes
v2.8ucl-1.1.3:
Updated so a new menu item is added to each decode window allowing users to select number of layers to receive on a layered feed. The Encode layers slider used to attempt do this but didn't work with more than one layered feed.
Added number of layers indicator to info field on decoded feeds
Added -v option to ouput version number.
Added command line options to specify interface (-i addr) and IPv6 interface index (-x index)
Updated to use getaddrinfo for name lookup - using the supplementary function included into common library when using MUSICA IPv6.
Altered the way the addresses are allocated - Now referenced through the network object (Before they were allocated by stepping thru all available address types untill one address type resolved - Which could have caused some problems - also generated errors from the failed resolve attempts)
Corrected the positioning of the padding bit in the rtcp header. Retained some compatibility with old version which used to put it in first packet. Also the length in the rtcp packet did not include the padding - it now does. It doesn't appear to break when interworking with the older version so far....
Corrected bug which meant vic attempte to delete it's local src from the list of sources when it appears to go idle for a long time - happens when vic gets suspended for a while.
Altered net-ipv6 so the IPv6 interface index is not used IPV6_MULTICAST_IF unless set on the command line as it seems to cause problems for FreeBSD. It is now set to -1 in the resourses to indicate its uninitialised state.
corrected IPPROTO_IP used in net-ipv6 loopback command to use IPPROTO_IPV6
Tweaked so the send socket binds to command line specified -i interface, if specified, otherwise it binds to in6addr_any
Corrected bug in IPv6 when TTL is set on Command line - it was calling the ipv4 proc to check for multicast - now calls in6_multicast
Enabled -m (mtu) option on command line - Use with care as not all codecs will behave correctly. (it's default is 1024).
v2.8ucl-1.1.2:
Fixed RTCP bug - The SSRC wasn't being set when transmitting (well it was always -1)
Introduced factor of 2 into the PKTBUF_SIZE as the H261 codec seems to over-run the buffer a bit - causing random errors.
Disabled mbus recognised message - No longer crash when we receive an unknown mbus command.
Increase heartbeat rate to comply with latest spec
Added codec/h263/*.o to clean directive.
Changed name of UCL's common library to new name: libuclmmbase.a (from old libcommon.a)
Updates for the mbus parser..
Changed to make x11 grabber last choice by popular demand
v2.8ucl-1.1.1:
Tidied up command line option specification string
Updated for new common library
Updated to keep gcc-2.95 happy
v2.8ucl-1.1.0:
Expermental first release of layered support taken from MASH project vic.
Creates seperate network objects for each layer and sends seperate RTCP reports (unchecked in this release - these are not quite working)
Incoperated PVH codec from MASH
New command line option -j num_of_layers
v2.8ucl-1.0:
Reorganised code into directory structure reflecting the functionality of the different modules of vic
Moved vic over to use UCL's version's of tcl/tk - this is due to a number of problems we have encountered
Moved vic over to use UCL's common library so it shares the codebase provided by rat - where possible; It now uses common DES code and Mbus code - so both the DES and Mbus sections have been re-written.
IPv6 support under UNIX and WIN32
v2.8ucl5:
Fixed -l option so it instead generates a filename automatically
v2.8ucl4:
Updated H263 support for Litte Endian machines
Updated grabber-x11 so it works on more machines and when running vic on a remote X server
v2.8ucl3:
Added H.263 codec for UNIX
Included many useful fixes from Bill Fenner
v2.8ucl2:
Added JPEG and bvc software codecs
v2.8ucl1:
Port to Tcl/Tk 8.0
Added DES support
Added H.263+ codec
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
Collection.
dbeacon is a Multicast Beacon written in C++. The main purpose of
a beacon is to monitor other beacon's reachability and collect
statistics such as loss, delay and jitter between beacons. dbeacon
supports both IPv4 and IPv6 multicast, collecting information via
ASM and SSM.
dbeacon was originally only IPv6 capable, designed to be used in
the m6bone.
and to support the "inet6" option instead.
Remaining usage of USE_INET6 was solely for the benefit of the scripts
that generate the README.html files. Replace:
BUILD_DEFS+= USE_INET6
with
BUILD_DEFS+= IPV6_READY
and teach the README-generation tools to look for that instead.
This nukes USE_INET6 from pkgsrc proper. We leave a tiny bit of code
to continue to support USE_INET6 for pkgsrc-wip until it has been nuked
from there as well.
INSTALLATION_DIRS, as well as all occurrences of ${PREFIX}/man with
${PREFIX}/${PKGMANDIR}.
Fixes PR 35265, although I did not use the patch provided therein.
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).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
When method_ is not set, assume it means the default dither algorithm,
set it to NULL in disable(). This can also avoid possible segfaults.
Bump revision.
rather than PKG_FAIL_REASON, so that they provide useful error
messages in build logs, and so that they continue to work on platforms
where they aren't broken.
will install Perl modules into the "vendor" directories:
chat/vicq math/udunits
databases/rrdtool mbone/beacon
devel/p5-subversion
Bump their PKGREVISIONs.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
- fix display bug in progress decimals
- option -W to get a snapshot of who is reauesting resends
- write block size is configurable for better performance. Default is 64k
Collection. Initial work by Emmanuel Dreyfus, clean-up and linting by me.
The NLANR/DAST Multicast Beacon is a multicast diagnostic tool written
in Perl which uses the RTP protocol (RFC3550) to provide useful statistics
and diagnostic information about a given multicast group's connectivity
characteristics.
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".