Commit graph

257 commits

Author SHA1 Message Date
joerg
a13b98431e Use variable substitution instead of calling external cut to
compute LOWER_OPSYS_VERSUFFIX.
2007-07-30 14:07:07 +00:00
joerg
a7702e998f Allow the code to resolve the make path to deal with a strictly
local path. E.g. running make as ./make now works.
2007-07-29 18:27:05 +00:00
joerg
910d37bad9 Remove explicit include of sys.mk, which has been made redundant by
jlam's include of bsd.own.mk in June 2002.
2007-07-29 13:17:57 +00:00
jlam
33f30156fb * Add new emulator framework in pkgsrc/mk/emulator that handles all
binary-only packages that require binary "emulation" on the native
  operating system.  Please see pkgsrc/mk/emulator/README for more
  details.

* Teach the plist framework to automatically use any existing
  PLIST.${EMUL_PLATFORM} as part of the default PLIST_SRC definition.

* Convert all of the binary-only packages in pkgsrc to use the
  emulator framework.  Most of them have been tested to install and
  deinstall correctly.  This involves the following cleanup actions:

    * Remove use of custom PLIST code and use PLIST.${EMUL_PLATFORM}
      more consistently.

    * Simplify packages by using default INSTALL and DEINSTALL scripts
      instead of custom INSTALL/DEINSTALL code.

    * Remove "SUSE_COMPAT32" and "PKG_OPTIONS.suse" from pkgsrc.
      Packages only need to state exactly which emulations they support,
      and the framework handles any i386-on-x86_64 or sparc-on-sparc64
      uses.

    * Remove "USE_NATIVE_LINUX" from pkgsrc.  The framework will
      automatically detect when the package is installing on Linux.

  Specific changes to packages include:

    * Bump the PKGREVISIONs for all of the suse100* and suse91* packages
      due to changes in the +INSTALL/+DEINSTALL scripts used in all
      of the packages.

    * Remove pkgsrc/emulators/suse_linux, which is unused by any
      packages.

    * cad/lc -- remove custom code to create the distinfo file for
	all supported platforms; just use "emul-fetch" and "emul-distinfo"
	instead.

    * lang/Cg-compiler -- install the shared libraries under ${EMULDIR}
	instead of ${PREFIX}/lib so that compiled programs will find
	the shared libraries.

    * mail/thunderbird-bin-nightly -- update to latest binary
	distributions for supported platforms.

    * multimedia/ns-flash -- update Linux version to 9.0.48 as the
	older version is no longer available for interactive fetch.

    * security/uvscan -- set LD_LIBRARY_PATH explicitly so that
	it's not necessary to install library symlinks into
	${EMULDIR}/usr/local/lib.

    * www/firefox-bin-flash -- update Linux version to 9.0.48 as the
	older version is no longer available for interactive fetch.
2007-07-29 05:18:36 +00:00
joerg
a0378cffcb Kill code to catch Zoularis installations. It is three years old and
anyone still having such an old installation has other issues like nbawk
anyway.
2007-07-20 22:40:56 +00:00
joerg
462c1fc51c Drop trailing components like -RELEASE for FreeBSD like we do for
DragonFly. This fixes the version number of lsof as side effect.
2007-07-17 09:20:18 +00:00
rillig
36fa355d50 Add some more keywords, so that one can grep for "mk.conf" and find the
relevant code that loads the configuration.
2007-05-29 14:48:49 +00:00
rillig
4b4f995744 On Cygwin, OS_VERSION contains special characters, so it needs the :Q
operator. An example version is 1.5.24(0.156/4/2).
2007-05-07 22:16:04 +00:00
joerg
5f35b1a543 Fix last commit to really save forks at mentioned by rillig@:
OPSYS needs to be evaluated in-place, so use :=.
2007-04-17 19:45:35 +00:00
tnn
05620458c7 Save a fork() by not invoking the 'tr' utility.
XXX: the OS_VERSION stuff could use a similar cleanup, replacing
tr A-Z a-z occurences with the make :tl modifier.
2007-04-17 10:48:29 +00:00
tnn
146da1286c Teach pkgsrc about HP-UX. 2007-04-14 14:17:49 +00:00
tnn
b06ac8fff5 Set correct OBJECT_FMT on OSF1. 2007-04-11 19:09:24 +00:00
wiz
3e1a000ebc Remove unused SCRIPTDIR variable. 2007-03-01 18:21:31 +00:00
tonio
2a3096f51c Make sure MACHINE_ARCH is set to x86_64 for FreeBSD-amd64 2007-02-16 16:09:23 +00:00
joerg
64fb99a6c0 Move USE_XPKGWEDGE handling to bsd.prefs.mk. The logic depends on
X11_TYPE and some other settings which can overriden by the platform
defaults. This has the nice side effect of simplifying the handling
in bsd.prefs.mk. Discussed with and reviewed by wiz@. Keep the
documentation for USE_XPKGWEDGE in defaults/mk.conf as suggested by
salo@.
2006-12-27 14:29:45 +00:00
joerg
79c5c99c4d For modular Xorg disable xpkgwedge (will be made a hard error later).
Don't add ${X11BASE}/bin to PATH, don't include mk/x11.buildlink3.mk
when USE_X11BASE is set and don't use BUILDLINK_X11_DIR and related
magic.

OKed by wiz@
2006-12-20 01:04:46 +00:00
joerg
5b374e445d Main infrastructure for DESTDIR support.
Packages may set PKG_DESTDIR_SUPPORT to either "destdir" or
"user-destdir" to flag support for this, following the same
rules as PKG_INSTALLATION_TYPES (e.g. define before first include
of bsd.prefs.mk).

The user activates it via USE_DESTDIR. When set to "yes",
packages with "user-destdir" are handled as "destdir".
The installation of the package will not go to ${LOCALBASE},
but a subdirectory of ${WRKDIR} instead. pre/post install scripts are
not run and the package is not registered either. A binary package
can be created instead to be installed normally with pkg_add.

For "user-destdir" packages, everything is run as normal user and
ownership is supposed to be correctled by pkg_create later. Since
the current pkg_install code uses pax and it doesn't allow overwriting
owners, this does not work yet.

For "destdir" packages, installation, packaging and cleaning is run as
root.

This commit does not change the handling of DEPENDS_TARGET or
bin-install to allow recursive usage.
2006-10-09 12:25:44 +00:00
joerg
a8e7008902 Add variable to control whether the install target is run as root. 2006-10-09 11:59:08 +00:00
joerg
977a821a8f Add two variables to control whether make package and make clean
are run with elevated privileges. Remove MAKE_PACKAGE_AS_ROOT
for now, since it is not sure whether the functionality in the current
form will stay and developers should spend time on the destdir support
instead.
2006-10-09 11:44:06 +00:00
joerg
1a3ea34a13 Remove references to DESTDIR. LOCALBASE should not be altered that way,
since it is user settable and most of the time set by the user.
X11BASE follows the same reasons. For staged installations, we don't
want to register the package directly, so there's no need to prefix
PKG_DBDIR either.
2006-10-06 14:51:36 +00:00
joerg
3675902ba1 Remove XFree86. 2006-09-27 15:18:12 +00:00
joerg
7545d135e6 - Compute CHEKCK_FILES filter on the entries requested and keep it
as tight as possible. Files we don't handle shouldn't be skipped.
- fonts.alias is not created automatically, so don't remove it.
- create fonts.encoding with mkfontdir using -e X11_ENCODINGSDIR.
  On platforms not following the X11R6 loayout this might need to
  be overriden.
- Fix type1inst calls.
- Modify packages which installed fonts.alias before to actually
  include it in the PLIST and bump the revisions accordingly.
- Modify xorg-fonts* packages to use FONTS_DIRS.* to build indices
  at run time.

Discussed with wiz and jlam.
2006-09-22 21:53:56 +00:00
schwarz
cb784f6e64 cosmetic change 2006-09-10 20:19:39 +00:00
schwarz
aa38134c13 ${X11BASE} can now be set to /usr, so just do so for IRIX and OSF1. No need
for any artificial symlinking any more in bootstrap.
2006-09-10 20:14:43 +00:00
schwarz
0f4045fde0 spelling correction 2006-08-26 19:07:00 +00:00
schwarz
b309575681 X11_TYPE being undefined cannot occur thanks to the preceeding line 2006-08-26 18:55:43 +00:00
jlam
c489860d62 Whenever we invoke a recursive make, we need to ensure that the proper
environment ${PKGSRC_MAKE_ENV} is also passed along.  Create a
convenience variable RECURSIVE_MAKE that does exactly this and that
can be used in place of MAKE when invoking make recursively.

Use RECURSIVE_MAKE everywhere in pkgsrc/mk that we invoke make
recursively.
2006-07-27 21:46:45 +00:00
wiz
ad211bc06f Remove stale comment, noted by bad@ in PR 33871. 2006-07-17 18:07:06 +00:00
jlam
7a2c97d53f * Add a new stage "bootstrap-depends" that happens before all other
stages, and that installs dependencies listed in BOOTSTRAP_DEPENDS.
  The bootstrap-depends step works just like the normal depends step
  and honors the value of DEPENDS_TARGET.  It's now possible to add
  dependencies solely to facilitate fetching the distfiles, e.g.

	BOOTSTRAP_DEPENDS+=	curl-[0-9]*:../../www/curl

* Teach the tools framework about ":bootstrap" as a tools modifier
  which indicates the tool should be added as a dependency via
  BOOTSTRAP_DEPENDS.

* Add "digest" to the tools framework.

* Use USE_TOOLS+=digest:bootstrap to force pkgsrc to install digest
  before anything else.  Get rid of unused "uptodate-digest" target
  and related digest version-checking code.

* Finish the refactoring work: split checksum-related code out of
  bsd.pkg.mk and into pkgsrc/mk/checksum and replace the "checksum"
  target command list with a script that does all the real work.

* Make DIGEST_ALGORITHMS and PATCH_DIGEST_ALGORITHM into private
  variables by prepending them with an underscore.  Also, rename
  _PATCH_DIGEST_ALGORITHM to _PATCH_DIGEST_ALGORITHMS and adjust the
  makepatchsum target to allow that variable to contain a list of
  algorithms, all of which are used when creating the patch checksums
  for ${DISTINFO_FILE}.
2006-07-13 14:02:34 +00:00
jlam
06be53fba4 Completely nuke the concept of PKG_PHASE from pkgsrc except for the
purposes of caching MAKEVARS within bsd.pkg.mk and bsd.makevars.mk.
2006-07-10 22:59:26 +00:00
jlam
eb27d05acd Back out revision 1.172 of mk/tools/replace.mk -- we never want to
allow IMAKE to be set by anything other than the tools framework.
Modify the IRIX files so that the native imake is listed as a built-in
tool in the case where X11_TYPE is "native".  Also, move the include
of tools/default.mk a bit lower in bsd.prefs.mk so that tools.${OPSYS}.mk
files can use the value of X11_TYPE.  This should properly set and
point IMAKE to the right binary on IRIX without destroying the
configuration for platforms where IMAKE was not explicitly set, i.e.
every non-IRIX platform.
2006-07-10 22:17:58 +00:00
jlam
3058ace76f Move some variable definitions out of bsd.prefs.mk and back into
bsd.pkg.mk.  They didn't actually need to be defined in bsd.prefs.mk,
just somewhere before the "main" bsd.<phase>.mk files were included.
This moves some conditional (?=) definitions back into bsd.pkg.mk so
they won't conflict with any conditional definitions in package
Makefiles.

This should fix the "checksum" problems in lang/php-gd as noted here:

    http://mail-index.netbsd.org/pkgsrc-users/2006/06/05/0012.html

where EXTRACT_SUFX had the wrong value due to the order in while *.mk
files were included.
2006-06-06 15:28:51 +00:00
jlam
cd1230e8e3 Separate out the part of bsd.tools.mk that actually created the tools
into a new file pkgsrc/mk/tools/create.mk.  This leaves bsd.tools.mk
as a file that pulls in all of the other ones.  Also move the
tools-related targets from bsd.pkg.mk into bsd.tools.mk.

The tools cookie file has been removed, as well as hooks for
{pre,do,post}-tools.  Instead, there is now only a single public target
"tools" which may be invoked.  Invoking "tools" will always cause all
of the tools in ${TOOLS_DIR} to be created.

The "tools" step has been moved and is now just after the "depends"
step and before sources are extracted.  This is the earliest place
where the "tools" step can be taken, and it allows the created tools
to be used in all steps/phases after it, starting with "extract".  As
a consequence, we should just invoke tools by their bare names in
targets, e.g. awk, sed, patch, etc., instead of with the ${VARIABLE}
names, e.g. ${AWK}, ${SED}, ${PATCH}, etc.
2006-06-06 06:30:29 +00:00
jlam
627dc60046 Refactor "patch" code into correspondingly named subdirectory of
pkgsrc/mk.  Also get rid of the recursive make for the "patch" target.
This basically merges the "patch" phase into the "tools" phase.

There should eventually be a standalone script that can be used to
verify checksums listed in distinfo that should be used instead of
the roll-your-own code in the do-pkgsrc-patch target.
2006-06-06 04:48:19 +00:00
jlam
c78510391e Refactor "fetch" and "extract" code into correspondingly named
subdirectories of pkgsrc/mk.  Move the following files around for
locality:

	pkgsrc/mk/scripts/extract  -> pkgsrc/mk/extract/extract
	pkgsrc/mk/bsd.sites.mk     -> pkgsrc/mk/fetch/sites.mk

Also get rid of the recursive make for the "fetch" and "extract"
targets.  This basically merges the "fetch" and "extract" phases into
the "patch" phase.

There is still much more work to do to simplify the fetch code, but
this is a good start.
2006-06-06 03:05:48 +00:00
joerg
ed8841d0fd Move the default value of X11_TYPE from x11.version.mk into
bsd.prefs.mk. Add a coment to defaults/mk.conf, why the entry should
be left commented out there.
2006-06-05 17:11:37 +00:00
jlam
e5eb2c56af First pass at implementing support for package system flavors other
than pkgsrc's current one.  This is an important lead-up to any project
that redesigns the pkg_* tools in that it doesn't tie us to past design
(mis)choices.  This commit mostly deals with rearranging code, although
there was a considerable amount of rewriting done in cases where I
thought the code was somewhat messy and was difficult to understand.

The design I chose for supporting multiple package system flavors is
that the various depends, install, package, etc.  modules would define
default targets and variables that may be overridden in files from
pkgsrc/mk/flavor/${PKG_FLAVOR}.  The default targets would do the
sensible thing of doing nothing, and pkgsrc infrastructure would rely
on the appropriate things to be defined in pkgsrc/mk/flavor to do the
real work.  The pkgsrc/mk/flavor directory contains subdirectories
corresponding to each package system flavor that we support.  Currently,
I only have "pkg" which represents the current pkgsrc-native package
flavor.  I've separated out most of the code where we make assumptions
about the package system flavor, mostly either because we directly
use the pkg_* tools, or we make assumptions about the package meta-data
directory, or we directly manipulate the package meta-data files, and
placed it into pkgsrc/mk/flavor/pkg.

There are several new modules that have been refactored out of bsd.pkg.mk
as part of these changes: check, depends, install, package, and update.
Each of these modules has been slimmed down by rewriting them to avoid
some recursive make calls.  I've also religiously documented which
targets are "public" and which are "private" so that users won't rely
on reaching into pkgsrc innards to call a private target.

The "depends" module is a complete overhaul of the way that we handle
dependencies.  There is now a separate "depends" phase that occurs
before the "extract" phase where dependencies are installed.  This
differs from the old way where dependencies were installed just before
extraction occurred.  The reduce-depends.mk file is now replaced by
a script that is invoked only once during the depends phase and is
used to generate a cookie file that holds the full set of reduced
dependencies.  It is now possible to type "make depends" in a package
directory and all missing dependencies will be installed.

Future work on this project include:

    * Resolve the workflow design in anticipation of future work on
      staged installations where "package" conceptually happens before
      "install".

    * Rewrite the buildlink3 framework to not assume the use of the
      pkgsrc pkg_* tools.

    * Rewrite the pkginstall framework to provide a standard pkg_*
      tool to perform the actions, and allowing a purely declarative
      file per package to describe what actions need to be taken at
      install or deinstall time.

    * Implement support for the SVR4 package flavor.  This will be
      proof that the appropriate abstractions are in place to allow
      using a completely different set of package management tools.
2006-06-03 23:11:42 +00:00
minskim
5f391d7eae Set LOWER_OPSYS_VERSUFFIX on Darwin. 2006-03-08 01:56:46 +00:00
joerg
3152d1d992 Don't include define lower opsys version for the host name, e.g. use
i386-pc-dragonflybsd instead of i386-pc-dragonflybsd1. Saves a few
forks and execs and makes DragonFly more homogenous with NetBSD.
2006-02-02 13:46:37 +00:00
joerg
80a031e2e2 Remove branch tag from DragonFly version, so that OS_VERSION matches
autoconf's normalisation.
2006-01-12 14:57:19 +00:00
markd
f62733a6ab X11BASE defaults to /usr/openwin on Solaris, but only when using the
native X11_TYPE.  Allow X11BASE to default correctly on Solaris when
X11_TYPE= XFree86 or xorg.
2005-12-29 21:18:11 +00:00
abs
ad6b3c049a Set PATH if not already set at the top of bsd.prefs.mk, just before
using it in a test to set _MAKE. With this change pkgsrc works on
NetBSD/i386 3.0 to build with an empty environment (env -i sh).
Tested with my ~100 favourite server packages. Does not affect
the case when PATH is already set. To have a per OPSYS default path
the include of platform/${OPSYS}.mk will probably need to be at
the top of bsd.prefs.mk - arguably it should be there already.

There are bound to be assumptions made by some packages which will
be broken by an empty env, but the bulk of pkgsrc and in particular
the infrastructure works fine.
2005-12-28 01:00:46 +00:00
rillig
999f8b6e04 Applied all quoting fixes found by "pkglint --autofix". 2005-12-05 22:07:07 +00:00
wiz
9276068400 Remove handling for obsolete USE_SOCKS variable. 2005-12-02 17:08:49 +00:00
rillig
8aa9fa14c2 Prefixed the definitions for the pkgtools with ${SETENV}. Now it is
possible to use these commands in shell programs by assigning the output
of `make show-var VARNAME=PKG_DELETE` to a shell variable.
2005-11-28 21:46:47 +00:00
rillig
540fef101e Properly quote _PKG_DBDIR. 2005-11-24 13:24:10 +00:00
erh
4d2fdd7bd5 Per request, back out all the SKIP_AUDIT_PACKAGES changes.
bsd.pkg.mk:1.1758-1.1752
bsd.prefs.mk:1.210
bulk/build:1.79
defaults/mk.conf:1.93-1.92
2005-11-23 18:27:13 +00:00
erh
e2097e6bcd Improve the handling of allowed vulnerabilities. Instead of the single
ALLOW_VULNERABLE_PACKAGES settings that applies to all packages, there can
now be per-package lists of allowed vulnerability ids:
	ALLOW_VULNERABILITIES.<pkgname>=<space separated list of vulnids>

To avoid duplication of code, audit-packages is now used to do these checks.
It can be skipped altogether by setting:
	SKIP_AUDIT_PACKAGES=yes
2005-11-16 20:59:22 +00:00
rillig
5fece5854d Removed trailing white-space. 2005-11-14 04:50:47 +00:00
rillig
7f106c7742 Reverted the change that moved the definition of MANINSTALL from mk.conf to
bsd.prefs.mk. Alistair has told me that Stoned had told him that MANINSTALL
actually belongs to mk.conf.
2005-11-13 17:40:00 +00:00