Age | Commit message (Collapse) | Author | Files | Lines |
|
to work with option-less packages.
|
|
|
|
package which includes "bsd.options.mk" via its own "options.mk" and
via "graphics/gimp/buildlink3.mk".
|
|
Remember .include "foo.mk" is looked for (first) in the directory that
contains the makefile being processed (like in C), so remove all the
${.PARSEDIR} and ../ sequences that just cause grief.
|
|
|
|
Solaris' /bin/sh.
|
|
the makefile and simply handle it in the shell code. This allows for
appending to PKG_OPTIONS_DEPRECATED_WARNINGS in a makefile even after
bsd.options.mk is included.
|
|
other conditionals. Indented all conditionals according to pkglint's
idea of correct indentation.
All packages that use this file must also have some options. Otherwise,
why should they use it at all?
All errors are _appended_ to PKG_FAIL_REASON, instead of overwriting
older ones.
|
|
|
|
makes "double quotes" visible when they are accidentally included by the
pkgsrc user.
|
|
supported-options-message. ok with wiz.
|
|
|
|
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.
|
|
and that is 3 make process to run...
make show-options; v=$(make show-var VARNAME=PKG_OPTIONS_VAR); echo $v=$(make sh
ow-var VARNAME=$v)
Hence add trailing part about PKG_OPTIONS_VAR and its value to
show-options target like the one found in supported-options-message target.
|
|
package.
|
|
options, e.g. x11/xorg-server, by wordwrapping the output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set must be selected, requested and reviewed by wiz:
PKG_OPTIONS_NONEMPTY_SETS
This is a list of names of sets of options. At
least one option from each set must be selected.
The options in each set are listed in
PKG_OPTIONS_SET.<setname>. Options from the sets
will be automatically added to PKG_SUPPORTED_OPTIONS.
|
|
|
|
option is used. Noted by adrianp.
|
|
(as may be the case if all options are platform specific). In that
case set PKG_OPTIONS to empty and skip the rest of the file.
Okayed by jlam.
|
|
|
|
|
|
|
|
PKG_LEGACY_OPTIONS
PKG_OPTIONS_DEPRECATED_WARNINGS
|
|
While here, rename _cls_ to _grp_, as they are called groups.
|
|
|
|
|
|
mk/defaults/obsolete.mk so socks and kerberos work when listed in
groups
|
|
|
|
PKG_OPTIONS_REQUIRED_GROUPS and PKG_OPTIONS_OPTIONAL_GROUPS.
|
|
found by jmmv.
|
|
|
|
something other than [yY][eE][sS].
If a deprecated warning is defined, interpret it as YES (because some
variables in defaults/mk.conf have defined/not defined as yes/no).
Reviewed by dillo.
|
|
Many package options influence the dependencies, so this order is more
likely to be useful.
|
|
target.
|
|
option names:
PKG_OPTIONS_LEGACY_OPTS+= old:new
If PKG_DEFAULT_OPTIONS or PKG_OPTIONS.foo contains option old (or
-old) it is rewritten to new (or -new) and a warning is issued by
the supported-options-message target.
|
|
|
|
add support for negative options in PKG_OPTIONS_LEGACY_VARS (NO_FOO:-foo)
undef temporary variables after for loop
|
|
|
|
right in each variable, starting with the most generic one. Later
definitions override earlier ones. This makes the ``order'' testcase in
regress/pkg-options succeed.
|
|
is undefined. This avoids many unnecessary make(1) warnings. As this file
is only intended to be used from packages, don't look for obsolete.mk in
other directories than ../../mk/defaults/.
|
|
- PKG_SUGGESTED_OPTIONS (set by pkg maintainer in pkg Makefile)
lists options enabled by default.
- PKG_DEFAULT_OPTIONS (set by user in /etc/mk.conf)
enables or disables (when prefixed with `-') options for
all packages, takes precedence over PKG_SUGGESTED_OPTIONS
- PKG_OPTIONS.foo (set by user in /etc/mk.conf)
enables or disables (when prefixed with `-') options for
a specific package, takes precedence over PKG_DEFAULT_OPTIONS
and PKG_SUGGESTED_OPTIONS
Also simplify conversion of legacy USE_XXX variables to options
via the new PKG_OPTIONS_LEGACY_VARS variable and emit warnings if
legacy variables are in use.
Add a new target describe-options that lists all supported options
with a one-line description, the options enabled by default and
the currently enabled optoions.
Reviewed by jlam and wiz.
XXX: defaults/options.description has to be filled in
XXX: the pkgsrc guide has to be updated
|
|
different lines to the word-wrap script.
|
|
nicely.
|