Hi,
the following diff fixes the "puppet module" command, Puppet is using
Gnu only tar options.
Ok ? Comments ?
Cheers
Giovanni
Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/ruby-puppet/8/Makefile,v
diff -u -p -r1.9 Makefile
--- Makefile 22 Sep 2025 12:35:15 -0000 1.9
+++ Makefile 13 Jan 2026 08:23:16 -0000
@@ -1,9 +1,10 @@
PORTROACH= limit:^8
VERSION= 8.10.0
-REVISION= 3
+REVISION= 4
-RUN_DEPENDS+= converters/ruby-multi_json,${MODRUBY_FLAVOR}>=1.13,<2 \
+RUN_DEPENDS+= archivers/gtar \
+ converters/ruby-multi_json,${MODRUBY_FLAVOR}>=1.13,<2 \
devel/ruby-concurrent-ruby,${MODRUBY_FLAVOR}>=1,<2 \
devel/ruby-deep_merge,${MODRUBY_FLAVOR}>=1,<2 \
devel/ruby-fast_gettext,${MODRUBY_FLAVOR}>=2.1,<4 \
Index: patches/patch-lib_puppet_module_tool_tar_gnu_rb
===================================================================
RCS file: patches/patch-lib_puppet_module_tool_tar_gnu_rb
diff -N patches/patch-lib_puppet_module_tool_tar_gnu_rb
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_puppet_module_tool_tar_gnu_rb 13 Jan 2026 08:23:16
-0000
@@ -0,0 +1,20 @@
+Index: lib/puppet/module_tool/tar/gnu.rb
+--- lib/puppet/module_tool/tar/gnu.rb.orig
++++ lib/puppet/module_tool/tar/gnu.rb
+@@ -8,7 +8,7 @@ class Puppet::ModuleTool::Tar::Gnu
+ destdir = File.expand_path(destdir)
+ safe_destdir = Shellwords.shellescape(destdir)
+
+- Puppet::Util::Execution.execute("gzip -dc #{safe_sourcefile} | tar
--extract --no-same-owner --directory #{safe_destdir} --file -")
++ Puppet::Util::Execution.execute("gzip -dc #{safe_sourcefile} | gtar
--extract --no-same-owner --directory #{safe_destdir} --file -")
+ Puppet::Util::Execution.execute(['find', destdir, '-type', 'd', '-exec',
'chmod', '755', '{}', '+'])
+ Puppet::Util::Execution.execute(['find', destdir, '-type', 'f', '-exec',
'chmod', 'u+rw,g+r,a-st', '{}', '+'])
+ Puppet::Util::Execution.execute(['chown', '-R', owner, destdir])
+@@ -18,6 +18,6 @@ class Puppet::ModuleTool::Tar::Gnu
+ safe_sourcedir = Shellwords.shellescape(sourcedir)
+ safe_destfile = Shellwords.shellescape(File.basename(destfile))
+
+- Puppet::Util::Execution.execute("tar cf - #{safe_sourcedir} | gzip -c >
#{safe_destfile}")
++ Puppet::Util::Execution.execute("gtar cf - #{safe_sourcedir} | gzip -c >
#{safe_destfile}")
+ end
+ end
Index: patches/patch-lib_puppet_module_tool_tar_rb
===================================================================
RCS file: patches/patch-lib_puppet_module_tool_tar_rb
diff -N patches/patch-lib_puppet_module_tool_tar_rb
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_puppet_module_tool_tar_rb 13 Jan 2026 08:23:16 -0000
@@ -0,0 +1,12 @@
+Index: lib/puppet/module_tool/tar.rb
+--- lib/puppet/module_tool/tar.rb.orig
++++ lib/puppet/module_tool/tar.rb
+@@ -10,7 +10,7 @@ module Puppet::ModuleTool::Tar
+ def self.instance
+ if Puppet.features.minitar? && Puppet.features.zlib?
+ Mini.new
+- elsif Puppet::Util.which('tar') && !Puppet::Util::Platform.windows?
++ elsif Puppet::Util.which('gtar') && !Puppet::Util::Platform.windows?
+ Gnu.new
+ else
+ # TRANSLATORS "tar" is a program name and should not be translated
signature.asc
Description: PGP signature
