author | Jan Alexander Steffens
<heftig@archlinux.org> 2018-06-22 23:08:43 UTC |
committer | Jan Alexander Steffens
<heftig@archlinux.org> 2018-06-22 23:08:43 UTC |
parent | 4d0c45c60c1b790ac14b15e74dbc492be23915f9 |
0001-avahi-python-Use-the-agnostic-DBM-interface.patch | +0 | -256 |
0001-build-Attempt-GDBM-1.15-compatibility.patch | +94 | -0 |
PKGBUILD | +7 | -7 |
diff --git a/0001-avahi-python-Use-the-agnostic-DBM-interface.patch b/0001-avahi-python-Use-the-agnostic-DBM-interface.patch deleted file mode 100644 index 3945f9c..0000000 --- a/0001-avahi-python-Use-the-agnostic-DBM-interface.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 426f70261d61db359e573e06b03575ee8cf50f5d Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Tue, 11 Jul 2017 21:52:37 +0200 -Subject: [PATCH] avahi-python: Use the agnostic DBM interface - -Also fixes configure failing if Python 3 and GDBM are in use, since Py3 -only has anydbm under the name of 'dbm'. ---- - avahi-python/avahi/Makefile.am | 15 +----------- - avahi-python/avahi/ServiceTypeDatabase.py.in | 31 ++++++++++++++++++------- - configure.ac | 9 ++++--- - service-type-database/.gitignore | 1 - - service-type-database/Makefile.am | 18 ++++---------- - service-type-database/{build-db.in => build-db} | 13 +++++++---- - 6 files changed, 41 insertions(+), 46 deletions(-) - rename service-type-database/{build-db.in => build-db} (87%) - -diff --git a/avahi-python/avahi/Makefile.am b/avahi-python/avahi/Makefile.am -index 3eb67d0df438a7f8..c906b9bf3b6d0708 100644 ---- a/avahi-python/avahi/Makefile.am -+++ b/avahi-python/avahi/Makefile.am -@@ -25,29 +25,16 @@ avahidir = $(pythondir)/avahi - - if HAVE_GDBM - nodist_avahi_SCRIPTS = ServiceTypeDatabase.py -- --ServiceTypeDatabase.py: ServiceTypeDatabase.py.in -- $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ -- -e 's,@DBM\@,gdbm,g' \ -- -e 's,@FIRST_KEY\@,key = self.db.firstkey(),g' \ -- -e 's,@CHECK_KEY\@,while key is not None:,g' \ -- -e 's,@NEXT_KEY\@,key = self.db.nextkey(key),g' \ -- -e 's,@pkglibdatadir\@,$(pkglibdatadir),g' $< > $@ && \ -- chmod +x $@ - endif - - if HAVE_DBM - nodist_avahi_SCRIPTS = ServiceTypeDatabase.py -+endif - - ServiceTypeDatabase.py: ServiceTypeDatabase.py.in - $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ -- -e 's,@DBM\@,dbm,g' \ -- -e 's,@FIRST_KEY\@,keys = self.db.keys(),g' \ -- -e 's,@CHECK_KEY\@,for key in keys:,g' \ -- -e 's,@NEXT_KEY\@,,g' \ - -e 's,@pkglibdatadir\@,$(pkglibdatadir),g' $< > $@ && \ - chmod +x $@ --endif - - avahi_PYTHON = $(avahi_SCRIPTS) - -diff --git a/avahi-python/avahi/ServiceTypeDatabase.py.in b/avahi-python/avahi/ServiceTypeDatabase.py.in -index 4ddd654409deb983..d7f9969bbd5a6ab0 100644 ---- a/avahi-python/avahi/ServiceTypeDatabase.py.in -+++ b/avahi-python/avahi/ServiceTypeDatabase.py.in -@@ -17,18 +17,22 @@ - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - # USA. - --import @DBM@ -+try: -+ import anydbm as dbm -+except ImportError: -+ import dbm -+ - import locale - import re - - locale.setlocale(locale.LC_ALL, '') - - class ServiceTypeDatabase: - """ServiceTypeDatabase maps service types to descriptions""" - - def __init__(self, filename = "@pkglibdatadir@/service-types.db"): - -- self.db = @DBM@.open(filename, "r") -+ self.db = dbm.open(filename, "r") - - l = locale.getlocale(locale.LC_MESSAGES) - -@@ -90,13 +94,24 @@ class ServiceTypeDatabase: - - def __iter__(self): - -- @FIRST_KEY@ -- @CHECK_KEY@ -+ def want_key(key): -+ if not re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+', key): -+ return False -+ if re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+\[.*\]', key): -+ return False -+ return True - -- if re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+', key) and not re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+\[.*\]', key): -- yield key -- -- @NEXT_KEY@ -+ try: -+ key = self.db.firstkey() -+ except AttributeError: -+ for key in self.db.keys(): -+ if want_key(key): -+ yield key -+ else: -+ while key is not None: -+ if want_key(key): -+ yield key -+ key = self.db.nextkey(key) - - def __len__(self): - -diff --git a/configure.ac b/configure.ac -index 66789718d45ff4ea..fbbf7cf3ef562a26 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -824,11 +824,10 @@ if test "x$HAVE_PYTHON" = "xyes" ; then - fi - - AM_CHECK_PYMOD(socket,,,[AC_MSG_ERROR(Could not find Python module socket)]) -- if test "x$HAVE_GDBM" = "xyes"; then -- AM_CHECK_PYMOD(gdbm,,,[AC_MSG_ERROR(Could not find Python module gdbm)]) -- fi -- if test "x$HAVE_DBM" = "xyes"; then -- AM_CHECK_PYMOD(dbm,,,[AC_MSG_ERROR(Could not find Python module dbm)]) -+ if test "x$HAVE_GDBM" = "xyes" || test "x$HAVE_DBM" = "xyes"; then -+ AM_CHECK_PYMOD(anydbm,,,[ -+ AM_CHECK_PYMOD(dbm,,,[AC_MSG_ERROR(Could not find Python module dbm)]) -+ ]) - fi - fi - fi -diff --git a/service-type-database/.gitignore b/service-type-database/.gitignore -index 581f1929d521c01d..51b02600e70c1ceb 100644 ---- a/service-type-database/.gitignore -+++ b/service-type-database/.gitignore -@@ -1,4 +1,3 @@ - Makefile - Makefile.in - service-types.db --build-db -diff --git a/service-type-database/Makefile.am b/service-type-database/Makefile.am -index d184fde30f0758c5..f9fa0825e937f2f7 100644 ---- a/service-type-database/Makefile.am -+++ b/service-type-database/Makefile.am -@@ -15,49 +15,39 @@ - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - # USA. - --EXTRA_DIST=build-db.in service-types -+EXTRA_DIST=service-types - - pkglibdatadir=$(libdir)/avahi - - pkglibdata_DATA= - - if HAVE_PYTHON - if HAVE_GDBM - - noinst_SCRIPTS=build-db - pkglibdata_DATA+=service-types.db - --build-db: build-db.in -- $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ -- -e 's,@DBM\@,gdbm,g' $< > $@ && \ -- chmod +x $@ -- --service-types.db: service-types build-db -+service-types.db: service-types - $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \ - mv $@.coming $@ - --CLEANFILES = service-types.db build-db -+CLEANFILES = service-types.db - - endif - if HAVE_DBM - - noinst_SCRIPTS=build-db - pkglibdata_DATA+=service-types.db.pag service-types.db.dir - --build-db: build-db.in -- $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ -- -e 's,@DBM\@,dbm,g' $< > $@ && \ -- chmod +x $@ -- - service-types.db.pag: service-types.db - $(AM_V_GEN)mv service-types.db.coming.pag service-types.db.pag - service-types.db.dir: service-types.db - $(AM_V_GEN)mv service-types.db.coming.dir service-types.db.dir - service-types.db: service-types build-db - $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \ - if test -f "$@.coming"; then mv $@.coming $@; fi - --CLEANFILES = service-types.db* build-db -+CLEANFILES = service-types.db* - - endif - endif -diff --git a/service-type-database/build-db.in b/service-type-database/build-db -similarity index 87% -rename from service-type-database/build-db.in -rename to service-type-database/build-db -index 4cda425374a79198..78ee892f606ea43c 100755 ---- a/service-type-database/build-db.in -+++ b/service-type-database/build-db -@@ -1,37 +1,42 @@ --#!@PYTHON@ -+#!/usr/bin/env python - # -*-python-*- - # This file is part of avahi. - # - # avahi is free software; you can redistribute it and/or modify it - # under the terms of the GNU Lesser General Public License as - # published by the Free Software Foundation; either version 2 of the - # License, or (at your option) any later version. - # - # avahi is distributed in the hope that it will be useful, but WITHOUT - # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - # License for more details. - # - # You should have received a copy of the GNU Lesser General Public - # License along with avahi; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - # USA. - --import @DBM@, sys -+try: -+ import anydbm as dbm -+except ImportError: -+ import dbm -+ -+import sys - - if len(sys.argv) > 1: - infn = sys.argv[1] - else: - infn = "service-types" - - if len(sys.argv) > 2: - outfn = sys.argv[2] - else: - outfn = infn + ".db" - --db = @DBM@.open(outfn, "n") -+db = dbm.open(outfn, "n") - --for ln in file(infn, "r"): -+for ln in open(infn, "r"): - ln = ln.strip(" \r\n\t") - - if ln == "" or ln.startswith("#"): --- -2.13.2 - diff --git a/0001-build-Attempt-GDBM-1.15-compatibility.patch b/0001-build-Attempt-GDBM-1.15-compatibility.patch new file mode 100644 index 0000000..c6be884 --- /dev/null +++ b/0001-build-Attempt-GDBM-1.15-compatibility.patch @@ -0,0 +1,94 @@ +From f2626c5f6c2c3737daab90503fd18ca7208791ec Mon Sep 17 00:00:00 2001 +Message-Id: <f2626c5f6c2c3737daab90503fd18ca7208791ec.1529708748.git.jan.steffens@gmail.com> +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Sat, 23 Jun 2018 01:05:20 +0200 +Subject: [PATCH] build: Attempt GDBM 1.15 compatibility + +--- + configure.ac | 3 +++ + service-type-database/Makefile.am | 34 +++++++++++++++---------------- + 2 files changed, 20 insertions(+), 17 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 72d6147..ee25ba1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -772,18 +772,21 @@ if test "x$HAVE_GDBM" = "xyes" ; then + AC_MSG_ERROR([*** libgdbm not found ***]) + fi + AC_DEFINE([HAVE_GDBM],[],[Support for GDBM]) ++ ++ AC_CHECK_MEMBER([gdbm_recovery.duplicate_keys], [have_gdbm_1_15=yes], [], [[#include <gdbm.h>]]) + else + if test "x$HAVE_DBM" = "xyes" ; then + AC_CHECK_HEADERS(ndbm.h, have_dbm=true, have_dbm=false) + + if ! $have_dbm ; then + AC_MSG_ERROR([*** dbm not found ***]) + fi + AC_DEFINE([HAVE_DBM],[],[Support for DBM]) + fi + fi + AM_CONDITIONAL(HAVE_GDBM, test "x$HAVE_GDBM" = "xyes") + AM_CONDITIONAL(HAVE_DBM, test "x$HAVE_DBM" = "xyes") ++AM_CONDITIONAL(HAVE_DBM_SPLIT, [test "x$have_gdbm_1_15" = "xyes" || test "x$HAVE_DBM" = "xyes"]) + + # + # libdaemon +diff --git a/service-type-database/Makefile.am b/service-type-database/Makefile.am +index f9fa082..0fe4af1 100644 +--- a/service-type-database/Makefile.am ++++ b/service-type-database/Makefile.am +@@ -22,32 +22,32 @@ pkglibdatadir=$(libdir)/avahi + pkglibdata_DATA= + + if HAVE_PYTHON +-if HAVE_GDBM + + noinst_SCRIPTS=build-db ++ ++if HAVE_DBM_SPLIT ++ ++pkglibdata_DATA+=service-types.db.pag service-types.db.dir ++ ++service-types.db.pag: service-types.db ++ $(AM_V_GEN)mv service-types.db.coming.pag service-types.db.pag ++service-types.db.dir: service-types.db ++ $(AM_V_GEN)mv service-types.db.coming.dir service-types.db.dir ++service-types.db: service-types ++ $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \ ++ if test -f "$@.coming"; then mv $@.coming $@; fi ++ ++CLEANFILES = service-types.db* ++ ++else ++ + pkglibdata_DATA+=service-types.db + + service-types.db: service-types + $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \ + mv $@.coming $@ + + CLEANFILES = service-types.db + +-endif +-if HAVE_DBM +- +-noinst_SCRIPTS=build-db +-pkglibdata_DATA+=service-types.db.pag service-types.db.dir +- +-service-types.db.pag: service-types.db +- $(AM_V_GEN)mv service-types.db.coming.pag service-types.db.pag +-service-types.db.dir: service-types.db +- $(AM_V_GEN)mv service-types.db.coming.dir service-types.db.dir +-service-types.db: service-types build-db +- $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \ +- if test -f "$@.coming"; then mv $@.coming $@; fi +- +-CLEANFILES = service-types.db* +- + endif + endif +-- +2.18.0 + diff --git a/PKGBUILD b/PKGBUILD index 14bc2e3..cf2d4c1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,18 +3,19 @@ # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=avahi -pkgver=0.7+4+gd8d8c67 +pkgver=0.7+16+g1cc2b8e pkgrel=1 pkgdesc='Service Discovery for Linux using mDNS/DNS-SD -- compatible with Bonjour' url='https://github.com/lathiat/avahi' license=(LGPL) arch=(x86_64) depends=(expat libdaemon glib2 libcap gdbm dbus) -makedepends=(git qt4 pygtk mono intltool gtk-sharp-2 gobject-introspection gtk3 +makedepends=(git qt4 pygtk mono intltool gtk-sharp-2 gobject-introspection gtk3 qt5-base xmltoman python-dbus python-gobject doxygen graphviz) optdepends=('gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc' 'gtk2: gtk2 bindings' 'qt4: qt4 bindings' + 'qt5-base: qt5 bindings' 'pygtk: avahi-bookmarks' 'python2-twisted: avahi-bookmarks' 'mono: mono bindings' @@ -23,11 +24,11 @@ optdepends=('gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc 'python-dbus: avahi-discover') backup=(etc/avahi/{hosts,avahi-daemon.conf,avahi-{autoip,dnsconf}d.action} usr/lib/avahi/service-types.db) -_commit=d8d8c67d8279f35eef157f5f442a1dde4ac5c45e # master +_commit=1cc2b8e8d62e939b8bd683f795794878863931af # master source=("git+https://github.com/lathiat/avahi#commit=$_commit" - 0001-avahi-python-Use-the-agnostic-DBM-interface.patch) + 0001-build-Attempt-GDBM-1.15-compatibility.patch) sha512sums=('SKIP' - '8cfc7c2cb0061e6348caa96b73bb6069efce5b4438962aa12448e46bc950a47c1f18059afbb1cacf7b2a1aa21f77025472532ad5e6eddb17834a8b1a34432226') + '1547211c7253999fd07a0a16bb17c85c2a111caf4763390d6e54b39ee1b2530f022d29d42bb0ed750a5c5b630c86bffbc0d4429c64bf2b59097a00e36cf98cb2') pkgver() { cd $pkgname @@ -36,7 +37,7 @@ pkgver() { prepare() { cd $pkgname - patch -Np1 -i ../0001-avahi-python-Use-the-agnostic-DBM-interface.patch + patch -Np1 -i ../0001-build-Attempt-GDBM-1.15-compatibility.patch NOCONFIGURE=1 ./autogen.sh } @@ -50,7 +51,6 @@ build() { --localstatedir=/var \ --sbindir=/usr/bin \ --disable-monodoc \ - --disable-qt3 \ --enable-compat-libdns_sd \ --with-distro=archlinux \ --with-avahi-priv-access-group=network \