why not patch the command line to use tar-compatible flags instead? --no-same-owner is the default for our tar, and --directory is just the same as -C
--
Sent from a phone, apologies for poor formatting.
On 13 January 2026 08:33:44 Giovanni Bechis <giovanni@paclan.it> wrote:
Hi,the following diff fixes the "puppet module" command, Puppet is usingGnu only tar options.Ok ? Comments ?CheersGiovanniIndex: Makefile===================================================================RCS file: /cvs/ports/sysutils/ruby-puppet/8/Makefile,vdiff -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:^8VERSION= 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_rbdiff -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+ endIndex: patches/patch-lib_puppet_module_tool_tar_rb===================================================================RCS file: patches/patch-lib_puppet_module_tool_tar_rbdiff -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
No comments:
Post a Comment