Source: rust-coreutils
Severity: wishlist
Tags: patch

Hi Sylvestre,

I know your preference to have individual binaries to match GNU's :-).

Just in case you want to reevaluate, I forward here the patch we use
in Apertis to reduce the storage footprint from 125.7 MB to 35.1 MB.

Best,
Dylan
Subject: Build a multicall binary instead of multiple binaries
 to reduce the storage footprint
Origin: https://gitlab.apertis.org/pkg/rust-coreutils

diff --git a/debian/not-installed b/debian/not-installed
index 6e84106..d2d9c16 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -1,3 +1,7 @@
 usr/local/share/bash-completion/*
 usr/local/share/fish/*
 usr/local/share/zsh/*
+
+# Don't install symlinks created by upstream makefile
+# That leads to issues with merged-usr and no-merged-usr env
+usr/local/bin/*
diff --git a/debian/rules b/debian/rules
index 82d5bd7..4672a0c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,6 +5,11 @@ include /usr/share/rustc/architecture.mk
 export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
 export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
 VERSION := $(shell dpkg-parsechangelog -S Version|sed -e "s|.*~\(.*\)-.*|\1|g")
+
+# Build a multicall binary instead of multiple binaries
+# to reduce the storage footprint
+export MULTICALL = y
+
 %:
 	dh $@ --buildsystem cargo
 
diff --git a/debian/rust-coreutils.install b/debian/rust-coreutils.install
index 63d45ca..367b84c 100644
--- a/debian/rust-coreutils.install
+++ b/debian/rust-coreutils.install
@@ -1,110 +1 @@
-# GNU/Coreutils: Installed in /bin/
-usr/local/bin/cat /bin/
-usr/local/bin/chgrp /bin/
-usr/local/bin/chmod /bin/
-usr/local/bin/chown /bin/
-usr/local/bin/cp /bin/
-usr/local/bin/date /bin/
-#usr/local/bin/dd /bin/
-usr/local/bin/df /bin/
-#usr/local/bin/dir /bin/
-usr/local/bin/echo /bin/
-usr/local/bin/false /bin/
-usr/local/bin/ln /bin/
-usr/local/bin/ls /bin/
-usr/local/bin/mkdir /bin/
-usr/local/bin/mknod /bin/
-usr/local/bin/mktemp /bin/
-usr/local/bin/mv /bin/
-usr/local/bin/pwd /bin/
-usr/local/bin/readlink /bin/
-usr/local/bin/rm /bin/
-usr/local/bin/rmdir /bin/
-usr/local/bin/sleep /bin/
-#usr/local/bin/stty /bin/
-usr/local/bin/sync /bin/
-usr/local/bin/touch /bin/
-usr/local/bin/true /bin/
-usr/local/bin/uname /bin/
-#usr/local/bin/vdir /bin/
-
-# GNU/Coreutils: Installed in /usr/bin/
-usr/local/bin/[ usr/bin
-usr/local/bin/arch usr/bin
-#usr/local/bin/b2sum usr/bin
-usr/local/bin/base32 usr/bin
-usr/local/bin/base64 usr/bin
-usr/local/bin/basename usr/bin
-#usr/local/bin/basenc usr/bin
-#usr/local/bin/chcon usr/bin
-usr/local/bin/cksum usr/bin
-usr/local/bin/comm usr/bin
-usr/local/bin/csplit usr/bin
-usr/local/bin/cut usr/bin
-usr/local/bin/dircolors usr/bin
-usr/local/bin/dirname usr/bin
-usr/local/bin/du usr/bin
-usr/local/bin/env usr/bin
-usr/local/bin/expand usr/bin
-usr/local/bin/expr usr/bin
-usr/local/bin/factor usr/bin
-usr/local/bin/fmt usr/bin
-usr/local/bin/fold usr/bin
-usr/local/bin/groups usr/bin
-usr/local/bin/head usr/bin
-usr/local/bin/hostid usr/bin
-usr/local/bin/id usr/bin
-usr/local/bin/install usr/bin
-usr/local/bin/join usr/bin
-usr/local/bin/link usr/bin
-usr/local/bin/logname usr/bin
-#usr/local/bin/md5sum usr/bin
-usr/local/bin/mkfifo usr/bin
-usr/local/bin/nice usr/bin
-usr/local/bin/nl usr/bin
-usr/local/bin/nohup usr/bin
-usr/local/bin/nproc usr/bin
-usr/local/bin/numfmt usr/bin
-usr/local/bin/od usr/bin
-usr/local/bin/paste usr/bin
-usr/local/bin/pathchk usr/bin
-usr/local/bin/pinky usr/bin
-usr/local/bin/pr usr/bin
-usr/local/bin/printenv usr/bin
-usr/local/bin/printf usr/bin
-usr/local/bin/ptx usr/bin
-usr/local/bin/realpath usr/bin
-#usr/local/bin/runcon usr/bin
-usr/local/bin/seq usr/bin
-#usr/local/bin/sha1sum usr/bin
-#usr/local/bin/sha224sum usr/bin
-#usr/local/bin/sha256sum usr/bin
-#usr/local/bin/sha384sum usr/bin
-#usr/local/bin/sha512sum usr/bin
-usr/local/bin/shred usr/bin
-usr/local/bin/shuf usr/bin
-usr/local/bin/sort usr/bin
-usr/local/bin/split usr/bin
-usr/local/bin/stat usr/bin
-usr/local/bin/stdbuf usr/bin
-usr/local/bin/sum usr/bin
-usr/local/bin/tac usr/bin
-usr/local/bin/tail usr/bin
-usr/local/bin/tee usr/bin
-usr/local/bin/test usr/bin
-usr/local/bin/timeout usr/bin
-usr/local/bin/tr usr/bin
-usr/local/bin/truncate usr/bin
-usr/local/bin/tsort usr/bin
-usr/local/bin/tty usr/bin
-usr/local/bin/unexpand usr/bin
-usr/local/bin/uniq usr/bin
-usr/local/bin/unlink usr/bin
-usr/local/bin/users usr/bin
-usr/local/bin/wc usr/bin
-usr/local/bin/who usr/bin
-usr/local/bin/whoami usr/bin
-usr/local/bin/yes usr/bin
-usr/local/bin/chroot usr/bin
-usr/local/bin/hashsum usr/bin
-usr/local/bin/relpath usr/bin
+usr/local/bin/coreutils /usr/bin
diff --git a/debian/rust-coreutils.links b/debian/rust-coreutils.links
index ce69adb..f9e3af6 100644
--- a/debian/rust-coreutils.links
+++ b/debian/rust-coreutils.links
@@ -12,3 +12,114 @@ usr/bin/hashsum usr/bin/sha3-384sum
 usr/bin/hashsum usr/bin/sha3-512sum
 usr/bin/hashsum usr/bin/shake128sum
 usr/bin/hashsum usr/bin/shake256sum
+
+# GNU/Coreutils: Installed in /bin/
+usr/bin/coreutils bin/cat
+usr/bin/coreutils bin/chgrp
+usr/bin/coreutils bin/chmod
+usr/bin/coreutils bin/chown
+usr/bin/coreutils bin/cp
+usr/bin/coreutils bin/date
+#usr/bin/coreutils bin/dd
+usr/bin/coreutils bin/df
+#usr/bin/coreutils bin/dir
+usr/bin/coreutils bin/echo
+usr/bin/coreutils bin/false
+usr/bin/coreutils bin/ln
+usr/bin/coreutils bin/ls
+usr/bin/coreutils bin/mkdir
+usr/bin/coreutils bin/mknod
+usr/bin/coreutils bin/mktemp
+usr/bin/coreutils bin/mv
+usr/bin/coreutils bin/pwd
+usr/bin/coreutils bin/readlink
+usr/bin/coreutils bin/rm
+usr/bin/coreutils bin/rmdir
+usr/bin/coreutils bin/sleep
+#usr/bin/coreutils bin/stty
+usr/bin/coreutils bin/sync
+usr/bin/coreutils bin/touch
+usr/bin/coreutils bin/true
+usr/bin/coreutils bin/uname
+#usr/bin/coreutils bin/vdir
+
+# GNU/Coreutils: Installed in /usr/bin/
+usr/bin/coreutils usr/bin/[
+usr/bin/coreutils usr/bin/arch
+#usr/bin/coreutils usr/bin/b2sum
+usr/bin/coreutils usr/bin/base32
+usr/bin/coreutils usr/bin/base64
+usr/bin/coreutils usr/bin/basename
+#usr/bin/coreutils usr/bin/basenc
+#usr/bin/coreutils usr/bin/chcon
+usr/bin/coreutils usr/bin/cksum
+usr/bin/coreutils usr/bin/comm
+usr/bin/coreutils usr/bin/csplit
+usr/bin/coreutils usr/bin/cut
+usr/bin/coreutils usr/bin/dircolors
+usr/bin/coreutils usr/bin/dirname
+usr/bin/coreutils usr/bin/du
+usr/bin/coreutils usr/bin/env
+usr/bin/coreutils usr/bin/expand
+usr/bin/coreutils usr/bin/expr
+usr/bin/coreutils usr/bin/factor
+usr/bin/coreutils usr/bin/fmt
+usr/bin/coreutils usr/bin/fold
+usr/bin/coreutils usr/bin/groups
+usr/bin/coreutils usr/bin/head
+usr/bin/coreutils usr/bin/hostid
+usr/bin/coreutils usr/bin/id
+usr/bin/coreutils usr/bin/install
+usr/bin/coreutils usr/bin/join
+usr/bin/coreutils usr/bin/link
+usr/bin/coreutils usr/bin/logname
+#usr/bin/coreutils usr/bin/md5sum
+usr/bin/coreutils usr/bin/mkfifo
+usr/bin/coreutils usr/bin/nice
+usr/bin/coreutils usr/bin/nl
+usr/bin/coreutils usr/bin/nohup
+usr/bin/coreutils usr/bin/nproc
+usr/bin/coreutils usr/bin/numfmt
+usr/bin/coreutils usr/bin/od
+usr/bin/coreutils usr/bin/paste
+usr/bin/coreutils usr/bin/pathchk
+usr/bin/coreutils usr/bin/pinky
+usr/bin/coreutils usr/bin/pr
+usr/bin/coreutils usr/bin/printenv
+usr/bin/coreutils usr/bin/printf
+usr/bin/coreutils usr/bin/ptx
+usr/bin/coreutils usr/bin/realpath
+#usr/bin/coreutils usr/bin/runcon
+usr/bin/coreutils usr/bin/seq
+#usr/bin/coreutils usr/bin/sha1sum
+#usr/bin/coreutils usr/bin/sha224sum
+#usr/bin/coreutils usr/bin/sha256sum
+#usr/bin/coreutils usr/bin/sha384sum
+#usr/bin/coreutils usr/bin/sha512sum
+usr/bin/coreutils usr/bin/shred
+usr/bin/coreutils usr/bin/shuf
+usr/bin/coreutils usr/bin/sort
+usr/bin/coreutils usr/bin/split
+usr/bin/coreutils usr/bin/stat
+usr/bin/coreutils usr/bin/stdbuf
+usr/bin/coreutils usr/bin/sum
+usr/bin/coreutils usr/bin/tac
+usr/bin/coreutils usr/bin/tail
+usr/bin/coreutils usr/bin/tee
+usr/bin/coreutils usr/bin/test
+usr/bin/coreutils usr/bin/timeout
+usr/bin/coreutils usr/bin/tr
+usr/bin/coreutils usr/bin/truncate
+usr/bin/coreutils usr/bin/tsort
+usr/bin/coreutils usr/bin/tty
+usr/bin/coreutils usr/bin/unexpand
+usr/bin/coreutils usr/bin/uniq
+usr/bin/coreutils usr/bin/unlink
+usr/bin/coreutils usr/bin/users
+usr/bin/coreutils usr/bin/wc
+usr/bin/coreutils usr/bin/who
+usr/bin/coreutils usr/bin/whoami
+usr/bin/coreutils usr/bin/yes
+usr/bin/coreutils usr/bin/chroot
+usr/bin/coreutils usr/bin/hashsum
+usr/bin/coreutils usr/bin/relpath

Reply via email to