diff mbox series

[1/2] tar: make gtar always gnu tar

Message ID 20260430161702.77076-1-danismostlikely@gmail.com
State New
Headers show
Series [1/2] tar: make gtar always gnu tar | expand

Commit Message

Dan McGregor April 30, 2026, 4:17 p.m. UTC
From: Daniel McGregor <daniel.mcgregor@vecima.com>

Previously, gtar was a symlink to tar. It followed update-alternatives,
when what we most likely want is for gtar to always be GNU tar, and tar
to be whatever update-alternatives decides.

Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
---
 meta/recipes-extended/tar/tar_1.35.bb | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/meta/recipes-extended/tar/tar_1.35.bb b/meta/recipes-extended/tar/tar_1.35.bb
index 042baa035c9..ce7076ae606 100644
--- a/meta/recipes-extended/tar/tar_1.35.bb
+++ b/meta/recipes-extended/tar/tar_1.35.bb
@@ -18,20 +18,22 @@  PACKAGECONFIG:append:class-target = " ${@bb.utils.filter('DISTRO_FEATURES', 'acl
 PACKAGECONFIG[acl] = "--with-posix-acls,--without-posix-acls,acl"
 PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
 
-EXTRA_OECONF += "DEFAULT_RMT_DIR=${sbindir}"
+EXTRA_OECONF += "DEFAULT_RMT_DIR=${sbindir} --program-prefix=g"
 
 CACHED_CONFIGUREVARS += "tar_cv_path_RSH=no"
 
 do_install () {
     autotools_do_install
-    ln -s tar ${D}${bindir}/gtar
+    ln -s gtar ${D}${bindir}/tar
+    ln -s grmt ${D}${sbindir}/rmt
 }
 
 do_install:append:class-target() {
+    rm ${D}${bindir}/tar
+    rm ${D}${sbindir}/rmt
     if [ "${base_bindir}" != "${bindir}" ]; then
         install -d ${D}${base_bindir}
-        mv ${D}${bindir}/tar ${D}${base_bindir}/tar
-        mv ${D}${bindir}/gtar ${D}${base_bindir}/gtar
+        mv ${D}${bindir}/gtar ${D}${base_bindir}
         rmdir ${D}${bindir}/
     fi
 }
@@ -72,19 +74,27 @@  do_install_ptest() {
 
 PACKAGES =+ "${PN}-rmt"
 
-FILES:${PN}-rmt = "${sbindir}/rmt*"
+FILES:${PN}-rmt = "${sbindir}/grmt*"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
 
 ALTERNATIVE:${PN} = "tar"
+ALTERNATIVE:${PN}-doc = "tar.1 rmt.8"
 ALTERNATIVE:${PN}-rmt = "rmt"
 ALTERNATIVE:${PN}:class-nativesdk = ""
 ALTERNATIVE:${PN}-rmt:class-nativesdk = ""
 
 ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
+ALTERNATIVE_TARGET[tar] = "${base_bindir}/gtar"
 ALTERNATIVE_LINK_NAME[rmt] = "${sbindir}/rmt"
+ALTERNATIVE_TARGET[rmt] = "${sbindir}/grmt"
+
+ALTERNATIVE_LINK_NAME[tar.1] = "${mandir}/man1/tar.1"
+ALTERNATIVE_TARGET[tar.1] = "${mandir}/man1/gtar.1"
+ALTERNATIVE_LINK_NAME[rmt.8] = "${mandir}/man8/rmt.8"
+ALTERNATIVE_TARGET[rmt.8] = "${mandir}/man8/grmt.8"
 
 PROVIDES:append:class-native = " tar-replacement-native"
 NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"