09/02/2020: This week in KISS (#10)
More package manager goodies this week.
Package Manager build hooks
It is now possible to hook into specific "events" in the package
manager with a script. Right now only pre-build and post-build are
supported though I expect to see this list expand as users need them.
The KISS_HOOK environment variable takes the path to a shellscript
which is then executed with three additional environment variables
defined. Rather than needing a separate script per event, a single
script is all that is required.
The following three environment variables are defined:
$PKG: The name of the package.$TYPE: The event type (valid: pre-build, post-build).$DEST: The path to where 'make install', etc will put the package.
A simple script to set different CFLAGS for specific flags could look
as follows.
#!/bin/sh
case $TYPE in
pre-build)
case $PKG in
zlib) export CFLAGS="-Os -static" ;;
curl) export CFLAGS="-O3" ;;
esac
;;
post-build)
# post-build code here.
;;
esac
This paves the way for finer tuning of compilation settings for LTO and more aggressive compiler options. See: /r/kisslinux post
Smarter /etc/ handling
The package manager now performs a 3-way "handshake" to determine how
it should handle the installation of files in /etc. In short, when a
file cannot be overwritten due to user modifications it is installed as
$file.new.
This is very similar to how Arch Linux handles /etc and it's a really
nice way of doing things.
KISS_AUDIT
A new opt-in feature has been added which will open a scrollable diff
of every modified file for a system update. This was implemented to
allow users to easily get a deeper insight as to what will happen
during updates.
The repositories themselves are git repositories so this is simply a
git diff call post-fetch.
To enable this feature set KISS_AUDIT to 1.
GCC static-pie fix
Our GCC builds enable PIE by default though this wasn't applied when compiling statically. A patch was submitted by Owen Rafferty which fixes this issue.
To revert to the previous behavior the following $CFLAGS can be used
-fno-pie -no-pie.
Changes to non-root Xorg
Our default non-root Xorg configuration required the user be in the
input group to function correctly. This is no longer a requirement and
you may now remove yourself from the group.
Instead, our Xorg is now setgid input which limits the permissions to
/dev/input solely to Xorg. Any applications spawned under Xorg will
not be able to read /dev/input.
This is a nicer and more secure default configuration.
GNU tar and BSD tar (libarchive) support added to the package manager
These two tar implementations are now supported in the package manager
further reducing the dependence on busybox. I have found these to be
faster than busybox's tar for those large source tarballs.
Official Repositories
- Dylan Araps:
f1db1cfcryptsetup: bump to 5.67.0a9b34e1libinput: bump to 1.15.1f86714cbusybox: Fix mdev.run. Closes #140eb4160fopendoas: bump to 6.6.10751732glib: bump to 2.63.52679adclibarchive: new package at 3.4.187629a8busybox: fix checksums2a1127ckiss: bump to 1.2.0b9df4fakiss-utils: bump to 1.2.06447193baseinit: bump to 0.4696613acmake: bump to 3.16.4287bee5kiss: bump to 1.2.1b476d52kiss-utils: bump to 1.2.12969c8ckiss: bump to 1.2.2dc2ee5ckiss-utils: bump to 1.2.2e486531nodejs: bump to 13.8.0ba246dfxorg-server: Run setgid. input group no longer needed per-user.ef7f7fclibinput: Remove post-install messagee951a27vim: don't link to util-linux662f59dkiss: bump to 1.3.0891344bkiss-utils: bump to 1.3.05611459baseinit: bump to 0.4.11316592libSM: Remove util-linux dependency1fa3519vim: remove unused flagd4c1ea6glib: Remove util-linux dependencyccf9ffbgdk-pixbuf: Don't build tests84e7d60gtk+3: Don't install tests5901fbfpython: remove util-linux dependencybbec1d1kiss: bump to 1.3.15ea31f6kiss-utils: bump to 1.3.13a38408nss: bump to 3.5066c8f14meta: Move non-xorg related packages out of xorg/3d47a77xorg: Drop www. from sources99d840eeiwd: move to extra5ea359fgdk-pixbuf: Remove shared-mime-info dependencydcacfe9gtk+3: Remove shared-mime-info dependency7621366gtk+2: remove shared-mime-info dependency8c7acc6e2fsprogs: Remove util-linux dependency96ad6fbgcc: bump version for libgomp and static-pie fixes.cbbbf9bkiss: bump to 1.4.01dc1377kiss-utils: bump to 1.4.0b2a5d52json-c: fix depends. Closes #143 by @artemkobets0cbdf32xf86-video-ati: Fix rootless xorge67a209extra-cmake-modules: bump to 5.67.06e64fb7kiss: bump to 1.4.1cfbe193kiss-utils: bump to 1.4.11a9ada8opendoas: added new doas.conf for latest kisseecc3f2grub: Fix build after GCC changes
Community
- Adam Schaefers:
- Anirudh:
a915d2dgdb: new package at 8.3.1 (#300)
- Artem Kobets:
- Bridouz:
- Cem Keylan:
- Cédric:
- Dylan Araps:
- M. Herdiansyah:
795969amawk: new package at 1.3.4-20200120 (#313)
- Owen Rafferty:
- Will Eccles:
Legal stuff
The registered trademark Linux® is used pursuant to a sublicense from the Linux Foundation, the exclusive licensee of Linus Torvalds, owner of the mark on a worldwide basis.
© Dylan Araps 2019-2020