[PATCH] debian: package ruby bindings
Felipe Contreras
felipe.contreras at gmail.com
Sun Apr 14 18:19:03 PDT 2013
On Sun, Apr 14, 2013 at 8:52 AM, David Bremner <bremner at debian.org> wrote:
> Felipe Contreras <felipe.contreras at gmail.com> writes:
>
>>
>> diff --git a/debian/control b/debian/control
>> index 854a32a..620c5ce 100644
>> --- a/debian/control
>> +++ b/debian/control
>> @@ -15,6 +15,7 @@ Build-Depends:
>> libz-dev,
>> python-all (>= 2.6.6-3~),
>> python3-all (>= 3.1.2-7~),
>> + ruby-dev,
>> emacs23-nox | emacs23 (>=23~) | emacs23-lucid (>=23~) |
>> emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~),
>> gdb,
>
> This doesn't build in a clean sid chroot, because ruby-dev does not
> depend on ruby, so you need to explicitly add it.
Right, I just found that too.
>> Package: notmuch-emacs
>> Architecture: all
>> Section: mail
>> diff --git a/debian/notmuch-ruby.install b/debian/notmuch-ruby.install
>> new file mode 100644
>> index 0000000..f92f09c
>> --- /dev/null
>> +++ b/debian/notmuch-ruby.install
>> @@ -0,0 +1 @@
>> +usr/local/lib/site_ruby/*/*/notmuch.so
>> diff --git a/debian/rules b/debian/rules
>> index c4e3930..7c7247a 100755
>> --- a/debian/rules
>> +++ b/debian/rules
>> @@ -12,15 +12,24 @@ override_dh_auto_build:
>> dh_auto_build
>> dh_auto_build --sourcedirectory bindings/python
>> cd bindings/python && $(python3_all) setup.py build
>> + dh_auto_build --sourcedirectory bindings/ruby
>> + cd bindings/ruby && ruby extconf.rb && make
>
> Why are both these lines needed?
The first one isn't.
> On a related note, is the ruby build
> procedure documented somewhere?
Not really, it's just standard.
>> override_dh_auto_clean:
>> dh_auto_clean
>> dh_auto_clean --sourcedirectory bindings/python
>> cd bindings/python && $(python3_all) setup.py clean -a
>> + dh_auto_build --sourcedirectory bindings/ruby
>> + cd bindings/ruby && test -f Makefile && make clean || true
>> $(MAKE) -C contrib/notmuch-mutt clean
>
> This looks suspect, calling dh_auto_build from the clean target.
A mistake, probably the first line is enough.
> The
> clean target cannot assume that e.g. notmuch is already built.
It doesn't, that's what the 'test -f Makefile' was for.
>> override_dh_auto_install:
>> dh_auto_install
>> dh_auto_install --sourcedirectory bindings/python
>> cd bindings/python && $(python3_all) setup.py install --install-layout=deb --root=$(CURDIR)/debian/tmp
>> + dh_auto_build --sourcedirectory bindings/ruby
>> + cd bindings/ruby && make install DESTDIR=$(CURDIR)/debian/tmp
>
> This call to dh_auto_build also confuses me. The top level sequencer
> will ensure that the override_dh_auto_build is called before this one.
A mistake.
>> +
>> +# ruby's site is configured in /usr/local
>> +override_dh_usrlocal:
>
> The package is still installing files into /usr/local, which is a
> violation of debian policy 9.1.2
>
> It's a good idea to run "lintian" on the resulting debian packages;
> that's how I caught the problem with /usr/local.
Tell that to debian maintainers who configure ruby that way:
require 'rbconfig'
RbConfig::CONFIG['sitelibdir']
=> "/usr/local/lib/site_ruby/1.9.1"
RbConfig::CONFIG['configure_args']
=> " '--build=x86_64-linux-gnu' '--prefix=/usr'
'--includedir=/usr/include' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--sysconfdir=/etc' '--localstatedir=/var'
'--libexecdir=/usr/lib/ruby1.9.1' '--srcdir=.'
'--disable-maintainer-mode' '--disable-dependency-tracking'
'--disable-silent-rules' '--enable-pthread' '--enable-shared'
'--disable-rpath' '--disable-install-doc'
'--with-vendordir=/usr/lib/ruby/vendor_ruby'
'--with-sitedir=/usr/local/lib/site_ruby' '--program-suffix=1.9.1'
'--with-soname=ruby-1.9.1' '--with-baseruby=/usr/bin/ruby1.8'
'--enable-ipv6' '--with-dbm-type=gdbm_compat' '--with-tklib=tk8.5'
'--with-tcllib=tcl8.5' '--with-tcl-include=/usr/include/tcl8.5'
'--with-bundled-sha1' '--with-bundled-md5' '--with-bundled-rmd160'
'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall
-fno-strict-aliasing' 'LDFLAGS=-Wl,-z,relro'
'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall
-fno-strict-aliasing'"
So, the changes I propose are:
--- b/debian/control
+++ a/debian/control
@@ -15,7 +15,7 @@ Build-Depends:
libz-dev,
python-all (>= 2.6.6-3~),
python3-all (>= 3.1.2-7~),
- ruby-dev,
+ ruby, ruby-dev,
emacs23-nox | emacs23 (>=23~) | emacs23-lucid (>=23~) |
emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~),
gdb,
diff --git b/debian/rules a/debian/rules
index 7c7247a..1dd59d2 100755
--- b/debian/rules
+++ a/debian/rules
@@ -12,7 +12,6 @@ override_dh_auto_build:
dh_auto_build
dh_auto_build --sourcedirectory bindings/python
cd bindings/python && $(python3_all) setup.py build
- dh_auto_build --sourcedirectory bindings/ruby
cd bindings/ruby && ruby extconf.rb && make
$(MAKE) -C contrib/notmuch-mutt
@@ -20,16 +19,14 @@ override_dh_auto_clean:
dh_auto_clean
dh_auto_clean --sourcedirectory bindings/python
cd bindings/python && $(python3_all) setup.py clean -a
- dh_auto_build --sourcedirectory bindings/ruby
- cd bindings/ruby && test -f Makefile && make clean || true
+ dh_auto_clean --sourcedirectory bindings/ruby
$(MAKE) -C contrib/notmuch-mutt clean
override_dh_auto_install:
dh_auto_install
dh_auto_install --sourcedirectory bindings/python
cd bindings/python && $(python3_all) setup.py install
--install-layout=deb --root=$(CURDIR)/debian/tmp
- dh_auto_build --sourcedirectory bindings/ruby
- cd bindings/ruby && make install DESTDIR=$(CURDIR)/debian/tmp
+ dh_auto_install --sourcedirectory bindings/ruby
# ruby's site is configured in /usr/local
override_dh_usrlocal:
Cheers.
--
Felipe Contreras
More information about the notmuch
mailing list