aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2019-06-29 15:09:07 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2019-06-29 15:09:07 +0000
commitdba11ac3f2902e9594dfecb042f0760ad0995e1c (patch)
tree00a8ca585a4faf2895a00601bf0ac4ae6bca934c
parent9d0f5648a23cb02514c12c4cf8ded92654a9c27c (diff)
downloadcpt-dba11ac3f2902e9594dfecb042f0760ad0995e1c.tar.gz
kiss-new: Added package stripping.
FossilOrigin-Name: 3c9ac3670356e71820021023c00c4c31c89766fa7d67e2f76ee3f8eb596ec9a6
-rwxr-xr-xkiss-new42
1 files changed, 38 insertions, 4 deletions
diff --git a/kiss-new b/kiss-new
index 3449306..c9befe5 100755
--- a/kiss-new
+++ b/kiss-new
@@ -319,20 +319,54 @@ pkg_build() {
# structure.
repo_dir=$(pkg_search "$pkg")
+ # Install built packages to a directory under the package name
+ # to avod collisions with other packages.
+ mkdir -p "$pkg_dir/$pkg/var/db/$kiss"
+
# Move to the build directory and call the build script.
- (cd "$mak_dir/$pkg"; "$repo_dir/build" "$pkg_dir") ||
+ (cd "$mak_dir/$pkg"; "$repo_dir/build" "$pkg_dir/$pkg") ||
die "[$pkg]: Build failed."
# Copy the repository files to the package directory.
# This acts as the database entry.
- cp -Rf "$repo_dir" "$pkg_db"
+ cp -Rf "$repo_dir" "$pkg_dir/$pkg/var/db/$kiss"
log "[$pkg]: Sucessfully built package."
# Create the manifest file early and make it empty.
# This ensure that the manifest is added to the manifest...
- : > "$pkg_db/$pkg/manifest"
+ : > "$pkg_dir/$pkg/var/db/$kiss/$pkg/manifest"
done
+
+ log "Stripping packages..."
+ for pkg; do
+ # Find the package's repository files. This needs to keep
+ # happening as we can't store this data in any kind of data
+ # structure.
+ repo_dir=$(pkg_search "$pkg")
+
+ # Package has stripping disabled, stop here.
+ [ -f "$repo_dir/nostrip" ] && continue
+
+ log "[$pkg]: Stripping binaries and libraries..."
+
+ find "$pkg_dir/$pkg" -type f | while read -r binary; do
+ case $(file -bi "$binary") in
+ application/x-sharedlib*|application/x-pie-executable*)
+ strip_opts=--strip-unneeded
+ ;;
+
+ application/x-archive*) strip_opts=--strip-debug ;;
+ application/x-executable*) strip_opts=--strip-all ;;
+
+ *) continue ;;
+ esac
+
+ strip "$strip_opts" "$binary" 2>/dev/null
+ done
+ done
+
+ log "Stripped all binaries and libraries."
}
pkg_checksums() {
@@ -397,7 +431,7 @@ setup_caching() {
die "Couldn't create build directory ($mak_dir)."
# Package directory.
- mkdir -p "${pkg_db:=${pkg_dir:=$cac_dir/pkg-$pid}/var/db/$kiss}" ||
+ mkdir -p "${pkg_dir:=$cac_dir/pkg-$pid}" ||
die "Couldn't create package directory ($pkg_dir)."
# Tar directory.