commit:     16eefde25e8bb5a3b90132da965849f6854fb061
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  2 10:23:10 2022 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Sun Jan  2 10:55:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16eefde2

x11-themes/tela-icon-theme: add USE=hardlink to save space

 Files:          180583
 Linked:         166804 files
 Compared:       0 xattrs
 Compared:       1214946 files
 Saved:          174.99 MiB
 Duration:       156.305428 seconds
 Before and after hardlinking:

 x11-themes/tela-icon-theme: 438076 files, 824 non-files, 194.5M
 x11-themes/tela-icon-theme: 438076 files (271272 unique), 824 non-files, 19.5M

 Not bad, 10x savings.

Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 x11-themes/tela-icon-theme/metadata.xml                    |  3 ++-
 x11-themes/tela-icon-theme/tela-icon-theme-20211225.ebuild | 14 +++++++++++---
 x11-themes/tela-icon-theme/tela-icon-theme-99999999.ebuild | 14 +++++++++++---
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/x11-themes/tela-icon-theme/metadata.xml 
b/x11-themes/tela-icon-theme/metadata.xml
index 8c12ddafbb0d..aca9f0e9a88d 100644
--- a/x11-themes/tela-icon-theme/metadata.xml
+++ b/x11-themes/tela-icon-theme/metadata.xml
@@ -20,9 +20,10 @@
                <flag name="yellow">Install yellow folder version</flag>
                <flag name="manjaro">Install manjaro folder version</flag>
                <flag name="ubuntu">Install ubuntu folder version</flag>
+               <flag name="hardlink">Hardlink duplicate icons to greatly 
reduce installation size</flag>
        </use>
        <upstream>
-               
<bugs-to>https://github.com/vinceliuice/Tela-icon-theme/issues/</bugs-to>
+               
<bugs-to>https://github.com/vinceliuice/Tela-icon-theme/issues</bugs-to>
                <remote-id type="github">vinceliuice/Tela-icon-theme</remote-id>
        </upstream>
 </pkgmetadata>

diff --git a/x11-themes/tela-icon-theme/tela-icon-theme-20211225.ebuild 
b/x11-themes/tela-icon-theme/tela-icon-theme-20211225.ebuild
index a4310154d7d6..a3e95996c462 100644
--- a/x11-themes/tela-icon-theme/tela-icon-theme-20211225.ebuild
+++ b/x11-themes/tela-icon-theme/tela-icon-theme-20211225.ebuild
@@ -26,14 +26,18 @@ fi
 
 LICENSE="GPL-3+"
 SLOT="0"
-IUSE="+${MY_COLOR_VARIANTS[*]}" # this is why standard comes first
+IUSE="+${MY_COLOR_VARIANTS[*]} +hardlink" # this is why standard comes first
 
 REQUIRED_USE="|| ( ${MY_COLOR_VARIANTS[*]} )"
 
-# not needed
+# not needed and slows us down, package installs 120 000 small files
 RESTRICT="binchecks strip test"
 
-BDEPEND="app-shells/bash"
+# technically we can use app-arch/harlink too, but it's deprecated
+BDEPEND="
+       app-shells/bash
+       sys-apps/util-linux[hardlink(-)?]
+"
 
 src_prepare() {
        default
@@ -50,6 +54,10 @@ src_install() {
 
        dodir /usr/share/icons
        ./install.sh -d "${ED}/usr/share/icons" "${variants[@]}" || die
+       if use hardlink; then
+               einfo "Linking duplicate icons... (may take a long time)"
+               hardlink -pot  "${ED}/usr/share/icons" || die "hardlink failed"
+       fi
 
        einstalldocs
 }

diff --git a/x11-themes/tela-icon-theme/tela-icon-theme-99999999.ebuild 
b/x11-themes/tela-icon-theme/tela-icon-theme-99999999.ebuild
index a4310154d7d6..a3e95996c462 100644
--- a/x11-themes/tela-icon-theme/tela-icon-theme-99999999.ebuild
+++ b/x11-themes/tela-icon-theme/tela-icon-theme-99999999.ebuild
@@ -26,14 +26,18 @@ fi
 
 LICENSE="GPL-3+"
 SLOT="0"
-IUSE="+${MY_COLOR_VARIANTS[*]}" # this is why standard comes first
+IUSE="+${MY_COLOR_VARIANTS[*]} +hardlink" # this is why standard comes first
 
 REQUIRED_USE="|| ( ${MY_COLOR_VARIANTS[*]} )"
 
-# not needed
+# not needed and slows us down, package installs 120 000 small files
 RESTRICT="binchecks strip test"
 
-BDEPEND="app-shells/bash"
+# technically we can use app-arch/harlink too, but it's deprecated
+BDEPEND="
+       app-shells/bash
+       sys-apps/util-linux[hardlink(-)?]
+"
 
 src_prepare() {
        default
@@ -50,6 +54,10 @@ src_install() {
 
        dodir /usr/share/icons
        ./install.sh -d "${ED}/usr/share/icons" "${variants[@]}" || die
+       if use hardlink; then
+               einfo "Linking duplicate icons... (may take a long time)"
+               hardlink -pot  "${ED}/usr/share/icons" || die "hardlink failed"
+       fi
 
        einstalldocs
 }

Reply via email to