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>
working as advertised. This should fix mod_phpX and probably some other 30
ports that use USE_SUBMAKE. Default behaviour remains exactly the same.
Prompted by: dirk
macro, which was invoking separate make(1) process for each of the main
targets, with explicit make(1) targets and specifying the dependencies on
those targets in normal Makefile way. This gives up to 4x speedup. For the
ports relying on the old functionality (i.e. each main target in a separate
make(1) process) provide a USE_SUBMAKE knob, which provides old behaviour;
- speed-up dependency registration process by the factor of two, which
could be a great win especially for things like GNOME and KDE with very long
dependency chains;
- clean-up internal structure of the file, so that it is easier to understand
and extend it when necessary.
Inspired by: NetBSD
Reviewed by: freebsd-ports@
Tested by: bento
[1] Handle HTML-ified manpages in plists.
[2] Add --x-[libraries,includes]=${X11BASE}/[lib,include] if we are
using GNU_CONFIGURE in this port. This is required if the port
adds a bunch of other libraries by default to CPPFLAGS and
configure gets a false positive.
Submitted by: [1] sf
[2] many people
4.5 release.
1) Add support for MASTER_SITE_N. This is by far the largest part of
this patch; many thanks to Mario for his hard work on this!
Submitted by: lioux
2) Allow multiple CD mountpoints to be specified.
PR: 8063
Submitted by: MOROHOSHI Akihiko <moro@race.u-tokyo.ac.jp>
Rewritten by: will (with suggestions from steve)
3) Fix MLINKS description.
PR: 29876
Submitted by: dirk
4) Add imake dependency for XFree86 3.x when USE_IMAKE is defined
because it's possible the port may not need X itself, but just imake.
Submitted by: max
5) Fix installing as non-root with ${INSTALL*} macros.
PR: 25531
Submitted by: Martin Kammerhofer <mkamm@gmx.net>
Thanks to Kris Kennaway <kris> and Steve Price <steve> for helping make the
experimental tree on bento a reality.
by will
1) Make selection of AUTO{CONF,MAKE} flexible depending on *_VER
variables.
2) This is backward compatible with previous behavior. For example,
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}} are
set with default values even if USE_AUTO* are not set.
3) Have the defaults be devel/autoconf213 and devel/automake14 ports
(just set the USE_*VER?= to the latest values, or a bogus value).
If the user sets a bogus value, we use the default values.
4) Furthermore, add variables in the same sense of the
PTHREAD_* vars. We must be able to automagically patch the ports
based on the correct
{ACLOCAL,AUTO{CONF,HEADER,MAKE,RECONF,SCAN,UPDATE,IFNAMES}}
values.
5) Moreover, add {ACLOCAL,AUTO{MAKE,CONF}}_DIR variables pointing
to the right locations based on the *_VER variables, this is
useful if a port needs to grab files from those. This might seem
too much but if we want automagical, we should go this extra
mile.
Requested by: too many
Reviewed by: portmgr, ports
Approved by: portmgr (will), ports (silence)
automatically added if there is a .bz2 patch in PATCHFILES.
PR: ports/16252 and ports/30862
Seven months have passed since the PR was assigned to: portmgr
BZCAT, BZIP2_CMD, CHGRP, CUT, DC, ECHO_CMD, EGREP, FILE, FIND,
HEAD, ID, IDENT, STRIP_CMD, SU, TAIL, TEST, XARGS
And use shell (ash or ksh) builtins where available for efficiency:
ECHO_CMD, FALSE, TEST, TRUE
Grepping the ports tree, a few dozen ports already have FIND,
STRIP_CMD and XARGS variables on their own and numerous ports use
these commands without using macros. Some ports use FILE as a .for
loop variable, but it doesn't matter anyway.
Obtained from: NetBSD
Remove the definition of ECHO because it is already defined in
/usr/share/mk/sys.mk and leaving the useless definition may mislead
developers. Add the following comment that would help:
# ECHO is defined in /usr/share/mk/sys.mk and its value can either be
# "echo", or "true" if the make flag -s is given. Use ECHO_CMD where
# you mean the echo command.
No response yet from: portmgr
Clued by: Cyrille Lefevre <clefevre@citeweb.net> (on ${ECHO})
does not clobber the existing definitions because of the `?='
assignment.
Grepping the whole ports tree, a few dozen ports already define this
variable on their own and most of them have the same value as this
(${PREFIX}/share/examples/${PORTNAME}).
Approved but not committed by: portmgr
As I didn't see why the full package name is needed there, I changed
it to a simple regexp that matches any later version of the XFree86
3.x port.
No response from: portmgr
- Do not shrink series of spaces.
- Do not expand shell wildcards in pkg-comment.
I made the code cleaner and (3-4%) faster while I was at it.
Tested by: diff(1) and its option -b
(Maintainer timeout)