aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2020-02-19 22:21:44 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2020-02-19 22:21:44 +0000
commitabe9ef3e15a61423f6cd385ae257a9b7e003930f (patch)
tree210a2bf7460eeff5c6c5d55a1cacee1faf089851
parent38e97d02a68e4f60ad8c78c58550eef4c53648fb (diff)
downloadcpt-abe9ef3e15a61423f6cd385ae257a9b7e003930f.tar.gz
kiss: Remove KISS_RM
I never really liked how this was implemented and it's rather limited in its use. It was cumbersome to edit the list to make even a minor change. Instead, I now recommend using 'KISS_HOOK'. It gives you total control. KISS_RM can be implemented on a per-package basis, for all packages overall or conditionally. You're also not limited to a simple list of removals. You can do whatever you like pre- and post- build. Here's an example script to get you started. There is more information in the manual and README. case $TYPE in pre-build) case $PKG in zlib) export CFLAGS="-Os -static" ;; curl) export CFLAGS="-O3" ;; esac ;; post-build) : "${DEST:?DEST is unset}" rm -rf "$DEST/usr/share/doc" rm -rf "$DEST/usr/share/gettext" ;; esac FossilOrigin-Name: ab2d04dbc4be059d1d5dd9a1758defb5205433a6a6a1fa941412b82583f7df7b
-rw-r--r--README.md16
-rwxr-xr-xkiss38
-rw-r--r--kiss.116
3 files changed, 8 insertions, 62 deletions
diff --git a/README.md b/README.md
index abbc93f..3885b68 100644
--- a/README.md
+++ b/README.md
@@ -70,17 +70,6 @@ See: <https://k1ss.org/pages/package-system/>
# add your own repositories or remove the default ones.
export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg
-# Delete junk from packages.
-#
-# This works exactly like '$PATH' (Colon separated).
-#
-# A list of paths and files to remove from built packages.
-#
-# Set this to a blank value to keep all of the below files
-# and directories around. This can be customized to keep or
-# remove whatever you like.
-export KISS_RM=usr/share/doc:usr/share/gtk-doc:usr/share/info:usr/share/polkit-1:usr/share/gettext:usr/share/locale:etc/bash_completion.d:usr/share/zsh
-
# Force package installation or removal.
#
# This can be used to bypass the dependency checks on installation
@@ -119,7 +108,10 @@ export KISS_AUDIT=0
# ;;
#
# post-build)
-# # post-build code here.
+# : "${DEST:?DEST is unset}"
+#
+# rm -rf "$DEST/usr/share/doc"
+# rm -rf "$DEST/usr/share/gettext"
# ;;
# esac
#
diff --git a/kiss b/kiss
index 40580ff..8e6bd31 100755
--- a/kiss
+++ b/kiss
@@ -441,43 +441,6 @@ pkg_fixdeps() {
rm -f depends-copy
}
-pkg_junk() (
- # Optionally remove "junk" files from packages. This includes 'info'
- # files, 'man' pages, gettext files, etc. This is configurable by the
- # user.
- #
- # This function runs as a sub-shell to avoid having to 'cd' back to the
- # prior directory before being able to continue.
- cd "$pkg_dir/$1"
-
- # Default list of directories and their contents to be removed from
- # built packages. This default assumes a prefix of '/usr' though the
- # user can further configure it to search whatever paths they desire.
- #
- # TODO: This could be nicer as could the interface to it. Something
- # which allows for the addition/subtraction from the list
- # would be desirable.
- rm=usr/share/doc:usr/share/gtk-doc:usr/share/info:usr/share/polkit-1
- rm=$rm:usr/share/gettext:usr/share/locale:usr/share/bash-completion
- rm=$rm:etc/bash_completion.d:usr/share/applications
- rm=$rm:usr/share/zsh/site-functions:usr/share/zsh/vendor-completions
-
- # Split the environment variable on ':' and turn it into an argument
- # list. This works exactly like '$KISS_PATH'.
- #
- # Files which always conflict (such as usr/lib/charset.alias) and are
- # uneeded should be removed regardless.
- #
- # shellcheck disable=2046,2086
- { IFS=:; set -- ${KISS_RM:-$rm} usr/lib/charset.alias; IFS=$old_ifs; }
-
- # Loop over each junk entry and delete it if it exists.
- for junk; do
- [ -e "./$junk" ] && rm -rf "./$junk" &&
- log "${PWD##*/}" "Removed $junk"
- done ||:
-)
-
pkg_manifest() (
# Generate the package's manifest file. This is a list of each file
# and directory inside the package. The file is used when uninstalling
@@ -651,7 +614,6 @@ pkg_build() {
pkg_strip "$pkg"
pkg_fixdeps "$pkg"
- pkg_junk "$pkg"
pkg_manifest "$pkg"
pkg_etcsums "$pkg"
pkg_tar "$pkg"
diff --git a/kiss.1 b/kiss.1
index 453b4c6..f8ae855 100644
--- a/kiss.1
+++ b/kiss.1
@@ -46,17 +46,6 @@ Tiny and straightforward package manager for KISS written in POSIX sh.
# add your own repositories or remove the default ones.
export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg
-# Delete junk from packages.
-#
-# This works exactly like '$PATH' (Colon separated).
-#
-# A list of paths and files to remove from built packages.
-#
-# Set this to a blank value to keep all of the below files
-# and directories around. This can be customized to keep or
-# remove whatever you like.
-export KISS_RM=usr/share/doc:usr/share/gtk-doc:usr/share/info:usr/share/polkit-1:usr/share/gettext:usr/share/locale:etc/bash_completion.d:usr/share/zsh
-
# Force package installation or removal.
#
# This can be used to bypass the dependency checks on installation
@@ -95,7 +84,10 @@ export KISS_AUDIT=0
# ;;
#
# post-build)
-# # post-build code here.
+# : "${DEST:?DEST is unset}"
+#
+# rm -rf "$DEST/usr/share/doc"
+# rm -rf "$DEST/usr/share/gettext"
# ;;
# esac
#