[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: