84 Commits

Author SHA1 Message Date
manu
ec1212e9be pkgbase: Replace / with | for PKG_WWW
PKG_WWW contain / char, replace the delimiter by a '|'.

Reported by:	0mp
2020-08-11 10:07:59 +00:00
manu
74f10f6149 pkgbase: Add PKG_NAME_PREFIX, PKG_MAINTAINER and PKG_WWW
This is useful for downstream users to customize the packages.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D26019
2020-08-11 08:42:24 +00:00
manu
91ddef8163 pkgbase: Fix dependancies
The package name is converted with _ instead of - as we have some variables
that cannot contain -
Convert back the dependancies with - instead of _
2020-08-07 10:20:39 +00:00
manu
65a2cb70a1 pkgbase: Remove vcs revision from kernel and runtime comment
This is not needed and we don't do that for other packages.
2020-08-06 16:11:30 +00:00
emaste
bf7cdb971e pkgbase: use -dev,-dbg instead of -development,-debug
-development is long and awkward, and is also inconsistent with prior art
from the Linux world, which uses -dev (Debian) or -devel (Red Hat).  Follow
the Debian convention, and similarly for debug info packages.

Also remove redundant pkgbase development tag from includes.  We already tag
include files with package=runtime,dev; there is no need to separately tag
them as dev.

Discussed with:	bapt
Reviewed by:	manu
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D24139
2020-05-20 19:45:22 +00:00
kevans
eec8d756c4 pkgbase: remove logic for _profile packages
We don't produce these anymore as of r356797, remove the remnant in
generate-ucl.sh that accounted for them. This isn't strictly necessary, but
future work is needed for the various packages that can be generated on a
lib build.

Namely, we may produce -development packages for private/internal libs that
should be installed but won't have the base FreeBSD-libfoo pkg to depend on
because it's internal (e.g. liby, libpmcstat, libifconfig) but we want the
headers installed. It may be a better move to just shove these into
-runtime-development instead, but if not then we've just simplified the
cases that need to take private/internal libs into account.
2020-03-02 15:58:50 +00:00
kevans
3eb80f7c7b caroot pkg: pass through the pkg -r rootdir as DESTDIR
If we're trying to bootstrap a different root with pkgbase, we should be
doing the right thing with caroot.
2020-02-19 02:35:43 +00:00
kevans
3a9e60ae35 pkgbase: generate dependencies in generate-ucl.sh
This cuts out a large chunk of duplicated *.ucl files that just needed
dependencies tacked on, and gives generate-ucl.sh some leeway in case a
future pkg may need more than one dependency.

Run-through to determine which ones could simply be removed done with for i
in *.ucl; do diff -U3 template.ucl ${i}; done | less and inspecting for any
differences beyond just adding deps at the end. The remaining ucl files are
basically all differently-licensed, require scripts, or are marked vital.

I've opted to remove %PKGDEPS% entirely without regard for third-party ucl,
as pkgbase is not yet considered production. However, I do not hold a strong
position on this and there is approximately 0 chance it will return.

clibs should have been added previously in generate-ucl.sh as one that
doesn't have any dependencies, but do so now that we would otherwise be
tacking on the runtime dependency.

Reviewed by:	manu, bapt (earlier version)
Differential Revision:	https://reviews.freebsd.org/D23415
2020-01-30 03:01:00 +00:00
kevans
5dd1654222 pkgbase: fix caroot packaging and add post-install script
The original intention for caroot was to be packaged separately, perhaps so
that users can have a more/less conservative upgrade policy for this
separated from the rest of base.

secure/caroot/Makefile doesn't have anything interesting to package, but its
subdirectories might. Move the PACKAGE= to Makefile.inc so both blacklisted
and trusted get packaged consistently into the correct one rather than the
default -utilities. Also tag the directories for package=caroot, as they
could also be empty; blacklisted is empty by default, but trusted is not.

Add a post-install script to do certctl rehash, along with a note should we
eventually come up with a way to detect that files have been added or
removed that requires a rehash.

-caroot gets a dependency on -utilities, as that's where we provide certctl
at the moment. We can perhaps reconsider this and put certctl into this
package in the future, but there are some bits within -utilities that
unconditionally invoke certctl so let's hold off for now.

Reviewed by:	manu (earlier version, before -utilities dep added)
Differential Revision:	https://reviews.freebsd.org/D23352
2020-01-29 18:47:08 +00:00
kevans
8118b1fa4b pkgbase: kill off clibs.ucl and docs.ucl
These are just direct copies of the template. If they don't exist but are
attempted to be used, generate-ucl.sh will simply fallback to the template
anyways. Let it do so to reduce potential maintenance burden.
2020-01-29 16:24:16 +00:00
manu
02ea78cd29 pkgbase: Move cap_mkdb from runtime to utilities POST-INSTALL
Since login and login.conf moved to the utilities packages move also
the post-install related commands.

Reported by:	mj-mailinglist@gmx.de
Reviewed by:	bapt
2019-09-16 12:51:30 +00:00
manu
a77ce411ec pkgbase: Create a FreeBSD-utilities package and make it the default one
The default package use to be FreeBSD-runtime but it should only contain
binaries and libs enough to boot to single user and repair the system, it
is also very handy to have a package that can be tranform to a small mfsroot.
So create a new package named FreeBSD-utilities and make it the default one.
Also move a few binaries and lib into this package when it make sense.
Reviewed by:	bapt, gjb
Differential Revision:	https://reviews.freebsd.org/D21506
2019-09-05 14:15:47 +00:00
manu
52748382d3 pkgbase: Move rc scripts and related files to their own packages
It doesn't need to be in runtime and might help people who want to
experiment with other rc system or don't use one (like in small
embedded mfsroot).

Reviewed by:	bapt, gjb
Differential Revision:	https://reviews.freebsd.org/D21499
2019-09-05 14:08:45 +00:00
manu
6fc9569fab pkgbase: Move the bootloader related files to a new FreeBSD-bootloader package
Bootloader file isn't needed for jails so don't include it in FreeBSD-runtime.

Reviewed by:	bapt, delphij, gjb
Differential Revision:	https://reviews.freebsd.org/D21496
2019-09-05 14:06:01 +00:00
manu
3628c70daa pkgbase: Add a FreeBSD-bluetooth package
Move the bluetooth related files from FreeBSD-runtime to a new package named
FreeBSD-bluetooth
The FreeBSD runtime is only intended to have everything for a working
FreeBSD installation and bluetooth isn't needed for that.

Reviewed by:	bapt, gjb
Differential Revision:	https://reviews.freebsd.org/D20959
2019-07-19 15:10:03 +00:00
manu
0d9efd729e pkgbase: Add a FreeBSD-hostapd package
Move the hostapd related files from FreeBSD-runtime to a new package n
FreeBSD-hostapd
The FreeBSD runtime is only intended to have everything for a working
FreeBSD installation and hostapd isn't needed for that.

Reviewed by:	bapt, gjb
Differential Revision:	https://reviews.freebsd.org/D20958
2019-07-19 15:09:00 +00:00
manu
cb1a441743 pkgbase: Add a FreeBSD-wpa package
Move the wpa related files from FreeBSD-runtime to a new package named
FreeBSD-wpa
The FreeBSD runtime is only intended to have everything for a working
FreeBSD installation and wpa isn't needed for that.

Reviewed by:    bapt, gjb
Differential Revision:  https://reviews.freebsd.org/D20957
2019-07-19 15:07:30 +00:00
brd
aad9103efa Simplify using bsd.endian.mk and have it provide CAP_MKDB_ENDIAN, since it is
the most common usage.

Approved by:	bapt (mentor)
2018-06-28 13:48:59 +00:00
brd
99a956a88b Chase the pwd_mkdb endian changes.
Approved by:	bapt (mentor)
2018-06-27 19:10:32 +00:00
kevans
1bbebcb5fb pkgbase: Fix post-install script for kernel packages
kernel.ucl uses a hardcoded boot/kernel for kldxref, which is the incorrect
directory when we're installing extra kernels that aren't the "default"
kernel (placed at boot/kernel).

Fix this by instead using a new %KERNELDIR% that we now replace in
Makefile.inc1 with "kernel" for the default kernel and "kernel.${_kernel}"
for these extra kernels so that, e.g. /boot/kernel.SHIVA, will get properly
kldxref'd upon update and avoid outdated linker.hints.

Reviewed by:	gjb
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D14689
2018-03-14 14:45:57 +00:00
brd
223aefb522 Add missing call to services_mkdb to build the services.db
Approved by:	gjb
2017-11-19 02:16:11 +00:00
gjb
267512969e Revert r322327, r322352, r322358:
Disconnect the dependency on the kernel package from the runtime
package.  There are a number of problems here:

 1) The runtime package installed into a chroot or a jail would
    include the kernel package, changing the behavior of how jails
    work now [1];

 2) As result of (1), it is possible a binary may incorrectly
    resolve kernel symbols [2]; in addition, it is possible there
    will be unexpected fallout with 32-bit jails on a 64-bit host
    kernel [2].

Noticed by:	brd [1]
Discussed with:	kib [2]
MFC after:	3 days
MFC note:	record-only to wipe from the merge tracker
Sponsored by:	The FreeBSD Foundation
2017-08-15 15:13:33 +00:00
gjb
91f843908c Add SVNVERSION_CMD to bsd.own.mk, adding the capability to include
svnversion metadata to the runtime and kernel packages.

Instead of traversing src/sys, as is done by newvers.sh for uname(1),
a full tree walk is done to prevent userland and/or modifications
from not being reflected in a modified tree (M).

MFC after:	5 days
Sponsored by:	The FreeBSD Foundation
2017-08-11 19:21:40 +00:00
gjb
e8113c7788 Further revise r322327 and r322352 in release/packages/kernel.ucl.
Use PPID and PID to kill off the pre-install and parent pkg(8)
processes unless 'Y' or 'y' are entered at the prompt if the user
wants to proceed with upgrading the kernel and userland at the same
time.

This restores some of the logic and intent of r322327, with the
caveat of printing "child process terminated unexpectedly."

MFC after:	5 days
MFC with:	r322327, r322352
Sponsored by:	The FreeBSD Foundation
2017-08-10 13:32:04 +00:00
gjb
6886726d7a Revise part of r322327 in release/packages/kernel.ucl.
It appears I misunderstand process forking and signal handling in
how the pre-/post-install scripts are executed internally by pkg(8).
In some cases (not all), ^C when prompted to cancel the kernel
package update will stop the pre-install script from executing, but
allow pkg(8) to continue extracting the package when it is not the
intent.

In order to keep somewhat of an anti-footshooting measure in place,
print the recommendation to install the kernel package first if
ASSUME_ALWAYS_YES is false and TERM is set, then sleep for 5 seconds
to allow the user to see the message.

MFC after:	5 days
MFC with:	r322327
X-MFC-Note:	Maybe not until I am happy with this..
Sponsored by:	The FreeBSD Foundation
2017-08-10 12:30:34 +00:00
gjb
4f9c266193 Add a dependency on the kernel package for the runtime package.
The idea here is that, provided upstream pkg(8) maintainers accept
the proposed change, the kernel.ucl will contain a post-install
script causing pkg(8) to emit a message informing to reboot the
system after the kernel is upgraded using 'pkg upgrade', so the
new userland is installed on the running new kernel.  At present,
this functionality does not exist in pkg(8), but will help ensure
the upgrade path follows that from UPDATING.  To work around this
for now, evaluate ASSUME_ALWAYS_YES, and prompt the user if they
wish to proceed if not set to true.

Since there is a kernel dependency, and a non-GENERIC kernel may
be in use, update Makefile.inc1 to replace '%KERNCONF%' in the
runtime.ucl with the first-built kernel set either via command line
or in make.conf(5).

MFC after:	5 days
Sponsored by:	The FreeBSD Foundation
2017-08-09 19:16:54 +00:00
gjb
9ef2838138 Fix permissions on /tmp when installing the runtime package.
Reported by:	many
Patch by:	Kyle Evans
PR:		217574
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2017-03-08 18:52:40 +00:00
dim
0e604e79ff Fix packaging for clang, lldb and lld 3.9.0
During the upgrade of clang/llvm etc to 3.9.0 in r309124, the PACKAGE
directive in the usr.bin/clang/*.mk files got dropped accidentally.

Restore it, with a few minor changes and additions:
* Correct license in clang.ucl to NCSA
* Add PACKAGE=clang for clang and most of the "ll" tools
* Put lldb in its own package
* Put lld in its own package

Reviewed by:	gjb, jmallett
X-MFC-With:	309124
Differential Revision: https://reviews.freebsd.org/D8666
2016-11-28 20:13:56 +00:00
gjb
3f405f2e4f Set the 'vital' flag on the runtime and jail packages.
The default pkg(8) from pkg.freebsd.org requires libjail.so,
so mark the jail package as vital along with the runtime
package to avoid errors when libjail.so is removed.  This is
a no-op for systems with WITHOUT_JAIL in src.conf(5) and pkg(8)
built from the Ports Collection.

In order to make this work without marking packages such as
the jail-lib32, for example, the jail.ucl file needed to be
split out into separate files similarly to the runtime-*.ucl
files.

Glanced at by:	brd
MFC after:	5 days
Sponsored by:	The FreeBSD Foundation
2016-11-21 23:29:28 +00:00
gjb
8c59d45118 Add (commented) 'vital' flag to the runtime packages. Support for
it is expected in pkg-1.8.0, which will cause 'pkg del -afy' to not
destroy a system by forcefully removing everything.

As there are valid use cases for doing such (test jails, for example),
it will be overrideable.

In addition, ensure /dev and /tmp exist, as /dev is not created by
default currently, and pkg(8) requires /tmp to exist, which is also
not created by default.

This needs to be moved to the clibs package, since runtime depends on
that package, however I need to first verify that it will work as it
is expected.

Sponsored by:	The FreeBSD Foundation
2016-05-10 00:38:14 +00:00
gjb
a78b912593 Prefix lib32, profile, debug, and development packages
with 'runtime-' for consistency with other packages.

Sponsored by:	The FreeBSD Foundation
2016-03-08 18:31:26 +00:00
gjb
b476e22629 Create a package for HAST.
Sponsored by:	The FreeBSD Foundation
2016-02-08 21:15:07 +00:00
gjb
c7fe96a894 Add comment/description for clibs, rescue, and sendmail packages.
Sponsored by:	The FreeBSD Foundation
2016-02-08 18:44:26 +00:00
gjb
eb6138da6b Sort.
Sponsored by:	The FreeBSD Foundation
2016-02-08 18:42:33 +00:00
gjb
b0e9473946 Remove libc, librtld_db, libthr packages, and further increase
the constraints on what needs to be installed in a specific to
maintain consistency during upgrades.

Create a new clibs package containing libraries that are needed
as a bare minimum for consistency.

With much help and input from:	kib
Sponsored by:	The FreeBSD Foundation
2016-02-05 21:01:08 +00:00
gjb
c79add5f1b Mark shlibs_required/shlibs_provided lines as temporary, following
brief discussion with bapt.

Sponsored by:	The FreeBSD Foundation
2016-02-04 21:27:03 +00:00
gjb
338586e6a1 Add package files for libc, libedit, librtld_db, and libthr.
libedit is needed for sh(1), which if updated before runtime,
can cause undesirable behavior.

For the rest, the installation order needs to be:

 1) librtld
 2) libc
 3) libthr

The dependency listing and shilbs_required entries ensure this
behavior.

Sponsored by:	The FreeBSD Foundation
2016-02-04 21:20:26 +00:00
gjb
473c731b65 Fix typo: s/Conrol/Control/
Submitted by:	kib
Sponsored by:	The FreeBSD Foundation
2016-02-04 16:38:24 +00:00
gjb
3ec59dfa47 Add FreeBSD RCSID header and svn:keyword property.
Sponsored by:	The FreeBSD Foundation
2016-02-04 15:41:00 +00:00
gjb
92f18f7e58 Rework the way <packagename>.ucl files are generated.
One of the major pain points with how this was implemented
is the requirement of in-tree, hard-coded <name>.ucl, as
well as <name>-<suffix>.ucl where <suffix> can be lib32,
profile, development, debug, or any combination of the four.

This created significant overhead when adding new packages
and any of the files in any of the combinations were missing.

Instead of test(1)-ing if the <packagename>.ucl file exists,
hand off to a script to figure out what the final ucl file
name should be before invoking pkg(8).

The default behavior is 'template.ucl' is used as a fallback.

This affects only the userland packages, as the kernel code
is already smart enough to handle these variations.

Sponsored by:	The FreeBSD Foundation
2016-02-04 15:32:03 +00:00
gjb
212b97a189 Initial commit to add dependencies.
Sponsored by:	The FreeBSD Foundation
2016-02-03 23:41:58 +00:00
gjb
a6998ad84f First pass to fix the 'tests' packages.
Sponsored by:	The FreeBSD Foundation
2016-02-02 22:26:49 +00:00
gjb
f7c36465eb Create ee(1) package.
Sponsored by:	The FreeBSD Foundation
2016-02-02 21:04:33 +00:00
gjb
e0804a8146 Create a package for autofs(5)
Sponsored by:	The FreeBSD Foundation
2016-02-02 17:33:37 +00:00
gjb
34bfa3fb07 Create a package for vi(1) and related files.
Sponsored by:	The FreeBSD Foundation
2016-02-02 16:47:50 +00:00
gjb
e9c206dabf Fix naming inconsistency with lib32 debug packages.
Sponsored by:	The FreeBSD Foundation
2016-02-01 18:50:52 +00:00
gjb
0ad35e90aa Remove unused kernel/post-install file.
Sponsored by:	The FreeBSD Foundation
2016-01-29 00:29:32 +00:00
gjb
8ed40c99c8 Comment wordsmithing.
Sponsored by:	The FreeBSD Foundation
2016-01-21 18:45:46 +00:00
gjb
ff2a6cddc9 Create a package for apm(8).
Sponsored by:	The FreeBSD Foundation
2016-01-21 18:41:55 +00:00
gjb
3d734e0583 Create a package for amd(8) and related tools.
While here, fix accounting rc script installation.

Sponsored by:	The FreeBSD Foundation
2016-01-21 18:19:33 +00:00