[Pkg-mlmmj-devel] Bug#821533: mlmmj-php-web, mlmmj-php-web-admin: PHP 7.0 Transition

Chris Knadle Chris.Knadle at coredump.us
Wed May 25 21:51:40 UTC 2016


The PHP 5 -> 7 transition: there was one eregi() call and one ereg() call
which are functions deprecated in PHP 5.3.-0 removed from PHP 7.0.0.  With
those fixed the mlmmj-php-web and mlmmj-php-web-admin packages work fine.

debdiff attached.

   -- Chris

-- 
Chris Knadle
Chris.Knadle at coredump.us
-------------- next part --------------
diffstat for mlmmj-1.2.18.1 mlmmj-1.2.18.1

 README.source                            |    1 
 changelog                                |   30 ++++++++++++++++
 control                                  |   13 +++----
 copyright                                |    6 +--
 docs                                     |    1 
 patches/05_fix_displayed_full_paths.diff |    6 +--
 patches/06_fix-php-web-for-php7.diff     |   35 +++++++++++++++++++
 patches/07_fix-crontab-suggestions.diff  |   56 +++++++++++++++++++++++++++++++
 patches/series                           |    4 +-
 rules                                    |   44 ++++++++++++++++++------
 10 files changed, 170 insertions(+), 26 deletions(-)

diff -Nru mlmmj-1.2.18.1/debian/changelog mlmmj-1.2.18.1/debian/changelog
--- mlmmj-1.2.18.1/debian/changelog	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/changelog	2016-05-24 22:28:54.000000000 -0400
@@ -1,3 +1,33 @@
+mlmmj (1.2.18.1-2) unstable; urgency=medium
+
+  * debian/control
+    - Add myself to Uploaders
+    - Depend on PHP 7 rather than PHP 5 (Closes: #821532, #821533)
+    - Update Standards-Version to 3.9.8 (no changes needed)
+    - Update Vcs-Browser and Vcs-Git links with https version
+  * debian/copyright
+    - Update from DEP5 to copyright 1.0 format
+    - Update BSD keyword to BSD-4-clause
+  * debian/docs:
+    - Remove debian/README.source (file removed)
+  * debian/patches:
+    - Update 05_fix_displayed_full_paths.diff for line offset fuzz
+    - Reorder series file to apply patches in numeric order
+    - Add 06_fix-php-web-for-php7.diff to fix mlmmj web packages for PHP 7.0
+    - Add 07_fix-crontab-suggestions.diff to fix the crontab instructions to
+      include the user (root) to run the crontab entry, and inform the user
+      that the Debian package already includes a crontab entry
+      (Closes: #804436)
+  * debian/rules:
+    - Update to split up package building for arch and indep so that
+      binary-arch doesn't produce "arch: all" packages which is supposed
+      to happen only in the binary-indep target
+  * debian/README.source:
+    - Remove file as it is no longer necessary; stated that the package is
+      using dpatch which isn't the case as of 1.2.17-4
+
+ -- Christopher Knadle <Chris.Knadle at coredump.us>  Wed, 11 May 2016 22:46:20 -0400
+
 mlmmj (1.2.18.1-1) unstable; urgency=medium
 
   * New upstream release (Closes: #749959).
diff -Nru mlmmj-1.2.18.1/debian/control mlmmj-1.2.18.1/debian/control
--- mlmmj-1.2.18.1/debian/control	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/control	2016-05-24 22:27:47.000000000 -0400
@@ -2,11 +2,12 @@
 Section: mail
 Priority: optional
 Maintainer: MLMMJ packaging team <pkg-mlmmj-devel at lists.alioth.debian.org>
-Uploaders: Thomas Goirand <zigo at debian.org>
+Uploaders: Thomas Goirand <zigo at debian.org>,
+  Christopher Knadle <Chris.Knadle at coredump.us>
 Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.1.1~)
-Standards-Version: 3.9.5
-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-mlmmj/mlmmj.git
-Vcs-Git: http://anonscm.debian.org/git/pkg-mlmmj/mlmmj.git
+Standards-Version: 3.9.8
+Vcs-Browser: https://anonscm.debian.org/gitweb/?p=pkg-mlmmj/mlmmj.git
+Vcs-Git: https://anonscm.debian.org/git/pkg-mlmmj/mlmmj.git
 Homepage: http://mlmmj.org/
 
 Package: mlmmj
@@ -35,7 +36,7 @@
 
 Package: mlmmj-php-web
 Architecture: all
-Depends: ${misc:Depends}, mlmmj, php5
+Depends: ${misc:Depends}, mlmmj, php
 Description: web interface for mlmmj, written in php
  A web based tool for mlmmj written in php, so that your users can subscribe
  or unsubscribe through some HTML forms, which sometimes, might be more
@@ -43,7 +44,7 @@
 
 Package: mlmmj-php-web-admin
 Architecture: all
-Depends: ${misc:Depends}, mlmmj, php5
+Depends: ${misc:Depends}, mlmmj, php
 Description: administrative web interface for mlmmj, written in php
  This web based administrative tool for mlmmj written in php will help you
  to configure each mailing list individualy, through the web. You will be
diff -Nru mlmmj-1.2.18.1/debian/copyright mlmmj-1.2.18.1/debian/copyright
--- mlmmj-1.2.18.1/debian/copyright	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/copyright	2016-05-11 23:05:13.000000000 -0400
@@ -1,4 +1,4 @@
-Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=240
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: mlmmj
 Upstream-Contact: MLMMJ <mlmmj at mlmmj.org>
 Source: http://www.mlmmj.org
@@ -14,7 +14,7 @@
 
 Files: src/find_email_adr.c
 Copyright: (c) 1980, 1993, The Regents of the University of California
-License: BSD
+License: BSD-4-clause
 
 Files: *
 Copyright: (c) 2002, 2003, 2004 Mads Martin Joergensen
@@ -44,7 +44,7 @@
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
 
-License: BSD
+License: BSD-4-clause
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:
  .
diff -Nru mlmmj-1.2.18.1/debian/docs mlmmj-1.2.18.1/debian/docs
--- mlmmj-1.2.18.1/debian/docs	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/docs	2016-05-24 17:06:14.000000000 -0400
@@ -9,5 +9,4 @@
 TODO
 TUNABLES
 UPGRADE
-debian/README.source
 README.listtexts
diff -Nru mlmmj-1.2.18.1/debian/patches/05_fix_displayed_full_paths.diff mlmmj-1.2.18.1/debian/patches/05_fix_displayed_full_paths.diff
--- mlmmj-1.2.18.1/debian/patches/05_fix_displayed_full_paths.diff	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/patches/05_fix_displayed_full_paths.diff	2016-05-22 14:08:04.000000000 -0400
@@ -2,9 +2,9 @@
 Subject: Changes path of a printf in mlmmj.h to be /usr/bin and
  not /usr/local/bin when printing usages.
 Forwarded: not-needed
---- a/include/mlmmj.h	2012-01-22 15:36:11.000000000 +0800
-+++ b/include/mlmmj.h	2012-01-22 15:36:16.000000000 +0800
-@@ -88,7 +88,7 @@
+--- a/include/mlmmj.h
++++ b/include/mlmmj.h
+@@ -105,7 +105,7 @@
  #define CHECKFULLPATH(name) if(strchr(name, '/') == NULL) { \
  			fprintf(stderr, "All mlmmj binaries have to " \
  					"be invoked with full path,\n" \
diff -Nru mlmmj-1.2.18.1/debian/patches/06_fix-php-web-for-php7.diff mlmmj-1.2.18.1/debian/patches/06_fix-php-web-for-php7.diff
--- mlmmj-1.2.18.1/debian/patches/06_fix-php-web-for-php7.diff	1969-12-31 19:00:00.000000000 -0500
+++ mlmmj-1.2.18.1/debian/patches/06_fix-php-web-for-php7.diff	2016-05-22 17:08:20.000000000 -0400
@@ -0,0 +1,35 @@
+Description: Update for PHP 5 -> PHP 7 transition
+ ereg() and eregi() were deprecated with PHP 5.3.0 and removed in PHP 7.0.0
+   https://secure.php.net/manual/en/function.ereg.php
+   https://secure.php.net/manual/en/function.eregi.php
+ Also remove min 2, max 4 character TLD portion of regex, as there are
+ top-level domains > 4 chars now.
+ Thanks to Ron Guerin <ron at vnetworx.net> for his help with the PHP regexes.
+Author: Christopher Knadle <Chris.Knadle at coredump.us>
+Bug-Debian: https://bugs.debian.org/821532
+Bug-Debian: https://bugs.debian.org/821533
+Last-Updated: 2016-05-22
+
+--- a/contrib/web/php-user/mlmmj.php
++++ b/contrib/web/php-user/mlmmj.php
+@@ -37,7 +37,7 @@
+ 
+     function is_email($string="") 
+ 	{
+-	    if (eregi("^[a-z0-9\._-]+".chr(64)."+[a-z0-9\._-]+\.+[a-z]{2,4}$", $string)) 
++	    if (preg_match(chr(7)."^[a-z0-9\._-]+ at +[a-z0-9\._-]+\.+[a-z]+$".chr(7).'i', $string)) 
+ 	    { 
+ 		return TRUE; 
+ 	    }
+
+--- a/contrib/web/php-admin/htdocs/index.php
++++ b/contrib/web/php-admin/htdocs/index.php
+@@ -37,7 +37,7 @@
+ 
+ # use scandir to have alphabetical order
+ foreach (scandir($topdir) as $file) {
+-    if (!ereg("^\.",$file))
++    if (substr($file,0,1) != '.')
+     {
+ 	$lists .= "<p>".htmlentities($file)."<br/>\n";
+ 	$lists .= "<a href=\"edit.php?list=".urlencode($file)."\">Config</a> - <a href=\"subscribers.php?list=".urlencode($file)."\">Subscribers</a>\n";
diff -Nru mlmmj-1.2.18.1/debian/patches/07_fix-crontab-suggestions.diff mlmmj-1.2.18.1/debian/patches/07_fix-crontab-suggestions.diff
--- mlmmj-1.2.18.1/debian/patches/07_fix-crontab-suggestions.diff	1969-12-31 19:00:00.000000000 -0500
+++ mlmmj-1.2.18.1/debian/patches/07_fix-crontab-suggestions.diff	2016-05-24 13:49:14.000000000 -0400
@@ -0,0 +1,56 @@
+Description: Alter the mlmmj instructions for making a crontab entry, which
+ by default tells the user to add an entry without specifying the user.
+ Additionally let the user know that the Debian package already adds a
+ crontab entry in /etc/cron.d meaning under normal circumstances no
+ additional crontab is necessary
+Author: Christopher Knadle <Chris.Knadle at coredump.us>
+Bug-Debian: https://bugs.debian.org/804436
+Last-Updated: 2016-05-22
+
+--- a/src/mlmmj-make-ml
++++ b/src/mlmmj-make-ml
+@@ -133,7 +133,7 @@
+ fi
+ 
+ ALIAS="$LISTNAME:  \"|$MLMMJRECEIVE -L $SPOOLDIR/$LISTNAME/\""
+-CRONENTRY="0 */2 * * * \"$MLMMJMAINTD -F -L $SPOOLDIR/$LISTNAME/\""
++CRONENTRY="0 */2 * * * root $MLMMJMAINTD -F -L $SPOOLDIR/$LISTNAME/"
+ 
+ if [ -n "$A_CREATE" ]; then
+ 	echo "I want to add the following to your $ALIASFILE file:"
+@@ -175,9 +175,15 @@
+ fi
+ 
+ echo
+-echo "If you're not starting mlmmj-maintd in daemon mode,"
+-echo "don't forget to add this to your crontab:"
++echo "If you're not running mlmmj-maintd for all mailing lists"
++echo "in /var/spool/mlmmj such as"
++echo "   /usr/bin/mlmmj-maintd -F -d /var/spool/mlmmj"
++echo "via cron, then don't forget to add this to your crontab:"
+ echo "$CRONENTRY"
++echo
++echo "Note: the Debian mlmmj package installs a crontab in"
++echo "      /etc/cron.d/mlmmj which runs mlmmj-maintd for all"
++echo "      mailing lists in /var/spool/mlmmj every 1/2 hour."
+ 
+ echo
+ echo " ** FINAL NOTES **
+--- a/README
++++ b/README
+@@ -95,11 +95,11 @@
+  4) Start mlmmj-maintd (remember full path when starting it!) or add it to
+     crontab with -F switch. The recommended way for now is to run it via cron:
+ 
+-    "0 */2 * * *  /usr/bin/mlmmj-maintd -F -L /var/spool/mlmmj/mlmmj-test"
++    0 */2 * * *  root /usr/bin/mlmmj-maintd -F -L /var/spool/mlmmj/mlmmj-test
+ 
+-    It should be started as root, as mlmmj-maintd will become the user owning
+-    the listdir (/var/spool/mlmmj/mlmmj-test), and log it's last maintenance
+-    run to listdir/mlmmj-maintd.lastrun.log.
++    Started as root, as mlmmj-maintd will become the user owning the listdir
++    (/var/spool/mlmmj/mlmmj-test), and log it's last maintenance run to
++    listdir/mlmmj-maintd.lastrun.log.
+ 
+     If you have several lists below /var/spool/mlmmj you can use -d:
+     /usr/bin/mlmmj-maintd -F -d /var/spool/mlmmj
diff -Nru mlmmj-1.2.18.1/debian/patches/series mlmmj-1.2.18.1/debian/patches/series
--- mlmmj-1.2.18.1/debian/patches/series	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/patches/series	2016-05-22 19:19:58.000000000 -0400
@@ -1,3 +1,5 @@
-05_fix_displayed_full_paths.diff
 02_fix_mlmmj_php.diff
+05_fix_displayed_full_paths.diff
 fixes-path-to-templates-folder-in-php-web-admin
+06_fix-php-web-for-php7.diff
+07_fix-crontab-suggestions.diff
diff -Nru mlmmj-1.2.18.1/debian/README.source mlmmj-1.2.18.1/debian/README.source
--- mlmmj-1.2.18.1/debian/README.source	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/README.source	1969-12-31 19:00:00.000000000 -0500
@@ -1 +0,0 @@
-This package is using dpatch, so that it can be easily backported to Stable.
diff -Nru mlmmj-1.2.18.1/debian/rules mlmmj-1.2.18.1/debian/rules
--- mlmmj-1.2.18.1/debian/rules	2014-05-31 10:44:56.000000000 -0400
+++ mlmmj-1.2.18.1/debian/rules	2016-05-24 19:05:26.000000000 -0400
@@ -25,30 +25,48 @@
 	dh_testdir
 	./configure $(CONFFLAGS) $(shell dpkg-buildflags --export=configure)
 	touch configure-stamp
+
 build: build-arch build-indep
-build-arch: build-stamp
-build-indep: build-stamp
-build-stamp: configure-stamp  
+
+build-arch: build-arch-stamp
+
+build-indep: build-indep-stamp
+
+build-arch-stamp: configure-stamp
 	dh_testdir
 	$(MAKE)
 	touch $@
+
+build-indep-stamp:
+
 clean:
 	dh_testdir
 	dh_testroot
 	[ ! -f Makefile ] || $(MAKE) distclean
 	rm -f build-stamp configure-stamp config.log
-	dh_clean 
-install: build
+	dh_clean
+
+install: install-indep install-arch
+
+install-arch:
 	dh_testdir
 	dh_testroot
 	dh_prep
-	dh_installdirs
+	dh_installdirs -a
 	# Add here commands to install the package into debian/mlmmj.
 	$(MAKE) DESTDIR=$(CURDIR)/debian/mlmmj install
 	rm $(CURDIR)/debian/mlmmj/usr/bin/mlmmj-make-ml.sh
 	install -m 755 -D $(CURDIR)/debian/mlmmj-make-ml.Debian \
 		$(CURDIR)/debian/mlmmj/usr/share/doc/mlmmj/mlmmj-make-ml.Debian
-	dh_install -s
+	dh_install -a
+
+install-indep:
+	dh_testdir
+	dh_testroot
+	dh_prep
+	dh_installdirs -i
+	dh_install -i
+
 	# mlmmj-php-web
 	install -m 644 -D $(USER_ADMIN_SRC)/mlmmj.php	$(CURDIR)/debian/mlmmj-php-web/usr/share/mlmmj-php-web/mlmmj.php
 	install -m 644 -D $(USER_ADMIN_SRC)/example.html $(CURDIR)/debian/mlmmj-php-web/usr/share/mlmmj-php-web/index.html
@@ -70,13 +88,13 @@
 	ln -s /etc/mlmmj-php-web-admin				$(CURDIR)/debian/mlmmj-php-web-admin/usr/share/mlmmj-php-web-admin/conf
 	ln -s /etc/mlmmj-php-web-admin/templates		$(CURDIR)/debian/mlmmj-php-web-admin/usr/share/mlmmj-php-web-admin/templates
 
-binary-common: build install
+binary-common:
 	dh_testdir
 	dh_testroot
 	dh_installchangelogs ChangeLog
 	dh_installdocs
 	dh_installexamples
-	dh_installdebconf       
+	dh_installdebconf
 	dh_installcron
 	dh_installman
 	dh_link
@@ -89,8 +107,12 @@
 	dh_md5sums
 	dh_builddeb
 
-binary-indep: binary-common
-binary-arch: binary-common
+binary-arch: build-arch install-arch
+	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
+
+binary-indep: build-indep install-indep
+	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
 binary: binary-indep binary-arch
 
 .PHONY: build build-arch build-indep clean binary-indep binary-arch binary install configure
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-mlmmj-devel/attachments/20160525/47b05169/attachment-0003.sig>


More information about the Pkg-mlmmj-devel mailing list