diff options
Diffstat (limited to 'abs')
-rw-r--r-- | abs/core/avahi/0001-avahi-python-Use-the-agnostic-DBM-interface.patch | 256 | ||||
-rw-r--r-- | abs/core/avahi/PKGBUILD | 52 | ||||
-rw-r--r-- | abs/core/avahi/__changelog | 2 | ||||
-rw-r--r-- | abs/core/avahi/avahi.install | 7 |
4 files changed, 289 insertions, 28 deletions
diff --git a/abs/core/avahi/0001-avahi-python-Use-the-agnostic-DBM-interface.patch b/abs/core/avahi/0001-avahi-python-Use-the-agnostic-DBM-interface.patch new file mode 100644 index 0000000..3945f9c --- /dev/null +++ b/abs/core/avahi/0001-avahi-python-Use-the-agnostic-DBM-interface.patch @@ -0,0 +1,256 @@ +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/abs/core/avahi/PKGBUILD b/abs/core/avahi/PKGBUILD index 5aa2247..68d5751 100644 --- a/abs/core/avahi/PKGBUILD +++ b/abs/core/avahi/PKGBUILD @@ -4,39 +4,46 @@ # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=avahi -pkgver=0.6.32 -pkgrel=2 -_commit=4f334990f692ce08ab4ea2eece695f1592f535b2 +pkgver=0.7 +pkgrel=4 pkgdesc='Service Discovery for Linux using mDNS/DNS-SD -- compatible with Bonjour' url='https://github.com/lathiat/avahi' license=(LGPL) -arch=(i686 x86_64) +arch=(x86_64) depends=(expat libdaemon glib2 libcap gdbm dbus) -makedepends=(git qt4 pygtk mono intltool python2-dbus gtk-sharp-2 gobject-introspection gtk3 - xmltoman) -optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc' +makedepends=(git qt4 pygtk mono intltool gtk-sharp-2 gobject-introspection gtk3 + xmltoman python-dbus python-gobject doxygen graphviz) +optdepends=('gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc' 'gtk2: gtk2 bindings' 'qt4: qt4 bindings' - 'pygtk: avahi-bookmarks, avahi-discover' + 'pygtk: avahi-bookmarks' 'python2-twisted: avahi-bookmarks' 'mono: mono bindings' - 'python2-dbus: avahi-discover' - 'nss-mdns: NSS support for mDNS') -install=avahi.install + 'nss-mdns: NSS support for mDNS' + 'python-gobject: avahi-discover' + 'python-dbus: avahi-discover') backup=(etc/avahi/{hosts,avahi-daemon.conf} - usr/lib/avahi/service-types.db usr/share/avahi/service-types) -source=("git+$url#commit=$_commit") -sha256sums=('SKIP') + usr/lib/avahi/service-types.db) +_commit=6242e5f0fe001b7de2ccaa9431db279b2ee76b83 # tags/v0.7 +source=("git+https://github.com/lathiat/avahi#commit=$_commit" + 0001-avahi-python-Use-the-agnostic-DBM-interface.patch) +sha512sums=('SKIP' + '8cfc7c2cb0061e6348caa96b73bb6069efce5b4438962aa12448e46bc950a47c1f18059afbb1cacf7b2a1aa21f77025472532ad5e6eddb17834a8b1a34432226') +pkgver() { + cd $pkgname + git describe --tags | sed 's/^v//;s/-/+/g' +} prepare() { cd $pkgname + patch -Np1 -i ../0001-avahi-python-Use-the-agnostic-DBM-interface.patch NOCONFIGURE=1 ./autogen.sh } build() { cd $pkgname - export MOC_QT4=/usr/bin/moc-qt4 PYTHON=/usr/bin/python2 + export MOC_QT4=/usr/bin/moc-qt4 PYTHON=/usr/bin/python3 ./configure \ --prefix=/usr \ @@ -51,19 +58,25 @@ build() { --with-autoipd-user=avahi \ --with-autoipd-group=avahi \ --with-systemdsystemunitdir=/usr/lib/systemd/system + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - cp -a avahi-python/avahi avahi-python/avahi3 + cp -a avahi-python/avahi avahi-python/avahi2 make - make -C avahi-python/avahi3 PYTHON=/usr/bin/python2 + make -C avahi-python/avahi2 PYTHON=/usr/bin/python2 } package() { cd $pkgname make DESTDIR="$pkgdir" install - make DESTDIR="$pkgdir" -C avahi-python/avahi3 install \ + make DESTDIR="$pkgdir" -C avahi-python/avahi2 install \ PYTHON=/usr/bin/python2 pythondir=/usr/lib/python2.7/site-packages + rmdir "$pkgdir/run" + + # this isn't ported + sed -i '1s|python3|python2|' "$pkgdir/usr/bin/avahi-bookmarks" + # mdnsresponder compat ln -s avahi-compat-libdns_sd/dns_sd.h "$pkgdir/usr/include/dns_sd.h" @@ -72,5 +85,6 @@ package() { mv "$pkgdir"/etc/avahi/services/{,sftp-}ssh.service \ "$pkgdir/usr/share/doc/$pkgname/" - rmdir "$pkgdir"/var{/run,} + echo 'u avahi - "Avahi mDNS/DNS-SD daemon"' | + install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" } diff --git a/abs/core/avahi/__changelog b/abs/core/avahi/__changelog deleted file mode 100644 index 5c5991a..0000000 --- a/abs/core/avahi/__changelog +++ /dev/null @@ -1,2 +0,0 @@ -PKGBUILD: change py3 to py2 -avahi.install: remove systemd start message diff --git a/abs/core/avahi/avahi.install b/abs/core/avahi/avahi.install deleted file mode 100644 index 909cf98..0000000 --- a/abs/core/avahi/avahi.install +++ /dev/null @@ -1,7 +0,0 @@ -post_install() { - if ! getent passwd avahi &>/dev/null; then - groupadd -r -g 84 avahi - useradd -r -u 84 -g avahi -d / -s /bin/nologin -c avahi avahi - fi -} - |