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).
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.
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".
Changes between NTL 5.3 and 5.3.1
* Fixed a bug affecting the BuildIrred routines for ZZ_pEX and
zz_pEX.
Changes between NTL 5.2 and 5.3
* Minimized and isolated constructs that do not adhere to C/C++
standards, and added flags NTL_CLEAN_INT and NTL_CLEAN_PTR which
force stricter compliance with these standards.
* Added functions IsWhiteSpace, CharToIntVal, and IntValToChar to
the tools module.
* Added methods allocated, position1 to generic vector classes.
* Added method allocated to the class vec_GF2.
* Added conversion routines from unsigned int/long to int, long,
float, and double.
* Added routines AddPrec, SubPrec, etc., to the RR module, and
declared the practice of directly assigning to the variable
RR::prec obsolete.
* Fixed a number of minor bugs.
Changes between NTL 5.1a and 5.2
* Implemented Mark van Hoeij's new algorithm for factorining
polynomials with rational coefficients. This new algorithm is much
more efficient than the previous algorithm used by NTL, and is the
default (one can switch back to the old algorithm with a run-time
switch).
* Added routines LLL_plus that are just like the all-integer LLL
routines, except that they return the exact values of the squared
lengths of the Gramm-Schmidt basis vectors. This is useful in
implementing van Hoeij's algorithm.
* Made a small change to quad_float.c to make it compile under gcc
version 3.0 without errors. This is the one place in NTL where I
resort to just a little assmebly code (but only on x86/Linux
platforms), and wouldn't you know it, this is the one place where
gcc 3.0 had problems.
* Made a small change to the procedure for generating a
distribution, so that now all files in the "tar" file comprising
the distribution come without any annoyingly excessive access
control restrictions.
* Changed the version numbering scheme so that it is now closer to
"standard practice". This is version "5.2". Any small bug fixes to
this version will be named "5.2.1", "5.2.2", etc. Also, macros are
now defined so that the numerical components of the version number
are available to the programmer.
shared libraries.
Changes between NTL 5.0c and 5.1a
Some minor fixes and additions.
Completely backward compatible.
* Added a routine LatticeSolve() for finding integer solutions to
linear systems of integer equations.
* Modified the stragey used by the LLL() and image() routines in the
LLL package to deal with linear dependencies. The new strategy
guarantees better worst-case bounds on the sizes of intermediate
values. I'm not sure if it will have any serious practical impact,
though.
* Added some "partial ISO modes" so that one can use some of the
features of Standard C++, even if ones compiler does not yet
support all of the features.
* Bug fix: routine determnant() in mat_GF2.h was not visible to the
linker because of a typo in mat_GF2.c.
* Made a "smarter" script for selecting the GetTime() function. This
fixes an installation problem on Cygwin/Windows 95 platforms. I
hope it doesn't create more problems than it solves, though.
* Added some extra documentation for installation under Windows/MS
Visual C++.
* Changed some names like c_lip.c to c_lip_impl.h. This should avoid
some potential installation problems.
* Throw away first 256-bytes of arc4 streams to improve quality of
the pseudo-random number generator. This may change the precise
behavior of some programs.
* Other minor, internal modifications.
C++ library for doing number theory
NTL is a high-performance, portable C++ library providing data
structures and algorithms for arbitrary length integers; for vectors,
matrices, and polynomials over the integers and over finite fields;
and for arbitrary precision floating point arithmetic.
NTL provides high quality implementations of state-of-the-art algorithms for:
o arbitrary length integer arithmetic and arbitrary precision
floating point arithmetic;
o polynomial arithmetic over the integers and finite fields
including basic arithmetic, polynomial factorization,
irreducibility testing, computation of minimal polynomials,
traces, norms, and more;
o lattice basis reduction, including very robust and fast
implementations of Schnorr-Euchner, block Korkin-Zolotarev
reduction, and the new Schnorr-Horner pruning heuristic for block
Korkin-Zolotarev;
o basic linear algebra over the integers, finite fields, and
arbitrary precision floating point numbers.
NTL is free software, and may be used according to the terms of the
GNU General Public License.