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 aregit
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:
f1db1cf
cryptsetup: bump to 5.67.0a9b34e1
libinput: bump to 1.15.1f86714c
busybox: Fix mdev.run. Closes #140eb4160f
opendoas: bump to 6.6.10751732
glib: bump to 2.63.52679adc
libarchive: new package at 3.4.187629a8
busybox: fix checksums2a1127c
kiss: bump to 1.2.0b9df4fa
kiss-utils: bump to 1.2.06447193
baseinit: bump to 0.4696613a
cmake: bump to 3.16.4287bee5
kiss: bump to 1.2.1b476d52
kiss-utils: bump to 1.2.12969c8c
kiss: bump to 1.2.2dc2ee5c
kiss-utils: bump to 1.2.2e486531
nodejs: bump to 13.8.0ba246df
xorg-server: Run setgid. input group no longer needed per-user.ef7f7fc
libinput: Remove post-install messagee951a27
vim: don't link to util-linux662f59d
kiss: bump to 1.3.0891344b
kiss-utils: bump to 1.3.05611459
baseinit: bump to 0.4.11316592
libSM: Remove util-linux dependency1fa3519
vim: remove unused flagd4c1ea6
glib: Remove util-linux dependencyccf9ffb
gdk-pixbuf: Don't build tests84e7d60
gtk+3: Don't install tests5901fbf
python: remove util-linux dependencybbec1d1
kiss: bump to 1.3.15ea31f6
kiss-utils: bump to 1.3.13a38408
nss: bump to 3.5066c8f14
meta: Move non-xorg related packages out of xorg/3d47a77
xorg: Drop www. from sources99d840e
eiwd: move to extra5ea359f
gdk-pixbuf: Remove shared-mime-info dependencydcacfe9
gtk+3: Remove shared-mime-info dependency7621366
gtk+2: remove shared-mime-info dependency8c7acc6
e2fsprogs: Remove util-linux dependency96ad6fb
gcc: bump version for libgomp and static-pie fixes.cbbbf9b
kiss: bump to 1.4.01dc1377
kiss-utils: bump to 1.4.0b2a5d52
json-c: fix depends. Closes #143 by @artemkobets0cbdf32
xf86-video-ati: Fix rootless xorge67a209
extra-cmake-modules: bump to 5.67.06e64fb7
kiss: bump to 1.4.1cfbe193
kiss-utils: bump to 1.4.11a9ada8
opendoas: added new doas.conf for latest kisseecc3f2
grub: Fix build after GCC changes