list. The old MAKE_FLAGS was a little hard to use since it had a weird
default ("-f").
Suggested by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>
(2) Add new targets clean-restricted and clean-for-cdrom, which will
delete RESTRICTED and NO_CDROM packages and distfiles from the top.
Reviewed by: jkh
(3) Add depends to list of things to recurse on. It will help people
who are trying to fetch some ports plus their dependencies.
Requested by: Chris Dillon <cdillon@wolves.k12.mo.us>
packages from a single port. LOOP_VAR is the name of the variable
and LOOP_OPTIONS is a space-separated list of values it should
take. When these are set, the target "package-loop" will go
through a clean and package loop for all the options. The
"package-loop" target is defined as "package" when LOOP_VAR is not
defined, so if you are in the business for building packages, you
should use "package-loop" all the time. (This target is added to
bsd.port.subdir.mk too.)
Also, the "describe" target prints out multiple lines so that all
options will go into the INDEX. (In other words, if you define
these variables, INDEX is going to look real silly if you don't
put ${${LOOP_VAR}} in PKGNAME.)
Seconded by: obrien ("ANYTHING")
(2) Turn off regexp support for LIB_DEPENDS. It is a fixed string of
the form <NAME>.<VER> now.
Tested by: several rounds of complete package builds
(3) Check checksum even if NO_EXTRACT is defined.
(4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.
name conversion. Use it for binary ports that come with its own private
shlib dirs, ports that install linux compatibility libraries (thus following
their naming conventions and not ours), etc.
Reviewed by: Martin Cracauer <cracauer@FreeBSD.ORG>
version number part (i.e., "<directory>/perl"). Use this to
substitute #! lines in your perl5 scripts.
Requested and reviewed by: ache
(2) Add new variable WRKDIRPREFIX (defaults to ""). The "work"
directories are now in ${WRKDIRPREFIX}${.CURDIR}/work by default.
You can have a read-only ports tree (modulo any broken ports that
write something to places other than ${WRKDIR}) by setting this to
a writable location.
Ports that set WRKDIR explicitly should append this to front so
they will work when the user has WRKDIRPREFIX set.
Reviewed by: Toshihiko Kodama <kodama@ayame.mfd.cs.fujitsu.co.jp>
since ports are not supposed to be broken during the process of
conversion to ELF -- please proceed with caution.)
(2) Support for checking file size before fetching. The essential
parts are commented out for now, so I won't lose the submission
while we discuss how to do it.
Submitted by: se (mostly)
(3) Don't run "fetch" twice. It was due to the change in checksum
target chaining. It used to be fetch -> checksum -> extract,
after 1.285 it was fetch -> checksum and checksum was also
explicitly called from extract. Fix it by not calling fetch from
checksum when it's invoked by extract.
Noticed by: pre-fetch target of lesstif being run twice
(4) Don't try to remove non-existent distfiles and patchfiles in
distclean.
Submitted by: anto@netscape.net
PR: 7988
Submitted by: "Eugene M. Kim" <gene@nttlabs.com>
(2) Check for exact version of perl5 in /usr/bin and exit with error
message if USE_PERL5 is defined and version does not match
${PERL_VERSION}.
(3) Note LIB_DEPENDS should not have any regular expressions. Remove
those in USE_XLIB and USE_QT.
Submitted by: hoek
(2) ELF support.
2a. Variable PORTOBJFORMAT specifies the object format of the system.
It is passed down to configure/make via CONFIGURE_ENV/MAKE_ENV,
and is given to generate-plist via PLIST_SUB.
2b. In PLIST, substitute lines that end with "/libFOO.so.X" with
"/libFOO.so.X.0". (This means PLISTs should only list ELF
libraries.)
Reviewed by: jb, jdp, hoek, jseger, steve
(3) Perl5-in-system support. Basically turns USE_PERL5 into a no-op
if there exists a "/usr/bin/perl5". Also fix prior breakage by
dima (${PREFIX} => ${LOCALBASE} in perl5 path).
Reviewed by: markm (sort of)
(4) Install requirement file as "+REQUIRE" so it will be executed
correctly by pkg_delete.
Reported by: Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>
(5) Do not disable checksum and makesum when NO_EXTRACT is set.
Pointed out by: hoek and kiri, among other people
the way, most of the things below are "Reviewed by: hoek" as well.)
The changes are (roughly in order of appearance):
(1) Revamp comments at beginning of file. Major rewrites. Reorder
them into more relevant sections. Make clear which ones are user
variables and not to be set in ports' Makefiles.
Reviewed by: hoek (well, he's the only one who sent any comments)
(2) Include ${.CURDIR}/Makefile.local if it exists. This is a local
configuration file (ala rc.conf.local and make.conf.local) so
please do not commit a file with this name to the repository.
Suggested by: dillon
(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
"maybe". (It used to be a binary variable -- the old behavior is
now accomplished by "MANCOMPRESSED=yes". Ports that defined this
variable to other values have been corrected.)
"yes" means the manpages are installed compressed, "no" means they
are not, and "maybe" means the port already respects the value of
NOMANCOMPRESS. The default is "yes" for USE_IMAKE ports without
NO_INSTALL_MANPAGES, and "no" otherwise.
Add "compress-man" target and move manpage {,de}compression there.
Reviewed by: hoek etc. and a full build of the ports tree
(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV. Makes easier to "fix" ports
for /usr/lib/aout mess.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
${WRKDIR}/.PLIST.mktmp.
Suggested by: hoek
Strongly seconded by: steve
(6) Change a couple more relative pathnames to absolute ones.
Submitted by: hoek
(7) Move checksum into real-extract.
(8) Change way rules are chained. Instead of:
build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
we now have
build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build
Other than being more PC (pmake clean), this really speeds up
skipping ports already built. For instance, "make package" on a
fully packaged games subtree used to take 269 seconds on average,
now it's 45 seconds on average.
The flip side of this is that it will create more processes when
the targets actually chain, but when you're actually compiling
things, your make is creating half a bazzilion processes anyway so
I don't think it matters.
(9) ${TMPPLIST} is now a real dependency. Create "generate-plist"
target to generate ${TMPPLIST}. Make sure it's called when needed
(usually between do-install and post-install), and that the
required files exist.
(10) Change some messages so we can tell where "make index" failed.
(11) Check if LIB_DEPENDS really generated the required shared lib or
not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
means (change PREFIX to ${X11BASE}) and add a new variable USE_X11
which means "this port requires the X window system (actually the
library)". USE_X_PREFIX implies USE_X11. USE_X11 adds a
LIB_DEPENDS to libX11 with the x11/XFree86 port.
Reviewed by: the ports list, hoek in particular
(2) Remove NO_CONFIGURE and NO_PATCH, which never meant anything.
Yell if they are defined.
Reviewed by: the ports list
(3) Add new variable OSREL, which is automatically set to the
numeric OS version (e.g., 2.2.1, 3.0). It can be used to refer to
files in gcc installations, for instance.
(4) Finally remove EXEC_DEPENDS hack after all these years.
Submitted by: hoek
(5) Put quotes around some echo ${*_DEPENDS} statements so they won't
blow up when the variables include regular expressions like
"qt\\.1\\.\\\(33\\\|40\\\):${PORTSDIR}/x11/qt140".
I don't know what the hell I was thinking in: rev. 1.268
(2) Create ${PREFIX} before calling mtree if it doesn't exist. This
may not be the best solution, but pre-install is called after
mtree so there really isn't any way to fix this from the port
Makefiles and thus has to be done here.
Reviewed by: the lists
(2) Change MASTER_SITE_CTAN to reflect current reality.
Submitted by: fenner
(3) Add new port variable NO_LATEST_LINK. When this is set, the
"Latest" package symlink is not created. Use this for ports that
are betas when there is also a port for an older, more stable,
version.
(4) Don't be too stupid about "make deinstall".
Submitted by: fenner
(1) Allow multiple checksums of same file.
Submitted by: hoek
(2) Add "deinstall" target as an alias to "pkg_delete $(make package-name)"
(well, something like that, see diff for details).
(3) Add new port variable USE_AUTOCONF. It appends BUILD_DEPENDS to
devel/autoconf and runs autoconf before configure.
Submitted by: ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)
(4) Clarify USE_X11 and USE_IMAKE usage.
(5) Add new user-overridable variable MASTER_SITE_KDE.
Submitted by: vanilla
(6) Add support for "Latest" package links.
Idea by: Terry Lambert
(7) Try to catch obsolete tcl/tk installations that could cause problems.
Annoyed by various bogus commits by: you-know-who
we won't have double-slashes.
Add support for new port variable MANUAL_PACKAGE_BUILD. If this is
defined as well as the user variable PACKAGE_BUILDING, the port will
be ignored. This is used to mark ports that can be built normally
except on a machine that has a lot of conflicting ports (i.e., our
package building machine).
DESCR files when building README.html .
Don't use control characters in sed statement.
Problems reported by "Chris G. Demetriou" <cgd@pa.dec.com> in NetBSD PR
pkg/4341.
you can get one from.)
(2) Use "reinstall" as DEPENDS_TARGET if target is "reinstall". In
particular, this will make it possible to do a "make reinstall" on
several NFS clients and have them install all dependencies
correctly.
Tested by: davidn
patches and files. Note this is just for testing -- I don't
expect "patches.OpenBSD" or "Makefile.alpha" start cropping up on
our ports tree just yet!
Pretty much ignored by: the ports/committers list
(2) Add "SH?=/bin/sh" to the list of command-name macros. Use it.
Checked by: recompiling all packages
it also sets RUN_DEPENDS (USE_GMAKE is BUILD_DEPENDS only).
The (immediate) purpose of this is to avoid having to change 70
zillion ports when the version of perl changes. Also, when perl5 is
pulled into -current, this will become a no-op in -current's
bsd.port.mk.
Reviewed by: jfitz
"do-install" target to the beginning of the "install" meta-target, so
that ports that define their own do-install will also run it without
having to duplicate it themselves.
Tested by: rebuilding all packages
/usr/X11R6 if USE_IMAKE or USE_X11 is set. It is mostly designed
after the XFree86 distribution, but also includes some of our own
goodies (libexec, share/doc, etc/rc.d).
(2) Full support for per-port dependency target. An optional
":<target>" can be added to any of the *_DEPENDS variables. Do
not attempt to print out anything about dependencies if NO_DEPENDS
is set (there was already too much code duplication, and this
extra colon has really pushed it over the limit).
Requested by: jfitz
(3) Make "reinstal" pmake-safe.
Reminded in an e-mail from: jkh
(default: IS_DEPENDED?=install) target on the depended port, call
DEPENDS_TARGET (default: install) from the depending port.
Other than being more flexible (some ports don't require the
dependency to be fully installed: see ghostscript4), this seems
like a more natural thing to do. (I never understood the
convoluted logic that was used before.)
By building packages with "DEPENDS_TARGET=package", I can avoid
file-sharing problems (like gs3 binary going into the gs4
package).
(2) Add new variable PATCH_SITE_SUBDIR and separate it from
MASTER_SITE_SUBDIR. Fixes linuxls port and is a correct thing to
do anyway.
Initially suggested and reviewed by: fenner
(3) Add new variable MASTER_SITE_LOCAL for local ports. Defaults to
LOCAL_PORTS subdir on ftp.freebsd.org's distfiles dir.
Submitted by: jkh
means.
(2) Change MASTER_SITE_GNU etc. to use += instead of ?=, so users can
specify a local mirror in /etc/make.conf and still get the full
fallback in case something is missing.
Submitted by: Narvi <narvi@haldjas.folklore.ee>
(3) Skip port if USE_X11 or USE_IMAKE is defined and /usr/X11R6
doesn't exist.
Submitted by: imp
(4) Add "-" in front of rmdir of ${DISTDIR}/${DIST_SUBDIR} in
distclean target; the directory might not be empty because the
subdir is shared with some other ports' distfiles.
mv, respectively. This will make Warner's life easier.
(2) Add new variable ${PLIST}, which defaults to ${PKGDIR}/PLIST.
If you need to have different PLISTs for different configurations,
you can either
@ pre-fabricate all of them and switch ${PLIST} to point to the
appropriate one, or
@ use sed/awk/perl/whatever to create the correct one from
pkg/PLIST and set ${PLIST} to it.
It is still recommended to have a file called "pkg/PLIST" so
people can do "grep badprog /usr/ports/*/*/pkg/PLIST" and such.
(3) Move /var/db/pkg/${PKGNAME} clash detection to before the
installation (instead of after) and make it fatal, with an error
message suggesting a workaround.
(4) Don't make distclean fail if DIST_SUBDIR is set and the
subdirectory does not exist.
(5) Don't put "@pkgdep Error code 2. Stop." kind of garbage into
packing list if depended port's directory doesn't exist. Instead,
print out a message to stderr.