[facter] Preserve timestamps when installing files
Todd Zullinger
tmz at fedoraproject.org
Wed Feb 15 17:20:17 UTC 2012
commit d0469a432852807954112c791521205192aef714
Author: Todd Zullinger <tmz at pobox.com>
Date: Wed Feb 15 10:43:03 2012 -0500
Preserve timestamps when installing files
...Preserve-timestamps-when-installing-files.patch | 70 ++++++++++++++++++++
facter.spec | 4 +
2 files changed, 74 insertions(+), 0 deletions(-)
---
diff --git a/0001-Preserve-timestamps-when-installing-files.patch b/0001-Preserve-timestamps-when-installing-files.patch
new file mode 100644
index 0000000..c7f9ad6
--- /dev/null
+++ b/0001-Preserve-timestamps-when-installing-files.patch
@@ -0,0 +1,70 @@
+From 850bfabe67ab2ab62f0d3f16acc941a6043ca92d Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz at pobox.com>
+Date: Wed, 15 Feb 2012 10:07:11 -0500
+Subject: [PATCH/facter] Preserve timestamps when installing files
+
+Without the preserve option, ruby's FileUtils.install method uses the
+current time for all installed files. For backup systems, package
+installs, and general pedantic sysadmins, preserving timestamps makes a
+small improvement in the world.
+
+---
+ install.rb | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/install.rb b/install.rb
+index ab233c3..e1785a2 100755
+--- a/install.rb
++++ b/install.rb
+@@ -102,7 +102,7 @@ def do_libs(libs, strip = 'lib/')
+ op = File.dirname(olf)
+ FileUtils.makedirs(op, {:mode => 0755, :verbose => true})
+ FileUtils.chmod(0755, op)
+- FileUtils.install(lf, olf, {:mode => 0644, :verbose => true})
++ FileUtils.install(lf, olf, {:mode => 0644, :preserve => true, :verbose => true})
+ end
+ end
+
+@@ -113,7 +113,7 @@ def do_man(man, strip = 'man/')
+ om = File.dirname(omf)
+ FileUtils.makedirs(om, {:mode => 0755, :verbose => true})
+ FileUtils.chmod(0755, om)
+- FileUtils.install(mf, omf, {:mode => 0644, :verbose => true})
++ FileUtils.install(mf, omf, {:mode => 0644, :preserve => true, :verbose => true})
+ gzip = %x{which gzip}
+ gzip.chomp!
+ %x{#{gzip} -f #{omf}}
+@@ -412,12 +412,12 @@ def install_binfile(from, op_file, target)
+ installed_wrapper = false
+
+ if File.exists?("#{from}.bat")
+- FileUtils.install("#{from}.bat", File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true)
++ FileUtils.install("#{from}.bat", File.join(target, "#{op_file}.bat"), :mode => 0755, :preserve => true, :verbose => true)
+ installed_wrapper = true
+ end
+
+ if File.exists?("#{from}.cmd")
+- FileUtils.install("#{from}.cmd", File.join(target, "#{op_file}.cmd"), :mode => 0755, :verbose => true)
++ FileUtils.install("#{from}.cmd", File.join(target, "#{op_file}.cmd"), :mode => 0755, :preserve => true, :verbose => true)
+ installed_wrapper = true
+ end
+
+@@ -431,13 +431,13 @@ set RUBY_BIN=%RUBY_BIN:\\=/%
+ "%RUBY_BIN%ruby.exe" -x "%RUBY_BIN%facter" %*
+ EOS
+ File.open(tmp_file2, "w") { |cw| cw.puts cwv }
+- FileUtils.install(tmp_file2, File.join(target, "#{op_file}.bat"), :mode => 0755, :verbose => true)
++ FileUtils.install(tmp_file2, File.join(target, "#{op_file}.bat"), :mode => 0755, :preserve => true, :verbose => true)
+
+ File.unlink(tmp_file2)
+ installed_wrapper = true
+ end
+ end
+- FileUtils.install(tmp_file, File.join(target, op_file), :mode => 0755, :verbose => true)
++ FileUtils.install(tmp_file, File.join(target, op_file), :mode => 0755, :preserve => true, :verbose => true)
+ File.unlink(tmp_file)
+ end
+
+--
+1.7.6
+
diff --git a/facter.spec b/facter.spec
index 4b73121..5ca74c8 100644
--- a/facter.spec
+++ b/facter.spec
@@ -21,6 +21,8 @@ Source0: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.g
Source1: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc
# https://bugzilla.redhat.com/790849
Patch0: 0001-Make-ec2-facts-work-on-CentOS-again.patch
+# https://github.com/puppetlabs/facter/pull/171
+Patch1: 0001-Preserve-timestamps-when-installing-files.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ruby >= 1.8.1
@@ -51,6 +53,7 @@ operating system. Additional facts can be added through simple Ruby scripts
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
@@ -84,6 +87,7 @@ rspec spec
- Make spec file work for EPEL and Fedora
- Drop BuildArch: noarch and make dmidecode/pciutils deps arch-specific
- Make ec2 facts work on CentOS again (#790849, thanks to Jeremy Katz)
+- Preserve timestamps when installing files
* Thu Feb 02 2012 Bohuslav Kabrda <bkabrda at redhat.com> - 1.6.5-2
- Rebuilt for Ruby 1.9.3.
More information about the scm-commits
mailing list