tags 666834 + patch
thanks

Hi Thibaut,

you will find attached below a patch porting your module to Apache2 2.4.
Please test it and consider its inclusion. Note, I hardly tried more
than compiling and loading the module. I didn't test it in detail.

I've also fixed two problems while driving-by: You missed a
build-dependency against dpkg-dev >> 1.16.1 (that's the fist version to
support --export=configure) and a build-dependency against libapr1-dev.

The patch includes upstream changes, too. Given you are upstream you
might judge yourself whether it's suitable to you. Besides I consider
the whole patch mostly a proof of concept.


> Pretty sure I saw a debian wiki page or other debian page stating that
> 2.4 wasn't due for Wheezy, but it seems I can't find it anymore. Last
> minute transition seems like added fun.

Well, it's not exactly last minute. We announced the transition in March
already [1].

> Practical question: how am I supposed to upload a package that can be
> built either against 2.2 or 2.4 now that you have removed the
> apache2-dev package from 2.4? I've modified my source to build against
> 2.4 and it also supports (from the same source, 1.3 (yes!), 2.0 and
> 2.2).

I guess you meant vice versa, we dropped apache2-dev from the 2.2
package (which was a virtual package in 2.2). I am not sure whether
there is a way to support both, a 2.2 module and a 2.4 module from the
same source package. There are quite orthogonal changes regarding binary
package dependencies and maintainer scripts. I guess one could figure
something, but at least from our side no further support is approached.
At least from our side we do not plan to support more than one major web
server in Debian at the same time.

If you can or want to make sure the binary dependencies end up right
(apache2.2-bin for 2.2 packages, apache2-api-20120211 for 2.4 packages;
a2enmod/a2dismod for 2.2 maintainer script, maintscript-helper for 2.4
packages), it would possible to support both. Likewise for
build-dependencies, but note Debian buildds do not resolve alternative
build-dependencies in the form a | b.

[1] https://lists.debian.org/debian-devel-announce/2012/03/msg00013.html

-- 
with kind regards,
Arno Töll
IRC: daemonkeeper on Freenode/OFTC
GnuPG Key-ID: 0x9D80F36D
 debian/control                           |    6 +++--
 debian/libapache2-mod-musicindex.apache2 |    3 +++
 debian/libapache2-mod-musicindex.install |    3 ---
 debian/patches/port-to-apache24          |   38 ++++++++++++++++++++++++++++++
 debian/patches/series                    |    1 +
 debian/rules                             |    1 +
 debian/source/options                    |    1 +
 7 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/debian/control b/debian/control
index fe7418c..9d9f17d 100644
--- a/debian/control
+++ b/debian/control
@@ -2,13 +2,15 @@ Source: libapache-mod-musicindex
 Section: httpd
 Priority: optional
 Maintainer: Thibaut VARENE <vare...@debian.org>
-Build-Depends: debhelper (>> 7.0.0), apache2-threaded-dev, libvorbis-dev, libid3tag0-dev, libmad0-dev, libflac-dev, libarchive-dev, libmysqlclient-dev, libmp4v2-dev
+Build-Depends: debhelper (>> 7.0.0), apache2-dev, libvorbis-dev,
+ libid3tag0-dev, libmad0-dev, libflac-dev, libarchive-dev, libmysqlclient-dev,
+ libmp4v2-dev, dh-apache2, libapr1-dev, dpkg-dev (>> 1.16.1~)
 Standards-Version: 3.9.3
 Homepage: http://www.parisc-linux.org/~varenet/musicindex/
 
 Package: libapache2-mod-musicindex
 Architecture: any
-Depends: mod-musicindex-common (= ${source:Version}), apache2.2-common, ${shlibs:Depends}, ${misc:Depends}
+Depends: mod-musicindex-common (= ${source:Version}), ${misc:Depends}
 Description: Browse, stream, download and search through MP3/Ogg/FLAC/MP4 files
  mod_musicindex is aimed at being a C alternative to the Perl module
  Apache::MP3 (http://search.cpan.org/dist/Apache-MP3/).
diff --git a/debian/libapache2-mod-musicindex.apache2 b/debian/libapache2-mod-musicindex.apache2
new file mode 100644
index 0000000..d08e0f1
--- /dev/null
+++ b/debian/libapache2-mod-musicindex.apache2
@@ -0,0 +1,3 @@
+mod     debian/tmp/usr/lib/apache2/modules/*.so
+mod     debian/musicindex.load
+mod     debian/musicindex.conf
diff --git a/debian/libapache2-mod-musicindex.install b/debian/libapache2-mod-musicindex.install
deleted file mode 100644
index fc0c56f..0000000
--- a/debian/libapache2-mod-musicindex.install
+++ /dev/null
@@ -1,3 +0,0 @@
-debian/tmp/usr/lib/apache2/modules/*.so
-debian/musicindex.load etc/apache2/mods-available
-debian/musicindex.conf etc/apache2/mods-available
diff --git a/debian/patches/port-to-apache24 b/debian/patches/port-to-apache24
new file mode 100644
index 0000000..f395a7b
--- /dev/null
+++ b/debian/patches/port-to-apache24
@@ -0,0 +1,38 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,8 +101,11 @@
+ 	printf("AP20\n");
+ #elif (MODULE_MAGIC_COOKIE == 0x41503232UL)
+ 	printf("AP22\n");
++#elif (MODULE_MAGIC_COOKIE > 0x41503232UL)
++       printf("AP24\n");
+ #endif
+-}
++ }
++
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -149,6 +152,11 @@
+   AC_DEFINE([AP22], [], ["AP22"])
+ fi
+ 
++if test x$apache_version = xAP24; then
++  AC_CHECK_PROG(APR_CONFIG, apr-1-config, apr-1-config, [], [], [exit1])
++  AC_DEFINE([AP24], [], ["AP24"])
++fi
++
+ if test "x$APR_CONFIG" != "x"; then
+ 
+ AC_DEFINE([BUILD_FOR_APACHE2], [], ["apache2"])
+--- a/src/mod_musicindex.h
++++ b/src/mod_musicindex.h
+@@ -258,6 +258,8 @@
+   /* nada */
+  #elif defined(AP22)
+   #define ap_http_method ap_http_scheme
++ #elif defined(AP24)
++  #define ap_http_method ap_http_scheme
+  #else
+   #error "unknown apache API"
+  #endif
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..3388500
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+port-to-apache24
diff --git a/debian/rules b/debian/rules
index 1b1cf83..ce464e9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -62,6 +62,7 @@ install: build-stamp
 	$(MAKE) -C build-2.2 install DESTDIR=$(CURDIR)/debian/tmp
 
 	dh_install
+	dh_apache2
 
 # Must not depend on anything. This is to be called by
 # binary-arch/binary-indep
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..75b8316
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1 @@
+extend-diff-ignore = "(^|/)(config.sub|config.guess|configure|Makefile.in|aclocal.m4|config.in|ltmain.sh|mod_musicindex_config.h.in)$"

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to