shouldn't be set as the environment for a make process invoked at the
package (${.CURDIR}) level during the install phase because it can contain
harmful settings.
putting them all into one large case statement instead of successive if
statements, and by removing the creation and constant testing of a temp
file to mark when the distfile is extracted.
This will pass -mieee to those package which obey CFLAGS and FFLAGS.
paraphrasing an email from Ross:
The executive summary is: if i386 uses it (and
it does) then alpha should also, or some programs will SIGFPE out
on alpha when they don't on i386.
If anyone asks, the details are as follows:
The actual effect of -mieee is to put a software completion code
bit into every floating point instruction, and to put trap barrier
instructions in the code as necessary to ensure that traps are
delivered before branches or other instructions make it impossible
to trace backwards to the trapping op.
The code bits have little effect on the hardware, mainly what
happens is that when the hardware and palcode deliver a trap, they
tell the trap handler whether the faulting op had a completion
code. If it did, the kernel is suppose to trace backwards, find
the op, and interpret it in SW, doing all the wacky ieee stuff that
most chips don't do, stuff like denormal arithmetic and the generation
of magic values (infinity, NaN) and the sticky flags. We do all
that now except for a couple of truly obscure things that SoftFloat
didn't support and which I haven't yet added. (And these are things
that happen ONLY when you are taking overflow and underflow traps,
which no one has every really done AFAICT. If you have the default
behavior of gradual underflow and nontrapping infinity generation,
we do everything.)
This brings up the question of -mieee libraries, but that's not a
pkgsrc problem. (Except to the extent that I recommend that libraries
from pkgsrc, like everything else, also be compiled with -mieee.
And in the case of libraries, it might be worth individually
modifying the Makefile for the "not easy" case.)
The primary purpose is so when a package is broken due to broken depends,
there are links to the build logs of the broken dependencies.
Suggested by Brook Milligan on tech-pkg.
up version of the bare-bones code in PR 7590, from David Maxwell.
The definition governing the type of locking used is PKGSRC_LOCKTYPE,
which can take any of the values "none", "sleep", and "once". The
default is "none". If "sleep" locking is used, and process A is
building a package, when process B attempts to build the same package,
process B will sleep for PKGSRC_SLEEPSECS seconds, and attempt to grab
the lock again.
Coarse-grained locking uses the OBJHOSTNAME definition to ensure that
the PID space is regular for shlock(1) to do its work. The
pkgsrc/pkgtools/shlock package has been provided for environments
where shlock is not standard.
extract all of the files listed in ${EXTRACT_ONLY}. This is so that a
package author doesn't have to grub through bsd.pkg.mk in order to find
how to override the extraction method. Problem noted by Antti Kantee in
private email.
When OBJHOSTNAME is set, the various cache files and log files will include
the hostname in their names. Useful when multiple machines of the same
architecture share pkgsrc.
If set, the first component of the hostname (up to the first '.', if any),
will be appended to "work." to form the WRKDIR_BASENAME.
OBJHOSTNAME takes precedence over OBJMACHINE.
ceremony, as we can use SITES_foo instead, as is now documented in
Packages.txt. The former were only ever used by exactly three packages
(ghostscript, ghostscript-nox11, and kterm).
motivation is to make the order that sites are hit more sane, and
especially to prevent hitting sites that aren't ever expected to have
the sought after file.
Now, ${MASTER_SITE_OVERRIDE} is always hit first. If that fails, then
the sites designated for that file, then ${MASTER_SITE_BACKUP}, are hit
(by default), but with the order subject to ${MASTER_SORT_REGEX} and
${MASTER_SORT_AWK}. The "designated sites" are usually ${MASTER_SITES}
for files in ${DISTFILES}, and ${PATCH_SITES} for files in ${PATCH_FILES}.
However, defining a variable `${SITES_foo}' in the package "Makefile"
overrides that for file "foo". [The use of ${MASTER_SITES_foo} and
${PATCH_SITES_foo}, which is currently only used by a couple of packages
for the same purpose, is deprecated, and will be shortly unsupported.]
Also eliminate redundancy in the do-fetch and fetch-list-one-pkg targets,
by making them use a single, common macro (escaped with `:Q' in the
fetch-list-one-pkg case), so "make fetch-list-one-pkg | sh" now does
exactly the same thing as "make do-fetch".
well as the normal shared objects. This means that the new toolchain, that
links in libgcc_pic.a, will build proper shared objects again.
Bump to nb5 and make this the required version.
Fixes pkg/15120 from Matthias Scheler <tron@colwyn.zhadum.de>
chokes on the construct. This was a pasto that's been there for a while
but was uncaught. Thanks for David Brownlee <abs@netbsd.org> for noting
the problem and the solution.
--suexec-* configure options that are passed directly to the Apache
configure script. This may be used to tune the suEXEC configuration
in more restrictive ways, e.g. --suexec-uidmin=1000. This solution
is more open-ended than the fix proposed in pkg/14973. Also, we
don't duplicate all of the options from the Apache configure script
in pkgsrc bsd.pkg.defaults.mk. This closes pkg/14973 by Eric
Schnoebelen <eric@cirr.com>
(2) For namespace consistency, deprecate APACHE_USER in favor of
APACHE_SUEXEC_USER. Move APACHE_USER into bsd.pkg.obsolete.mk.
(3) Create the suEXEC user when the functionality is enabled in the server
so that CGI scripts will work properly. This closes pkg/14903 by
Wojciech Puchar <wojtek@3miasto.net>
using either the native pthread implementation or using a package pthread
implementation instead, e.g. pth, ptl2, mit-pthreads, etc. The only
currently supported package pthread implementation is pth as it's the only
one with a buildlink.mk file. An example usage is:
USE_PTHREAD= native pth
.include "../../mk/pthread.buildlink.mk"
or a fancier example is:
USE_PTHREAD= native
.include "../../mk/bsd.prefs.mk"
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "none")
CONFIGURE_ARGS+= --without-pthreads
.endif
.include "../../mk/pthread.buildlink.mk"
autoconf-2.5* by touching some more files. Thanks to YAMAMOTO Takashi
<yamt@mwd.biglobe.ne.jp> for pointing out the error in private e-mail.
Also list several packages on which to verify this code after making
changes to the AUTOMAKE*_PATTERNS.
touch some files before the configure script is run, and some more
afterwards. We touch the files afterwards since the configure script can
get modified after it is run, and touching some files afterwards prevents
them from being regenerated if they depend on the configure script.
suffices listed in ${_EXTRACT_SUFFICES}. Currently, _EXTRACT_SUFFICES has
.tar.bz2, .tbz, .tar.gz, .tgz, .tar, .zip, .lzh, and .lha. If the file
doesn't end in any of these suffices, then we use the old code to do the
extraction. This rids us of the mild annoyance where if you have several
distfiles, some ending in .tar.bz2, some in .tar.gz, and others in .zip,
then you have to create a post-extract target to extract all of the ones
not ending in the suffix that you designate in EXTRACT_SUFX.
I've tested this with some representative packages: archivers/gtar-base,
print/cups, www/surfraw, and print/ghostscript-nox11.
as standard.
Hoist the default definition of ${GMAKE} from bsd.pkg.mk into the different
defs.${OPSYS}.mk files.
A non-standard location or name for GMAKE can still be specified in
/etc/mk.conf.
print/lprng, we make a new variable USE_CUPS that is used by packages to
determine whether depend on print/cups and to compile in support for CUPS.
USE_CUPS may be either "YES" or undefined. Deprecate SAMBA_WITH_CUPS as
its purpose is superseded by USE_CUPS. Convert net/samba and net/samba20
to use USE_CUPS and make x11/kdelibs2 respect USE_CUPS.
fact that they don't do anything unless the appropriate variables are set
in rc.conf, people really dislike the warning emitted at startup. For
users that do want the pkg_* tools to handle automatically copying and
removing the rc.d scripts, the mk.conf variable to set is
INSTALL_RCD_SCRIPTS=YES.
the cache files used during a bulk pkgsrc build.
- replace the code in the build script that used to create the cache
files with a 'make bulk-cache' call.
references of the pkglint package.
_PKGSRCDIR is an internal definition in bsd.pkg.mk, and a few packages
which would like to refer to other packages in the build tree. It should
not be set by users, but neither should it stop a user from building a
package if it is defined, so make it obvious that this is the case.
Makefiles during the build process by touching various auto{conf,make}
source files to make them up-to-date. Packages that require regenerating
the configure script and Makefile.in files should make the appropriate
calls to auto{conf,make} in a pre-configure target. This allows the
various targets listed in ${_CONFIG_PREREQ} to modify the generated files
without triggering the GNU auto* tools and having the modifications be
overwritten.
Syntax:
MASTER_SITES_completefilename= http://specific.master/site
and similarly for PATCH_SITES.
Convert print/ghostscript-nox11 and x11/kterm to take advantage of this.
currently only occurs for packages that use bsd.pkg.install.mk.
There are two new targets, pre-install-script and post-install-script, that
default to doing nothing. The order of targets called for a "make install"
is:
pre-install-script
pre-install
do-install
post-install
post-install-script
The new targets are defined in bsd.pkg.install.mk to call the INSTALL
script with the PRE-INSTALL and POST-INSTALL options.
LIBTOOL_OVERRIDE steps into a separate do-libtool-override target. Create
a new variable _CONFIGURE_POSTREQ that currently lists do-libtool-override.
Also add some documentation for the two _CONFIGURE_* variables:
_CONFIGURE_PREREQ is a list of targets to run after pre-configure but before
do-configure. These targets typically edit the files used by the
do-configure target.
_CONFIGURE_POSTREQ is a list of targets to run after do-configure but before
post-configure. These targets typically edit the files generated by
the do-configure target that are used during the build phase.
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.
(even though that's still a bad idea), set USETOOLS=no explicitly before
including <bsd.own.mk>, and add this also to MAKE_ENV to make BSD-Makefile
based packages build properly.
use to set PKGBASE, which is used in the name of the package-specific
config directory override (PKG_SYSCONFDIR.${PKGBASE}). Prior to this, if
PKGNAME wasn't explicitly set in the package, then the override would not
work.
PKG_USERS represents the users to create for the package. It is a
space-separated list of elements of the form
user:group[:[userid][:[descr][:[home][:shell]]]]
Only the user and group are required; everything else is optional,
but the colons must be in the right places when specifying optional
bits. Note that if the description contains spaces, then spaces
should be double backslash-escaped, e.g.
foo:foogrp::The\\ Foomister
PKG_GROUPS represents the groups to create for the package. It is a
space-separated list of elements of the form
group[:groupid]
Only the group is required; the groupid is optional.
This solves the problem of what to do when there is more than one user or
group needed for a package, e.g. qmail. Also add a bit more error-checking
to the INSTALL/DEINSTALL scripts.
now work on Darwin, and then the discussion about allowing spaces in
user/group names, make these scripts work even if the inputs contain
spaces. Yes, this is overkill, but after doing all of the work, I didn't
want to waste it.
This value may be customized in various ways:
PKG_SYSCONFBASE is the main config directory under which all package
configuration files are to be found.
PKG_SYSCONFSUBDIR is the subdirectory of PKG_SYSCONFBASE under which the
configuration files for a particular package may be found.
PKG_SYSCONFDIR.${PKGBASE} overrides the value of ${PKG_SYSCONFDIR} for a
particular package.
Users will typically want to set PKG_SYSCONFBASE to /etc, or accept the
default location of ${PREFIX}/etc.
This obsoletes the use of CONFDIR, which was active for only 6 days, so no
need to have a workaround to still accept old CONFDIR settings.
names of the scripts and is no longer a MLINKS-type variable. The scripts
are copied into ${RCD_SCRIPTS_DIR} which defaults to /etc/rc.d for now.
It's unclear if Linux/Solaris would set RCD_SCRIPTS_DIR to something else.
individual defs.${OPSYS}.mk files, and use them in bsd.pkg.mk.
+ _OPSYS_HAS_MANZ defines whether or not the OS does MANZ handling as standard
+ _PREFORMATTED_MAN_DIR is the name of directory (cat or man) where
preformatted manual pages go.
Rename the internal definitions used in the generation of PLIST files to
start with '_'.
This completes the "generic" changes to bsd.pkg.mk.
many of the tasks that need to be done when package is installed or
deinstalled:
* creating user/group for the package,
* creating and removing directories with special permissions and
ownership,
* copying config files to their final locations, and removing them
at deinstall time if they don't differ from the example ones,
* reminding the package admin of files he may want to customize or
of files/directories he may want to remove.
groups. These commands follow the basic interface of the NetBSD/Solaris
useradd and groupadd programs. For platforms on which these commands don't
exist, either sysutils/user is added as a dependency, or these are set to
${FALSE}, and the package admin is responsible for creating them himself
prior to the installation of a package.
config files should go. It may be overridden on a per-package basis by
defining CONFDIR.${PKGBASE}, e.g. CONFDIR.php. ${CONFDIR} defaults to
${PREFIX}/etc, but it may be overridden in /etc/mk.conf, e.g. by setting
CONFDIR=/etc.
Packages will eventually be altered to find their config files in
${CONFDIR}.