Bug#916750: lighttpd: reorganize lighttpd binary packages to reduce dependencies (ldap/mysql) and package count
Control: tags -1 + patch
On Thu, Jan 03, 2019 at 12:04:33PM +0100, Helmut Grohne wrote:
> Therefore my plan is:
>
> * Add lighttpd-mod-* Provides.
> * Add lighttpd-modules-mysql.
> * Add transitional dummy packages lighttpd-mod-authn-mysql
> lighttpd-mod-mysql-vhost.
> * Add lighttpd-modules-ldap.
> * Add transitional dummy package lighttpd-mod-autn-ldap.
> * Add real packages lighttpd-mod-vhostdb-dbi,
> lighttpd-mod-vhostdb-pgsql, lighttpd-mod-authn-pam,
> lighttpd-mod-authn-sasl.
> * lighttpd Recommends all modules that it formerly included and puts up
> a NEWS.Debian explaining the split.
I've implemented (but not uploaded this). I'm attaching two patches
based on your patches. They build and mostly pass lintian, but I didn't
test much else (piuparts, autopkgtest, actually running, etc.) yet.
Reviews appreciated. I intend to upload during the weekend.
Helmut
>From e53c24c891132cf9bb82db8b2a6df16c2657494f Mon Sep 17 00:00:00 2001
From: Helmut Grohne <helmut.grohne@intenta.de>
Date: Thu, 3 Jan 2019 13:24:02 +0100
Subject: [PATCH 1/2] split mysql-modules-{mysql,ldap}
Add provides for all lighttpd-mod-* and start relocating modules. Group
mysql and ldap modules together to remove the libmariadb and libldap
dependencies from the main lighttpd package.
---
debian/changelog | 9 ++++
debian/control | 83 +++++++++++++++++++++++++++++----
debian/lighttpd-mod-authn-ldap.install | 1 -
debian/lighttpd-mod-authn-mysql.install | 1 -
debian/lighttpd-mod-mysql-vhost.install | 1 -
debian/lighttpd-modules-ldap.install | 2 +
debian/lighttpd-modules-mysql.install | 3 ++
debian/lighttpd.install | 2 -
debian/rules | 13 ++++++
9 files changed, 101 insertions(+), 14 deletions(-)
delete mode 100644 debian/lighttpd-mod-authn-ldap.install
delete mode 100644 debian/lighttpd-mod-authn-mysql.install
delete mode 100644 debian/lighttpd-mod-mysql-vhost.install
create mode 100644 debian/lighttpd-modules-ldap.install
create mode 100644 debian/lighttpd-modules-mysql.install
diff --git a/debian/changelog b/debian/changelog
index 37ca06b..c369b5b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+lighttpd (1.4.52-2+exp1) UNRELEASED; urgency=medium
+
+ * QA Upload.
+ * Add lighttpd-mod-* Provides.
+ * Move mysql modules to new binary package lighttpd-modules-mysql.
+ * Move ldap modules to new binary package lighttpd-modules-ldap.
+
+ -- Helmut Grohne <helmut.grohne@intenta.de> Thu, 03 Jan 2019 12:14:06 +0100
+
lighttpd (1.4.52-2) unstable; urgency=medium
* QA Upload.
diff --git a/debian/control b/debian/control
index 735384c..203e2a9 100644
--- a/debian/control
+++ b/debian/control
@@ -36,13 +36,16 @@ Package: lighttpd
Architecture: any
Provides:
httpd,
- httpd-cgi
+ httpd-cgi,
+ ${lighttpd:ModuleProvides},
Depends:
${misc:Depends},
${shlibs:Depends},
mime-support,
lsb-base (>= 3.0-6),
Recommends:
+ lighttpd-modules-ldap,
+ lighttpd-modules-mysql,
spawn-fcgi,
perl:any,
Suggests:
@@ -78,17 +81,73 @@ Description: documentation for lighttpd
.
This package contains documentation for lighttpd.
-Package: lighttpd-mod-mysql-vhost
+Package: lighttpd-modules-ldap
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ lighttpd (= ${binary:Version}),
+Breaks:
+ lighttpd (<< 1.4.52-2+exp1),
+ lighttpd-mod-authn-ldap (<< 1.4.52-2+exp1),
+Replaces:
+ lighttpd (<< 1.4.52-2+exp1),
+ lighttpd-mod-authn-ldap (<< 1.4.52-2+exp1),
+Provides:
+ ${lighttpd:ModuleProvides},
+Description: LDAP-based modules for lighttpd
+ This package contains the following modules:
+ * mod_authn_ldap: With this module, it is possible to perform
+ authentication against an LDAP server.
+ * mod_vhostdb_ldap: Database backend module for using LDAP as
+ a source for virtual host configuration using mod_vhostdb.
+ .
+ Do not depend on this package. Depend on the provided lighttpd-mod-*
+ packages instead.
+
+Package: lighttpd-modules-mysql
Architecture: any
Depends:
${misc:Depends},
${shlibs:Depends},
lighttpd (= ${binary:Version}),
-Description: MySQL-based virtual host configuration for lighttpd
+Breaks:
+ lighttpd (<< 1.4.52-2+exp1),
+ lighttpd-mod-mysql-vhost (<< 1.4.52-2+exp1),
+ lighttpd-mod-autn-mysql (<< 1.4.52-2+exp1),
+Replaces:
+ lighttpd (<< 1.4.52-2+exp1),
+ lighttpd-mod-mysql-vhost (<< 1.4.52-2+exp1),
+ lighttpd-mod-autn-mysql (<< 1.4.52-2+exp1),
+Provides:
+ ${lighttpd:ModuleProvides},
+Description: MySQL-based modules for lighttpd
+ This package contains the following modules:
+ * mod_autn_mysql: With this module, it is possible to perform
+ authentication using a MySQL table.
+ * mod_mysql_vhost: With this module, it is possible to write the
+ configuration for virtual hosts into a MySQL table instead of
+ including it in the lighttpd configuration file. Deprecated.
+ * mod_vhostdb_mysql: Database backend module for using MySQL as
+ a source for virtual host configuration using mod_vhostdb.
+ .
+ Do not depend on this package. Depend on the provided lighttpd-mod-*
+ packages instead.
+
+Package: lighttpd-mod-mysql-vhost
+Section: oldlibs
+Architecture: any
+Depends:
+ ${misc:Depends},
+ lighttpd-modules-mysql (= ${binary:Version}),
+Description: Transitional dummy package for MySQL-based virtual host configuration for lighttpd
This package contains the myqsl_vhost module for lighttpd. With
this module, it is possible to write the configuration for virtual
hosts into a MySQL table instead of including it in the lighttpd
configuration file.
+ .
+ While this transitional dummy package will go away, the package name
+ continues to exist as a virtual package provided by lighttpd-modules-mysql.
Package: lighttpd-mod-trigger-b4-dl
Architecture: any
@@ -162,26 +221,32 @@ Description: GSSAPI authentication for lighttpd
this module, it is possible to perform GSSAPI authentication.
Package: lighttpd-mod-authn-ldap
+Section: oldlibs
Architecture: any
Depends:
${misc:Depends},
- ${shlibs:Depends},
- lighttpd (= ${binary:Version}),
-Description: LDAP authentication for lighttpd
+ lighttpd-modules-ldap (= ${binary:Version}),
+Description: Transitional dummy package for LDAP authentication for lighttpd
This package contains the authn_ldap module for lighttpd. With
this module, it is possible to perform authentication against an LDAP
server.
+ .
+ While this transitional dummy package will go away, the package name
+ continues to exist as a virtual package provided by lighttpd-modules-ldap.
Package: lighttpd-mod-authn-mysql
+Section: oldlibs
Architecture: any
Depends:
${misc:Depends},
- ${shlibs:Depends},
- lighttpd (= ${binary:Version}),
-Description: MySQL authentication for lighttpd
+ lighttpd-modules-mysql (= ${binary:Version}),
+Description: Transitional dummy package for MySQL authentication for lighttpd
This package contains the authn_mysql module for lighttpd. With
this module, it is possible to perform authentication using a MySQL
table.
+ .
+ While this transitional dummy package will go away, the package name
+ continues to exist as a virtual package provided by lighttpd-modules-mysql.
Package: lighttpd-mod-geoip
Architecture: any
diff --git a/debian/lighttpd-mod-authn-ldap.install b/debian/lighttpd-mod-authn-ldap.install
deleted file mode 100644
index 37e10a1..0000000
--- a/debian/lighttpd-mod-authn-ldap.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/lighttpd/mod_authn_ldap.so
diff --git a/debian/lighttpd-mod-authn-mysql.install b/debian/lighttpd-mod-authn-mysql.install
deleted file mode 100644
index da0cea7..0000000
--- a/debian/lighttpd-mod-authn-mysql.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/lighttpd/mod_authn_mysql.so
diff --git a/debian/lighttpd-mod-mysql-vhost.install b/debian/lighttpd-mod-mysql-vhost.install
deleted file mode 100644
index f25bddd..0000000
--- a/debian/lighttpd-mod-mysql-vhost.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/lighttpd/mod_mysql_vhost.so
diff --git a/debian/lighttpd-modules-ldap.install b/debian/lighttpd-modules-ldap.install
new file mode 100644
index 0000000..4ede34a
--- /dev/null
+++ b/debian/lighttpd-modules-ldap.install
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib/lighttpd/mod_authn_ldap.so
+debian/tmp/usr/lib/lighttpd/mod_vhostdb_ldap.so
diff --git a/debian/lighttpd-modules-mysql.install b/debian/lighttpd-modules-mysql.install
new file mode 100644
index 0000000..864b0a2
--- /dev/null
+++ b/debian/lighttpd-modules-mysql.install
@@ -0,0 +1,3 @@
+debian/tmp/usr/lib/lighttpd/mod_authn_mysql.so
+debian/tmp/usr/lib/lighttpd/mod_mysql_vhost.so
+debian/tmp/usr/lib/lighttpd/mod_vhostdb_mysql.so
diff --git a/debian/lighttpd.install b/debian/lighttpd.install
index 8288553..7f369d8 100644
--- a/debian/lighttpd.install
+++ b/debian/lighttpd.install
@@ -32,8 +32,6 @@ debian/tmp/usr/lib/lighttpd/mod_status.so
debian/tmp/usr/lib/lighttpd/mod_uploadprogress.so
debian/tmp/usr/lib/lighttpd/mod_userdir.so
debian/tmp/usr/lib/lighttpd/mod_usertrack.so
-debian/tmp/usr/lib/lighttpd/mod_vhostdb_mysql.so
-debian/tmp/usr/lib/lighttpd/mod_vhostdb_ldap.so
debian/tmp/usr/lib/lighttpd/mod_vhostdb.so
debian/tmp/usr/lib/lighttpd/mod_wstunnel.so
debian/lighttpd.conf /etc/lighttpd
diff --git a/debian/rules b/debian/rules
index f0609eb..27e62ae 100755
--- a/debian/rules
+++ b/debian/rules
@@ -40,6 +40,11 @@ override_dh_install:
dh_install
dh_missing --fail-missing
+DOCLESS_PACKAGES=lighttpd-modules-ldap lighttpd-modules-mysql
+override_dh_installdocs:
+ dh_installdocs $(foreach p,$(DOCLESS_PACKAGES),-p$(p)) --link-doc=lighttpd
+ dh_installdocs $(foreach p,$(DOCLESS_PACKAGES),-N$(p))
+
override_dh_fixperms:
dh_fixperms
test -d debian/lighttpd && \
@@ -51,3 +56,11 @@ override_dh_fixperms:
override_dh_installinit:
dh_installinit --error-handler=start_failed
+
+override_dh_gencontrol:
+ set -e; for p in `dh_listpackages`; do \
+ test -d debian/$$p/usr/lib/lighttpd || continue; \
+ m=`ls debian/$$p/usr/lib/lighttpd | sed 'y/_/-/;s/^mod-\(.*\)\.so$$/lighttpd-mod-\1,/;t;d' | xargs`; \
+ echo "lighttpd:ModuleProvides=$$m" >> debian/$$p.substvars; \
+ done
+ dh_gencontrol
--
2.11.0
>From fc4d0194728cf7e0f046aeb9a633bb9d9136ed28 Mon Sep 17 00:00:00 2001
From: Helmut Grohne <helmut.grohne@intenta.de>
Date: Thu, 3 Jan 2019 14:16:09 +0100
Subject: [PATCH 2/2] enable 4 new modules
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Based on patches from Stefan Bühler and Glenn Strauss, add the following
modules as new packages:
* mod_authn_pam
* mod_auth_sasl
* mod_vhostdb_dbi
* mod_vhostdb_pgsql
---
debian/changelog | 4 +++
debian/control | 46 +++++++++++++++++++++++++++++++
debian/lighttpd-mod-authn-pam.install | 1 +
debian/lighttpd-mod-authn-sasl.install | 1 +
debian/lighttpd-mod-vhostdb-dbi.install | 1 +
debian/lighttpd-mod-vhostdb-pgsql.install | 1 +
debian/rules | 13 ++++++++-
7 files changed, 66 insertions(+), 1 deletion(-)
create mode 100644 debian/lighttpd-mod-authn-pam.install
create mode 100644 debian/lighttpd-mod-authn-sasl.install
create mode 100644 debian/lighttpd-mod-vhostdb-dbi.install
create mode 100644 debian/lighttpd-mod-vhostdb-pgsql.install
diff --git a/debian/changelog b/debian/changelog
index c369b5b..2e26b2a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,10 @@ lighttpd (1.4.52-2+exp1) UNRELEASED; urgency=medium
* Move mysql modules to new binary package lighttpd-modules-mysql.
* Move ldap modules to new binary package lighttpd-modules-ldap.
+ [ Stefan Bühler and Glenn Strauss ]
+ * Add modules mod_authn_pam, mod_authn_sasl, mod_vhostdb_dbi and
+ mod_vhostdb_pgsql to new binary packages.
+
-- Helmut Grohne <helmut.grohne@intenta.de> Thu, 03 Jan 2019 12:14:06 +0100
lighttpd (1.4.52-2) unstable; urgency=medium
diff --git a/debian/control b/debian/control
index 203e2a9..9ec5b4d 100644
--- a/debian/control
+++ b/debian/control
@@ -14,6 +14,7 @@ Build-Depends:
libattr1-dev,
libpcre3-dev,
default-libmysqlclient-dev,
+ libdbi-dev,
libfam-dev,
libldap2-dev,
libfcgi-dev,
@@ -26,6 +27,9 @@ Build-Depends:
libsqlite3-dev,
libxml2-dev,
libkrb5-dev,
+ libpam0g-dev,
+ libpq-dev,
+ libsasl2-dev,
perl:native,
Vcs-Git: https://salsa.debian.org/debian/lighttpd.git
Vcs-Browser: https://salsa.debian.org/debian/lighttpd
@@ -248,6 +252,26 @@ Description: Transitional dummy package for MySQL authentication for lighttpd
While this transitional dummy package will go away, the package name
continues to exist as a virtual package provided by lighttpd-modules-mysql.
+Package: lighttpd-mod-authn-pam
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ lighttpd (= ${binary:Version}),
+Description: PAM authentication for lighttpd
+ This package contains the authn_pam module for lighttpd. With this module, it
+ is possible to perform authentication using PAM.
+
+Package: lighttpd-mod-authn-sasl
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ lighttpd (= ${binary:Version}),
+Description: SASL authentication for lighttpd
+ This package contains the authn_sasl module for lighttpd. With this module, it
+ is possible to perform authentication using SASL.
+
Package: lighttpd-mod-geoip
Architecture: any
Depends:
@@ -258,3 +282,25 @@ Description: GeoIP restrictions for lighttpd
This package contains the geoip module for lighttpd. With
this module, it is possible to distinguish users based on the location
using a GeoIP database.
+
+Package: lighttpd-mod-vhostdb-dbi
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ lighttpd (= ${binary:Version}),
+Description: DBI-based virtual host configuration for lighttpd
+ This package contains the vhostdb_dbi module for lighttpd. With this module,
+ it is possible to write the configuration for virtual hosts into a database
+ table instead of including it in the lighttpd configuration file.
+
+Package: lighttpd-mod-vhostdb-pgsql
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ lighttpd (= ${binary:Version}),
+Description: PostgreSQL-based virtual host configuration for lighttpd
+ This package contains the vhostdb_pgsql module for lighttpd. With this module,
+ it is possible to write the configuration for virtual hosts into a PostgreSQL
+ table instead of including it in the lighttpd configuration file.
diff --git a/debian/lighttpd-mod-authn-pam.install b/debian/lighttpd-mod-authn-pam.install
new file mode 100644
index 0000000..dc9eaf1
--- /dev/null
+++ b/debian/lighttpd-mod-authn-pam.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/lighttpd/mod_authn_pam.so
diff --git a/debian/lighttpd-mod-authn-sasl.install b/debian/lighttpd-mod-authn-sasl.install
new file mode 100644
index 0000000..98cde01
--- /dev/null
+++ b/debian/lighttpd-mod-authn-sasl.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/lighttpd/mod_authn_sasl.so
diff --git a/debian/lighttpd-mod-vhostdb-dbi.install b/debian/lighttpd-mod-vhostdb-dbi.install
new file mode 100644
index 0000000..d327a03
--- /dev/null
+++ b/debian/lighttpd-mod-vhostdb-dbi.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/lighttpd/mod_vhostdb_dbi.so
diff --git a/debian/lighttpd-mod-vhostdb-pgsql.install b/debian/lighttpd-mod-vhostdb-pgsql.install
new file mode 100644
index 0000000..419f9e1
--- /dev/null
+++ b/debian/lighttpd-mod-vhostdb-pgsql.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/lighttpd/mod_vhostdb_pgsql.so
diff --git a/debian/rules b/debian/rules
index 27e62ae..c522fec 100755
--- a/debian/rules
+++ b/debian/rules
@@ -19,6 +19,7 @@ override_dh_auto_configure:
--libdir=/usr/lib/lighttpd \
--libexecdir="/usr/lib/lighttpd" \
--with-attr \
+ --with-dbi \
--with-fam \
--with-gdbm \
--with-krb5 \
@@ -28,7 +29,10 @@ override_dh_auto_configure:
--with-lua=lua5.1 \
--with-mysql \
--with-openssl \
+ --with-pam \
--with-pcre \
+ --with-pgsql \
+ --with-sasl \
--with-webdav-locks \
--with-webdav-props \
CFLAGS_FOR_BUILD="$(shell dpkg-buildflags --get CFLAGS)" \
@@ -40,7 +44,14 @@ override_dh_install:
dh_install
dh_missing --fail-missing
-DOCLESS_PACKAGES=lighttpd-modules-ldap lighttpd-modules-mysql
+DOCLESS_PACKAGES=\
+ lighttpd-modules-ldap \
+ lighttpd-modules-mysql \
+ lighttpd-mod-authn-pam \
+ lighttpd-mod-authn-sasl \
+ lighttpd-mod-vhostdb-dbi \
+ lighttpd-mod-vhostdb-pgsql \
+
override_dh_installdocs:
dh_installdocs $(foreach p,$(DOCLESS_PACKAGES),-p$(p)) --link-doc=lighttpd
dh_installdocs $(foreach p,$(DOCLESS_PACKAGES),-N$(p))
--
2.11.0
Reply to: