and config.sub found under ${WRKDIR} with the master versions from
${PORTSDIR}/Template. This allows old ports (which contain old versions
of these scripts) to build on newer architectures like ia64 and amd64.
Submitted by: naddy (initial patch, reworked by me)
set to a different value to that with which it was configured and
built. This is achieved by recording the PREFIX in the build-stage
cookies [1]
* Add scheme [2], tcl84 and tk84 [5] as virtual categories
* Add the PERL_PORT variable and use it to register the dependency on
the correct perl port when PERL_LEVEL is set [3]
* Add support for USE_AUTOHEADER [4]
* Fix 'make maintainer' when MAINTAINER is set to a bogus value (not
in user@example.com format). [6]
* Add a 'package-recursive' target to create packages for a port and
all of its dependencies [7]
* Fix command-line overflow errors in 'make readmes' on certain ports,
with the bonus of providing a measurable speed-up to readme
generation [8]
* Fix inclusion of alternative makefiles such as Makefile.inc,
Makefile.local, etc. (broken since 1.403) [9]
* Reintroduce support for install/deinstall targets checking for older
versions of the port, and re-add the deinstall-all target that
removes all existing installations of a port (originally introduced
in 1.446 and backed out in 1.450). This patch has been reworked to
eliminate the corner cases in the previous code. Ports that
dynamically generate their ${PLIST} at install-time must now do so
before the do-install target is run, e.g. in pre-install. [10]
* When installing ports as non-root, use su(1) to execute the targets
that require root privilege. This is achieved by splitting up the
_INSTALL_SEQ target list into _INSTALL_SUSEQ [11].
PR: 23581 [1], 47238 [2], 48465 [3], 50165 [4], 51985 [6],
52388 [7], 51609 [11]
Submitted by: Matt Emmerton <matt@gsicomp.on.ca> [1],
Sergey Matveychuk <sem@ciam.ru> [1] [7] [10] [11],
Kimura Fuyuki <fuyuki@hadaly.org> [2],
"Scot W. Hetzel" <hetzels@westbend.net> [3],
Anton Berezin <tobez@FreeBSD.org> [3], nork [4],
hsu [5], Mark Linimon <linimon@lonesome.com> [6],
hoek [8], sobomax [9], marcus [10] [11], des [11]
* kill devel/libtool and move to devel/libtool13, upgrading to 1.3.5
* upgrade repo-copied devel/libtool14 to 1.4.3
* break out libltdl into its own separate port
* move to version-numbered binaries/scripts (ie: there is *no* 'libtool'
any more -- USE_LIBTOOL and USE_LIBTOOL_VER are your friends)
Approved by: portmgr (kris) - for the bsd.port.mk hooks
Tested by: bento 4-exp builds (repeatedly)
'make deinstall' behaviour and stricter checking for an installed package.
There were some edge-case problems with these patches that we were not
able to solve in time for 5.1-RELEASE. They'll probably reappear in
a modified form soon after release.
Discussed with: marcus, Sergey Matveychuk <sem@ciam.ru>
- Stage II of pkg-comment removal; do not write out the comment to a
temporary file, but process it inline [2].
- Add support for the CONFLICTS variable to register the fact that a
port conflicts with installed packages. This relies on the -C
argument to pkg_create which is not yet present in 4.x, so the
variable is currently a NOP on 4.x. [3]
- Fix pkg-plist support for html manpages. This was broken as
committed in r1.402.
Submitted by: trevor [1], lioux [2],
Sergey Matveychuk <sem@ciam.ru> [3]
PR: 24292 [1], 47146 [3]
avoid installing packages when the target is configure or extract
[1]
- If PYTHON_VERSION is set, do not automatically add a dependency on
python: USE_PYTHON must now be specified explicitly. This allows the
variable to be set in make.conf or the environment to specify a
preference for the python version to be used. [2]
- When checking for an existing installation of the port, check by
port origin instead of only looking for the current version of the
package. [3]
- Do not install perllocal.pod files; they are not used on FreeBSD. [4]
- Improve 'make deinstall' to deinstall any existing version of the
package (e.g. older versions) instead of only trying to deinstall the
version currently described by the port. [5]
- Check for world-writable files/directories in the security-check
target. [6]
- Improve the patching of libtool so it works with pathnames ending in
a slash. [7]
- Allow ports that use the INSTALL macros to install files when
running as non-root (i.e. don't try to chown/chgrp) [8].
- Add the USE_GETOPT_LONG variable, which adds a dependency on
libgnugetopt on systems older than 500041, and uses the system version
otherwise. [9]
- Improve the fetch-required target to correctly deal with fetching
dependencies that use the ':target' form. [10]
- Add support for re-fetching interrupted distfiles. The FETCH_REGET
variable specifies the number of times to try continuing the distfile
fetch if it fails the md5 checksum. [11]
PR: 36083 [1], 44875 [2], 48646 [3], 48960 [4], 49017 [5], 49969 [6],
50069 [7], 50159 [8], 50323 [9], 50669 [10], 12325 [11]
Submitted by: dinoex [1], Gerhard Schmidt <estartu@augusta.de> [2],
Sergey Matveychuk <sem@ciam.ru> [3] [5], tobez [4],
Erwin Lansing <erwin@lansing.dk> [4],
Arjan de Vet <devet@devet.org> [6],
Hartmut Brandt <brandt@fokus.fraunhofer.de> [7], gerald [8],
Sergei Kolobov <sergei@kolobov.com> [9],
Erwin Lansing <erwin@lansing.dk> [10], alex [11]
so they appear after the *_depends targets. This fixes builds on systems
that don't yet have libtool installed (prior to this commit the
patch-libtool target would be called before the libtool port was
installed by the dependency targets, and it would therefore fail).
Submitted by: Claude Buisson <cbuisson@nerim.net>
* Fix 'make package-depends' so it doesn't overflow on large ports [2]
* Fix logic in 'USE_PACKAGE_DEPENDS' [3]
Submitted by: dinoex [1][3], marcus [2]
PR: ports/48860 [1], ports/36083 [3]
meaning and default settings [1]
* Add PATCH_DEPENDS and EXTRACT_DEPENDS, and convert various
internal bsd.port.mk dependencies to use them [2]
* Set the default MAN3PREFIX to ${PREFIX}/lib/perl5/${PERL_VERSION}
for perl ports, removing the need to define this locally in every
port [3]
* Replace perllocal.pod with perllocal.pod-${PORTNAME} so that perl
ports can be made to clean up after themselves properly [4]
* Properly quote filenames in the security-check target. This
unbreaks package registration for ports that install filenames
containing metacharacters [5]
* Use "cat /dev/null >" instead of "rm -f" in the makesum target so
that the file retains the correct ownership and permissions [6]
* Add a USE_PACKAGE_DEPENDS knob that may be set in the environment or
make.conf, and which attempts to use existing local packages to
satisfy port dependencies, instead of building them from ports [7]
* Add a first attempt at fetch-required and fetch-required-list
targets which fetch or print all the distfiles that are required to
build the port. Dependencies that are already installed need not
have their distfiles listed, and will not be reported [8].
This needs more work, because ports that do things like:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/foo/bar:blee
will not have their distfiles listed and will therefore fail to fetch
completely. The target needs to be changed to include distfiles for
ports that have a target listed
Submitted by: Mark Linimon <linimon@lonesome.com> [1],
Jim Trigg <jtrigg@spamcop.net> [2], skv [3],
kuriyama [4], marcus [5], sheldonh [6], dinoex [7],
Erwin Lansing <erwin@lansing.dk>
PR: 44841 [1], 29856 [2], 39662 [3], 48439 [5], 48450 [6],
36083 [7], 48473 [8]
(RESTRICTED, NO_PACKAGE, NO_CDROM, BROKEN) to match current reality. Add
documentation of the FORBIDDEN and IGNORE variables.
Garbage collect the commented-out FORBIDDEN string for the openssl ports
since we no longer need to forbid crypto software.
with the same semantics as the current COMMENT variable (location
of the pkg-comment file), and reclaim COMMENT for the comment string
itself. To work around the problems with metacharacters in comment
strings, comments are written to a temporary comment file as needed. [1]
* Support regexps in LIB_DEPENDS [2]
* Move the CD_MOUNTPTS variable to <bsd.port.pre.mk> [3]
* Improve 'make readmes' target [4]:
- ^A and ^B have been replaced by | to avoid printing problems in
'make readme'.
- Add %%EMAIL%%, %%MAINTAINER%% (not used yet) and %%WEBSITE%%
substitutions
- Add pretty-print-www-site target.
* Add support for USE_GCC=3.2 [5]
* Use 'uname -p' instead of 'uname -m' to set the ARCH variable. [6]
* Add a ${YACC} variable [7]
* Path MANPREFIX in MAKE_ENV [8]
* Use the full patch to mkhtmlindex in MKHTMLINDEX [9]
* Avoid overflowing the commandline when constructing the _TMLINKS
variable (fixes 'make index'). [10]
Submitted by: lioux [1], mi [2], mbr [3][5],
Cyrille Lefevre <clefevre@citeweb.net> [4],
nyan [6], cy [7], dougb [8], anholt [9],
fenner [10] (based on)
PR: ports/34126 [2], ports/30983 [3] (based on),
ports/31389 [4], ports/47306 [5] (based on),
ports/35514 [6], ports/44496 [7],
ports/44895 [8], ports/45549 [9]
later, and INDEX on earlier systems. Use this in the 'make index' and
associated targets. This is necessary to deal with the substantially
different dependencies of ports between 4.x and 5.0 (e.g. ports that
depend on perl).
but do not cause the program to be executed prior to configure step. This is
done to accomodate a couple of rather odd ports.
Basically, this amounts to redefining USE_*_VER in terms of USE_*, WANT_*_VER.
It's pretty gross, but it works.
Approved by: implicitly by kris
Completely rewrote the automake/autoconf support. The comments at the top of the file have been greatly expanded in order to explain just what you are allowed to do and what will get you a visit from Mr. Hose. Please read this information.
Added DOCSDIR, EXAMPLESDIR to PLIST_SUB.
Added a PERL_LEVEL variable (documented up top) that gives an integer
value that can be used for comparisons to determine whether the user's
perl is new enough or not, or to enable or disable certain dependencies
(AHEM FILE::SPEC) based on the perl version.
Added a SITE_PERL variable, which points to the correct "site-packages"
directory. This is also added to PLIST_SUB.
No gerbils were harmed (seriously, anyway) in the making of this patch,
however some of them may be a bit sore for a few days.
Submitted by: billg
Reviewed by: kris
Approved by: kris
Obtained from: you really don't want to know this one
* Add USE_PERL_RUN and USE_PERL_BUILD to add {RUN,BUILD}_DEPENDS on the
perl5 port if required (i.e. on 5.0 or later) (USE_PERL adds both,
which is not always appropriate) [1]
* On 5.0 systems without perl, depend on the full path to the perl port
binaries to not pick up the system perl wrapper
* If PERL_CONFIGURE is defined, move the USE_PERL setting earlier in
the makefile so it actually adds a dependency. [2]
Noticed by: dougb [1]
Submitted by: sobomax [2]
Tested on: bento
extensively tested on the bento cluster, but the committed version
introduces significant new breakage at a very inopportune time. This
will be revisited later.
totally rewrote the autoconf/automake support section, with
provisions for autoconf 2.54 and automake 1.7.x when they are
ready.
Minor change:
Added DOCSDIR, EXAMPLESDIR, and DATADIR to PLIST_SUB.
PR: 42351
Reviewed by: kris
Approved by: kris
* If the ${COMMENT} file does not exist, use the value of the
${PORTCOMMENT} variable instead. This will allow us to incrementally
phase out pkg-comment [1]
* Miscellaneous fixes to the MASTER_SITES_N code [2]
* Correct fmt(1) invocation so it works on older systems [3]
* Improve the security-check target: [4]
- Look for setuid/setgid binaries, and binaries that include
calls to accept()/recvfrom() (which are likely to be network
servers or have network server capability)
- Check these binaries for insecure functions (if PORTS_AUDIT is
set in the environment, check for a larger set of functions
such as strcat/strcpy/sprintf)
- Report network servers that are started by default.
Submitted by: eric [1], lioux [2], fenner [3], kris [4]
PR: ports/36078 [2], ports/36709 [2]
* Fix some problems in previous revision relating to writability test of
${DISTDIR}, by moving the check a) after we have made the directory if
it doesn't exist, and b) inside the loop that actually fetches files,
so the check isn't performed with every port make operation that depends
on the fetch target (this breaks non-fetch targets as a different user)
[2]
Submitted by: bmah [1]
Reported by: ijliao [2]
Tested on: bento
* Replace some bare uses of cat with ${CAT}
* [ports/19112] Ignore RCS files (*,v) when applying patches
* [ports/19270] Check whether ${DISTDIR} is writable and fail with a
better error message if not (mostly caused by trying to fetch as the
wrong user)
* [ports/23560] Force patch backup files to be created with .orig suffix
* [ports/34717] Don't enclose PTHREAD_LIBS in quotes, because it will
cause problems if used in an already-quoted string.
* [ports/34987] Fix an awk warning in MASTER_SORT/MASTER_SORT_REGEX code
* [misc/38724] Change some uses of the deprecated test -h to test -L
* [1] Registering real dependencies: dependency registration looks at the
currently-installed version of the dependency and registers that version,
instead of registering the version in ports which may be newer than
what is installed.
* [2] Further 100% speed-up of dependency registration process by eliminating
second call to package-depends (using information from the first call
stored in +CONTENTS file of package being installed). Very useful
for developing GNOME or similar packages with zillion dependencies,
when package-depends target could take few minutes to complete;
* [2] Proper set-up of ${SHELL} variable in build environment, so that user's
interactive shell isn't picked instead. This has various implications,
ranging from build process speed-up due to using /bin/sh to invoke
libtool instead of bash or any other much more bloated user's shell
(configure scripts often pick it up from the ${SHELL} environment),
to fixing problems some users have when building random ports.
Submitted by: sobomax [1] [2],
Aleksandr A. Babaylov <.@babolo.ru> [ports/19112],
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> [ports/19270],
Alan Bawden <Alan@LCS.MIT.EDU> [ports/23560],
Christian Weisgerber <naddy@mips.inka.de> [ports/34717],
knu [ports/34987], april <april@oublinet.net> [ports/38724]
PR: ports/19112, ports/19270, ports/23560, ports/34717,
ports/34987, ports/36237, ports/38724
Tested on: bento 4-exp build
bsd.gnomeng.mk. Also increase OSVERSION `sed -i'check to be 500036 on
-current, as users report that 500034 isn't sufficient to catch new sed(1)
functionality.
Approved by: portmgr (silently)
where sed(1) can't do in-place editing add a new USE_REINPLACE knob, which
if turned on defines REINPLACE_CMD and adds textproc/sed_inplace port into
BUILD_DEPENDS if necessary.
Not objected by: portmgr@
1. Make PY_DISTUTILS recently added into <bsd.python.mk> actually working.
PR: 36537
Submitted by: tg
2. Propagate error code from failed `make depends', when one of the ports
we depend upon is marked BROKEN/FORBIDDEN.
PR: 25522
Submitted by: alex
3. By default, when bsd.port.mk configurating Makefile.PL only pass
PREFIX as argument, but some Perl module (eg. Test-Harness) needed
INSTALLPRIVLIB and/or INSTALLARCHLIB in order to install, otherwise
default installation will goes to /usr/lib and not ${PREFIX}/lib,
in some case, adding these tag to CONFIGURE_ARGS is not bad.
PR: 29681
Submitted by: Shell Hung <shell@shellhung.org>
4. Update patch-libtool target, so that it doesn't break ports with
autoconf 2.13-generated configure script. USE_LIBTOOL is still not
very useful for such cases, but at least it doesn't break them badly
anymore.
PR: 31142
Submitted by: wjv
5. Make `make search' working even when /usr/obj/usr/ports exists.
PR: 31862
Submitted by: gad
6. When configure script fails unexpectedly don't dump thousands lines of
config.log to the user's screen, because it usually doesn't contain
information useful for tracking the problem anyway. Instead display a
message asking a user to report the failure to the proper entity
(maintainer) and what to include into the problem report.
PR: 34459, 35488
Submitted by: Thomas Hurst <freaky@aagh.net>
Alan Eldridge <ports@geeksrus.net>
sobomax
other countless hackers whose names are lost in the noise
Text of message suggested by: asmodai
7. Make PREFIX=/usr situation more sane. When PREFIX is set to /usr,
bsd.port.mk uses MANPREFIX=${PREFIX} and BSD.local.dist for mtree as
always, however those defaults are not appropriate for /usr, and better
options are available.
PR: 36030
Submitted by: DougB
8. Use ${ECHO_CMD} instead of ${ECHO} everywhere in the bsd.port.mk to
avoid clashing with system .mk settings (${ECHO} has a different meaning
there). Actually the patch is imcomplete, because large portion of those
${ECHO_CMD}s should be ${ECHO_MSG}, but this one will at least make Bruce
happy, which shouldn't be underestimated.
PR: 34988
Submitted by: knu
All of the above tested by: bento
Special thanks goes to: kris (for his help with getting this tested)
-------------------------- THE END (to be continued) ------------------------
the bug resulted in "sh: Argument list too long" message during dependency
registration process.
Reported by: *many*
Submitted by: Joe Marcus Clarke <marcus@marcuscom.com>