[DRE-maint] Bug#606274: chef: FTBFS: Patch remove_rubygems.patch does not remove cleanly (refresh it or enforce with -f)

Luca Capello luca at pca.it
Tue Dec 7 22:18:58 UTC 2010


Package: chef
Version: 0.8.16-4.1
Severity: serious
Tags: patch

Hi there!

=====
luca at gismo:~/$ gismo-pbuilder.sh --build base-sid chef_0.8.16-4.1.dsc
[...]
dpkg-deb: building package `libchef-ruby1.8' in `../libchef-ruby1.8_0.8.16-4.1_all.deb'.
 dpkg-genchanges  >../chef_0.8.16-4.1_amd64.changes
dpkg-genchanges: not including original source code in upload
 fakeroot debian/rules clean
test -x debian/rules
dh_testroot
dh_clean
/usr/bin/make -f debian/rules reverse-config
make[1]: Entering directory `/tmp/buildd/chef-0.8.16'
make[1]: Nothing to be done for `reverse-config'.
make[1]: Leaving directory `/tmp/buildd/chef-0.8.16'
if [ -d "." ]; then \
          cd . && QUILT_PATCHES=/tmp/buildd/chef-0.8.16/debian/patches quilt --quiltrc /dev/null pop -a -R || test $? = 2 ; \
        fi
Removing patch jquery_unminified.patch
Removing chef-server-webui/public/javascripts/jquery.jeditable.js
Removing chef-server-webui/public/javascripts/yetii.js
Removing chef-server-webui/public/javascripts/jquery.tools.js

Patch remove_rubygems.patch does not remove cleanly (refresh it or enforce with -f)
make: *** [reverse-patches] Error 1
dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2
E: Failed autobuilding of package
=====

When you do not build the package, the patch above seems to cleanly
apply and remove, so I guess the building process modifies some files.
And indeed if I compare the patched files above with the original ones,
the diff includes more than the quilt patch:

--8<---------------cut here---------------start------------->8---
--- chef-0.8.16/chef/bin/chef-client 2010-12-07 21:57:20.000000000 +0100
+++ chef-client 2010-12-07 22:17:57.000000000 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env ruby
+#! /usr/bin/ruby1.8
 #
 # ./chef-client - Run the chef client
 #
@@ -18,7 +18,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.

-require 'rubygems'
 $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
 require 'chef'
 require 'chef/application/client'
--8<---------------cut here---------------end--------------->8---

This applies to the four chef-client binaries: chef-client, chef-solo,
knife and shef.  The build log contains the following:
=====
(cd chef && /usr/bin/ruby debian-setup.rb setup)
---> bin
updating shebang: chef-client
updating shebang: shef
updating shebang: knife
updating shebang: chef-solo
<--- bin
=====

What is strange is that the current chef binary package available in sid
contains the four binaries above with exactly the same shebang as the
one that causes the error, which means that the build process should
have stopped even in the past...

Actually, the same problem should happen for the -server* binaries, but
it does not, given that the shebang in these binaries is specifically
modified to ruby1.8 because the -server* binaries do not support
Ruby-1.9 yet:

  [chef-0.8.16/debian/patches/chef_solr_ruby18.patch]
  # Description: Use ruby1.8 specifically as Chef Solr/Server doesn't support
  # ruby1.9 yet.

Nevertheless, I am not a Ruby nor a chef expert, but applying the same
trick patch to the client binaries solves the FTBFS.  I am confident
this is the correct fix also because the chef binary package (which
contains the client binaries) Depends: on Ruby-1.8:

  Depends: ${misc:Depends}, ruby1.8, liberubis-ruby1.8, libjson-ruby1.8,
           libextlib-ruby1.8 (>= 0.9.13), ohai (>= 0.4.0),
           libchef-ruby1.8 (= ${source:Version}), libopenssl-ruby1.8,
           libmixlib-authentication-ruby1.8 (>= 1.1.0), ucf

--8<---------------cut here---------------start------------->8---
diff -u chef-0.8.16/debian/changelog chef-0.8.16/debian/changelog
--- chef-0.8.16/debian/changelog
+++ chef-0.8.16/debian/changelog
@@ -1,3 +1,13 @@
+chef (0.8.16-4.2) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * debian/patches/series: update.
+  * debian/patches/chef_client_ruby18.patch:
+    + fix FTBFS, use a versioned shebang for client binaries, since
+      the chef binary package Depends: on Ruby-1.8 (Closes: #NNNNNN).
+
+ -- Luca Capello <luca at pca.it>  Tue, 07 Dec 2010 23:13:49 +0100
+
 chef (0.8.16-4.1) unstable; urgency=low
 
   * Non-maintainer upload to fix pending l10n issues
diff -u chef-0.8.16/debian/patches/series chef-0.8.16/debian/patches/series
--- chef-0.8.16/debian/patches/series
+++ chef-0.8.16/debian/patches/series
@@ -4,0 +5 @@
+chef_client_ruby18.patch
only in patch2:
unchanged:
--- chef-0.8.16.orig/debian/patches/chef_client_ruby18.patch
+++ chef-0.8.16/debian/patches/chef_client_ruby18.patch
@@ -0,0 +1,34 @@
+# Description: Use ruby1.8 specifically as Chef clients do not support
+# ruby1.9 yet (Closes: #NNNNNN).
+--- chef-0.8.16.orig/chef/bin/chef-client
++++ chef-0.8.16/chef/bin/chef-client
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # ./chef-client - Run the chef client
+ #
+--- chef-0.8.16.orig/chef/bin/chef-solo
++++ chef-0.8.16/chef/bin/chef-solo
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # ./chef-solo - Run the chef client, in stand-alone mode
+ #
+--- chef-0.8.16.orig/chef/bin/shef
++++ chef-0.8.16/chef/bin/shef
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # ./shef - Run the shef REPL
+ #
+--- chef-0.8.16.orig/chef/bin/knife
++++ chef-0.8.16/chef/bin/knife
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env ruby
++#!/usr/bin/ruby1.8
+ #
+ # ./knife - Chef CLI interface 
+ #
--8<---------------cut here---------------end--------------->8---

I will upload a 0-day NMU (also fixing #598365, #598626 and #604231) in
two days if no one will complain before.  The reason to now upload it
*now* as DELAYED/2 is because I need to work on the other bugs above ;-)

Thx, bye,
Gismo / Luca

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.36-rc6-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-ruby-extras-maintainers/attachments/20101207/44e499a3/attachment.pgp>


More information about the Pkg-ruby-extras-maintainers mailing list