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.
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=...").
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
all PEAR packages to php?-pear-* and all Apache packages to ap13-* or
ap2-* respectively. Add new variables to simplify the Makefile
handling. Add CONFLICTS on the old names. Reset revisions of bumped
packages. ap-php will now depend on the default Apache and PHP version.
All programs using it have an implicit option of the Apache version
as well.
OK from jlam@ and adrianp@.
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.
instead on perl>=5.8.0. Bump the PKGREVISIONs of the following packages
due to the possible perl dependency changes after the removal of
libperl:
audio/ices-mp3
databases/postgresql73-plperl
databases/postgresql74-plperl
textproc/eperl
www/ap-perl
among other things, this fixes a problem on at least Solaris and Linux
which causes apache children to SEGV on startup. I've tested this
version on Darwin and Linux.
changes since 1.25:
1.29 - Oct 7, 2003
Add a workaround for the 'rand' bug for perl 5.8.1 (compiled with
either -DUSE_HASH_SEED or -DUSE_HASH_SEED_EXPLICIT, which is the
default), causing all forked procs to produce the same rand
sequence. [Stas]
Fix t/net/perl/sym.pl (called by modules/symbol) not to affect other
tests (internal/http-get and internal/http-post, which were failing to
call exit) [Stas]
Fix Apache::ExtUtils to work with blead perl (it was breaking the
build) http://rt.perl.org/rt2/Ticket/Display.html?id=23803 [Stas]
1.28 - July 2, 2003
Apache::FakeRequest now isa Apache so code that is carefull about
$r and checks that $r->isa('Apache') will not fail [David Wheeler
<david@kineticode.com]
Add Mac OS X support to Apache::SizeLimit [David Wheeler
<david@kineticode.com>]
Change Apache::SizeLimit to not push a cleanup handler if already in
the cleanup handler phase, and adjust docs to show that cleanup
handler is the preferred phase to use [Perrin Harkins
<perrin@elem.com>]
Rename Apache::test to Apache::testold because Apache::test on
case-insensitive systems will collide with Apache::Test which
supercedes Apache::test. So if you want to keep on using Apache::test,
either bundle it with your project (putting it under inc/ or t/ so it
won't be installed) or require mod_perl 1.28 and use Apache::testold
instead. Of course the best route is to port your test suite to use
a much better Apache::Test which work with mod_perl 1.0 and 2.0.
[Philippe M. Chiasson, Stas Bekman]
Tweak mod_perl.h to defined _INCLUDE_APACHE_FIRST only after apache
headers were included [Stas Bekman]
avoid various warnings under src/modules/perl/:
- declare bufsiz to be STRLEN in Apache.xs, and add
STRLEN to Apache/typemap
- add I32 typecast in Constants.xs
- avoid use of unregistered local variables for Win32
in mod_perl.c and perl_config.c
- s/I32/U8/ in mod_perl.h, perl_config.c, and perl_util.c
- declare i and http_code to be STRLEN in perl_util.c
[Stas Bekman, Randy Kobes]
don't use $r variable in Apache::PerlRun::compile(), so the script
won't use use inherited $r by mistake [Stas Bekman]
use touch() from ExtUtils::Command, rather than a system touch(),
for the benefit of platforms without touch(). [Randy Kobes
<randy@theoryx5.uwinnipeg.ca>]
can't let the default typemap rule to convert sv into char* in
unescape_url, since it doesn't handle correctly undefs (returns an
unallocated "" string, which then causes a segfault in
ap_unescape_url. use SvPV_force, instead, which does the right
thing. [Stas Bekman]
Make sure to start perl, if it's not running, before processing Perl*
directives, with threaded perl and PERL_STACKED_HANDLERS=0 [Stas
Bekman]
Add Apache::Module to Bundle::Apache [Stas Bekman]
use $Config{'installstyle'} instead of hardcoded 'lib', to handle
Makefile.PL's PREFIX option correctly [Philippe M. Chiasson
<gozer@cpan.org>]
prevent segfaults in mod_perl_mark_where() when a sub can't get
resolved [Gerald Richter <richter@ecos.de>]
Apache::Status: Need to load B::Terse/TerseSize if it wasn't loaded
yet in that child before using it. [Dan Sully <daniel@electricrain.com>]
document the server_root_relative() method [Stas Bekman <stas@stason.org>]
eliminate warnings when flushing functions with empty () prototypes in
Apache::PerlRun::flush_namespace [Yair Lenga <yair.lenga@citigroup.com>]
fix Apache::Status to not use :: in filenames, which is not allowed on
certain OSs [DH <crazyinsomniac@yahoo.com>]
various cygwin fixes [Per Einar Ellefsen <per.einar@skynet.be>]
Document the possible misuses of the Apache::Constant constants
[Per Einar Ellefsen <per.einar@skynet.be>]
1.27 - June 1, 2002
workaround Cwd bug in 5.8.0-RC1 that breaks apache configuration on solaris
fix get_set_PVp() to properly set NULL values when passing in undef
thanks to Lyle Brooks for the spot
[Stephen Clouse <stephenc@theiqgroup.com>]
Apache::Registry/PerlRun/RegistryNG errors are now saved
in $r->notes('error-notes')
[Jesse Erlbaum <jesse@vm.com>]
make sure DynaLoader is loaded before XSLoader to workaround possible
segv when using mod_perl as a dso with perl 5.6.1
autoset PERL_USELARGEFILES=0 if needed
fix taint issues with bleedperl
fix bug in modules/util test
[Tatsuhiko Miyagawa <miyagawa@edge.co.jp>]
Adjust the mailling list addresses
's|\@apache\.org|\@perl.apache.org|' [Stas Bekman <stas@stason.org>]
Apache::PerlRun will now localize $SIG{__{DIE,WARN}__}
thanks to Jon Coulter for the spot
PERL5LIB support now properly unshifts paths into @INC rather than push
[Tatsuhiko Miyagawa <miyagawa@edge.co.jp>]
do not clear symbol tables within a package in perl_clear_symtab()
used by directive handler extensions
[Stephen Clouse <stephenc@theiqgroup.com>]
properly deal with $r->status codes (e.g. redirect) in
Apache::RegistryNG [Geoff Young <geoff@modperlcookbook.org>]
fix multiple %LocationMatch in <Perl> sections bug
[Salvador Ortiz Garcia <sog@msg.com.mx>]
rip -D_GNU_SOURCE out of Perl 5.7.3+'s ccflags, which modperl doesn't
need and apache won't compile with [Stas Bekman <stas@stason.org>]
make sure PerlSetEnv variables are visible after first access
to each child [Geoff Young <geoff@modperlcookbook.org>]
workaround Apache::Constants::AUTOLOAD problem with bleedperl
the first flag argument to perl cannot start with space, since perl tries
to open the " -spi.bak" as a file. fix that in the win32 case.
[Stas Bekman <stas@stason.org>]
starting from perl 5.7.3 for tied filehandles, tiedscalar magic is applied
to the IO slot of the GP rather than the GV itself. adjust the TIEHANDLE
macro to work properly under 5.7.3+. [Charles Jardine <cj10@cam.ac.uk>,
Stas Bekman <stas@stason.org>]
added perl_perl_merge_dir_config and array_header2avrv symbols to
mod_perl.def for win32 and mod_perl.exp for aix.
[Randy Kobes <randy@theoryx5.uwinnipeg.ca>]
INSTALL.apaci: added an explanation of how perl has to be built in
order to use DSO without problems (copied from the guide) based on
email from Doug. [Stas Bekman <stas@stason.org>]
warn if Perl is configured with -Duseshrplib and a libperl.so is found
in a place where it should not be, example: /lib /usr/lib or /usr/local/lib
fix potential segv in Apache::URI->rpath
[Vyacheslav Zamyatin <slawa@w-m.ru>]
require URI::URL to work with newer libwww-perl
allow overriding of container directive handlers using the func parameter
[Geoffrey Young <gyoung@laserlink.net>]
enable directive handler support for TAKE13
[Geoffrey Young <gyoung@laserlink.net>]
1.26 - July 11, 2001
fix 'make test' problem seen with Perl 5.005_03
remove $r->finfo usage from Apache::PerlRun, clearly finfo isn't as
stable as it should be
[Surat Singh Bhati <surat@indiamart.com>]
Apache->server will now point the current VirtualHost when inside a
<Perl> section, thanks to Robin Berjon for the spot
allow per-server and per-location PerlSetEnv to be properly merged
when a per-server handler is configured, thanks to Michael Barry for
the spot
1.25_01 - July 6, 2001
add symbols to mod_perl.exp for aix/axkit
add Apache::add_version_component() function
make sure Apache::ExtUtils can be found when building inside of the
apache source tree, thanks to Jonathan Swartz for the spot
fix -[TB] file tests against $r->finfo, thanks to Geoffrey Young for
the spot
Apache::SizeLimit enhancements [Perrin Harkins <perrin@elem.com>]:
- Added support for minimum shared memory and maximum unshared memory
settings.
- Added extra diagnostics to tell how many requests a process served,
how long it lived, and how much shared memory it was using when
SizeLimit killed it.
perl_destruct_level must always be 2 for DSO builds to prevent
leaking on restarts, thanks to Paul G. Weiss for the spot
make sure file to be reloaded can be found in @INC, adjusting based on
%INC value if needed
[Ilya Konstantinov <modperl@future.galanet.net>]
croak if the filehandle passed to $r->send_fd is NULL, otherwise
apache will segfault
if PREFIX is given to Makefile.PL add it to @INC at startup
[Philippe M . Chiasson <gozer@cpan.org>]
add %Apache::MyConfig aliases for Apache::src backwards compat
[Philippe M . Chiasson <gozer@cpan.org>]
$r->custom_response($code, undef) will now unset the current CustomResponse
[Geoffrey Young <gyoung@laserlink.net>]
fix to compile with sfio+ithreads, thanks to Joe Schaefer for the spot
adjust perl_clear_symtab() to deal properly bleedperl's version of
cv_undef() (which broke modules with directive handlers)
thanks to Geoffrey Young for the spot
add $r->allowed method [Philippe Troin <phil@fifi.org>]
fix 'make offsite-tar' [Geoffrey Young <gyoung@laserlink.net>]
fix double-loading bug of Perl{Require,Module}s at startup time
improve Apache::MyConfig [Stas Bekman <stas@stason.org>]
$r->no_cache(0) will unset cache headers
[Geoffrey Young <gyoung@laserlink.net>]
export hvrv2table (needed by Apache::Request) for aix and win32
[Jens-Uwe Mager <jum@helios.de>, Randy Kobes <randy@theoryx5.uwinnipeg.ca>]
fix 'make tar_Apache' [Geoffrey Young <gyoung@laserlink.net>]
make sure global for Apache->request is reset after configuring %ENV
[Gerald Richter <richter@ecos.de>]
adjust 'U' magic functions to Perl 5.7.x-dev prototype change
Put Apache's CFLAGS into AP_CFLAGS instead of CFLAGS, so that
people who like to override CFLAGS from the make line (make
CFLAGS='-arch ppc -arch i386') can do so without stomping the
Apache flags. [ Wilfredo Sanchez <wsanchez@KnowNow.com> ]
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
pkgsrc. Instead, a new variable PKGREVISION is invented that can get
bumped independent of DISTNAME and PKGNAME.
Example #1:
DISTNAME= foo-X.Y
PKGREVISION= Z
=> PKGNAME= foo-X.YnbZ
Example #2:
DISTNAME= barthing-X.Y
PKGNAME= bar-X.Y
PKGREVISION= Z
=> PKGNAME= bar=X.YnbZ (!)
On subsequent changes, only PKGREVISION needs to be bumped, no more risk
of getting DISTNAME changed accidentally.