This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
latest gcc. This is currently the system compiler in 4-current and
ports/lang/egcs in 3-stable.
Setting USE_NEWGCC is a no-op if the compiler required is in the
system. If it is to be provided by a port, it will cause the
variables "CC" and "CXX" to be set to the names of executables for
the C and C++ compiler, and adds a BUILD_DEPENDS on the
appropriate port.
Reviewed by: Chris Piazza <cpiazza@home.net> and Ade Lovett <ade@lovett.com>
(2) Add new variables CHMOD and CHOWN, set to full pathnames of those
commands. (Used in 3)
(3) When run as root, change owner:group of all files under ${WRKDIR}
to 0:0 after extraction. Set EXTRACT_PRESERVE_OWNERSHIP to turn
off this feature.
Problem reported by: Slawek Zak <zaks@prioris.im.pw.edu.pl>
Reviewed by: the ports list
(4) Update MASTER_SITE_XCONTRIB.
PR: 12879
Submitted by: Will Andrews <andrews@technologist.com>
(5) Update MASTER_SITE_GNU.
Submitted by: Ralf "pth update of the day" Engelschall <rse@engelschall.com>
(6) Add check for valid categories. If the port is not in a
pre-approved list of categories, install will fail. If you need a
local addition, put it in variable VALID_CATEGORIES.
Reviewed by: the ports list
(7) Experimental feature: DEPENDS_CLEAN. Define this variable and
bsd.port.mk will attempt to run "make install clean" instead of
"make install" when building dependencies. Might be useful if you
are building a port with a large number of dependencies without
the benefit of a large disk.
(1) Sort INDEX lines since with the new parallel patch, the lines can
come in out of order. (see 2)
Mk/bsd.port.subdir.mk:
(2) Make the targets parallelizable.
Submitted by: hoek
Reviewed by: steve, among others
Mk/bsd.port.mk:
(3) Serious speedup of bsd.port.mk startup. In particular, this helps
cut down "make index" time from an hour and a half to 8 minutes on
our system with a parallel make describe (see 2). Try to pass
unchanged variables down from parent makes instead of rerunning
commands to define them, etc.
Submitted by: hoek
Reviewed by: steve, among others
(4) Change a bunch of "FreeBSD.ORG"s and "freebsd.org"s to "FreeBSD.org".
(5) XFree86 is now at version 3.3.4.
(6) Update for gnome master sites.
Submitted by: mharo
(7) Remove old system tcl check, I don't think people with systems
from way back are still submitting ports.
(8) Fix comment on "make describe" line description (www site was missing).
${CONFIGURE_SCRIPT} fails, in an attempt to help debugging. It
could be a little verbose, but as my grandmother always used to
say, "you gotta be verbose in error logs".
(2) Roll back PERL_VERSION to 5.00502 in the 2.2 branch to give users
of that side a fighting chance.
(3) Don't check for ${_DISTDIR} in delete-distfiles-list; it's only
printing out commands anyway.
(4) Bump BSDPORTMKVERSION to accomodate perl version change (I know
it's late, but better late than never!)
port.
Submitted by: Jeremy Lea <reg@shale.csir.co.za>
(2) Automatically create ${PREFIX}/info/dir if it doesn't exist. Attempt to
do the same in PLIST.
Submitted by: Jeremy Lea <reg@shale.csir.co.za>
(3) Update perl version to 5.00503 to match system.
(4) Typo fix in MASTER_SITE_WINDOWMAKER.
Submitted by: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
(5) Reword the REQUIRES_MOTIF message to suggest the user to look at lesstif.
Submitted by: Steve Kargl <sgk@troutmask.apl.washington.edu>
(2) New variable USE_ZIP -- will change EXTRACT_SUFX to ".zip" and
extract commands/arguments accordingly.
Submitted by: jseger
(3) Use ${GREP} in some places where grep was used.
(4) A little update to the MASTER_SITES_GNU list.
Submitted by: cpiazza@home.net
(5) New target clean-for-cdrom-list and clean-restricted-list -- will
print out commands to delete un-cdromable or unredistributable
files. Save them into a shell script for later use.
(6) Add CXXFLAGS="${CXXFLAGS}" to configure's environment.
Submitted by: reg@shale.csir.co.za
PR: 11353 (part 3/3)
(7) Print out a warning if you try to install without being root.
Abort if ${PREFIX} is not writable.
(8) Add web site to INDEX as tenth field.
Reviewed by: wosch, steve, scrappy
commit a change to actually move the file in a couple of days.
(Right now this file looks at both /var/db and /var/db/pkg.)
Requested by: jkh
(2) Skip version test for 2.2.x, I don't intend to rebuild update kits
anymore.
(3) sunsite.unc.edu -> metalab.unc.edu
Submitted by: steve
(4) New variable ALWAYS_BUILD_DEPENDS, it will make your build go and
rebuild all dependencies (except XFree86) regardless of
executable/file/shlib test results. It could be useful if you
suspect that some of the dependencies are out of date but won't be
flagged by the normal checks.
Reviewed by: the ports list
old location caused some variables (most notably CONFIGURE_TARGET)
to be undefined.
PR: 10724
(2) Fix comment about CONFIGURE_TARGET.
Submitted by: OKAZAKI Tetsurou <okazaki@be.to>
(3) Add comment to FETCH_CMD test indicating that it *is* intentional
that all 3.x versions use "fetch -A" -- people using the upgrade
kit won't have their ${OSVERSION} updated.
(4) Add MASTER_SITE_TCLTK which is, well, Tcl/Tk master sites.
Submitted by: Bill "the typo picker" Fumerola <billf@jade.chc-chimes.com>
(5) Add new variable FORBIDDEN indicating that the port shouldn't be
built -- this is different from BROKEN, which now means we think
it's broken but the user should be more than happy if it actually
works.
(6) Add support for system/upgrade kit version check. The file
/var/db/pkg/.mkversion is compared to the BSDPORTMKVERSION
variable (basically the date a bsd.port.mk with an incompatible
change is committed). If the system is too old, bsd.port.mk will
urge the user to install an upgrade kit.
Submitted by: billf (some parts)
Reviewed by: the ports list
(7) Remove "ac_cv_path_CC=${CC}" from configure's envirenment, it's
supposed to find this stuff by itself (and if it doesn't then it's
an individual port's responsibility to add it).
Reported by: Archie Cobbs <archie@whistle.com>
BSDPORTMKVERSION is bumped (actually initialized) to 19990327, by the way.
MASTER_SITES_PORTS_JP for storing stuff that people on the
ports-jp mailing list created.
Suggested by: KIRIYAMA Kazuhiko <kiri@pis.toba-cmt.ac.jp>
(2) Conditionalize use of "-A" flag to fetch so the entire ports tree
won't break on 2.2.X machines.
Suggested by: Brian Tiemann <btman@ugcs.caltech.edu>
"not_found.html" stuff.
(2) Add "MACHINE_ARCH?=i386" so those with a 2.x system have a
fighting chance of getting ports-current to work.
(3) Add new variable CONFIGURE_TARGET, defaulting to
${MACHINE_ARCH}--freebsd${OSREL}, which is tucked to the end of
CONFIGURE_ARGS if GNU_CONFIGURE is defined.
Reviewed by: various
(4) Change MASTER_SITE_GNOME to match reality.
Submitted by: Jeremy Lea <reg@shale.csir.co.za> and nectar
(5) Change MASTER_SITE_SUBDIR handling so we won't be generating
double slashes.
Submitted by: The lord of distfiles himself
(6) Add new variable FETCH_ENV which is the environment passed to
FETCH, so people can define HTTP_PROXY or whatever the want
without screwing up the case when FETCH_CMD is not fetch.
PR: 2949
Submitted by: same
and mirror sites of two popular window manager suites.
Submitted by: Brian Handy <handy@lambic.physics.montana.edu>
(2) Upgrade for Motif-2.1.10. It requires libXpm and libXp now.
(3) PARALLEL_PACKAGE_BUILD will now ignore BROKEN.
(4) Add new variable PKG_IGNORE_DEPENDS to not register some ports as
dependencies. Useful for stuff like XFree86 and Motif.
Reviewed by: jkh
will be expanded multiple times if ${MASTER_SITE_SUBDIR} contains
more than one item.
Reviewed by: Bill "Mr. distfiles" Fenner
(2) Replace stale site with a good one in MASTER_SITE_GNU.
Submitted by: Bill "Mr. mastersites" Fenner
(3) Add new variable USE_BZIP2, which, like USE_GMAKE, will change the
default decompression method of distfiles from gzip to bzip2.
Since tar doesn't have a simple flag to turn on bzip2
decompression, I changed the way EXTRACT_CMD and
EXTRACT_{BEFORE,AFTER}_ARGS work. These are the new defaults:
EXTRACT_CMD: gzip or bzip2
EXTRACT_BEFORE_ARGS: -dc
EXTRACT_AFTER_ARGS: | tar -xf -
(They used to be "tar", "-xzf", and "", respectively, before.)
Also, EXTRACT_SUFX will default to ".tar.bz2" if USE_BZIP2 is set.
There are a few things porters should be careful about:
(a) If you are using bsd.port.{pre,post}.mk, USE_BZIP2 should be set
before the .include of pre.mk.
(b) Do not use ${EXTRACT_SUFX} as an alias of tar. There is a new
variable ${TAR} for that purpose.
(c) If you are calling ${EXTRACT_CMD} directly, you need both
${EXTRACT_BEFORE_ARGS} and ${EXTRACT_AFTER_ARGS} in the command
line. (The latter was previously empty so could be omitted --
that is no longer the case.)
(d) If you need to set any of EXTRACT_CMD, EXTRACT_BEFORE_ARGS or
EXTRACT_AFTER_ARGS, define all three, even if they are the
default. The values of these variables may very well change in
the future (but the calling syntax probably will not) so it will
save the port from breakage when that happens.
Tested by: recompiling the entire ports tree
crowded and I don't want to confuse cvsup about what's in
ports-base and what is not. (I.e., all uppercase
files/directories are, all lowercase ones are not.) While I'm
here, move the make_index script from templates to Tools.
(2) Adjust the MASTER_SITE_OVERRIDE logic a bit. Formerly, it was not
possible to specify both MASTER_SITE_OVERRIDE while still using
MASTER_SITE_BACKUP as a backup, as they were tied in the
implementation of MASTER_SITE_FREEBSD. You can now specify them
independently if MASTER_SITE_FREEBSD is not set (in which case
MASTER_SITE_BACKUP will be moved to the beginning of the list,
like before).
(as given by "uname -m") by which you can specify which
architectures the port is appropriate for.
Idea borrowed from: NetBSD, OpenBSD
Reviewed by: simokawa
(2) New variable PERL_ARCH (value: ${ARCH}-freebsd) that is also
passed to ${PLIST_SUB}. Use it to simplify PLISTs.
Submitted by: simokawa
(3) Check OSVERSION as well as existence of /usr/bin/perl5 before
assuming USE_PERL5 is to be a no-op. Basically to allow building
of 2.2-INDEX on a 3.0 machine.
(4) Change USE_QT definition to use new shlib version (2) and
directory (qt142).
(5) Uncomment temporary Motif dependency for parallel package
building. We still need to figure out a way to install the pkg
database files, but it's a start.
(6) Move EXTRACT_SUFX up into the pre.mk area so it can be used in
exists() tests.
(7) Add MASTER_SITE_COMP_SOURCES. Note that this is defined like
"/pub/usenet/comp.sources.%SUBDIR%/" so you can specify something
like "SUBDIR=x/volume18" to select the newsgroup as well as
subdirectory name.
Submitted by: "distfiles" fenner
(8) Other misc. master site cleanup.
Submitted by: "distfiles" fenner
(9) New target "maintainer". I intend to use it to auto-mail failure
build failure notices to the maintainer.
don't recurse in "make describe". The new INDEX target in
ports/Makefile invokes a perl script to recurse and convert them
into package names.
While I'm here, change the name of targets and move them around a
little bit for the sake of consistency.
It is also probably worth noting here that the meaning of the
"build dependency" list in INDEX has been changed slightly
changed. The old list was "build depends and its build depends"
-- not particularly useful if you had things like autoconf, which
run-depend on gm4 (you install all the things listed here and
you'll get an autoconf that won't run).
It is now "build depends and its run depends" -- you install
everything listed here, and you'll be able to build the port.
Submitted by: steve
(0') Fast README.html generation. It uses ports/INDEX to find
dependencies instead of embarking on to a recursive loop.
Submitted by: steve
(1) Remove NO_WRKDIR and NO_EXTRACT. Their functionality are easily
replacable with NO_WRKSUBDIR=t and EXTRACT_ONLY= (nothing on right
side), and they get in the way of read-only port trees.
(2) Surround first few variable definitions with ".if !defined()".
This will make cross-compilation easier and also speed up make
processes.
(3) Call sysctl with absolute path. Prefer the one in /sbin over the
one in /usr/sbin.
(4) Add four new variables
PKGINSTALL?= ${PKGDIR}/INSTALL
PKGDEINSTALL?= ${PKGDIR}/DEINSTALL
PKGREQ?= ${PKGDIR}/REQ
PKGMESSAGE?= ${PKGDIR}/MESSAGE
and use them in PKG_ARGS. Frobbing with PKG_ARGS directly is
strongly discouraged.
(5) Change PKG_SUFX to ".tar" (instead of ".tgz") if PKG_NOCOMPRESS is
defined. This is intended only for our own use.
(6) Add more sites to MASTER_SITE_GNU.
Submitted by: billf
(7) Override MANUAL_PACKAGE_BUILD if PARALLEL_PACKAGE_BUILD is
defined. This is intended only for our own use.
(8) Add new target "ignorelist" which will print out the package name
if the port is not going to be built on this machine. This is
intended only for our own use.
(9) Make mtree a little quieter.
break one way or another. With it goes the package-loop and the
describe loop.
(2) Add new variable MASTERDIR to make it easier to share files between ports.
bsd.port.mk will find things like ${PKGDIR} underneath
${MASTERDIR} (which defaults to ${.CURDIR}).
(3) Do not allow MD5_FILE to be renamed. Funny things can happen if
you do that.
(4) Use a few more absolute paths in the bsd.port.pre.mk part. I
can't use absolute paths for sysctl because it moved recently.
a few variables that could be used in the port Makefile for ".if exists()"
tests. bsd.port.post.mk defines the rest.
Note: if you define USE_X_PREFIX or USE_IMAKE, put it before including
bsd.port.pre.mk. These are the only two variables used in the first part.
In reality, bsd.port.pre.mk and bsd.port.post.mk just include bsd.port.mk
with special variables to turn part of it off.
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".