Merge pull request #11485 from BKPepe/x264
authorRosen Penev <rosenp@gmail.com>
Sun, 15 Mar 2020 18:55:33 +0000 (11:55 -0700)
committerGitHub <noreply@github.com>
Sun, 15 Mar 2020 18:55:33 +0000 (11:55 -0700)
x264: add CONFIGURE_VARS when NASM is not selected

145 files changed:
admin/debootstrap/Makefile
admin/debootstrap/files/pkgdetails.c
admin/debootstrap/patches/010-no-nvswitch.patch [new file with mode: 0644]
admin/schroot/Config.in [new file with mode: 0644]
admin/schroot/Makefile [new file with mode: 0644]
admin/schroot/files/schroot.init [new file with mode: 0755]
admin/schroot/patches/01-openwrt.patch [new file with mode: 0644]
admin/syslog-ng/Makefile
admin/syslog-ng/files/syslog-ng.conf
devel/lttng-modules/Makefile
devel/meson/Makefile
kernel/antfs/Makefile [new file with mode: 0644]
kernel/exfat-nofuse/Makefile
kernel/ksmbd/Makefile
lang/chicken-scheme/Makefile
lang/golang/golang-values.mk
lang/golang/golang/Makefile
lang/node-hid/Makefile
lang/node-homebridge/Makefile
lang/node-serialport-bindings/Makefile
lang/node-serialport/Makefile
lang/node-serialport/patches/001-turn_off_depends.patch
lang/perl-www-curl/Makefile
lang/perl-www-curl/patches/220-curl_7.69_compat.patch [new file with mode: 0644]
lang/python/django/Makefile
lang/python/django1/Makefile
lang/python/python-requests/Makefile
lang/python/python3-asgiref/Makefile
lang/python/python3-sqlparse/Makefile
lang/vala/Makefile
libs/avahi/Makefile
libs/avahi/files/netifd-autoip.sh
libs/avahi/patches/010-step_back_autotools-no-gettext.patch [deleted file]
libs/avahi/patches/020-revert-runtime-dir-systemd-change.patch
libs/faad2/Makefile
libs/faad2/patches/010-lc-decoder.patch [new file with mode: 0644]
libs/faad2/patches/020-bits.patch [new file with mode: 0644]
libs/faad2/patches/030-sbr-ps-dec.patch [new file with mode: 0644]
libs/libaudiofile/Makefile [deleted file]
libs/libaudiofile/patches/010-gcc6-fix-left-shift-negative-number.patch [deleted file]
libs/libaudiofile/patches/020-remove-tests-examples-docs.patch [deleted file]
libs/libaudiofile/patches/030-CVE-2015-7747.patch [deleted file]
libs/libaudiofile/patches/110-Always-check-the-number-of-coefficients.patch [deleted file]
libs/libaudiofile/patches/120-clamp-index-values-to-fix-index-overflow-in-IMA.cpp.patch [deleted file]
libs/libaudiofile/patches/130-Check-for-multiplication-overflow-in-sfconvert.patch [deleted file]
libs/libaudiofile/patches/140-Actually-fail-when-error-occurs-in-parseFormat.patch [deleted file]
libs/libaudiofile/patches/150-Check-for-multiplication-overflow-in-MSADPCM-decodeS.patch [deleted file]
libs/libaudiofile/patches/160-Fix-signature-of-multiplyCheckOverflow.patch [deleted file]
libs/libaudiofile/patches/170-Check-for-division-by-zero-in-BlockCodec.patch [deleted file]
libs/libgee/Makefile
libs/libiio/Makefile
libs/libiio/patches/0001-Update-channel-type-and-modifier-lists.patch [new file with mode: 0644]
libs/libpfring/Makefile
libs/libqmi/Makefile
libs/libuhttpd/Makefile
libs/libzdb/Makefile
libs/libzdb/patches/010-do-not-run-test-progs.patch [new file with mode: 0644]
libs/libzdb/patches/010-missing-header.patch [deleted file]
libs/libzdb/patches/020-filterh-use-host-built-version.patch
libs/measurement-kit/Makefile
libs/tdb/Makefile
libs/tdb/patches/100-Remove_libbsd_dependency_check.patch
libs/xr_usb_serial_common/Makefile
multimedia/grilo-plugins/Makefile
multimedia/grilo-plugins/patches/010-backport-fix-whitespace.patch [new file with mode: 0644]
multimedia/grilo-plugins/patches/020-backport-add-missing-calls-to-free.patch [new file with mode: 0644]
multimedia/grilo-plugins/patches/030-backport-libdmapsharing4.patch [new file with mode: 0644]
multimedia/minidlna/Makefile
multimedia/minidlna/files/minidlna.init
multimedia/minidlna/patches/050-no-cover-resizing.patch [deleted file]
multimedia/youtube-dl/Makefile
net/bonding/Makefile
net/bonding/files/lib/netifd/proto/bonding.sh
net/git/Makefile
net/https-dns-proxy/Makefile
net/https-dns-proxy/files/README.md
net/https-dns-proxy/files/https-dns-proxy.init
net/jool/Makefile
net/keepalived/Makefile
net/keepalived/patches/0001-Fix-building-with-disable-libipvs-dynamic.patch [new file with mode: 0644]
net/knot/Makefile
net/linknx/Makefile
net/linknx/files/linknx.config
net/linknx/files/linknx.init
net/linknx/patches/010-iconv.patch [deleted file]
net/mosquitto/Makefile
net/mwan3/Makefile
net/mwan3/files/usr/sbin/mwan3track
net/shorewall-core/Makefile
net/shorewall-lite/Makefile
net/shorewall/Makefile
net/shorewall6-lite/Makefile
net/shorewall6/Makefile
net/siit/Makefile
net/softethervpn/Makefile
net/sqm-scripts/Makefile
net/sqm-scripts/files/luci-app-sqm.defaults [new file with mode: 0644]
net/squid/Makefile
net/squid/files/squid.conf
net/transmission/Makefile
net/transmission/files/transmission-daemon.json
net/wifidog-ng/Makefile
net/xtables-addons/Makefile
net/xtables-addons/patches/002-restore-support-for-Linux-4.14.patch
net/xtables-addons/patches/100-add-rtsp-conntrack.patch
net/xtables-addons/patches/201-fix-lua-packetscript.patch
sound/squeezelite/Makefile
sound/squeezelite/files/squeezelite.init
sound/squeezelite/patches/010-select_broadcast_interface.patch
sound/squeezelite/patches/020-no_libmad.patch
utils/antfs-mount/Makefile [new file with mode: 0644]
utils/antfs-mount/files/mount.ntfs [new file with mode: 0644]
utils/btrfs-progs/Makefile
utils/btrfs-progs/files/btrfs-scan.init
utils/collectd/Makefile
utils/containerd/Makefile
utils/cryptsetup/Makefile
utils/docker-ce/Makefile
utils/gptfdisk/Makefile
utils/gptfdisk/patches/010-gptcurses-Add-missing-header.patch [deleted file]
utils/gptfdisk/patches/020-support-Flush-cout-in-GetYN.patch [deleted file]
utils/gptfdisk/patches/030-support-flush-cout-in-GetNumber.patch [deleted file]
utils/gptfdisk/patches/040-support-flush-cout-in-ReadString.patch [deleted file]
utils/gptfdisk/patches/050-Add-some-extra-flushes-before-getline-cin.patch
utils/haveged/Makefile
utils/haveged/files/haveged.init
utils/irqbalance/Makefile
utils/irqbalance/files/irqbalance.init
utils/libnetwork/Makefile
utils/lvm2/Makefile
utils/lvm2/patches/000-compile.patch [deleted file]
utils/lvm2/patches/001-include_fix.patch [deleted file]
utils/lvm2/patches/002-const-stdio.patch
utils/lvm2/patches/004-device-include-goto-lable-as-well.patch
utils/runc/Makefile
utils/sed/Makefile [new file with mode: 0644]
utils/shinit/Makefile [deleted file]
utils/shinit/files/etc/profile.d/shinit.sh [deleted file]
utils/shinit/files/etc/shinit [deleted file]
utils/sispmctl/Makefile
utils/smartmontools/Makefile
utils/smartmontools/files/smartd.init
utils/syncthing/Makefile
utils/syncthing/files/etc/config/syncthing
utils/syncthing/files/etc/init.d/syncthing

index f6cbca238ad40065c1556aefb973846668f7245c..cf29b2848f5a421514309445577bef9ee94f4fd6 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=debootstrap
-PKG_VERSION:=1.0.116
+PKG_VERSION:=1.0.119~bpo10+1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-udeb_$(PKG_VERSION)_all.udeb
 PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/d/debootstrap
-PKG_HASH:=2325cbad6fac19cec7db34cff8fc06f9d9781862621b6e91f10549cf7c7c66af
+PKG_HASH:=b48aeb76533f233ac45c8b5ddd452550b3998e67e32dba4137f320a1a7b3519e
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=Unique
index 99ee1900aab6670937ba59066c8a269d19071202..7de6731dda98215b02ca605188a6fe3b1b73ed06 100644 (file)
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/admin/debootstrap/patches/010-no-nvswitch.patch b/admin/debootstrap/patches/010-no-nvswitch.patch
new file mode 100644 (file)
index 0000000..d288dcc
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/usr/share/debootstrap/functions
++++ b/usr/share/debootstrap/functions
+@@ -77,7 +77,6 @@ progress_next () {
+ }
+ wgetprogress () {
+-      [ ! "$VERBOSE" ] && NVSWITCH="-nv"
+       local ret=0
+       if [ "$USE_DEBIANINSTALLER_INTERACTION" ] && [ "$PROGRESS_NEXT" ]; then
+               # The exit status of a pipeline is that of the last command in
diff --git a/admin/schroot/Config.in b/admin/schroot/Config.in
new file mode 100644 (file)
index 0000000..3a1cdb1
--- /dev/null
@@ -0,0 +1,23 @@
+menu "Configuration"
+
+config SCHROOT_BTRFS
+       bool "Enable support for btrfs snapshots"
+       select PACKAGE_btrfs-progs
+       default n
+
+config SCHROOT_LOOPBACK
+       bool "Enable support for loopback mounts"
+       select PACKAGE_losetup
+       default n
+
+config SCHROOT_LVM
+       bool "Enable support for LVM snapshots"
+       select PACKAGE_lvm2
+       default n
+
+config SCHROOT_UUID
+       bool "Enable support for UUIDs"
+       select PACKAGE_libuuid
+       default n
+
+endmenu
diff --git a/admin/schroot/Makefile b/admin/schroot/Makefile
new file mode 100644 (file)
index 0000000..fdb81a3
--- /dev/null
@@ -0,0 +1,82 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=schroot
+PKG_VERSION:=1.6.10
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.xz
+PKG_SOURCE_URL:=http://deb.debian.org/debian/pool/main/s/schroot
+PKG_HASH:=3ce8dfd9cb97b099e4b6d4ccec421d6cc8c9ef84574681e928a12badb5643d0b
+
+PKG_MAINTAINER:=Javier Marcet <javier@marcet.info>
+PKG_LICENSE:=GPL-3.0-only
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/schroot
+  SECTION:=admin
+  CATEGORY:=Administration
+  TITLE:=Securely enter a chroot and run a command or login shell.
+  DEPENDS:=$(ICONV_DEPENDS) \
+       +boost +boost-filesystem +boost-iostreams +boost-program_options +boost-regex \
+       +SCHROOT_BTRFS:btrfs-progs \
+       +SCHROOT_LOOPBACK:losetup \
+       +SCHROOT_LVM:lvm2 \
+       +SCHROOT_UUID:libuuid
+  URL:=https://salsa.debian.org/debian/schroot
+endef
+
+define Package/schroot/description
+  Securely enter a chroot and run a command or login shell.
+endef
+
+define Package/sudo/conffiles
+/etc/schroot/
+endef
+
+define Package/schroot/config
+       source "$(SOURCE)/Config.in"
+endef
+
+PKG_CONFIG_DEPENDS := \
+       CONFIG_SCHROOT_BTRFS \
+       CONFIG_SCHROOT_LOOPBACK \
+       CONFIG_SCHROOT_LVM \
+       CONFIG_SCHROOT_UUID
+
+CONFIGURE_ARGS += \
+       $(if $(CONFIG_SCHROOT_BTRFS),--enable,--disable)-btrfs-snapshot \
+       $(if $(CONFIG_SCHROOT_LOOPBACK),--enable,--disable)-loopback \
+       $(if $(CONFIG_SCHROOT_LVM),--enable,--disable)-lvm-snapshot \
+       $(if $(CONFIG_SCHROOT_UUID),--enable,--disable)-uuid \
+       --enable-block-device \
+       --enable-union \
+       --disable-dchroot \
+       --disable-dchroot-dsa \
+       --disable-csbuild \
+       --disable-debug \
+       --disable-pam \
+       --disable-doxygen \
+       --disable-rpath
+
+define Package/schroot/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_SUID) $(PKG_INSTALL_DIR)/usr/bin/schroot $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/schroot
+       $(CP) -R $(PKG_INSTALL_DIR)/etc/schroot/* $(1)/etc/schroot
+       $(INSTALL_DIR) $(1)/usr/lib/schroot
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libsbuild.* $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/schroot/* $(1)/usr/lib/schroot/
+       $(INSTALL_DIR) $(1)/usr/share/schroot
+       $(CP) -R $(PKG_INSTALL_DIR)/usr/share/schroot/* $(1)/usr/share/schroot/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/schroot.init $(1)/etc/init.d/schroot
+endef
+
+$(eval $(call BuildPackage,schroot))
diff --git a/admin/schroot/files/schroot.init b/admin/schroot/files/schroot.init
new file mode 100755 (executable)
index 0000000..aa37793
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh /etc/rc.common
+
+START=94
+
+start() {
+       [ -d /var/lib/schroot ] || {
+               mkdir -p /var/lib/schroot/mount /var/lib/schroot/session /var/lib/schroot/unpack /var/lib/schroot/union/overlay /var/lib/schroot/union/underlay
+               chmod 0700 /var/lib/schroot
+       }
+}
diff --git a/admin/schroot/patches/01-openwrt.patch b/admin/schroot/patches/01-openwrt.patch
new file mode 100644 (file)
index 0000000..9b26b47
--- /dev/null
@@ -0,0 +1,219 @@
+--- ./configure.ac-orig        2019-12-09 12:56:45.217308628 +0100
++++ ./configure.ac     2019-12-09 12:57:18.667492923 +0100
+@@ -284,22 +284,8 @@ if test -z "$DOXYGEN"; then
+   HAVE_DOXYGEN="no"
+ fi
+ HAVE_LVM="yes"
+-AC_PATH_PROG([LVCREATE], [lvcreate], [], [$PATH:/sbin:/usr/sbin])
+-AC_PATH_PROG([LVREMOVE], [lvremove], [], [$PATH:/sbin:/usr/sbin])
+-if test -z "$LVCREATE" || test -z "$LVREMOVE"; then
+-  HAVE_LVM="no"
+-fi
+ HAVE_BTRFS="yes"
+-AC_PATH_PROG([BTRFS], [btrfs], [], [$PATH:/sbin:/usr/sbin])
+-AC_PATH_PROG([BTRFSCTL], [btrfsctl], [], [$PATH:/sbin:/usr/sbin])
+-if test -z "$BTRFS" || test -z "$BTRFSCTL"; then
+-  HAVE_BTRFS="no"
+-fi
+ HAVE_LOOPBACK="yes"
+-AC_PATH_PROG([LOSETUP], [losetup], [], [$PATH:/sbin:/usr/sbin])
+-if test -z "$LOSETUP"; then
+-  HAVE_LOOPBACK="no"
+-fi
+ # Check for host platform
+@@ -336,7 +322,6 @@ PKG_CHECK_MODULES([UUID], [uuid],
+                   [HAVE_UUID=yes],
+                   [HAVE_UUID=no])
+-AM_PATH_CPPUNIT([1.10.0], [HAVE_CPPUNIT=yes])
+ AM_CONDITIONAL([USE_UNIT_TESTS], [test -n "$HAVE_CPPUNIT"])
+ SCHROOT_CFLAGS="$UUID_CFLAGS"
+@@ -688,42 +673,25 @@ if test "$BOOST_PROGRAM_OPTIONS_VALIDATI
+ fi
+ dnl Note the use of quadrigraphs to quote [ and ] in regexes.
+-AH_TEMPLATE(HAVE_REGEX_REGEX, [Set if the <regex> header file includes std::regex])
+ AH_TEMPLATE(HAVE_BOOST_REGEX, [Set if the <boost/regex.hpp> header file includes boost::regex])
+-AC_MSG_CHECKING([for std::regex])
+-define([testprog], [AC_LANG_PROGRAM([#include <regex>],
+-                                   [std::regex foo("^foo@<:@bar@:>@$");
+-                                    std::regex bar("^foo@<:@bar@:>@$", std::regex::extended);
+-                                    std::regex check("^@<:@^:/,.@:>@@<:@^:/,@:>@*$", std::regex::extended);])])
+-AC_RUN_IFELSE(testprog,
+-  [AC_MSG_RESULT([yes])
+-   AC_DEFINE(HAVE_REGEX_REGEX, 1)],
+-  [dnl Check if std::regex is present but broken.
+-define([testprog], [AC_LANG_PROGRAM([#include <regex>],
+-                                   [std::regex foo("^foo@<:@bar@:>@$");
+-                                    std::regex bar("^foo@<:@bar@:>@$", std::regex::extended);])])
++AC_MSG_CHECKING([for boost::regex in -lboost_regex])
++saved_LIBS="${LIBS}"
++LIBS="${saved_LIBS} -lboost_regex"
++define([testprog], [AC_LANG_PROGRAM([#include <boost/regex.hpp>],
++                                [boost::regex("^foo@<:@bar@:>@$");
++                                 boost::regex bar("^foo@<:@bar@:>@$", boost::regex::extended);])])
+ AC_LINK_IFELSE(testprog,
+-  [AC_MSG_RESULT([broken])],
+-  [AC_MSG_RESULT([no])])
+-   AC_MSG_CHECKING([for boost::regex in -lboost_regex])
+-   saved_LIBS="${LIBS}"
+-   LIBS="${saved_LIBS} -lboost_regex"
+-   define([testprog], [AC_LANG_PROGRAM([#include <boost/regex.hpp>],
+-                                   [boost::regex("^foo@<:@bar@:>@$");
+-                                    boost::regex bar("^foo@<:@bar@:>@$", boost::regex::extended);])])
+-   AC_LINK_IFELSE(testprog,
+-                  [AC_MSG_RESULT([yes])
+-                   AC_DEFINE(HAVE_BOOST_REGEX, 1)
+-                   BOOST_LIBS="${BOOST_LIBS} -lboost_regex"],
+-                  [LIBS="${saved_LIBS} -lboost_regex-mt"
+-                   AC_LINK_IFELSE(testprog,
+-                          [AC_MSG_RESULT([yes])
+-                           AC_DEFINE(HAVE_BOOST_REGEX, 1)
+-                           BOOST_LIBS="${BOOST_LIBS} -lboost_regex-mt"],
+-                          [AC_MSG_RESULT([no])
+-                    AC_MSG_FAILURE([libboost_regex (Boost C++ Libraries) is not installed, but is required by schroot])])])
+-   LIBS="${saved_LIBS}"
+-])
++               [AC_MSG_RESULT([yes])
++                AC_DEFINE(HAVE_BOOST_REGEX, 1)
++                BOOST_LIBS="${BOOST_LIBS} -lboost_regex"],
++               [LIBS="${saved_LIBS} -lboost_regex-mt"
++                AC_LINK_IFELSE(testprog,
++                       [AC_MSG_RESULT([yes])
++                        AC_DEFINE(HAVE_BOOST_REGEX, 1)
++                        BOOST_LIBS="${BOOST_LIBS} -lboost_regex-mt"],
++                       [AC_MSG_RESULT([no])
++                 AC_MSG_FAILURE([libboost_regex (Boost C++ Libraries) is not installed, but is required by schroot])])])
++LIBS="${saved_LIBS}"
+ AC_MSG_CHECKING([for boost::iostreams in -lboost_iostreams])
+ saved_LIBS="${LIBS}"
+--- ./bin/schroot-base/schroot-base-run.h-orig 2019-12-09 04:23:51.881428446 +0100
++++ ./bin/schroot-base/schroot-base-run.h      2019-12-09 04:24:14.934887089 +0100
+@@ -61,8 +61,8 @@ namespace schroot_base
+         std::cout.imbue(std::locale());
+         std::cerr.imbue(std::locale());
+-        bindtextdomain (SBUILD_MESSAGE_CATALOGUE, SCHROOT_LOCALE_DIR);
+-        textdomain (SBUILD_MESSAGE_CATALOGUE);
++        //bindtextdomain (SBUILD_MESSAGE_CATALOGUE, SCHROOT_LOCALE_DIR);
++        //textdomain (SBUILD_MESSAGE_CATALOGUE);
+         typename options_type::ptr opts(new options_type);
+         main_type kit(opts);
+--- ./sbuild/sbuild-feature.h-orig     2019-12-09 04:23:51.881428446 +0100
++++ ./sbuild/sbuild-feature.h  2019-12-09 04:24:14.934887089 +0100
+@@ -24,6 +24,7 @@
+ #include <string>
+ #include <boost/format.hpp>
++#include <libintl.h>
+ namespace sbuild
+ {
+--- ./etc/setup.d/20copyfiles-orig     2018-11-03 14:26:12.000000000 +0100
++++ ./etc/setup.d/20copyfiles  2019-12-09 13:56:45.277145648 +0100
+@@ -39,9 +39,9 @@ copy_file()
+         if [ -e "$2" ]; then
+             # Device and inode
+-            da=$(/usr/bin/stat --format="%d %i" "$1")
++            da=$(/bin/stat --format="%d %i" "$1")
+             # This one can fail since it might not exist yet
+-            db=$(/usr/bin/stat --format="%d %i" "$2" 2>/dev/null || :)
++            db=$(/bin/stat --format="%d %i" "$2" 2>/dev/null || :)
+             if [ "$da" = "$db" ]; then
+                 COPY="false"
+--- ./etc/setup.d/20nssdatabases-orig  2018-11-03 14:26:12.000000000 +0100
++++ ./etc/setup.d/20nssdatabases       2019-12-09 13:57:34.397419039 +0100
+@@ -29,7 +29,7 @@ set -e
+ dup_nss()
+ {
+     info "Copying $1 database to $2"
+-    getent "$1" > "$2"
++    cat "/etc/$1" > "$2"
+ }
+ if [ $STAGE = "setup-start" ] || [ $STAGE = "setup-recover" ]; then
+@@ -42,9 +42,9 @@ if [ $STAGE = "setup-start" ] || [ $STAG
+                 fi
+                 # Device and inode
+-                dr=$(/usr/bin/stat --format="%d %i" "/etc/$db")
++                dr=$(/bin/stat --format="%d %i" "/etc/$db")
+                 # This one can fail since it might not exist yet
+-                dc=$(/usr/bin/stat --format="%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
++                dc=$(/bin/stat --format="%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
+                 # If the database inside and outside the chroot is the
+                 # same, it's very likely that dup_nss would blank the
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/all/all/nssdatabases ./etc/profile-templates/all/all/nssdatabases
+--- ./etc/profile-templates/all/all/nssdatabases       2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/all/all/nssdatabases       2019-12-09 14:03:12.799297723 +0100
+@@ -4,4 +4,4 @@
+ passwd
+ shadow
+-group
+-gshadow
++#group
++#gshadow
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/buildd/all/nssdatabases ./etc/profile-templates/buildd/all/nssdatabases
+--- ./etc/profile-templates/buildd/all/nssdatabases    2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/buildd/all/nssdatabases    2019-12-09 14:03:12.802631074 +0100
+@@ -4,4 +4,4 @@
+ passwd
+ shadow
+-group
+-gshadow
++#group
++#gshadow
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/default/all/nssdatabases ./etc/profile-templates/default/all/nssdatabases
+--- ./etc/profile-templates/default/all/nssdatabases   2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/default/all/nssdatabases   2019-12-09 14:03:12.809297778 +0100
+@@ -1,4 +1,4 @@
+ services
+ protocols
+-networks
++#networks
+ hosts
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/desktop/all/nssdatabases ./etc/profile-templates/desktop/all/nssdatabases
+--- ./etc/profile-templates/desktop/all/nssdatabases   2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/desktop/all/nssdatabases   2019-12-09 14:03:12.812631129 +0100
+@@ -1,4 +1,4 @@
+ services
+ protocols
+-networks
++#networks
+ hosts
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/default/linux/fstab ./etc/profile-templates/default/linux/fstab
+--- ./etc/profile-templates/default/linux/fstab        2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/default/linux/fstab        2019-12-09 14:18:46.970887080 +0100
+@@ -7,7 +7,7 @@
+ # to run additional services in the chroot.  However, note that this
+ # may potentially cause undesirable behaviour on upgrades, such as
+ # killing services on the host.
+-#/run           /run            none    rw,bind         0       0
++/run           /run            none    rw,bind         0       0
+ #/run/lock      /run/lock       none    rw,bind         0       0
+-#/dev/shm       /dev/shm        none    rw,bind         0       0
+-#/run/shm       /run/shm        none    rw,bind         0       0
++/tmp/shm       /dev/shm        none    rw,bind         0       0
++/tmp/shm       /run/shm        none    rw,bind         0       0
+diff -X /home/jmarcet/.rsync-filter -pru ./etc/profile-templates/desktop/linux/fstab ./etc/profile-templates/desktop/linux/fstab
+--- ./etc/profile-templates/desktop/linux/fstab        2018-11-03 14:26:12.000000000 +0100
++++ ./etc/profile-templates/desktop/linux/fstab        2019-12-09 14:22:14.148555674 +0100
+@@ -12,7 +12,7 @@
+ # to run additional services in the chroot.  However, note that this
+ # may potentially cause undesirable behaviour on upgrades, such as
+ # killing services on the host.
+-#/run           /run            none    rw,bind         0       0
++/run           /run            none    rw,bind         0       0
+ #/run/lock      /run/lock       none    rw,bind         0       0
+-#/dev/shm       /dev/shm        none    rw,bind         0       0
+-#/run/shm       /run/shm        none    rw,bind         0       0
++/tmp/shm       /dev/shm        none    rw,bind         0       0
++/tmp/shm       /run/shm        none    rw,bind         0       0
index a6825b64b78bd31f1deaa6f2f6790c97272e78e7..b47151e4679ece9713d68fad7d4992b227ecc13a 100644 (file)
@@ -1,8 +1,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=syslog-ng
-PKG_VERSION:=3.25.1
-PKG_RELEASE:=2
+PKG_VERSION:=3.26.1
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>
 PKG_LICENSE:=LGPL-2.1-or-later GPL-2.0-or-later
@@ -10,8 +10,8 @@ PKG_LICENSE_FILES:=COPYING LGPL.txt GPL.txt
 PKG_CPE_ID:=cpe:/a:balabit:syslog-ng
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/balabit/syslog-ng/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
-PKG_HASH:=34cb9673bcde58d543890e6c1189f466f938e199f227c524a6fa2f47f4db6817
+PKG_SOURCE_URL:=https://github.com/syslog-ng/syslog-ng/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
+PKG_HASH:=90214223864df252cea80dbb35c88a2464edcbbb2c9fbc6f6f6c13ee60cb62cd
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -85,7 +85,8 @@ define Package/syslog-ng/install
        $(INSTALL_DATA) ./files/syslog-ng.conf $(1)/etc
        touch $(1)/etc/syslog-ng.d/.keep
 
-       $(INSTALL_BIN) ./files/logread $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/sbin
+       $(INSTALL_BIN) ./files/logread $(1)/sbin
 endef
 
 define Package/syslog-ng/postinst
index 6dcfead8672778931da3c3249f83388dcb7f2abc..01538f9c9a487d344b602034d50466d52b181849 100644 (file)
@@ -4,7 +4,7 @@
 # More details about these settings can be found here:
 # https://www.syslog-ng.com/technical-documents/list/syslog-ng-open-source-edition
 
-@version: 3.25
+@version: 3.26
 @include "scl.conf"
 @include "/etc/syslog-ng.d/" # Put any customization files in this directory
 
index 11b30b6d7b2a9541e2642fcb3e8a7e56881ac3d0..08d93d277f5c6a79d684c590ea628a77854dd9a2 100644 (file)
@@ -37,7 +37,7 @@ define Build/Compile
        $(MAKE) -C "$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)" \
+               M="$(PKG_BUILD_DIR)" \
                V="$(V)" \
                modules
 endef
index c6eacda98661e0cd4e0cfae0349b4e1e4e33b169..1df088083e1cf98c2cecb09e3037755fa242c9f9 100644 (file)
@@ -1,12 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=meson
-PKG_VERSION:=0.53.1
+PKG_VERSION:=0.53.2
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/mesonbuild/meson/releases/download/$(PKG_VERSION)/
-PKG_HASH:=ec1ba33eea701baca2c1607dac458152dc8323364a51fdef6babda2623413b04
+PYPI_NAME:=meson
+PKG_HASH:=3e8f830f33184397c2eb0b651ec502adb63decb28978bdc84b3558d71284c21f
 
 PKG_MAINTAINER:=Andre Heider <a.heider@gmail.com>
 PKG_LICENSE:=Apache-2.0
@@ -14,6 +13,7 @@ PKG_LICENSE_FILES:=COPYING
 
 HOST_BUILD_DEPENDS:=ninja/host
 
+include ../../lang/python/pypi.mk
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 include ../../lang/python/python3-package.mk
diff --git a/kernel/antfs/Makefile b/kernel/antfs/Makefile
new file mode 100644 (file)
index 0000000..6f27719
--- /dev/null
@@ -0,0 +1,44 @@
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=antfs
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://github.com/klukonin/antfs.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_DATE:=2020-02-10
+PKG_SOURCE_VERSION:=b41ba529f6b64b429527e09a06ce0326d5456c05
+PKG_MIRROR_HASH:=dae039c0fe5bf1a2c8c1cca4211d607a4d6f56fc41b38444e2234b40d710d9db
+
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+
+define KernelPackage/fs-antfs
+       SUBMENU:=Filesystems
+       TITLE:=AVM NTFS Read/Write Driver
+       FILES:=$(PKG_BUILD_DIR)/antfs.ko
+       AUTOLOAD:=$(call AutoLoad,30,antfs,1)
+       DEPENDS:=+kmod-nls-base
+endef
+
+define KernelPackage/fs-antfs/description
+       Kernel module for NTFS Filesytem
+endef
+
+MAKE_OPTS:= \
+        ARCH="$(LINUX_KARCH)" \
+        CROSS_COMPILE="$(TARGET_CROSS)" \
+        M="$(PKG_BUILD_DIR)"
+
+define Build/Compile
+       $(MAKE) -C "$(LINUX_DIR)" \
+               $(MAKE_OPTS) \
+               CONFIG_ANTFS_FS=m \
+               CONFIG_ANTFS_SYMLINKS=y \
+               ANTFS_VERSION=07.19-$(call version_abbrev,$(PKG_SOURCE_VERSION)) \
+               modules
+endef
+
+$(eval $(call KernelPackage,fs-antfs))
index 8354f56214623c7d55654f51ff35d585f0f66db3..7ea049831eff9195a02142f9dec5e1bd84d56530 100644 (file)
@@ -24,15 +24,15 @@ PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
 
-define KernelPackage/fs-exfat
+define KernelPackage/fs-exfat0
        SUBMENU:=Filesystems
-       TITLE:=ExFAT Kernel driver
+       TITLE:=ExFAT Kernel driver (deprecated)
        FILES:=$(PKG_BUILD_DIR)/exfat.ko
        AUTOLOAD:=$(call AutoLoad,30,exfat,1)
-       DEPENDS:=+kmod-nls-base
+       DEPENDS:=+kmod-nls-base @(LINUX_4_14||LINUX_4_19)
 endef
 
-define KernelPackage/fs-exfat/description
+define KernelPackage/fs-exfat0/description
        Kernel module for ExFAT Filesytems
 endef
 
@@ -48,4 +48,4 @@ define Build/Compile
                modules
 endef
 
-$(eval $(call KernelPackage,fs-exfat))
+$(eval $(call KernelPackage,fs-exfat0))
index 6a00b9ccc077bc4de897dd34356776ee363baed3..f862c155c6b07b780b063c1680460dc2e8431d99 100644 (file)
@@ -60,7 +60,7 @@ EXTRA_CFLAGS += -DCONFIG_SMB_INSECURE_SERVER=1
 endif
 
 define Build/Compile
-       $(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" \
+       $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \
        EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
        $(PKG_EXTRA_KCONFIG) \
        CONFIG_SMB_SERVER=m \
index bd9f1c9b7b394867859d3cb8ee6e436368036495..bdeb7d0c7d6dcde79e112ca2e9ce4ac6b2901d14 100644 (file)
@@ -1,5 +1,4 @@
-#
-# Copyright (C) 2019 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
+# Copyright (C) 2019-2020 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
 #
 # This file is free software, licensed under the GNU General Public License v3
 # or later.
@@ -8,29 +7,43 @@
 
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=chicken-scheme-interpreter
-PKG_VERSION=5.1.0
+PKG_NAME:=chicken-scheme
+PKG_VERSION=5.2.0
 PKG_RELEASE:=1
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/chicken-$(PKG_VERSION)
 PKG_SOURCE:=chicken-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://code.call-cc.org/releases/$(PKG_VERSION)/
-PKG_HASH:=5c1101a8d8faabfd500ad69101e0c7c8bd826c68970f89c270640470e7b84b4b
-PKG_BUILD_DIR:=$(BUILD_DIR)/chicken-$(PKG_VERSION)
-
+PKG_HASH:=819149c8ce7303a9b381d3fdc1d5765c5f9ac4dee6f627d1652f47966a8780fa
 PKG_MAINTAINER:=Jeronimo Pellegrini <j_p@aleph0.info>
+
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/chicken-scheme-interpreter
+
+
+
+define Package/chicken-scheme/Default
   SECTION:=lang
   CATEGORY:=Languages
-  TITLE:=Chicken Scheme
   URL:=https://call-cc.org
   ABI_VERSION:=11
 endef
 
+
+##
+## chicken-scheme-interpreter
+##
+
+define Package/chicken-scheme-interpreter
+$(call Package/chicken-scheme/Default)
+  TITLE:=Chicken Scheme -- interpreter only
+  SECTION:=lang
+  CATEGORY:=Languages
+endef
+
 define Package/chicken-scheme-interpreter/description
   Chicken is an implementation of the Scheme language. It is portable, efficient, and supports 
   the R5RS and R7RS (work in progress) standards, and many extensions.
@@ -40,12 +53,16 @@ define Package/chicken-scheme-interpreter/description
   For more information, please refer to the Chicken Scheme website at https://call-cc.org.
 endef
 
-MAKE_FLAGS += PLATFORM=linux C_COMPILER=$(TARGET_CC) LINKER=$(TARGET_CC) PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
+
+# csc calls gcc with "-lm -ldl", but "-lm" doesn't work with musl,
+# so we set LIBRARIES=-lm
+MAKE_FLAGS += PLATFORM=linux C_COMPILER=$(TARGET_CC) LINKER=$(TARGET_CC) PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)" LIBRARIES=-lm
 
 # not installed:
 # - csc and chicken, the compiler
 # - the include dir (only useful with the compiler)
-# - install, uninstall, status, and chicken-do, which deal with modules (installation of more modules depends on the compiler)
+# - install, uninstall, status, and chicken-do, which deal with modules
+#   (installation of more modules depends on the compiler)
 # - profiler
 # - feathers, the debugger
 # - libchicken.a, the static library
@@ -61,3 +78,73 @@ endef
 
 $(eval $(call BuildPackage,chicken-scheme-interpreter))
 
+
+
+##
+## chicken-scheme-full
+##
+
+# mips-openwrt-linux-musl-gcc dowsn't seem to link with libchicken.so.
+# already tried -lchicken and passing /usr/lib/libchicken.so on the command
+# line.
+# also tried -Wl,-R/usr/lib,-R/usr/lib/chicken/$(ABI_VERSION)
+#
+# current solution: we do not strip binaries in chicken-scheme-full
+# we do this by unsetting STRIP and RSTRIP, *and* reloading rules.mk
+#
+STRIP:=:
+RSTRIP:=:
+include $(TOPDIR)/rules.mk
+
+define Package/chicken-scheme-full
+$(call Package/chicken-scheme/Default)
+  TITLE:=Chicken Scheme -- full package
+  SECTION:=lang
+  CATEGORY:=Languages
+  # csc depends on gcc; chicken-install uses the 'install' command from coreutils
+  EXTRA_DEPENDS:= gcc, coreutils-install
+endef
+
+define Package/chicken-scheme-full/description
+  Chicken is an implementation of the Scheme language. It is portable, efficient, and supports 
+  the R5RS and R7RS (work in progress) standards, and many extensions.
+  Chicken can be used as a scripting language to automate tasks.
+  This package contains the interpreter, 'csi'; the compiler, 'csc';
+  the tools for installing and removing eggs (modules); the profiler and
+  the debugger.
+  Note that this package depends on gcc, which is quite large (more than 100Mb).
+  For more information, please refer to the Chicken Scheme website at https://call-cc.org.
+endef
+
+
+# not installed:
+# - libchicken.a, the static library
+define Package/chicken-scheme-full/install
+       $(INSTALL_DIR)  $(1)/usr/bin
+       $(INSTALL_DIR)  $(1)/usr/lib/chicken/$(ABI_VERSION)
+       $(INSTALL_DIR)  $(1)/usr/include/chicken
+       $(INSTALL_DIR)  $(1)/usr/share/chicken
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/csi                 $(1)/usr/bin/
+       $(CP) $(PKG_BUILD_DIR)/libchicken.so.$(ABI_VERSION) $(1)/usr/lib/
+       $(CP) $(PKG_BUILD_DIR)/libchicken.so                $(1)/usr/lib/
+       $(CP) $(PKG_BUILD_DIR)/*.import.so                  $(1)/usr/lib/chicken/$(ABI_VERSION)/
+       $(CP) $(PKG_BUILD_DIR)/types.db                     $(1)/usr/lib/chicken/$(ABI_VERSION)/
+       # csc
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/csc                     $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken                 $(1)/usr/bin/
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/chicken.h              $(1)/usr/include/chicken/
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/chicken-config.h       $(1)/usr/include/chicken/
+       # chicken-install
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-install         $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-uninstall       $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-status          $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-do              $(1)/usr/bin/
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/setup.defaults         $(1)/usr/share/chicken/
+       # profile
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-profile         $(1)/usr/bin/
+       # feathers
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers.tcl            $(1)/usr/share/chicken/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers                $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,chicken-scheme-full))
index 0b0c0c18d4c17f4a331c46653612ccd7ffdf9674..9792cd8aa412fef61243e92e4669edc3bfdbbb55 100644 (file)
@@ -29,6 +29,7 @@ unexport \
   GOROOT \
   GOTMPDIR
 # Unmodified:
+#   GOINSECURE
 #   GOPRIVATE
 #   GOPROXY
 #   GONOPROXY
index aafe8b2b6bb99badf998b8085e968177845cc59c..ef47e45bb07a61d417c64e10bcf626f56aed0d12 100644 (file)
@@ -7,8 +7,8 @@
 
 include $(TOPDIR)/rules.mk
 
-GO_VERSION_MAJOR_MINOR:=1.13
-GO_VERSION_PATCH:=8
+GO_VERSION_MAJOR_MINOR:=1.14
+GO_VERSION_PATCH:=
 
 PKG_NAME:=golang
 PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
@@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
 
 PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
 PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
-PKG_HASH:=b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34
+PKG_HASH:=6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389
 
 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
@@ -53,10 +53,10 @@ HOST_GO_ROOT:=$(HOST_GO_PREFIX)/lib/go-$(HOST_GO_VERSION_ID)
 HOST_GO_VALID_OS_ARCH:= \
   android_386  android_amd64  android_arm  android_arm64 \
   darwin_386   darwin_amd64   darwin_arm   darwin_arm64 \
+  freebsd_386  freebsd_amd64  freebsd_arm  freebsd_arm64 \
   linux_386    linux_amd64    linux_arm    linux_arm64 \
-  openbsd_386  openbsd_amd64  openbsd_arm  openbsd_arm64 \
   \
-  freebsd_386  freebsd_amd64  freebsd_arm \
+  openbsd_386  openbsd_amd64  openbsd_arm \
   netbsd_386   netbsd_amd64   netbsd_arm \
   plan9_386    plan9_amd64    plan9_arm \
   \
@@ -69,7 +69,9 @@ HOST_GO_VALID_OS_ARCH:= \
   aix_ppc64 \
   js_wasm \
   \
-  linux_ppc64 linux_ppc64le linux_mips linux_mipsle linux_mips64 linux_mips64le linux_s390x
+  linux_ppc64 linux_ppc64le \
+  linux_mips linux_mipsle linux_mips64 linux_mips64le \
+  linux_riscv64 linux_s390x
 
 BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
 BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
index c5b24de531c32abe28a8681af06482b98fb95bda..6946e4dd3bbe231eeadc67fcc5a943d6a54f8b9a 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=node-hid
 PKG_NAME:=$(PKG_NPM_NAME)
-PKG_VERSION:=1.1.0
+PKG_VERSION:=1.2.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=a128331388b9a0ac443fb55493e37a9b8043f34699c60453f395ad37b7d5f145
+PKG_HASH:=b4a3e4c5a42dcdb4b6ef3ceeec18ed073322e8bca4160b95ef1671b062796bde
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 683556b98bb94bf89cd7fed5ee7dbaf44a938fad..24e9d72dfcf848cc6387f35dc2002bcbd24477de 100644 (file)
@@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=homebridge
 PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=0.4.50
+PKG_VERSION:=0.4.52
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=http://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=85541254b44c0b70e38ed5e49a9c6a68a20467b99fe0ff3703ca9fc422ce879c
+PKG_HASH:=2acab13e3a48d47917b31cf137fd034872ef5a1f3683cfd8c295e544decdc848
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 4a6e752282bcabc77da2c986e74bc611d8dde2e1..8a5583c9e8002a8f87e29e02e37cfdbe5427a763 100644 (file)
@@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk
 PKG_NPM_SCOPE:=serialport
 PKG_NPM_NAME:=bindings
 PKG_NAME:=node-$(PKG_NPM_SCOPE)-$(PKG_NPM_NAME)
-PKG_VERSION:=8.0.4
+PKG_VERSION:=8.0.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://registry.npmjs.org/@$(PKG_NPM_SCOPE)/$(PKG_NPM_NAME)/-/
-PKG_HASH:=fd48dba7fd4de42d9908e33c21cd028345c3d481eff668511966313cfac61695
+PKG_HASH:=b555aabf8f47a914589e5e625c87b1ec6f0ce63f284cf59d5bf18c934ac988c4
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 7030f3b1b36c2b84c9c334bea03c22c76e445c93..1d629731c6f959653f7a6f636dcb42cb2961d20b 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 PKG_NPM_NAME:=serialport
 PKG_NAME:=node-$(PKG_NPM_NAME)
-PKG_VERSION:=8.0.5
+PKG_VERSION:=8.0.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
-PKG_HASH:=d06e67edcc2d2c6489d8634b3bcef46325ecee0b9f8d9243af3518505608213e
+PKG_HASH:=b70000ad4560dbd7170e657554d6302024a340ae868e1db0fc672aaab2efbd9c
 
 PKG_BUILD_DEPENDS:=node/host
 PKG_USE_MIPS16:=0
index 87a6828dd56088fd57b68a5afed33851af80f5af..9c4ebf841fce799436d0e977af30812e93364322 100644 (file)
@@ -3,8 +3,8 @@
 @@ -46,7 +46,6 @@
    ],
    "dependencies": {
-     "@serialport/binding-mock": "^8.0.4",
--    "@serialport/bindings": "^8.0.4",
-     "@serialport/parser-byte-length": "^8.0.4",
-     "@serialport/parser-cctalk": "^8.0.4",
-     "@serialport/parser-delimiter": "^8.0.4",
+     "@serialport/binding-mock": "^8.0.6",
+-    "@serialport/bindings": "^8.0.7",
+     "@serialport/parser-byte-length": "^8.0.6",
+     "@serialport/parser-cctalk": "^8.0.6",
+     "@serialport/parser-delimiter": "^8.0.6",
index 2a4e8ccaad96db3f2e4afdea1f0b3b4fbfd3f1b5..858ffa09768500ce0f366411150b1e1a1f24e7f8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-www-curl
 PKG_VERSION:=4.17
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE_URL:=http://www.cpan.org/authors/id/S/SZ/SZBALINT/
 PKG_SOURCE:=WWW-Curl-$(PKG_VERSION).tar.gz
diff --git a/lang/perl-www-curl/patches/220-curl_7.69_compat.patch b/lang/perl-www-curl/patches/220-curl_7.69_compat.patch
new file mode 100644 (file)
index 0000000..1b59a30
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -127,7 +127,7 @@
+     close H;
+     for my $e (sort @syms) {
+-       if($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_STRICTER\z|_LAST\z|_LASTENTRY\z)/) {
++       if($e =~ /(OBSOLETE|^CURL_EXTERN|CURLOPT\z|^CURL_STRICTER\z|_LAST\z|_LASTENTRY\z|WIN32)/) {
+           next;
+        }
+        my ($group) = $e =~ m/^([^_]+_)/;
index 0ae57b44b66bf289f3e725aae6312594db104c6a..e60d693aba05d0a631b199aeb661bfc6385fe719 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=django
-PKG_VERSION:=3.0.3
-PKG_RELEASE:=2
+PKG_VERSION:=3.0.4
+PKG_RELEASE:=1
 
 PYPI_NAME:=Django
-PKG_HASH:=2f1ba1db8648484dd5c238fb62504777b7ad090c81c5f1fd8d5eb5ec21b5f283
+PKG_HASH:=50b781f6cbeb98f673aa76ed8e572a019a45e52bdd4ad09001072dfd91ab07c8
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index e4c25e0dcfd2ba8cfc666dde7cbd64312d26e138..c7d3bbcf6293aac98cb6ecbc32f0f5a08b3528d8 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=django1
-PKG_VERSION:=1.11.28
-PKG_RELEASE:=2
+PKG_VERSION:=1.11.29
+PKG_RELEASE:=1
 
 PYPI_NAME:=Django
-PKG_HASH:=b33ce35f47f745fea6b5aa3cf3f4241069803a3712d423ac748bd673a39741eb
+PKG_HASH:=4200aefb6678019a0acf0005cd14cfce3a5e6b9b90d06145fcdd2e474ad4329c
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
index d233b69d5e873972643c4b340278183b725e88eb..d7573ed9d58ca723806ccb7dfe9dc7ffbd056f7a 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-requests
-PKG_VERSION:=2.22.0
+PKG_VERSION:=2.23.0
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz>, Alexandru Ardelean <ardeleanalex@gmail.com>
@@ -17,7 +17,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:python-requests:requests
 
 PYPI_NAME:=requests
-PKG_HASH:=11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4
+PKG_HASH:=b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6
 
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
index 60548e66ad30fb5a00d554e4ec0920dc41b3719a..9c1078a36eb15cf3cbd006c3c2899d5a6194243a 100644 (file)
@@ -1,11 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=asgiref
-PKG_VERSION:=3.2.3
+PKG_VERSION:=3.2.5
 PKG_RELEASE:=1
 
 PYPI_NAME:=asgiref
-PKG_HASH:=7e06d934a7718bf3975acbf87780ba678957b87c7adc056f13b6215d610695a0
+PKG_HASH:=c8f49dd3b42edcc51d09dd2eea8a92b3cfc987ff7e6486be734b4d0cbfd5d315
 
 PKG_MAINTAINER:=Peter Stadler <peter.stadler@student.uibk.ac.at>
 PKG_LICENSE:=BSD-3-Clause
index 4df4dcd0347ec4ff4d164284e28a4b80c44632cf..c7d38625070dc6128188cf5a9ac0034351a28d0a 100644 (file)
@@ -1,11 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlparse
-PKG_VERSION:=0.3.0
+PKG_VERSION:=0.3.1
 PKG_RELEASE:=1
 
 PYPI_NAME:=sqlparse
-PKG_HASH:=7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873
+PKG_HASH:=e162203737712307dfe78860cc56c8da8a852ab2ee33750e33aeadf38d12c548
 
 PKG_MAINTAINER:=Peter Stadler <peter.stadler@student.uibk.ac.at>
 PKG_LICENSE:=BSD-3-Clause
index e5a96b597c57bd5de701e68d11b2372c8afac58b..716b338fc724e9804776f994860a3c44203f3278 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vala
-PKG_VERSION:=0.46.6
+PKG_VERSION:=0.48.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/vala/0.46
-PKG_HASH:=ef31649932872f094971d46453b21c60a41661670f98afa334062425b4aec47a
+PKG_SOURCE_URL:=@GNOME/vala/0.48
+PKG_HASH:=0926b29614c82a67e36e95996e905ad052f7f7b02fe855b2d17bd14e155e10cc
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
index 1fc066054536b7bf8b02b035775c440506fdd8c3..d020c1e6b8b83442a01a3efe435de00620b34303 100644 (file)
@@ -8,23 +8,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=avahi
-PKG_VERSION:=0.7
-PKG_RELEASE:=5
+PKG_VERSION:=0.8
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION) \
                https://avahi.org/download
-PKG_HASH:=57a99b5dfe7fdae794e3d1ee7a62973a368e91e414bd0dfa5d84434de5b14804
+PKG_HASH:=060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=LICENSE
 PKG_CPE_ID:=cpe:/a:avahi:avahi
 
-PKG_BUILD_DEPENDS:=intltool/host
-PKG_FIXUP:=autoreconf
-PKG_REMOVE_FILES:=autogen.sh
-
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
@@ -255,22 +251,24 @@ $(call Package/avahi/Default/description)
 endef
 
 TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
+TARGET_LDFLAGS += $(if $(CONFIG_SSP_SUPPORT),-lssp_nonshared)
 
-CONFIGURE_ARGS+= \
+CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
        --disable-glib \
        --disable-gobject \
+       --disable-introspection \
        --disable-qt3 \
        --disable-qt4 \
+       --disable-qt5 \
        --disable-gtk \
        --disable-gtk3 \
-       --with-xml=expat \
        --disable-dbm \
        --enable-gdbm \
        --enable-libdaemon \
+       --disable-libevent \
        --disable-python \
-       --disable-pygtk \
        --disable-python-dbus \
        --disable-mono \
        --disable-monodoc \
@@ -284,18 +282,16 @@ CONFIGURE_ARGS+= \
        --disable-doxygen-html \
        --disable-doxygen-ps \
        --disable-doxygen-pdf \
+       --disable-manpages \
        --disable-xmltoman \
+       --disable-tests \
+       --with-xml=expat \
        --with-distro=none \
        --with-avahi-user=nobody \
        --with-avahi-group=nogroup \
        --with-autoipd-user=nobody \
        --with-autoipd-group=nogroup
 
-ifneq ($(CONFIG_SSP_SUPPORT),y)
-CONFIGURE_ARGS+= \
-       --disable-stack-protector
-endif
-
 ifeq ($(BUILD_VARIANT),dbus)
 ifneq ($(CONFIG_PACKAGE_libavahi-compat-libdnssd),)
 CONFIGURE_ARGS += \
@@ -310,7 +306,7 @@ endif
 
 CONFIGURE_VARS+= \
        CFLAGS="$$$$CFLAGS -DNDEBUG -DDISABLE_SYSTEMD" \
-       ac_cv_header_sys_capability_h=no \
+       ac_cv_header_sys_capability_h=no
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
index 65f1a8b89c7dd9237c71aa98adc0a77b1af1a203..be6725b837da3551dec875777f06ec61ad7336d3 100755 (executable)
@@ -9,7 +9,7 @@ proto_autoip_setup() {
        local iface="$2"
 
        proto_export "INTERFACE=$config"
-       proto_run_command "$config" avahi-autoipd $iface
+       proto_run_command "$config" avahi-autoipd "$iface"
 }
 
 proto_autoip_teardown() {
diff --git a/libs/avahi/patches/010-step_back_autotools-no-gettext.patch b/libs/avahi/patches/010-step_back_autotools-no-gettext.patch
deleted file mode 100644 (file)
index 667a8c4..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 8234d69..156d4c4 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -75,8 +75,7 @@ SUBDIRS = \
-       avahi-compat-howl \
-       avahi-autoipd \
-       avahi-ui \
--      avahi-ui-sharp \
--      po
-+      avahi-ui-sharp
- DX_INPUT = \
-       $(srcdir)/avahi-common/address.h \
-diff --git a/avahi-python/avahi-discover/Makefile.am b/avahi-python/avahi-discover/Makefile.am
-index 5fc4b25..4c39d3d 100644
---- a/avahi-python/avahi-discover/Makefile.am
-+++ b/avahi-python/avahi-discover/Makefile.am
-@@ -38,7 +38,6 @@ if HAVE_GDBM
- pythonscripts += \
-       avahi-discover
- desktop_DATA += avahi-discover.desktop
--@INTLTOOL_DESKTOP_RULE@
- avahi_discover_PYTHON += __init__.py
- endif
-@@ -46,7 +45,6 @@ if HAVE_DBM
- pythonscripts += \
-       avahi-discover
- desktop_DATA += avahi-discover.desktop
--@INTLTOOL_DESKTOP_RULE@
- avahi_discover_PYTHON += __init__.py
- endif
-diff --git a/avahi-ui/Makefile.am b/avahi-ui/Makefile.am
-index 238d43a..65a147a 100644
---- a/avahi-ui/Makefile.am
-+++ b/avahi-ui/Makefile.am
-@@ -80,7 +80,6 @@ endif
- bin_PROGRAMS = bssh
- desktop_DATA += bssh.desktop bvnc.desktop
--@INTLTOOL_DESKTOP_RULE@
- bssh_SOURCES = bssh.c
-@@ -108,6 +107,4 @@ endif # HAVE_GLIB
- endif
- endif
--@INTLTOOL_DESKTOP_RULE@
--
- CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
-diff --git a/configure.ac b/configure.ac
-index 6678971..00dac6e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.7],[avahi (at) lists (dot) freedesktop (dot) org])
- AC_CONFIG_SRCDIR([avahi-core/server.c])
- AC_CONFIG_MACRO_DIR([common])
- AC_CONFIG_HEADERS([config.h])
--AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
-+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability tar-pax])
- AC_SUBST(PACKAGE_URL, [http://avahi.org/])
-@@ -43,8 +43,6 @@ AC_SUBST(HOWL_COMPAT_VERSION, [0.9.8])
- AC_CANONICAL_HOST
--AM_SILENT_RULES([yes])
--
- AC_CHECK_PROG([STOW], [stow], [yes], [no])
- AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
-@@ -413,12 +411,6 @@ if test "x$have_kqueue" = "xyes" ; then
-     AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
- fi
--IT_PROG_INTLTOOL([0.35.0])
--GETTEXT_PACKAGE=avahi
--AC_SUBST([GETTEXT_PACKAGE])
--AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
--AM_GLIB_GNU_GETTEXT
--
- avahilocaledir='${prefix}/${DATADIRNAME}/locale'
- AC_SUBST(avahilocaledir)
index a3b3cc6a4c5363ca235fa5ad9420a8d80d49698f..5e31bfd84f325cefb72c7368debef75acc15bee8 100644 (file)
@@ -1,26 +1,11 @@
-From ef0ea001f6dd13d6a2e0bc17d13f595d2829f8a8 Mon Sep 17 00:00:00 2001
-From: Jeremiah McConnell <miah@miah.com>
-Date: Fri, 15 Jun 2018 11:31:10 -0600
-Subject: [PATCH] move runtime_dir to /var/run
-
-Upstream transitioned to using /run as runtime_dir for 0.7.  Revert
-that change for procd compatibility.
-
-Signed-off-by: Jeremiah McConnell <miah@miah.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 72d61478..8f6e9768 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -984,7 +984,7 @@ AC_DEFINE_UNQUOTED(AVAHI_AUTOIPD_GROUP,"$AVAHI_AUTOIPD_GROUP", [Group for runnin
+--- a/configure
++++ b/configure
+@@ -24638,7 +24638,7 @@ _ACEOF
  #
  # Avahi runtime dir
  #
 -avahi_runtime_dir="/run"
 +avahi_runtime_dir="${localstatedir}/run"
  avahi_socket="${avahi_runtime_dir}/avahi-daemon/socket"
- AC_SUBST(avahi_runtime_dir)
- AC_SUBST(avahi_socket)
index 1f609b542bbec90c53366a7a8f4f5457f7e556cd..51ea563e7cba9a20ac35073e9cbeb2339625114a 100644 (file)
@@ -6,17 +6,22 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=faad2
-PKG_VERSION:=2.8.8
-PKG_RELEASE:=2
+PKG_VERSION:=2.9.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/faac/faad2-src/$(PKG_NAME)-2.8.0
-PKG_HASH:=985c3fadb9789d2815e50f4ff714511c79c2710ac27a4aaaf5c0c2662141426d
+PKG_SOURCE_URL:=https://codeload.github.com/knik0/faad2/tar.gz/2_9_1?
+PKG_HASH:=7fa33cff76abdda5a220ca5de0b2e05a77354f3b97f735193c2940224898aa9a
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-2_9_1
+
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
-PKG_CPE_ID:=cpe:/a:audiocoding:faad2
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:audiocoding:freeware_advanced_audio_decoder_2
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -57,13 +62,14 @@ $(call Package/faad2/Default/description)
   This package contains the library.
 endef
 
-TARGET_CFLAGS += $(FPIC)
-CONFIGURE_ARGS+= --without-xmms
+TARGET_CFLAGS += \
+       $(if $(CONFIG_BUILD_PATENTED),,-DLC_ONLY_DECODER) \
+       $(if $(CONFIG_SOFT_FLOAT),-DFIXED_POINT)
 
-ifeq ($(CONFIG_SOFT_FLOAT),y)
-       TARGET_CFLAGS+= -DFIXED_POINT
-       CONFIGURE_ARGS+= -nfp
-endif
+CONFIGURE_ARGS += \
+       --without-drm \
+       --without-mpeg4ip \
+       --without-xmms
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
diff --git a/libs/faad2/patches/010-lc-decoder.patch b/libs/faad2/patches/010-lc-decoder.patch
new file mode 100644 (file)
index 0000000..fa1ffb3
--- /dev/null
@@ -0,0 +1,48 @@
+From 8552fd53aaf5059ed769a0564330816beacaca98 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 10 Mar 2020 17:38:29 -0700
+Subject: [PATCH] fix compilation with LC_ONLY_DECODER
+
+881b5e263f25a8a8b714e83407fc2c9dab407e40 broke compilation by always
+defining DRN and DRM_PS. Fix this and place the define where it belongs.
+---
+ libfaad/Makefile.am | 2 +-
+ libfaad/common.h    | 7 +++++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/libfaad/Makefile.am b/libfaad/Makefile.am
+index 8ed57ae..7d9c71f 100644
+--- a/libfaad/Makefile.am
++++ b/libfaad/Makefile.am
+@@ -32,5 +32,5 @@ libfaad_la_SOURCES = bits.c cfft.c decoder.c drc.c \
+ libfaad_drm_la_LDFLAGS = ${libfaad_la_LDFLAGS}
+ libfaad_drm_la_LIBADD = ${libfaad_la_LIBADD}
+-libfaad_drm_la_CFLAGS = ${libfaad_la_CFLAGS} -DDRM -DDRM_PS
++libfaad_drm_la_CFLAGS = ${libfaad_la_CFLAGS} -DDRM_SUPPORT
+ libfaad_drm_la_SOURCES = ${libfaad_la_SOURCES}
+diff --git a/libfaad/common.h b/libfaad/common.h
+index 8b78807..76722e4 100644
+--- a/libfaad/common.h
++++ b/libfaad/common.h
+@@ -91,8 +91,10 @@ extern "C" {
+ /* Allow decoding of LD profile AAC */
+ #define LD_DEC
+ /* Allow decoding of Digital Radio Mondiale (DRM) */
+-//#define DRM
+-//#define DRM_PS
++#ifdef DRM_SUPPORT
++#define DRM
++#define DRM_PS
++#endif
+ /* LD can't do without LTP */
+ #ifdef LD_DEC
+@@ -115,6 +117,7 @@ extern "C" {
+   #undef MAIN_DEC
+   #undef SSR_DEC
+   #undef DRM
++  #undef DRM_PS
+   #undef ALLOW_SMALL_FRAMELENGTH
+   #undef ERROR_RESILIENCE
+ #endif
diff --git a/libs/faad2/patches/020-bits.patch b/libs/faad2/patches/020-bits.patch
new file mode 100644 (file)
index 0000000..ca53cd5
--- /dev/null
@@ -0,0 +1,35 @@
+From 4ae9873a80ea47858d20f1d590aaf816c3aebb20 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Tue, 10 Mar 2020 20:13:57 -0700
+Subject: [PATCH] fix compilation without SBR/PS_DEC
+
+The bits.h include needs to be in mp4.h as it uses the bitfield struct.
+---
+ libfaad/mp4.c | 1 -
+ libfaad/mp4.h | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libfaad/mp4.c b/libfaad/mp4.c
+index 9f0198a..dbcff83 100644
+--- a/libfaad/mp4.c
++++ b/libfaad/mp4.c
+@@ -33,7 +33,6 @@
+ #include <stdlib.h>
+-#include "bits.h"
+ #include "mp4.h"
+ #include "syntax.h"
+diff --git a/libfaad/mp4.h b/libfaad/mp4.h
+index 5a94be4..d99a3e3 100644
+--- a/libfaad/mp4.h
++++ b/libfaad/mp4.h
+@@ -35,6 +35,7 @@
+ extern "C" {
+ #endif
++#include "bits.h"
+ #include "neaacdec.h"
+ int8_t AudioSpecificConfig2(uint8_t *pBuffer,
diff --git a/libs/faad2/patches/030-sbr-ps-dec.patch b/libs/faad2/patches/030-sbr-ps-dec.patch
new file mode 100644 (file)
index 0000000..19710c3
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/libfaad/common.h
++++ b/libfaad/common.h
+@@ -120,8 +120,7 @@ extern "C" {
+   #undef DRM_PS
+   #undef ALLOW_SMALL_FRAMELENGTH
+   #undef ERROR_RESILIENCE
+-#endif
+-
++#else
+ #define SBR_DEC
+ //#define SBR_LOW_POWER
+ #define PS_DEC
+@@ -129,6 +128,7 @@ extern "C" {
+ #ifdef SBR_LOW_POWER
+ #undef PS_DEC
+ #endif
++#endif
+ /* FIXED POINT: No MAIN decoding */
+ #ifdef FIXED_POINT
diff --git a/libs/libaudiofile/Makefile b/libs/libaudiofile/Makefile
deleted file mode 100644 (file)
index 54799e3..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=audiofile
-PKG_VERSION:=0.3.6
-PKG_RELEASE:=5
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/$(PKG_NAME)/0.3
-PKG_HASH:=ea2449ad3f201ec590d811db9da6d02ffc5e87a677d06b92ab15363d8cb59782
-
-PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
-PKG_CPE_ID:=cpe:/a:audiofile:audiofile
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL=1
-
-include $(INCLUDE_DIR)/uclibc++.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libaudiofile
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Audio File library
-  URL:=http://audiofile.68k.org/
-  DEPENDS:=$(CXX_DEPENDS) +libflac
-endef
-
-define Package/libaudiofile/description
- The audiofile library allows the processing of audio data to and from audio
- files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun, BICS,
- FLAC, ALAC, and raw data).
-endef
-
-CONFIGURE_ARGS+= \
-       --enable-shared \
-       --enable-static \
-       --disable-docs \
-       --disable-coverage \
-       --disable-examples
-
-
-TARGET_CFLAGS+= $(FPIC)
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/include/{af_vfs,audiofile,aupvlist}.h \
-               $(1)/usr/include/
-
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libaudiofile.{la,a,so*} \
-               $(1)/usr/lib/
-
-       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/audiofile.pc \
-               $(1)/usr/lib/pkgconfig/
-endef
-
-define Package/libaudiofile/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libaudiofile.so.* \
-               $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,libaudiofile))
diff --git a/libs/libaudiofile/patches/010-gcc6-fix-left-shift-negative-number.patch b/libs/libaudiofile/patches/010-gcc6-fix-left-shift-negative-number.patch
deleted file mode 100644 (file)
index ebbe700..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Description: Fix FTBFS with GCC 6
-Author: Michael Schwendt <mschwendt@fedoraproject.org>
-Origin: vendor, https://github.com/mpruett/audiofile/pull/27
-Bug-Debian: https://bugs.debian.org/812055
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-
---- a/libaudiofile/modules/SimpleModule.h
-+++ b/libaudiofile/modules/SimpleModule.h
-@@ -123,7 +123,7 @@ struct signConverter
-       typedef typename IntTypes<Format>::UnsignedType UnsignedType;
-       static const int kScaleBits = (Format + 1) * CHAR_BIT - 1;
--      static const int kMinSignedValue = -1 << kScaleBits;
-+      static const int kMinSignedValue = 0-(1U<<kScaleBits);
-       struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType>
-       {
diff --git a/libs/libaudiofile/patches/020-remove-tests-examples-docs.patch b/libs/libaudiofile/patches/020-remove-tests-examples-docs.patch
deleted file mode 100644 (file)
index dc4a8b9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -159,12 +159,8 @@ AC_CONFIG_FILES([
-       audiofile.pc
-       audiofile-uninstalled.pc
-       sfcommands/Makefile
--      test/Makefile
--      gtest/Makefile
--      examples/Makefile
-       libaudiofile/Makefile
-       libaudiofile/alac/Makefile
-       libaudiofile/modules/Makefile
--      docs/Makefile
-       Makefile])
- AC_OUTPUT
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,6 +1,6 @@
- ## Process this file with automake to produce Makefile.in
--SUBDIRS = gtest libaudiofile sfcommands test examples docs
-+SUBDIRS = libaudiofile sfcommands
- EXTRA_DIST = \
-       ACKNOWLEDGEMENTS \
diff --git a/libs/libaudiofile/patches/030-CVE-2015-7747.patch b/libs/libaudiofile/patches/030-CVE-2015-7747.patch
deleted file mode 100644 (file)
index d3d3844..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: fix buffer overflow when changing both sample format and
- number of channels
-Origin: backport, https://github.com/mpruett/audiofile/pull/25
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/audiofile/+bug/1502721
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801102
-
-Index: audiofile-0.3.6/libaudiofile/modules/ModuleState.cpp
-===================================================================
---- audiofile-0.3.6.orig/libaudiofile/modules/ModuleState.cpp  2015-10-20 08:00:58.036128202 -0400
-+++ audiofile-0.3.6/libaudiofile/modules/ModuleState.cpp       2015-10-20 08:00:58.036128202 -0400
-@@ -402,7 +402,7 @@
-               addModule(new Transform(outfc, in.pcm, out.pcm));
-       if (in.channelCount != out.channelCount)
--              addModule(new ApplyChannelMatrix(infc, isReading,
-+              addModule(new ApplyChannelMatrix(outfc, isReading,
-                       in.channelCount, out.channelCount,
-                       in.pcm.minClip, in.pcm.maxClip,
-                       track->channelMatrix));
diff --git a/libs/libaudiofile/patches/110-Always-check-the-number-of-coefficients.patch b/libs/libaudiofile/patches/110-Always-check-the-number-of-coefficients.patch
deleted file mode 100644 (file)
index 292fdfe..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From c48e4c6503f7dabd41f11d4c9c7b7f8960e7f2c0 Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Mon, 6 Mar 2017 12:51:22 +0100
-Subject: [PATCH] Always check the number of coefficients
-
-When building the library with NDEBUG, asserts are eliminated
-so it's better to always check that the number of coefficients
-is inside the array range.
-
-This fixes the 00191-audiofile-indexoob issue in #41
----
- libaudiofile/WAVE.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/libaudiofile/WAVE.cpp b/libaudiofile/WAVE.cpp
-index 0e81cf7..61f9541 100644
---- a/libaudiofile/WAVE.cpp
-+++ b/libaudiofile/WAVE.cpp
-@@ -281,6 +281,12 @@ status WAVEFile::parseFormat(const Tag &id, uint32_t size)
-                       /* numCoefficients should be at least 7. */
-                       assert(numCoefficients >= 7 && numCoefficients <= 255);
-+                      if (numCoefficients < 7 || numCoefficients > 255)
-+                      {
-+                              _af_error(AF_BAD_HEADER,
-+                                              "Bad number of coefficients");
-+                              return AF_FAIL;
-+                      }
-                       m_msadpcmNumCoefficients = numCoefficients;
--- 
-2.11.0
-
diff --git a/libs/libaudiofile/patches/120-clamp-index-values-to-fix-index-overflow-in-IMA.cpp.patch b/libs/libaudiofile/patches/120-clamp-index-values-to-fix-index-overflow-in-IMA.cpp.patch
deleted file mode 100644 (file)
index 83b0e06..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 25eb00ce913452c2e614548d7df93070bf0d066f Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Mon, 6 Mar 2017 18:02:31 +0100
-Subject: [PATCH] clamp index values to fix index overflow in IMA.cpp
-
-This fixes #33
-(also reported at https://bugzilla.opensuse.org/show_bug.cgi?id=1026981
-and https://blogs.gentoo.org/ago/2017/02/20/audiofile-global-buffer-overflow-in-decodesample-ima-cpp/)
----
- libaudiofile/modules/IMA.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libaudiofile/modules/IMA.cpp b/libaudiofile/modules/IMA.cpp
-index 7476d44..df4aad6 100644
---- a/libaudiofile/modules/IMA.cpp
-+++ b/libaudiofile/modules/IMA.cpp
-@@ -169,7 +169,7 @@ int IMA::decodeBlockWAVE(const uint8_t *encoded, int16_t *decoded)
-               if (encoded[1] & 0x80)
-                       m_adpcmState[c].previousValue -= 0x10000;
--              m_adpcmState[c].index = encoded[2];
-+              m_adpcmState[c].index = clamp(encoded[2], 0, 88);
-               *decoded++ = m_adpcmState[c].previousValue;
-@@ -210,7 +210,7 @@ int IMA::decodeBlockQT(const uint8_t *encoded, int16_t *decoded)
-                       predictor -= 0x10000;
-               state.previousValue = clamp(predictor, MIN_INT16, MAX_INT16);
--              state.index = encoded[1] & 0x7f;
-+              state.index = clamp(encoded[1] & 0x7f, 0, 88);
-               encoded += 2;
-               for (int n=0; n<m_framesPerPacket; n+=2)
--- 
-2.11.0
-
diff --git a/libs/libaudiofile/patches/130-Check-for-multiplication-overflow-in-sfconvert.patch b/libs/libaudiofile/patches/130-Check-for-multiplication-overflow-in-sfconvert.patch
deleted file mode 100644 (file)
index 46c7457..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7d65f89defb092b63bcbc5d98349fb222ca73b3c Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Mon, 6 Mar 2017 13:54:52 +0100
-Subject: [PATCH] Check for multiplication overflow in sfconvert
-
-Checks that a multiplication doesn't overflow when
-calculating the buffer size, and if it overflows,
-reduce the buffer size instead of failing.
-
-This fixes the 00192-audiofile-signintoverflow-sfconvert case
-in #41
----
- sfcommands/sfconvert.c | 34 ++++++++++++++++++++++++++++++++--
- 1 file changed, 32 insertions(+), 2 deletions(-)
-
-diff --git a/sfcommands/sfconvert.c b/sfcommands/sfconvert.c
-index 80a1bc4..970a3e4 100644
---- a/sfcommands/sfconvert.c
-+++ b/sfcommands/sfconvert.c
-@@ -45,6 +45,33 @@ void printusage (void);
- void usageerror (void);
- bool copyaudiodata (AFfilehandle infile, AFfilehandle outfile, int trackid);
-+int firstBitSet(int x)
-+{
-+        int position=0;
-+        while (x!=0)
-+        {
-+                x>>=1;
-+                ++position;
-+        }
-+        return position;
-+}
-+
-+#ifndef __has_builtin
-+#define __has_builtin(x) 0
-+#endif
-+
-+int multiplyCheckOverflow(int a, int b, int *result)
-+{
-+#if (defined __GNUC__ && __GNUC__ >= 5) || ( __clang__ && __has_builtin(__builtin_mul_overflow))
-+      return __builtin_mul_overflow(a, b, result);
-+#else
-+      if (firstBitSet(a)+firstBitSet(b)>31) // int is signed, so we can't use 32 bits
-+              return true;
-+      *result = a * b;
-+      return false;
-+#endif
-+}
-+
- int main (int argc, char **argv)
- {
-       if (argc == 2)
-@@ -323,8 +350,11 @@ bool copyaudiodata (AFfilehandle infile, AFfilehandle outfile, int trackid)
- {
-       int frameSize = afGetVirtualFrameSize(infile, trackid, 1);
--      const int kBufferFrameCount = 65536;
--      void *buffer = malloc(kBufferFrameCount * frameSize);
-+      int kBufferFrameCount = 65536;
-+      int bufferSize;
-+      while (multiplyCheckOverflow(kBufferFrameCount, frameSize, &bufferSize))
-+              kBufferFrameCount /= 2;
-+      void *buffer = malloc(bufferSize);
-       AFframecount totalFrames = afGetFrameCount(infile, AF_DEFAULT_TRACK);
-       AFframecount totalFramesWritten = 0;
--- 
-2.11.0
-
diff --git a/libs/libaudiofile/patches/140-Actually-fail-when-error-occurs-in-parseFormat.patch b/libs/libaudiofile/patches/140-Actually-fail-when-error-occurs-in-parseFormat.patch
deleted file mode 100644 (file)
index 6bb5731..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From a2e9eab8ea87c4ffc494d839ebb4ea145eb9f2e6 Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Mon, 6 Mar 2017 18:59:26 +0100
-Subject: [PATCH] Actually fail when error occurs in parseFormat
-
-When there's an unsupported number of bits per sample or an invalid
-number of samples per block, don't only print an error message using
-the error handler, but actually stop parsing the file.
-
-This fixes #35 (also reported at
-https://bugzilla.opensuse.org/show_bug.cgi?id=1026983 and
-https://blogs.gentoo.org/ago/2017/02/20/audiofile-heap-based-buffer-overflow-in-imadecodeblockwave-ima-cpp/
-)
----
- libaudiofile/WAVE.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/libaudiofile/WAVE.cpp
-+++ b/libaudiofile/WAVE.cpp
-@@ -332,6 +332,7 @@ status WAVEFile::parseFormat(const Tag &
-                       {
-                               _af_error(AF_BAD_NOT_IMPLEMENTED,
-                                       "IMA ADPCM compression supports only 4 bits per sample");
-+                              return AF_FAIL;
-                       }
-                       int bytesPerBlock = (samplesPerBlock + 14) / 8 * 4 * channelCount;
-@@ -339,6 +340,7 @@ status WAVEFile::parseFormat(const Tag &
-                       {
-                               _af_error(AF_BAD_CODEC_CONFIG,
-                                       "Invalid samples per block for IMA ADPCM compression");
-+                              return AF_FAIL;
-                       }
-                       track->f.sampleWidth = 16;
diff --git a/libs/libaudiofile/patches/150-Check-for-multiplication-overflow-in-MSADPCM-decodeS.patch b/libs/libaudiofile/patches/150-Check-for-multiplication-overflow-in-MSADPCM-decodeS.patch
deleted file mode 100644 (file)
index 84be8b8..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From beacc44eb8cdf6d58717ec1a5103c5141f1b37f9 Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Mon, 6 Mar 2017 13:43:53 +0100
-Subject: [PATCH] Check for multiplication overflow in MSADPCM decodeSample
-
-Check for multiplication overflow (using __builtin_mul_overflow
-if available) in MSADPCM.cpp decodeSample and return an empty
-decoded block if an error occurs.
-
-This fixes the 00193-audiofile-signintoverflow-MSADPCM case of #41
----
- libaudiofile/modules/BlockCodec.cpp |  5 ++--
- libaudiofile/modules/MSADPCM.cpp    | 47 +++++++++++++++++++++++++++++++++----
- 2 files changed, 46 insertions(+), 6 deletions(-)
-
-diff --git a/libaudiofile/modules/BlockCodec.cpp b/libaudiofile/modules/BlockCodec.cpp
-index 45925e8..4731be1 100644
---- a/libaudiofile/modules/BlockCodec.cpp
-+++ b/libaudiofile/modules/BlockCodec.cpp
-@@ -52,8 +52,9 @@ void BlockCodec::runPull()
-       // Decompress into m_outChunk.
-       for (int i=0; i<blocksRead; i++)
-       {
--              decodeBlock(static_cast<const uint8_t *>(m_inChunk->buffer) + i * m_bytesPerPacket,
--                      static_cast<int16_t *>(m_outChunk->buffer) + i * m_framesPerPacket * m_track->f.channelCount);
-+              if (decodeBlock(static_cast<const uint8_t *>(m_inChunk->buffer) + i * m_bytesPerPacket,
-+                      static_cast<int16_t *>(m_outChunk->buffer) + i * m_framesPerPacket * m_track->f.channelCount)==0)
-+                      break;
-               framesRead += m_framesPerPacket;
-       }
-diff --git a/libaudiofile/modules/MSADPCM.cpp b/libaudiofile/modules/MSADPCM.cpp
-index 8ea3c85..ef9c38c 100644
---- a/libaudiofile/modules/MSADPCM.cpp
-+++ b/libaudiofile/modules/MSADPCM.cpp
-@@ -101,24 +101,60 @@ static const int16_t adaptationTable[] =
-       768, 614, 512, 409, 307, 230, 230, 230
- };
-+int firstBitSet(int x)
-+{
-+        int position=0;
-+        while (x!=0)
-+        {
-+                x>>=1;
-+                ++position;
-+        }
-+        return position;
-+}
-+
-+#ifndef __has_builtin
-+#define __has_builtin(x) 0
-+#endif
-+
-+int multiplyCheckOverflow(int a, int b, int *result)
-+{
-+#if (defined __GNUC__ && __GNUC__ >= 5) || ( __clang__ && __has_builtin(__builtin_mul_overflow))
-+      return __builtin_mul_overflow(a, b, result);
-+#else
-+      if (firstBitSet(a)+firstBitSet(b)>31) // int is signed, so we can't use 32 bits
-+              return true;
-+      *result = a * b;
-+      return false;
-+#endif
-+}
-+
-+
- // Compute a linear PCM value from the given differential coded value.
- static int16_t decodeSample(ms_adpcm_state &state,
--      uint8_t code, const int16_t *coefficient)
-+      uint8_t code, const int16_t *coefficient, bool *ok=NULL)
- {
-       int linearSample = (state.sample1 * coefficient[0] +
-               state.sample2 * coefficient[1]) >> 8;
-+      int delta;
-       linearSample += ((code & 0x08) ? (code - 0x10) : code) * state.delta;
-       linearSample = clamp(linearSample, MIN_INT16, MAX_INT16);
--      int delta = (state.delta * adaptationTable[code]) >> 8;
-+      if (multiplyCheckOverflow(state.delta, adaptationTable[code], &delta))
-+      {
-+                if (ok) *ok=false;
-+              _af_error(AF_BAD_COMPRESSION, "Error decoding sample");
-+              return 0;
-+      }
-+      delta >>= 8;
-       if (delta < 16)
-               delta = 16;
-       state.delta = delta;
-       state.sample2 = state.sample1;
-       state.sample1 = linearSample;
-+      if (ok) *ok=true;
-       return static_cast<int16_t>(linearSample);
- }
-@@ -212,13 +248,16 @@ int MSADPCM::decodeBlock(const uint8_t *encoded, int16_t *decoded)
-       {
-               uint8_t code;
-               int16_t newSample;
-+              bool ok;
-               code = *encoded >> 4;
--              newSample = decodeSample(*state[0], code, coefficient[0]);
-+              newSample = decodeSample(*state[0], code, coefficient[0], &ok);
-+              if (!ok) return 0;
-               *decoded++ = newSample;
-               code = *encoded & 0x0f;
--              newSample = decodeSample(*state[1], code, coefficient[1]);
-+              newSample = decodeSample(*state[1], code, coefficient[1], &ok);
-+              if (!ok) return 0;
-               *decoded++ = newSample;
-               encoded++;
--- 
-2.11.0
-
diff --git a/libs/libaudiofile/patches/160-Fix-signature-of-multiplyCheckOverflow.patch b/libs/libaudiofile/patches/160-Fix-signature-of-multiplyCheckOverflow.patch
deleted file mode 100644 (file)
index d667ba8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From ce536d707b8e2a26baca77320398c45238224ca7 Mon Sep 17 00:00:00 2001
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Fri, 10 Mar 2017 15:40:02 +0100
-Subject: [PATCH] Fix signature of multiplyCheckOverflow. It returns a bool,
- not an int
-
----
- libaudiofile/modules/MSADPCM.cpp | 2 +-
- sfcommands/sfconvert.c           | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libaudiofile/modules/MSADPCM.cpp b/libaudiofile/modules/MSADPCM.cpp
-index ef9c38c..d8c9553 100644
---- a/libaudiofile/modules/MSADPCM.cpp
-+++ b/libaudiofile/modules/MSADPCM.cpp
-@@ -116,7 +116,7 @@ int firstBitSet(int x)
- #define __has_builtin(x) 0
- #endif
--int multiplyCheckOverflow(int a, int b, int *result)
-+bool multiplyCheckOverflow(int a, int b, int *result)
- {
- #if (defined __GNUC__ && __GNUC__ >= 5) || ( __clang__ && __has_builtin(__builtin_mul_overflow))
-       return __builtin_mul_overflow(a, b, result);
-diff --git a/sfcommands/sfconvert.c b/sfcommands/sfconvert.c
-index 970a3e4..367f7a5 100644
---- a/sfcommands/sfconvert.c
-+++ b/sfcommands/sfconvert.c
-@@ -60,7 +60,7 @@ int firstBitSet(int x)
- #define __has_builtin(x) 0
- #endif
--int multiplyCheckOverflow(int a, int b, int *result)
-+bool multiplyCheckOverflow(int a, int b, int *result)
- {
- #if (defined __GNUC__ && __GNUC__ >= 5) || ( __clang__ && __has_builtin(__builtin_mul_overflow))
-       return __builtin_mul_overflow(a, b, result);
--- 
-2.11.0
-
diff --git a/libs/libaudiofile/patches/170-Check-for-division-by-zero-in-BlockCodec.patch b/libs/libaudiofile/patches/170-Check-for-division-by-zero-in-BlockCodec.patch
deleted file mode 100644 (file)
index e001133..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Antonio Larrosa <larrosa@kde.org>
-Date: Thu, 9 Mar 2017 10:21:18 +0100
-Subject: Check for division by zero in BlockCodec::runPull
-
----
- libaudiofile/modules/BlockCodec.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libaudiofile/modules/BlockCodec.cpp b/libaudiofile/modules/BlockCodec.cpp
-index 4731be1..eb2fb4d 100644
---- a/libaudiofile/modules/BlockCodec.cpp
-+++ b/libaudiofile/modules/BlockCodec.cpp
-@@ -47,7 +47,7 @@ void BlockCodec::runPull()
-       // Read the compressed data.
-       ssize_t bytesRead = read(m_inChunk->buffer, m_bytesPerPacket * blockCount);
--      int blocksRead = bytesRead >= 0 ? bytesRead / m_bytesPerPacket : 0;
-+      int blocksRead = (bytesRead >= 0 && m_bytesPerPacket > 0) ? bytesRead / m_bytesPerPacket : 0;
-       // Decompress into m_outChunk.
-       for (int i=0; i<blocksRead; i++)
index 71429ec7eb810ae4328bf59173ec1c627a6a1753..7797592a637707558fd1bd5fc8d1e423ae7233d5 100644 (file)
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgee
-PKG_VERSION:=0.20.2
+PKG_VERSION:=0.20.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/libgee/0.20
-PKG_HASH:=9e035c4b755f46bfae70ba81cdcf8328b03f554373cec8c816e8b5680f85353c
+PKG_HASH:=d0b5edefc88cbca5f1709d19fa62aef490922c6577a14ac4e7b085507911a5de
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 PKG_LICENSE:=LGPL-2.1-or-later
index b1260936a29e27f073f9df80d8389b5306e48851..09259be7080ec79dd5abb565bd48c0e136f381d3 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiio
-PKG_VERSION:=0.18
+PKG_VERSION:=0.19
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/analogdevicesinc/libiio/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=bc2c5299974b65cfe9aa4a06d8c74d7651594e026bce416db48a2c5aa7ba2554
+PKG_HASH:=81c414d5c47b715d9bc9275b9fabbfd9e9483e60c035f3001b5977932049595d
 
 PKG_LICENSE:=LGPL-2.1
 PKG_LICENSE_FILES:=COPYING.txt
diff --git a/libs/libiio/patches/0001-Update-channel-type-and-modifier-lists.patch b/libs/libiio/patches/0001-Update-channel-type-and-modifier-lists.patch
new file mode 100644 (file)
index 0000000..96630be
--- /dev/null
@@ -0,0 +1,80 @@
+From 98ba73179f6db323b68a8d59e90c2d7c39a16736 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
+Date: Tue, 3 Mar 2020 18:27:42 +0100
+Subject: [PATCH] Update channel type and modifier lists
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Update the channel type and modifier lists against Linux 5.4.22.
+
+Signed-off-by: Petr Å tetiar <ynezz@true.cz>
+---
+ channel.c | 10 ++++++++++
+ iio.h     | 10 ++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/channel.c b/channel.c
+index 302592dfc764..407ce632fcc7 100644
+--- a/channel.c
++++ b/channel.c
+@@ -56,6 +56,9 @@ static const char * const iio_chan_type_name_spec[] = {
+       [IIO_COUNT] = "count",
+       [IIO_INDEX] = "index",
+       [IIO_GRAVITY] = "gravity",
++      [IIO_POSITIONRELATIVE] = "positionrelative",
++      [IIO_PHASE] = "phase",
++      [IIO_MASSCONCENTRATION] = "massconcentration",
+ };
+ static const char * const modifier_names[] = {
+@@ -79,6 +82,7 @@ static const char * const modifier_names[] = {
+       [IIO_MOD_LIGHT_GREEN] = "green",
+       [IIO_MOD_LIGHT_BLUE] = "blue",
+       [IIO_MOD_LIGHT_UV] = "uv",
++      [IIO_MOD_LIGHT_DUV] = "duv",
+       [IIO_MOD_QUATERNION] = "quaternion",
+       [IIO_MOD_TEMP_AMBIENT] = "ambient",
+       [IIO_MOD_TEMP_OBJECT] = "object",
+@@ -94,7 +98,13 @@ static const char * const modifier_names[] = {
+       [IIO_MOD_I] = "i",
+       [IIO_MOD_Q] = "q",
+       [IIO_MOD_CO2] = "co2",
++      [IIO_MOD_ETHANOL] = "ethanol",
++      [IIO_MOD_H2] = "h2",
+       [IIO_MOD_VOC] = "voc",
++      [IIO_MOD_PM1] = "pm1",
++      [IIO_MOD_PM2P5] = "pm2p5",
++      [IIO_MOD_PM4] = "pm4",
++      [IIO_MOD_PM10] = "pm10",
+ };
+ /*
+diff --git a/iio.h b/iio.h
+index 5c11fcefe5c2..5afc28ea0197 100644
+--- a/iio.h
++++ b/iio.h
+@@ -125,6 +125,9 @@ enum iio_chan_type {
+       IIO_COUNT,
+       IIO_INDEX,
+       IIO_GRAVITY,
++      IIO_POSITIONRELATIVE,
++      IIO_PHASE,
++      IIO_MASSCONCENTRATION,
+       IIO_CHAN_TYPE_UNKNOWN = INT_MAX
+ };
+@@ -173,6 +176,13 @@ enum iio_modifier {
+       IIO_MOD_CO2,
+       IIO_MOD_VOC,
+       IIO_MOD_LIGHT_UV,
++      IIO_MOD_LIGHT_DUV,
++      IIO_MOD_PM1,
++      IIO_MOD_PM2P5,
++      IIO_MOD_PM4,
++      IIO_MOD_PM10,
++      IIO_MOD_ETHANOL,
++      IIO_MOD_H2,
+ };
+ /* ---------------------------------------------------------------------------*/
index e82297f20cf48501058e2900fc2ea6251aacb409..d967c0a78503c313ddc4ccb056bb8e81c9880fb6 100644 (file)
@@ -66,7 +66,7 @@ define Build/Compile
                KERNEL_DIR="$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)/kernel" \
+               M="$(PKG_BUILD_DIR)/kernel" \
                EXTRA_CFLAGS="$(EXTRA_CFLAGS) -I$(PKG_BUILD_DIR)/kernel" \
                modules
        $(call Build/Compile/Default)
index 7d2413c149473cb1f3604f0f9541b9ae55739f10..59b3809e8fc834f58066be4436d967e56473c5f8 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libqmi
-PKG_VERSION:=1.24.4
-PKG_RELEASE:=2
+PKG_VERSION:=1.24.6
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.freedesktop.org/software/libqmi
-PKG_HASH:=0316badec92ff32f51fe6278e6046968d2272a26608995deedd8e4afb563918a
+PKG_HASH:=1325257bc16de7b2b443fa689826c993474bdbd6e78c7a1e60e527269b44d8c9
 
 PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
 
index dad07fafe2b752a3e6c45c95cfc68a8f55093383..07867debffa87396adfeb9f55f2142e0d76c5d95 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuhttpd
-PKG_VERSION:=3.0.1
+PKG_VERSION:=3.1.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL=https://github.com/zhaojh329/libuhttpd/releases/download/v$(PKG_VERSION)
-PKG_HASH:=07cc357a94e29c5a04eea46331352c869beed01d7fd6cc23972e878a5c4b023c
+PKG_HASH:=733fdb2183fe4984e2f909c41e24d81989a748265a75ef288018568e67a9cd49
 
-PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
+PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE
 
index 166a258eeec7a1c78dc48b6dab6974f515f6709b..b91b90323fa253e0b0911f59bf70dcf390fc4d69 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libzdb
-PKG_VERSION:=3.2
+PKG_VERSION:=3.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.tildeslash.com/libzdb/dist/
-PKG_HASH:=005ddf4b29c6db622e16303298c2f914dfd82590111cea7cfd09b4acf46cf4f2
+PKG_HASH:=b9a7b59a0a9f53dc87ce1b5a919f21b8cd6448c04a9157bccef1e3c1dffd3ff1
 
 PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
 PKG_LICENSE:=GPL-3.0-or-later
@@ -22,6 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=libzdb/host
+PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
diff --git a/libs/libzdb/patches/010-do-not-run-test-progs.patch b/libs/libzdb/patches/010-do-not-run-test-progs.patch
new file mode 100644 (file)
index 0000000..77b7e50
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -454,16 +454,6 @@ if test $ondarwin -eq 1; then
+ else
+     stdc="gnu"
+ fi
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM([], [dnl
+-        #ifdef __STDC_VERSION__
+-        #if __STDC_VERSION__ >= 201112L
+-        return 0;
+-        #endif
+-        #endif
+-        return 1;
+-        ])], [CFLAGS="$CFLAGS -std=${stdc}11"], [CFLAGS="$CFLAGS -std=${stdc}99"])
+-AC_CHECK_HEADERS([stdint.h stdbool.h], [], [AC_MSG_ERROR([toolchain does not have C99 headers])])
+ # ---------------------------------------------------------------------------
+ # Outputs
diff --git a/libs/libzdb/patches/010-missing-header.patch b/libs/libzdb/patches/010-missing-header.patch
deleted file mode 100644 (file)
index c3fec2e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
---- a/test/zdbpp.cpp
-+++ b/test/zdbpp.cpp
-@@ -1,3 +1,4 @@
-+#include <cassert>
- #include <iostream>
- #include <string>
- #include <map>
index ad1f1640b27b51c96931b5649b984177cdb435bc..8754a79e21dd2426b9378729e698248191bba1d7 100644 (file)
@@ -1,11 +1,11 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -476,7 +476,7 @@ DIST_SUBDIRS = . test
- EXTRA_DIST = README AUTHORS CHANGES COPYING bootstrap doc test src tools config
- LIBRARY_NAME = zdb
- RE2CFLAGS = -b
--FILTERH = ./tools/bin/filterh
-+FILTERH = $(STAGING_DIR_HOSTPKG)/bin/filterh
- AM_CPPFLAGS = $(CPPFLAGS) $(DBCPPFLAGS) -Isrc -Isrc/util -Isrc/net \
-       -Isrc/db -Isrc/db/oracle -Isrc/exceptions
- pkgconfigdir = $(libdir)/pkgconfig
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -12,7 +12,7 @@ LIBRARY_NAME    = zdb
+ RE2C          = @RE2C@
+ RE2CFLAGS       = -b
+-FILTERH         = ./tools/bin/filterh
++FILTERH         = $(STAGING_DIR_HOSTPKG)/bin/filterh
+ AM_CPPFLAGS     = $(CPPFLAGS) $(DBCPPFLAGS)
+ AM_CPPFLAGS     += -Isrc -Isrc/util -Isrc/net -Isrc/db -Isrc/db/oracle -Isrc/exceptions
index d6186af69595d9f75c2277220d09fdc71b0db92a..57db05054f04a370f57f5f24b931b4ae26a559b8 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=measurement-kit
-PKG_VERSION:=0.10.9
-PKG_RELEASE:=2
+PKG_VERSION:=0.10.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/measurement-kit/measurement-kit/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=8ac160fe1f318983b6784d78f612b657ddeed73ddc6371aaa299326196a381e5
+PKG_HASH:=f9dbf5f721516fd709c13ac5011737b3622076299e3c899a1f70861901ec1b40
 
 PKG_MAINTAINER:=Jan Pavlinec <jan.pavlinec@nic.cz>
 PKG_LICENSE:=BSD-2-Clause
index 107d521d40946858ff4008babf870aa80106c70d..a783b3fa291f9bc713b2755536088bff3d90cd7f 100644 (file)
@@ -8,14 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tdb
-PKG_VERSION:=1.3.16
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.3
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.samba.org/ftp/tdb/
-PKG_HASH:=6a3fc2616567f23993984ada3cea97d953a27669ffd1bfbbe961f26e0cf96cc5
+PKG_HASH:=c8058393dfa15f47e11ebd2f1d132693f0b3b3b8bf22d0201bfb305026f88a1b
 
+PKG_BUILD_DEPENDS:=python3/host
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -29,7 +30,6 @@ define Package/tdb
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Trivial Database
-  DEPNEDS:=+libattr
   URL:=http://sourceforge.net/projects/tdb/
   MAINTAINER:=Dmitry V. Zimin <pfzim@mail.ru>
 endef
@@ -48,12 +48,9 @@ define Build/InstallDev
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
 endef
 
-CONFIGURE_ARGS = \
-       --target=$(GNU_TARGET_NAME) \
-       --build=$(GNU_HOST_NAME) \
+CONFIGURE_ARGS:= \
        --cross-compile \
        --cross-answers="$(PKG_BUILD_DIR)/cache.txt" \
-       --program-prefix="" \
        --prefix=$(CONFIGURE_PREFIX) \
        --exec-prefix=$(CONFIGURE_PREFIX) \
        --bindir=$(CONFIGURE_PREFIX)/bin \
@@ -64,9 +61,6 @@ CONFIGURE_ARGS = \
        --localstatedir=/var \
        --mandir=$(CONFIGURE_PREFIX)/man \
        --infodir=$(CONFIGURE_PREFIX)/info \
-       $(DISABLE_IPV6)
-
-CONFIGURE_ARGS += \
        --disable-python \
        --disable-rpath \
        --disable-rpath-install \
index 150d17b59becbc62f22e89b28fd95e3e7a07a12a..06081ce81dc5b6d90c1fd328d634a9e1b2542c57 100644 (file)
@@ -1,13 +1,16 @@
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index fd00a42..337d559 100644
 --- a/lib/replace/wscript
 +++ b/lib/replace/wscript
-@@ -340,22 +340,13 @@ def configure(conf):
+@@ -416,22 +416,13 @@
  
      conf.CHECK_FUNCS('prctl dirname basename')
  
 -    strlcpy_in_bsd = False
--
++    # Not checking for libbsd
++    conf.CHECK_FUNCS('strlcpy strlcat')
++    conf.CHECK_FUNCS('getpeereid')
++    conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h')
++    conf.CHECK_FUNCS('setproctitle_init')
 -    # libbsd on some platforms provides strlcpy and strlcat
 -    if not conf.CHECK_FUNCS('strlcpy strlcat'):
 -        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
@@ -22,17 +25,11 @@ index fd00a42..337d559 100644
 -
 -    if not conf.CHECK_FUNCS('closefrom'):
 -        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+    # Not checking for libbsd
-+    conf.CHECK_FUNCS('strlcpy strlcat')
-+    conf.CHECK_FUNCS('getpeereid')
-+    conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h')
-+    conf.CHECK_FUNCS('setproctitle_init')
-+
 +    conf.CHECK_FUNCS('closefrom')
  
      conf.CHECK_CODE('''
                  struct ucred cred;
-@@ -698,9 +689,6 @@ def configure(conf):
+@@ -808,9 +799,6 @@
  
      # look for a method of finding the list of network interfaces
      for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
@@ -42,8 +39,8 @@ index fd00a42..337d559 100644
          if conf.CHECK_CODE('''
                             #define %s 1
                             #define NO_CONFIG_H 1
-@@ -713,7 +701,7 @@ def configure(conf):
-                            #include "test/getifaddrs.c"
+@@ -823,7 +811,7 @@
+                            #include "tests/getifaddrs.c"
                             ''' % method,
                             method,
 -                           lib='nsl socket' + bsd_for_strlcpy,
@@ -51,11 +48,11 @@ index fd00a42..337d559 100644
                             addmain=False,
                             execute=True):
              break
-@@ -761,7 +749,6 @@ def build(bld):
+@@ -871,7 +859,6 @@
                  break
  
      extra_libs = ''
 -    if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd'
+     if bld.CONFIG_SET('HAVE_LIBRT'): extra_libs += ' rt'
+     if bld.CONFIG_SET('REPLACE_REQUIRES_LIBSOCKET_LIBNSL'): extra_libs += ' socket nsl'
  
-     bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC',
-         REPLACE_HOSTCC_SOURCE,
index a2091dfa9ea08b41905481322ae9daa634c2db16..b3797176d50dfca37b3999514d40d22fcfd7fe19 100644 (file)
@@ -34,7 +34,7 @@ define Build/Compile
        +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)/xr_usb_serial_common-1a" \
+               M="$(PKG_BUILD_DIR)/xr_usb_serial_common-1a" \
                modules
 endef
 
index b976b42c9e91a2cadcda4fe6674f333666c8c024..063489d2460fd04ffba024b389e6ac05b599504e 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=grilo-plugins
-PKG_VERSION:=0.3.10
+PKG_VERSION:=0.3.11
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/grilo-plugins/0.3/
-PKG_HASH:=803b360fdb6d5fde1e647bdc40c16de3031b1a95b347b48b65fe4fc27a548d4a
+PKG_HASH:=dde2e605b1994341c6bf012493e056b406b08571834dea3b3c671d5b8b1dcd73
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -89,8 +89,7 @@ endef
 $(eval $(call BuildPackage,grilo-plugins))
 
 $(eval $(call BuildPlugin,dleyna,DLNA sharing,dleyna,,30))
-# This is currently disabled because it won't work with libdmapsharing-4.0.so
-#$(eval $(call BuildPlugin,dmap,DAAP and DPAP sharing,daap dpap,libdmapsharing,30))
+$(eval $(call BuildPlugin,dmap,DAAP and DPAP sharing,daap dpap,libdmapsharing,30))
 $(eval $(call BuildPlugin,gravatar,Gravatar provider,gravatar,,30))
 $(eval $(call BuildPlugin,jamendo,Jamendo sharing,jamendo,,30))
 $(eval $(call BuildPlugin,magnatune,Magnatune sharing,magnatune,,30))
diff --git a/multimedia/grilo-plugins/patches/010-backport-fix-whitespace.patch b/multimedia/grilo-plugins/patches/010-backport-fix-whitespace.patch
new file mode 100644 (file)
index 0000000..7f693a0
--- /dev/null
@@ -0,0 +1,1250 @@
+diff --git a/src/dmap/grl-common.c b/src/dmap/grl-common.c
+index fa92df9..6a1da5e 100644
+--- a/src/dmap/grl-common.c
++++ b/src/dmap/grl-common.c
+@@ -39,7 +39,7 @@ gchar *
+ grl_dmap_build_url (DMAPMdnsBrowserService *service)
+ {
+   return g_strdup_printf ("%s://%s:%u",
+-                          service->service_name,
+-                          service->host,
+-                          service->port);
++                           service->service_name,
++                           service->host,
++                           service->port);
+ }
+diff --git a/src/dmap/grl-daap-db.c b/src/dmap/grl-daap-db.c
+index 6621094..c931d91 100644
+--- a/src/dmap/grl-daap-db.c
++++ b/src/dmap/grl-daap-db.c
+@@ -112,8 +112,8 @@ grl_daap_db_lookup_by_id (const DMAPDb *db, guint id)
+ static void
+ grl_daap_db_foreach (const DMAPDb *db,
+-                        GHFunc func,
+-                        gpointer data)
++                     GHFunc func,
++                     gpointer data)
+ {
+   g_error ("Not implemented");
+ }
+@@ -135,7 +135,7 @@ set_insert (GHashTable *category, const char *category_name, char *set_name, Grl
+   id = g_strdup_printf ("%s-%s", category_name, set_name);
+   container = grl_media_container_new ();
+-  grl_media_set_id    (container, id);
++  grl_media_set_id (container, id);
+   grl_media_set_title (container, set_name);
+   set = g_hash_table_lookup (category, container);
+@@ -173,26 +173,16 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   GrlMedia *media;
+   g_object_get (record,
+-               "songalbum",
+-               &album,
+-               "songartist",
+-               &artist,
+-               "bitrate",
+-               &bitrate,
+-               "duration",
+-               &duration,
+-               "songgenre",
+-               &genre,
+-               "title",
+-               &title,
+-               "track",
+-               &track,
+-               "disc",
+-               &disc,
+-               "location",
+-               &url,
+-               "has-video",
+-               &has_video,
++               "songalbum", &album,
++               "songartist", &artist,
++               "bitrate", &bitrate,
++               "duration", &duration,
++               "songgenre", &genre,
++               "title", &title,
++               "track", &track,
++               "disc", &disc,
++               "location", &url,
++               "has-video", &has_video,
+                 NULL);
+   id_s = g_strdup_printf ("%u", nextid);
+@@ -203,8 +193,8 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+     media = grl_media_audio_new ();
+   }
+-  grl_media_set_id           (media, id_s);
+-  grl_media_set_duration     (media, duration);
++  grl_media_set_id (media, id_s);
++  grl_media_set_duration (media, duration);
+   if (title) {
+     grl_media_set_title (media, title);
+@@ -217,7 +207,7 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   }
+   if (has_video == FALSE) {
+-    grl_media_set_bitrate      (media, bitrate);
++    grl_media_set_bitrate (media, bitrate);
+     grl_media_set_track_number (media, track);
+     if (disc != 0) {
+@@ -249,7 +239,7 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+ static gboolean
+ same_media (GrlMedia *a, GrlMedia *b)
+ {
+-  return (strcmp (grl_media_get_id (a), grl_media_get_id (b)) == 0);
++  return strcmp (grl_media_get_id (a), grl_media_get_id (b)) == 0;
+ }
+ void
+@@ -334,7 +324,7 @@ grl_daap_db_search (GrlDAAPDb *db,
+   results = g_hash_table_new (g_str_hash, g_str_equal);
+   /* For albums and artists... */
+-  for (i = 0; i < G_N_ELEMENTS(hash_tables); i++) {
++  for (i = 0; i < G_N_ELEMENTS (hash_tables); i++) {
+     g_hash_table_iter_init (&iter1, hash_tables[i]);
+     /* For each album or artist in above... */
+     for (j = 0; g_hash_table_iter_next (&iter1, &key1, &val1); j++) {
+@@ -396,10 +386,10 @@ grl_daap_db_init (GrlDAAPDb *db)
+   db->priv->albums_container  = grl_media_container_new ();
+   db->priv->artists_container = grl_media_container_new ();
+-  grl_media_set_id    (GRL_MEDIA (db->priv->albums_container), ALBUMS_ID);
++  grl_media_set_id (GRL_MEDIA (db->priv->albums_container), ALBUMS_ID);
+   grl_media_set_title (GRL_MEDIA (db->priv->albums_container), ALBUMS_NAME);
+-  grl_media_set_id    (GRL_MEDIA (db->priv->artists_container), ARTISTS_ID);
++  grl_media_set_id (GRL_MEDIA (db->priv->artists_container), ARTISTS_ID);
+   grl_media_set_title (GRL_MEDIA (db->priv->artists_container), ARTISTS_NAME);
+   db->priv->root    = g_hash_table_new_full (container_hash, container_equal, g_object_unref, (GDestroyNotify) g_hash_table_destroy);
+@@ -426,9 +416,9 @@ grl_daap_db_finalize (GObject *object)
+ static void
+ grl_daap_db_set_property (GObject *object,
+-                             guint prop_id,
+-                             const GValue *value,
+-                             GParamSpec *pspec)
++                          guint prop_id,
++                          const GValue *value,
++                          GParamSpec *pspec)
+ {
+   switch (prop_id) {
+   default:
+@@ -439,9 +429,9 @@ grl_daap_db_set_property (GObject *object,
+ static void
+ grl_daap_db_get_property (GObject *object,
+-                             guint prop_id,
+-                             GValue *value,
+-                             GParamSpec *pspec)
++                          guint prop_id,
++                          GValue *value,
++                          GParamSpec *pspec)
+ {
+   switch (prop_id) {
+   default:
+diff --git a/src/dmap/grl-daap-db.h b/src/dmap/grl-daap-db.h
+index f52a9b5..2548c50 100644
+--- a/src/dmap/grl-daap-db.h
++++ b/src/dmap/grl-daap-db.h
+@@ -26,34 +26,34 @@
+ G_BEGIN_DECLS
+-#define TYPE_GRL_DAAP_DB                     \
+-  (grl_daap_db_get_type ())
+-
+-#define GRL_DAAP_DB(o)                             \
+-  (G_TYPE_CHECK_INSTANCE_CAST ((o),                   \
+-                               TYPE_GRL_DAAP_DB,   \
+-                               GrlDAAPDb))
+-
+-#define GRL_DAAP_DB_CLASS(k)                 \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                 \
+-                           TYPE_GRL_DAAP_DB, \
+-                           GrlDAAPDbClass))
+-#define IS_GRL_DAAP_DB(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                    \
+-                              TYPE_GRL_DAAP_DB))
+-#define IS_GRL_DAAP_DB_CLASS(k)                       \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                          \
+-                           TYPE_GRL_DAAP_DB_CLASS))
+-
+-#define GRL_DAAP_DB_GET_CLASS(o)                \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                  \
+-                             TYPE_GRL_DAAP_DB,  \
+-                             GrlDAAPDbClass))
++#define TYPE_GRL_DAAP_DB (grl_daap_db_get_type ())
++
++#define GRL_DAAP_DB(o)                                                         \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_GRL_DAAP_DB,                              \
++                                GrlDAAPDb))
+-#define GRL_DAAP_DB_GET_PRIVATE(o)                 \
+-  (G_TYPE_INSTANCE_GET_PRIVATE((o),                   \
+-                               TYPE_GRL_DAAP_DB,   \
+-                               GrlDAAPDbPrivate))
++#define GRL_DAAP_DB_CLASS(k)                                                   \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_GRL_DAAP_DB,                                 \
++                             GrlDAAPDbClass))
++#define IS_GRL_DAAP_DB(o)                                                      \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
++                                TYPE_GRL_DAAP_DB))
++
++#define IS_GRL_DAAP_DB_CLASS(k)                                                \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                             TYPE_GRL_DAAP_DB_CLASS))
++
++#define GRL_DAAP_DB_GET_CLASS(o)                                               \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                               TYPE_GRL_DAAP_DB,                               \
++                               GrlDAAPDbClass))
++
++#define GRL_DAAP_DB_GET_PRIVATE(o)                                             \
++  (G_TYPE_INSTANCE_GET_PRIVATE ((o),                                           \
++                                 TYPE_GRL_DAAP_DB,                             \
++                                 GrlDAAPDbPrivate))
+ typedef struct GrlDAAPDbPrivate GrlDAAPDbPrivate;
+diff --git a/src/dmap/grl-daap-record-factory.c b/src/dmap/grl-daap-record-factory.c
+index e986394..648fd85 100644
+--- a/src/dmap/grl-daap-record-factory.c
++++ b/src/dmap/grl-daap-record-factory.c
+@@ -22,9 +22,9 @@
+ #include "grl-daap-record.h"
+ DMAPRecord *
+-grl_daap_record_factory_create  (DMAPRecordFactory *factory, gpointer user_data)
++grl_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data)
+ {
+-      return DMAP_RECORD (grl_daap_record_new ());
++  return DMAP_RECORD (grl_daap_record_new ());
+ }
+ static void
+@@ -40,19 +40,19 @@ grl_daap_record_factory_class_init (GrlDAAPRecordFactoryClass *klass)
+ static void
+ grl_daap_record_factory_interface_init (gpointer iface, gpointer data)
+ {
+-      DMAPRecordFactoryIface *factory = iface;
++  DMAPRecordFactoryIface *factory = iface;
+-      g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
++  g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
+-      factory->create = grl_daap_record_factory_create;
++  factory->create = grl_daap_record_factory_create;
+ }
+ G_DEFINE_TYPE_WITH_CODE (GrlDAAPRecordFactory, grl_daap_record_factory, G_TYPE_OBJECT,
+-                       G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD_FACTORY,
+-                                              grl_daap_record_factory_interface_init))
++                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD_FACTORY,
++                                               grl_daap_record_factory_interface_init))
+ GrlDAAPRecordFactory *
+ grl_daap_record_factory_new (void)
+ {
+-      return SIMPLE_DAAP_RECORD_FACTORY (g_object_new (TYPE_SIMPLE_DAAP_RECORD_FACTORY, NULL));
++  return SIMPLE_DAAP_RECORD_FACTORY (g_object_new (TYPE_SIMPLE_DAAP_RECORD_FACTORY, NULL));
+ }
+diff --git a/src/dmap/grl-daap-record-factory.h b/src/dmap/grl-daap-record-factory.h
+index 514713a..45aa69a 100644
+--- a/src/dmap/grl-daap-record-factory.h
++++ b/src/dmap/grl-daap-record-factory.h
+@@ -25,32 +25,31 @@
+ G_BEGIN_DECLS
+-#define TYPE_SIMPLE_DAAP_RECORD_FACTORY         \
+-  (grl_daap_record_factory_get_type ())
+-
+-#define SIMPLE_DAAP_RECORD_FACTORY(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_CAST((o),                             \
+-                              TYPE_SIMPLE_DAAP_RECORD_FACTORY, \
+-                              GrlDAAPRecordFactory))
+-
+-#define SIMPLE_DAAP_RECORD_FACTORY_CLASS(k)                 \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                             \
+-                           TYPE_SIMPLE_DAAP_RECORD_FACTORY, \
+-                           GrlDAAPRecordFactoryClass))
+-
+-#define IS_SIMPLE_DAAP_RECORD_FACTORY(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                                \
+-                              TYPE_SIMPLE_DAAP_RECORD_FACTORY))
+-
+-#define IS_SIMPLE_DAAP_RECORD_FACTORY_CLASS(k)                       \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                                      \
+-                           TYPE_SIMPLE_DAAP_RECORD_FACTORY_CLASS))
+-
+-#define SIMPLE_DAAP_RECORD_FACTORY_GET_CLASS(o)                \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                              \
+-                             TYPE_SIMPLE_DAAP_RECORD_FACTORY,  \
++#define TYPE_SIMPLE_DAAP_RECORD_FACTORY (grl_daap_record_factory_get_type ())
++
++#define SIMPLE_DAAP_RECORD_FACTORY(o)                                          \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_SIMPLE_DAAP_RECORD_FACTORY,               \
++                                GrlDAAPRecordFactory))
++
++#define SIMPLE_DAAP_RECORD_FACTORY_CLASS(k)                                    \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_SIMPLE_DAAP_RECORD_FACTORY,                  \
+                              GrlDAAPRecordFactoryClass))
++#define IS_SIMPLE_DAAP_RECORD_FACTORY(o)                                       \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
++                                TYPE_SIMPLE_DAAP_RECORD_FACTORY))
++
++#define IS_SIMPLE_DAAP_RECORD_FACTORY_CLASS(k)                                 \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                             TYPE_SIMPLE_DAAP_RECORD_FACTORY_CLASS))
++
++#define SIMPLE_DAAP_RECORD_FACTORY_GET_CLASS(o)                                \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                               TYPE_SIMPLE_DAAP_RECORD_FACTORY,                \
++                               GrlDAAPRecordFactoryClass))
++
+ typedef struct GrlDAAPRecordFactoryPrivate GrlDAAPRecordFactoryPrivate;
+ typedef struct {
+@@ -61,11 +60,11 @@ typedef struct {
+   GObjectClass parent;
+ } GrlDAAPRecordFactoryClass;
+-GType                    grl_daap_record_factory_get_type (void);
++GType grl_daap_record_factory_get_type (void);
+-GrlDAAPRecordFactory *grl_daap_record_factory_new      (void);
++GrlDAAPRecordFactory *grl_daap_record_factory_new (void);
+-DMAPRecord              *grl_daap_record_factory_create   (DMAPRecordFactory *factory, gpointer user_data);
++DMAPRecord *grl_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data);
+ #endif /* __SIMPLE_DAAP_RECORD_FACTORY */
+diff --git a/src/dmap/grl-daap-record.c b/src/dmap/grl-daap-record.c
+index d1721d2..82bf2f9 100644
+--- a/src/dmap/grl-daap-record.c
++++ b/src/dmap/grl-daap-record.c
+@@ -69,9 +69,9 @@ enum {
+ static void
+ grl_daap_record_set_property (GObject *object,
+-                                 guint prop_id,
+-                                 const GValue *value,
+-                                 GParamSpec *pspec)
++                              guint prop_id,
++                              const GValue *value,
++                              GParamSpec *pspec)
+ {
+   GrlDAAPRecord *record = SIMPLE_DAAP_RECORD (object);
+@@ -86,27 +86,27 @@ grl_daap_record_set_property (GObject *object,
+     break;
+   case PROP_ALBUM:
+     g_free (record->priv->album);
+-    record->priv->album = g_value_dup_string(value);
++    record->priv->album = g_value_dup_string (value);
+     break;
+   case PROP_SORT_ALBUM:
+     g_free (record->priv->sort_album);
+-    record->priv->sort_album = g_value_dup_string(value);
++    record->priv->sort_album = g_value_dup_string (value);
+     break;
+   case PROP_ARTIST:
+     g_free (record->priv->artist);
+-    record->priv->artist = g_value_dup_string(value);
++    record->priv->artist = g_value_dup_string (value);
+     break;
+   case PROP_SORT_ARTIST:
+     g_free (record->priv->sort_artist);
+-    record->priv->sort_artist = g_value_dup_string(value);
++    record->priv->sort_artist = g_value_dup_string (value);
+     break;
+   case PROP_GENRE:
+     g_free (record->priv->genre);
+-    record->priv->genre = g_value_dup_string(value);
++    record->priv->genre = g_value_dup_string (value);
+     break;
+   case PROP_FORMAT:
+     g_free (record->priv->format);
+-    record->priv->format = g_value_dup_string(value);
++    record->priv->format = g_value_dup_string (value);
+     break;
+   case PROP_MEDIAKIND:
+     record->priv->mediakind = g_value_get_enum (value);
+@@ -142,18 +142,16 @@ grl_daap_record_set_property (GObject *object,
+     record->priv->has_video = g_value_get_boolean (value);
+     break;
+   default:
+-    G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+-                                       prop_id,
+-                                       pspec);
++    G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+     break;
+   }
+ }
+ static void
+ grl_daap_record_get_property (GObject *object,
+-                                 guint prop_id,
+-                                 GValue *value,
+-                                 GParamSpec *pspec)
++                              guint prop_id,
++                              GValue *value,
++                              GParamSpec *pspec)
+ {
+   GrlDAAPRecord *record = SIMPLE_DAAP_RECORD (object);
+@@ -216,9 +214,7 @@ grl_daap_record_get_property (GObject *object,
+     g_value_set_boolean (value, record->priv->has_video);
+     break;
+   default:
+-    G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+-                                       prop_id,
+-                                       pspec);
++    G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+     break;
+   }
+ }
+diff --git a/src/dmap/grl-daap-record.h b/src/dmap/grl-daap-record.h
+index 59558c4..7aae82d 100644
+--- a/src/dmap/grl-daap-record.h
++++ b/src/dmap/grl-daap-record.h
+@@ -25,36 +25,35 @@
+ G_BEGIN_DECLS
+-#define TYPE_SIMPLE_DAAP_RECORD                 \
+-  (grl_daap_record_get_type ())
+-
+-#define SIMPLE_DAAP_RECORD(o)                            \
+-  (G_TYPE_CHECK_INSTANCE_CAST((o),                       \
+-                              TYPE_SIMPLE_DAAP_RECORD,   \
+-                              GrlDAAPRecord))
+-
+-#define SIMPLE_DAAP_RECORD_CLASS(k)                   \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                       \
+-                           TYPE_SIMPLE_DAAP_RECORD,   \
+-                           GrlDAAPRecordClass))
+-
+-#define IS_SIMPLE_DAAP_RECORD(o)                         \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                       \
+-                              TYPE_SIMPLE_DAAP_RECORD))
+-
+-#define IS_SIMPLE_DAAP_RECORD_CLASS(k)                      \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                             \
+-                           TYPE_SIMPLE_DAAP_RECORD_CLASS))
+-
+-#define SIMPLE_DAAP_RECORD_GET_CLASS(o)               \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                     \
+-                             TYPE_SIMPLE_DAAP_RECORD, \
++#define TYPE_SIMPLE_DAAP_RECORD (grl_daap_record_get_type ())
++
++#define SIMPLE_DAAP_RECORD(o)                                                  \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_SIMPLE_DAAP_RECORD,                       \
++                                GrlDAAPRecord))
++
++#define SIMPLE_DAAP_RECORD_CLASS(k)                                            \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_SIMPLE_DAAP_RECORD,                          \
+                              GrlDAAPRecordClass))
+-#define SIMPLE_DAAP_RECORD_GET_PRIVATE(o)                \
+-  (G_TYPE_INSTANCE_GET_PRIVATE((o),                      \
+-                               TYPE_SIMPLE_DAAP_RECORD,  \
+-                               GrlDAAPRecordPrivate))
++#define IS_SIMPLE_DAAP_RECORD(o)                                               \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
++                                TYPE_SIMPLE_DAAP_RECORD))
++
++#define IS_SIMPLE_DAAP_RECORD_CLASS(k)                                         \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                             TYPE_SIMPLE_DAAP_RECORD_CLASS))
++
++#define SIMPLE_DAAP_RECORD_GET_CLASS(o)                                        \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                               TYPE_SIMPLE_DAAP_RECORD,                        \
++                               GrlDAAPRecordClass))
++
++#define SIMPLE_DAAP_RECORD_GET_PRIVATE(o)                                      \
++  (G_TYPE_INSTANCE_GET_PRIVATE ((o),                                           \
++                                 TYPE_SIMPLE_DAAP_RECORD,                      \
++                                 GrlDAAPRecordPrivate))
+ typedef struct GrlDAAPRecordPrivate GrlDAAPRecordPrivate;
+@@ -69,9 +68,9 @@ typedef struct {
+ GType grl_daap_record_get_type (void);
+-GrlDAAPRecord *grl_daap_record_new    (void);
+-GInputStream     *grl_daap_record_read   (DAAPRecord *record, GError **error);
+-gint              grl_daap_record_get_id (DAAPRecord *record);
++GrlDAAPRecord *grl_daap_record_new (void);
++GInputStream *grl_daap_record_read (DAAPRecord *record, GError **error);
++gint grl_daap_record_get_id (DAAPRecord *record);
+ #endif /* __SIMPLE_DAAP_RECORD */
+diff --git a/src/dmap/grl-daap.c b/src/dmap/grl-daap.c
+index 13cc7e3..f3c4115 100644
+--- a/src/dmap/grl-daap.c
++++ b/src/dmap/grl-daap.c
+@@ -42,7 +42,7 @@
+ /* --------- Logging  -------- */
+ #define GRL_LOG_DOMAIN_DEFAULT daap_log_domain
+-GRL_LOG_DOMAIN_STATIC(daap_log_domain);
++GRL_LOG_DOMAIN_STATIC (daap_log_domain);
+ /* --- Plugin information --- */
+@@ -111,19 +111,19 @@ grl_daap_plugin_init (GrlRegistry *registry,
+   sources     = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+   g_signal_connect (G_OBJECT (browser),
+-                    "service-added",
++                   "service-added",
+                     G_CALLBACK (grl_daap_service_added_cb),
+                     (gpointer) plugin);
+   g_signal_connect (G_OBJECT (browser),
+-                    "service-removed",
++                   "service-removed",
+                     G_CALLBACK (grl_daap_service_removed_cb),
+                     (gpointer) plugin);
+   if (!dmap_mdns_browser_start (browser, &error)) {
+     GRL_DEBUG ("error starting browser. code: %d message: %s",
+-               error->code,
+-               error->message);
++                error->code,
++                error->message);
+     g_error_free (error);
+     g_hash_table_unref (connections);
+@@ -138,12 +138,12 @@ grl_daap_plugin_init (GrlRegistry *registry,
+ GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                    GRL_MINOR,
+                    DAAP_PLUGIN_ID,
+-                   "DAAP",
+-                   "A plugin for browsing DAAP servers",
+-                   "W. Michael Petullo",
++                  "DAAP",
++                  "A plugin for browsing DAAP servers",
++                  "W. Michael Petullo",
+                    VERSION,
+-                   "LGPL",
+-                   "http://www.flyn.org",
++                  "LGPL",
++                  "http://www.flyn.org",
+                    grl_daap_plugin_init,
+                    NULL,
+                    NULL);
+@@ -166,10 +166,10 @@ grl_daap_source_new (DMAPMdnsBrowserService *service)
+   source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, service->name);
+   source = g_object_new (GRL_DAAP_SOURCE_TYPE,
+-                         "source-id",   source_id,
+-                         "source-name", service->name,
+-                         "source-desc", source_desc,
+-                         "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
++                        "source-id",   source_id,
++                        "source-name", service->name,
++                        "source-desc", source_desc,
++                        "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
+                          NULL);
+   source->priv->service = service;
+@@ -209,14 +209,14 @@ grl_daap_source_finalize (GObject *object)
+ static void
+ grl_daap_do_browse (ResultCbAndArgsAndDb *cb_and_db)
+ {
+-  grl_daap_db_browse(GRL_DAAP_DB(cb_and_db->db),
+-                     cb_and_db->cb.container,
+-                     cb_and_db->cb.source,
+-                     cb_and_db->cb.op_id,
+-                     cb_and_db->cb.skip,
+-                     cb_and_db->cb.count,
+-                     cb_and_db->cb.callback,
+-                     cb_and_db->cb.user_data);
++  grl_daap_db_browse (GRL_DAAP_DB(cb_and_db->db),
++                      cb_and_db->cb.container,
++                      cb_and_db->cb.source,
++                      cb_and_db->cb.op_id,
++                      cb_and_db->cb.skip,
++                      cb_and_db->cb.count,
++                      cb_and_db->cb.callback,
++                      cb_and_db->cb.user_data);
+   g_free (cb_and_db);
+ }
+@@ -224,13 +224,13 @@ grl_daap_do_browse (ResultCbAndArgsAndDb *cb_and_db)
+ static void
+ grl_daap_do_search (ResultCbAndArgsAndDb *cb_and_db)
+ {
+-  grl_daap_db_search(GRL_DAAP_DB(cb_and_db->db),
+-                     cb_and_db->cb.source,
+-                     cb_and_db->cb.op_id,
+-                     (GHRFunc) cb_and_db->cb.predicate,
+-                     cb_and_db->cb.predicate_data,
+-                     cb_and_db->cb.callback,
+-                     cb_and_db->cb.user_data);
++  grl_daap_db_search (GRL_DAAP_DB (cb_and_db->db),
++                      cb_and_db->cb.source,
++                      cb_and_db->cb.op_id,
++                      (GHRFunc) cb_and_db->cb.predicate,
++                      cb_and_db->cb.predicate_data,
++                      cb_and_db->cb.callback,
++                      cb_and_db->cb.user_data);
+   g_free (cb_and_db);
+ }
+diff --git a/src/dmap/grl-daap.h b/src/dmap/grl-daap.h
+index 4912b05..1119495 100644
+--- a/src/dmap/grl-daap.h
++++ b/src/dmap/grl-daap.h
+@@ -26,31 +26,30 @@
+ #include <grilo.h>
+-#define GRL_DAAP_SOURCE_TYPE                    \
+-  (grl_daap_source_get_type ())
+-
+-#define GRL_DAAP_SOURCE(obj)                          \
+-  (G_TYPE_CHECK_INSTANCE_CAST ((obj),                 \
+-                               GRL_DAAP_SOURCE_TYPE,  \
+-                               GrlDaapSource))
+-
+-#define GRL_IS_DAAP_SOURCE(obj)                       \
+-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj),                 \
+-                               GRL_DAAP_SOURCE_TYPE))
+-
+-#define GRL_DAAP_SOURCE_CLASS(klass)               \
+-  (G_TYPE_CHECK_CLASS_CAST((klass),                \
+-                           GRL_DAAP_SOURCE_TYPE,   \
+-                           GrlDaapSourceClass))
+-
+-#define GRL_IS_DAAP_SOURCE_CLASS(klass)            \
+-  (G_TYPE_CHECK_CLASS_TYPE((klass),                \
+-                           GRL_DAAP_SOURCE_TYPE))
+-
+-#define GRL_DAAP_SOURCE_GET_CLASS(obj)                \
+-  (G_TYPE_INSTANCE_GET_CLASS ((obj),                  \
+-                              GRL_DAAP_SOURCE_TYPE,   \
+-                              GrlDaapSourceClass))
++#define GRL_DAAP_SOURCE_TYPE (grl_daap_source_get_type ())
++
++#define GRL_DAAP_SOURCE(obj)                                                   \
++  (G_TYPE_CHECK_INSTANCE_CAST ((obj),                                          \
++                                GRL_DAAP_SOURCE_TYPE,                          \
++                                GrlDaapSource))
++
++#define GRL_IS_DAAP_SOURCE(obj)                                                \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((obj),                                          \
++                                GRL_DAAP_SOURCE_TYPE))
++
++#define GRL_DAAP_SOURCE_CLASS(klass)                                           \
++  (G_TYPE_CHECK_CLASS_CAST ((klass),                                           \
++                             GRL_DAAP_SOURCE_TYPE,                             \
++                             GrlDaapSourceClass))
++
++#define GRL_IS_DAAP_SOURCE_CLASS(klass)                                        \
++  (G_TYPE_CHECK_CLASS_TYPE ((klass),                                           \
++                             GRL_DAAP_SOURCE_TYPE))
++
++#define GRL_DAAP_SOURCE_GET_CLASS(obj)                                         \
++  (G_TYPE_INSTANCE_GET_CLASS ((obj),                                           \
++                               GRL_DAAP_SOURCE_TYPE,                           \
++                               GrlDaapSourceClass))
+ typedef struct _GrlDaapSourcePrivate GrlDaapSourcePrivate;
+ typedef struct _GrlDaapSource  GrlDaapSource;
+diff --git a/src/dmap/grl-dpap-db.c b/src/dmap/grl-dpap-db.c
+index 1f2d5ca..02ffd3a 100644
+--- a/src/dmap/grl-dpap-db.c
++++ b/src/dmap/grl-dpap-db.c
+@@ -80,8 +80,8 @@ grl_dpap_db_lookup_by_id (const DMAPDb *db, guint id)
+ static void
+ grl_dpap_db_foreach (const DMAPDb *db,
+-                        GHFunc func,
+-                        gpointer data)
++                     GHFunc func,
++                     gpointer data)
+ {
+   g_warning ("Not implemented");
+ }
+@@ -103,7 +103,7 @@ set_insert (GHashTable *category, const char *category_name, char *set_name, Grl
+   id = g_strdup_printf ("%s-%s", category_name, set_name);
+   container = grl_media_container_new ();
+-  grl_media_set_id    (container, id);
++  grl_media_set_id (container, id);
+   grl_media_set_title (container, set_name);
+   set = g_hash_table_lookup (category, container);
+@@ -142,35 +142,24 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   GrlMedia   *media;
+   g_object_get (record,
+-               "large-filesize",
+-               &largefilesize,
+-               "creation-date",
+-               &creationdate,
+-               "rating",
+-               &rating,
+-               "filename",
+-               &filename,
+-               "aspect-ratio",
+-               &aspectratio,
+-               "pixel-height",
+-               &height,
+-               "pixel-width",
+-               &width,
+-               "format",
+-               &format,
+-               "comments",
+-               &comments,
+-               "thumbnail",
+-               &thumbnail,
+-               "location",
+-               &url,
++               "large-filesize", &largefilesize,
++               "creation-date", &creationdate,
++               "rating", &rating,
++               "filename", &filename,
++               "aspect-ratio", &aspectratio,
++               "pixel-height", &height,
++               "pixel-width", &width,
++               "format", &format,
++               "comments", &comments,
++               "thumbnail", &thumbnail,
++               "location", &url,
+                 NULL);
+   id_s = g_strdup_printf ("%u", nextid);
+   media = grl_media_image_new ();
+-  grl_media_set_id           (media, id_s);
++  grl_media_set_id (media, id_s);
+   if (filename)
+     grl_media_set_title (media, filename);
+@@ -181,7 +170,7 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
+     grl_media_set_url (media, url);
+   }
+-  grl_media_set_width  (media, width);
++  grl_media_set_width (media, width);
+   grl_media_set_height (media, height);
+   set_insert (db->priv->photos,  PHOTOS_ID, "Unknown",  media);
+@@ -195,7 +184,7 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
+ static gboolean
+ same_media (GrlMedia *a, GrlMedia *b)
+ {
+-  return (strcmp (grl_media_get_id (a), grl_media_get_id (b)) == 0);
++  return strcmp (grl_media_get_id (a), grl_media_get_id (b)) == 0;
+ }
+ void
+@@ -230,7 +219,7 @@ grl_dpap_db_browse (GrlDPAPDb *db,
+   if (hash_table == NULL) {
+     GError *error = g_error_new (GRL_CORE_ERROR,
+                                  GRL_CORE_ERROR_BROWSE_FAILED,
+-                                 "Invalid container identifier %s",
++                                "Invalid container identifier %s",
+                                  container_id);
+     func (source, op_id, NULL, 0, user_data, error);
+     goto done;
+@@ -334,7 +323,7 @@ grl_dpap_db_init (GrlDPAPDb *db)
+   db->priv->photos_container  = grl_media_container_new ();
+-  grl_media_set_id    (GRL_MEDIA (db->priv->photos_container), PHOTOS_ID);
++  grl_media_set_id (GRL_MEDIA (db->priv->photos_container), PHOTOS_ID);
+   grl_media_set_title (GRL_MEDIA (db->priv->photos_container), PHOTOS_NAME);
+   db->priv->root   = g_hash_table_new_full (container_hash, container_equal, g_object_unref, (GDestroyNotify) g_hash_table_destroy);
+diff --git a/src/dmap/grl-dpap-db.h b/src/dmap/grl-dpap-db.h
+index 4c17d1a..d3abcba 100644
+--- a/src/dmap/grl-dpap-db.h
++++ b/src/dmap/grl-dpap-db.h
+@@ -26,34 +26,33 @@
+ G_BEGIN_DECLS
+-#define TYPE_GRL_DPAP_DB                     \
+-  (grl_dpap_db_get_type ())
++#define TYPE_GRL_DPAP_DB (grl_dpap_db_get_type ())
+-#define GRL_DPAP_DB(o)                             \
+-  (G_TYPE_CHECK_INSTANCE_CAST ((o),                   \
+-                               TYPE_GRL_DPAP_DB,   \
+-                               GrlDPAPDb))
++#define GRL_DPAP_DB(o)                                                         \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_GRL_DPAP_DB,                              \
++                                GrlDPAPDb))
+-#define GRL_DPAP_DB_CLASS(k)                 \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                 \
+-                           TYPE_GRL_DPAP_DB, \
+-                           GrlDPAPDbClass))
+-#define IS_GRL_DPAP_DB(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                    \
+-                              TYPE_GRL_DPAP_DB))
+-#define IS_GRL_DPAP_DB_CLASS(k)                       \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                          \
+-                           TYPE_GRL_DPAP_DB_CLASS))
+-
+-#define GRL_DPAP_DB_GET_CLASS(o)                \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                  \
+-                             TYPE_GRL_DPAP_DB,  \
++#define GRL_DPAP_DB_CLASS(k)                                                   \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_GRL_DPAP_DB,                                 \
+                              GrlDPAPDbClass))
++#define IS_GRL_DPAP_DB(o)                                                      \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
++                                TYPE_GRL_DPAP_DB))
++#define IS_GRL_DPAP_DB_CLASS(k)                                                \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                             TYPE_GRL_DPAP_DB_CLASS))
++
++#define GRL_DPAP_DB_GET_CLASS(o)                                               \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                               TYPE_GRL_DPAP_DB,                               \
++                               GrlDPAPDbClass))
+-#define GRL_DPAP_DB_GET_PRIVATE(o)                 \
+-  (G_TYPE_INSTANCE_GET_PRIVATE((o),                   \
+-                               TYPE_GRL_DPAP_DB,   \
+-                               GrlDPAPDbPrivate))
++#define GRL_DPAP_DB_GET_PRIVATE(o)                                             \
++  (G_TYPE_INSTANCE_GET_PRIVATE ((o),                                           \
++                                 TYPE_GRL_DPAP_DB,                             \
++                                 GrlDPAPDbPrivate))
+ typedef struct GrlDPAPDbPrivate GrlDPAPDbPrivate;
+diff --git a/src/dmap/grl-dpap-record-factory.c b/src/dmap/grl-dpap-record-factory.c
+index 8174338..3d0c87a 100644
+--- a/src/dmap/grl-dpap-record-factory.c
++++ b/src/dmap/grl-dpap-record-factory.c
+@@ -22,9 +22,9 @@
+ #include "grl-dpap-record.h"
+ DMAPRecord *
+-grl_dpap_record_factory_create  (DMAPRecordFactory *factory, gpointer user_data)
++grl_dpap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data)
+ {
+-      return DMAP_RECORD (grl_dpap_record_new ());
++  return DMAP_RECORD (grl_dpap_record_new ());
+ }
+ static void
+@@ -40,19 +40,19 @@ grl_dpap_record_factory_class_init (GrlDPAPRecordFactoryClass *klass)
+ static void
+ grl_dpap_record_factory_interface_init (gpointer iface, gpointer data)
+ {
+-      DMAPRecordFactoryIface *factory = iface;
++  DMAPRecordFactoryIface *factory = iface;
+-      g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
++  g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
+-      factory->create = grl_dpap_record_factory_create;
++  factory->create = grl_dpap_record_factory_create;
+ }
+ G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecordFactory, grl_dpap_record_factory, G_TYPE_OBJECT,
+-                       G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD_FACTORY,
+-                                              grl_dpap_record_factory_interface_init))
++                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD_FACTORY,
++                                                grl_dpap_record_factory_interface_init))
+ GrlDPAPRecordFactory *
+ grl_dpap_record_factory_new (void)
+ {
+-      return SIMPLE_DPAP_RECORD_FACTORY (g_object_new (TYPE_SIMPLE_DPAP_RECORD_FACTORY, NULL));
++  return SIMPLE_DPAP_RECORD_FACTORY (g_object_new (TYPE_SIMPLE_DPAP_RECORD_FACTORY, NULL));
+ }
+diff --git a/src/dmap/grl-dpap-record-factory.h b/src/dmap/grl-dpap-record-factory.h
+index c2106b1..3f4ca54 100644
+--- a/src/dmap/grl-dpap-record-factory.h
++++ b/src/dmap/grl-dpap-record-factory.h
+@@ -25,30 +25,29 @@
+ G_BEGIN_DECLS
+-#define TYPE_SIMPLE_DPAP_RECORD_FACTORY         \
+-  (grl_dpap_record_factory_get_type ())
++#define TYPE_SIMPLE_DPAP_RECORD_FACTORY (grl_dpap_record_factory_get_type ())
+-#define SIMPLE_DPAP_RECORD_FACTORY(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_CAST((o),                             \
+-                              TYPE_SIMPLE_DPAP_RECORD_FACTORY, \
+-                              GrlDPAPRecordFactory))
++#define SIMPLE_DPAP_RECORD_FACTORY(o)                                          \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_SIMPLE_DPAP_RECORD_FACTORY,               \
++                                GrlDPAPRecordFactory))
+-#define SIMPLE_DPAP_RECORD_FACTORY_CLASS(k)                 \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                             \
+-                           TYPE_SIMPLE_DPAP_RECORD_FACTORY, \
+-                           GrlDPAPRecordFactoryClass))
++#define SIMPLE_DPAP_RECORD_FACTORY_CLASS(k)                                    \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_SIMPLE_DPAP_RECORD_FACTORY,                  \
++                             GrlDPAPRecordFactoryClass))
+-#define IS_SIMPLE_DPAP_RECORD_FACTORY(o)                          \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                                \
++#define IS_SIMPLE_DPAP_RECORD_FACTORY(o)                                       \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
+                               TYPE_SIMPLE_DPAP_RECORD_FACTORY))
+-#define IS_SIMPLE_DPAP_RECORD_FACTORY_CLASS(k)                       \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                                      \
+-                           TYPE_SIMPLE_DPAP_RECORD_FACTORY_CLASS))
++#define IS_SIMPLE_DPAP_RECORD_FACTORY_CLASS(k)                                 \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                             TYPE_SIMPLE_DPAP_RECORD_FACTORY_CLASS))
+-#define SIMPLE_DPAP_RECORD_FACTORY_GET_CLASS(o)                \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                              \
+-                             TYPE_SIMPLE_DPAP_RECORD_FACTORY,  \
++#define SIMPLE_DPAP_RECORD_FACTORY_GET_CLASS(o)                                \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                             TYPE_SIMPLE_DPAP_RECORD_FACTORY,                  \
+                              GrlDPAPRecordFactoryClass))
+ typedef struct GrlDPAPRecordFactoryPrivate GrlDPAPRecordFactoryPrivate;
+@@ -61,11 +60,11 @@ typedef struct {
+   GObjectClass parent;
+ } GrlDPAPRecordFactoryClass;
+-GType                    grl_dpap_record_factory_get_type (void);
++GType grl_dpap_record_factory_get_type (void);
+-GrlDPAPRecordFactory *grl_dpap_record_factory_new      (void);
++GrlDPAPRecordFactory *grl_dpap_record_factory_new (void);
+-DMAPRecord              *grl_dpap_record_factory_create   (DMAPRecordFactory *factory, gpointer user_data);
++DMAPRecord *grl_dpap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data);
+ #endif /* __SIMPLE_DPAP_RECORD_FACTORY */
+diff --git a/src/dmap/grl-dpap-record.c b/src/dmap/grl-dpap-record.c
+index 6281417..14eb1de 100644
+--- a/src/dmap/grl-dpap-record.c
++++ b/src/dmap/grl-dpap-record.c
+@@ -61,9 +61,9 @@ G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecord, grl_dpap_record, G_TYPE_OBJECT,
+ static void
+ grl_dpap_record_set_property (GObject *object,
+-                                guint prop_id,
+-                                const GValue *value,
+-                                GParamSpec *pspec)
++                              guint prop_id,
++                              const GValue *value,
++                              GParamSpec *pspec)
+ {
+   GrlDPAPRecord *record = SIMPLE_DPAP_RECORD (object);
+@@ -116,9 +116,9 @@ grl_dpap_record_set_property (GObject *object,
+ static void
+ grl_dpap_record_get_property (GObject *object,
+-                                 guint prop_id,
+-                                 GValue *value,
+-                                 GParamSpec *pspec)
++                              guint prop_id,
++                              GValue *value,
++                              GParamSpec *pspec)
+ {
+   GrlDPAPRecord *record = SIMPLE_DPAP_RECORD (object);
+diff --git a/src/dmap/grl-dpap-record.h b/src/dmap/grl-dpap-record.h
+index 4441740..203e57e 100644
+--- a/src/dmap/grl-dpap-record.h
++++ b/src/dmap/grl-dpap-record.h
+@@ -25,36 +25,35 @@
+ G_BEGIN_DECLS
+-#define TYPE_SIMPLE_DPAP_RECORD                 \
+-  (grl_dpap_record_get_type ())
+-
+-#define SIMPLE_DPAP_RECORD(o)                            \
+-  (G_TYPE_CHECK_INSTANCE_CAST((o),                       \
+-                              TYPE_SIMPLE_DPAP_RECORD,   \
+-                              GrlDPAPRecord))
+-
+-#define SIMPLE_DPAP_RECORD_CLASS(k)                   \
+-  (G_TYPE_CHECK_CLASS_CAST((k),                       \
+-                           TYPE_SIMPLE_DPAP_RECORD,   \
+-                           GrlDPAPRecordClass))
+-
+-#define IS_SIMPLE_DPAP_RECORD(o)                         \
+-  (G_TYPE_CHECK_INSTANCE_TYPE((o),                       \
+-                              TYPE_SIMPLE_DPAP_RECORD))
+-
+-#define IS_SIMPLE_DPAP_RECORD_CLASS(k)                      \
+-  (G_TYPE_CHECK_CLASS_TYPE((k),                             \
+-                           TYPE_SIMPLE_DPAP_RECORD_CLASS))
+-
+-#define SIMPLE_DPAP_RECORD_GET_CLASS(o)               \
+-  (G_TYPE_INSTANCE_GET_CLASS((o),                     \
+-                             TYPE_SIMPLE_DPAP_RECORD, \
++#define TYPE_SIMPLE_DPAP_RECORD (grl_dpap_record_get_type ())
++
++#define SIMPLE_DPAP_RECORD(o)                                                  \
++  (G_TYPE_CHECK_INSTANCE_CAST ((o),                                            \
++                                TYPE_SIMPLE_DPAP_RECORD,                       \
++                                GrlDPAPRecord))
++
++#define SIMPLE_DPAP_RECORD_CLASS(k)                                            \
++  (G_TYPE_CHECK_CLASS_CAST ((k),                                               \
++                             TYPE_SIMPLE_DPAP_RECORD,                          \
+                              GrlDPAPRecordClass))
+-#define SIMPLE_DPAP_RECORD_GET_PRIVATE(o)                \
+-  (G_TYPE_INSTANCE_GET_PRIVATE((o),                      \
+-                               TYPE_SIMPLE_DPAP_RECORD,  \
+-                               GrlDPAPRecordPrivate))
++#define IS_SIMPLE_DPAP_RECORD(o)                                               \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((o),                                            \
++                                TYPE_SIMPLE_DPAP_RECORD))
++
++#define IS_SIMPLE_DPAP_RECORD_CLASS(k)                                         \
++  (G_TYPE_CHECK_CLASS_TYPE ((k),                                               \
++                            TYPE_SIMPLE_DPAP_RECORD_CLASS))
++
++#define SIMPLE_DPAP_RECORD_GET_CLASS(o)                                        \
++  (G_TYPE_INSTANCE_GET_CLASS ((o),                                             \
++                              TYPE_SIMPLE_DPAP_RECORD,                         \
++                              GrlDPAPRecordClass))
++
++#define SIMPLE_DPAP_RECORD_GET_PRIVATE(o)                                      \
++  (G_TYPE_INSTANCE_GET_PRIVATE ((o),                                           \
++                                TYPE_SIMPLE_DPAP_RECORD,                       \
++                                GrlDPAPRecordPrivate))
+ typedef struct GrlDPAPRecordPrivate GrlDPAPRecordPrivate;
+@@ -69,9 +68,9 @@ typedef struct {
+ GType grl_dpap_record_get_type (void);
+-GrlDPAPRecord    *grl_dpap_record_new    (void);
+-GInputStream     *grl_dpap_record_read   (DPAPRecord *record, GError **error);
+-gint              grl_dpap_record_get_id (DPAPRecord *record);
++GrlDPAPRecord *grl_dpap_record_new (void);
++GInputStream *grl_dpap_record_read (DPAPRecord *record, GError **error);
++gint grl_dpap_record_get_id (DPAPRecord *record);
+ #endif /* __SIMPLE_DPAP_RECORD */
+diff --git a/src/dmap/grl-dpap.c b/src/dmap/grl-dpap.c
+index 744de80..9829ec2 100644
+--- a/src/dmap/grl-dpap.c
++++ b/src/dmap/grl-dpap.c
+@@ -42,7 +42,7 @@
+ /* --------- Logging  -------- */
+ #define GRL_LOG_DOMAIN_DEFAULT dmap_log_domain
+-GRL_LOG_DOMAIN_STATIC(dmap_log_domain);
++GRL_LOG_DOMAIN_STATIC (dmap_log_domain);
+ /* --- Plugin information --- */
+@@ -51,10 +51,10 @@ GRL_LOG_DOMAIN_STATIC(dmap_log_domain);
+ /* --- Grilo DPAP Private --- */
+-#define GRL_DPAP_SOURCE_GET_PRIVATE(object)           \
+-  (G_TYPE_INSTANCE_GET_PRIVATE((object),              \
+-                               GRL_DPAP_SOURCE_TYPE,  \
+-                               GrlDpapSourcePrivate))
++#define GRL_DPAP_SOURCE_GET_PRIVATE(object)            \
++  (G_TYPE_INSTANCE_GET_PRIVATE ((object),              \
++                                 GRL_DPAP_SOURCE_TYPE, \
++                                 GrlDpapSourcePrivate))
+ struct _GrlDpapSourcePrivate {
+   DMAPMdnsBrowserService *service;
+@@ -116,19 +116,19 @@ grl_dpap_plugin_init (GrlRegistry *registry,
+   sources     = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+   g_signal_connect (G_OBJECT (browser),
+-                    "service-added",
++                   "service-added",
+                     G_CALLBACK (grl_dpap_service_added_cb),
+                     (gpointer) plugin);
+   g_signal_connect (G_OBJECT (browser),
+-                    "service-removed",
++                   "service-removed",
+                     G_CALLBACK (grl_dpap_service_removed_cb),
+                     (gpointer) plugin);
+   if (!dmap_mdns_browser_start (browser, &error)) {
+     GRL_DEBUG ("error starting browser. code: %d message: %s",
+-               error->code,
+-               error->message);
++                error->code,
++                error->message);
+     g_error_free (error);
+     g_hash_table_unref (connections);
+@@ -143,12 +143,12 @@ grl_dpap_plugin_init (GrlRegistry *registry,
+ GRL_PLUGIN_DEFINE (GRL_MAJOR,
+                    GRL_MINOR,
+                    DPAP_PLUGIN_ID,
+-                   "DPAP",
+-                   "A plugin for browsing DPAP servers",
+-                   "W. Michael Petullo",
++                  "DPAP",
++                  "A plugin for browsing DPAP servers",
++                  "W. Michael Petullo",
+                    VERSION,
+-                   "LGPL",
+-                   "http://www.flyn.org",
++                  "LGPL",
++                  "http://www.flyn.org",
+                    grl_dpap_plugin_init,
+                    NULL,
+                    NULL);
+@@ -171,10 +171,10 @@ grl_dpap_source_new (DMAPMdnsBrowserService *service)
+   source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, service->name);
+   source = g_object_new (GRL_DPAP_SOURCE_TYPE,
+-                         "source-id",   source_id,
+-                         "source-name", service->name,
+-                         "source-desc", source_desc,
+-                         "supported-media", GRL_SUPPORTED_MEDIA_IMAGE,
++                        "source-id",   source_id,
++                        "source-name", service->name,
++                        "source-desc", source_desc,
++                        "supported-media", GRL_SUPPORTED_MEDIA_IMAGE,
+                          NULL);
+   source->priv->service = service;
+@@ -214,14 +214,14 @@ grl_dpap_source_finalize (GObject *object)
+ static void
+ grl_dpap_do_browse (ResultCbAndArgsAndDb *cb_and_db)
+ {
+-  grl_dpap_db_browse(GRL_DPAP_DB(cb_and_db->db),
+-                     cb_and_db->cb.container,
+-                     cb_and_db->cb.source,
+-                     cb_and_db->cb.op_id,
+-                     cb_and_db->cb.skip,
+-                     cb_and_db->cb.count,
+-                     cb_and_db->cb.callback,
+-                     cb_and_db->cb.user_data);
++  grl_dpap_db_browse (GRL_DPAP_DB (cb_and_db->db),
++                      cb_and_db->cb.container,
++                      cb_and_db->cb.source,
++                      cb_and_db->cb.op_id,
++                      cb_and_db->cb.skip,
++                      cb_and_db->cb.count,
++                      cb_and_db->cb.callback,
++                      cb_and_db->cb.user_data);
+   g_free (cb_and_db);
+ }
+@@ -229,13 +229,13 @@ grl_dpap_do_browse (ResultCbAndArgsAndDb *cb_and_db)
+ static void
+ grl_dpap_do_search (ResultCbAndArgsAndDb *cb_and_db)
+ {
+-  grl_dpap_db_search(GRL_DPAP_DB(cb_and_db->db),
+-                     cb_and_db->cb.source,
+-                     cb_and_db->cb.op_id,
+-                     (GHRFunc) cb_and_db->cb.predicate,
+-                     cb_and_db->cb.predicate_data,
+-                     cb_and_db->cb.callback,
+-                     cb_and_db->cb.user_data);
++  grl_dpap_db_search (GRL_DPAP_DB (cb_and_db->db),
++                      cb_and_db->cb.source,
++                      cb_and_db->cb.op_id,
++                      (GHRFunc) cb_and_db->cb.predicate,
++                      cb_and_db->cb.predicate_data,
++                      cb_and_db->cb.callback,
++                      cb_and_db->cb.user_data);
+   g_free (cb_and_db);
+ }
+diff --git a/src/dmap/grl-dpap.h b/src/dmap/grl-dpap.h
+index 1f36cfc..ee596b5 100644
+--- a/src/dmap/grl-dpap.h
++++ b/src/dmap/grl-dpap.h
+@@ -26,31 +26,30 @@
+ #include <grilo.h>
+-#define GRL_DPAP_SOURCE_TYPE                    \
+-  (grl_dpap_source_get_type ())
++#define GRL_DPAP_SOURCE_TYPE (grl_dpap_source_get_type ())
+-#define GRL_DPAP_SOURCE(obj)                          \
+-  (G_TYPE_CHECK_INSTANCE_CAST ((obj),                 \
+-                               GRL_DPAP_SOURCE_TYPE,  \
+-                               GrlDpapSource))
++#define GRL_DPAP_SOURCE(obj)                                                   \
++  (G_TYPE_CHECK_INSTANCE_CAST ((obj),                                          \
++                                GRL_DPAP_SOURCE_TYPE,                          \
++                                GrlDpapSource))
+-#define GRL_IS_DPAP_SOURCE(obj)                       \
+-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj),                 \
+-                               GRL_DPAP_SOURCE_TYPE))
++#define GRL_IS_DPAP_SOURCE(obj)                                                \
++  (G_TYPE_CHECK_INSTANCE_TYPE ((obj),                                          \
++                                GRL_DPAP_SOURCE_TYPE))
+-#define GRL_DPAP_SOURCE_CLASS(klass)               \
+-  (G_TYPE_CHECK_CLASS_CAST((klass),                \
+-                           GRL_DPAP_SOURCE_TYPE,   \
+-                           GrlDpapSourceClass))
++#define GRL_DPAP_SOURCE_CLASS(klass)                                           \
++  (G_TYPE_CHECK_CLASS_CAST ((klass),                                           \
++                             GRL_DPAP_SOURCE_TYPE,                             \
++                             GrlDpapSourceClass))
+-#define GRL_IS_DPAP_SOURCE_CLASS(klass)            \
+-  (G_TYPE_CHECK_CLASS_TYPE((klass),                \
+-                           GRL_DPAP_SOURCE_TYPE))
++#define GRL_IS_DPAP_SOURCE_CLASS(klass)                                        \
++  (G_TYPE_CHECK_CLASS_TYPE ((klass),                                           \
++                             GRL_DPAP_SOURCE_TYPE))
+-#define GRL_DPAP_SOURCE_GET_CLASS(obj)                \
+-  (G_TYPE_INSTANCE_GET_CLASS ((obj),                  \
+-                              GRL_DPAP_SOURCE_TYPE,   \
+-                              GrlDpapSourceClass))
++#define GRL_DPAP_SOURCE_GET_CLASS(obj)                                         \
++  (G_TYPE_INSTANCE_GET_CLASS ((obj),                                           \
++                               GRL_DPAP_SOURCE_TYPE,                           \
++                               GrlDpapSourceClass))
+ typedef struct _GrlDpapSourcePrivate GrlDpapSourcePrivate;
+ typedef struct _GrlDpapSource  GrlDpapSource;
diff --git a/multimedia/grilo-plugins/patches/020-backport-add-missing-calls-to-free.patch b/multimedia/grilo-plugins/patches/020-backport-add-missing-calls-to-free.patch
new file mode 100644 (file)
index 0000000..9b4cf0e
--- /dev/null
@@ -0,0 +1,33 @@
+diff --git a/src/dmap/grl-daap-db.c b/src/dmap/grl-daap-db.c
+index c931d91..f460113 100644
+--- a/src/dmap/grl-daap-db.c
++++ b/src/dmap/grl-daap-db.c
+@@ -232,6 +232,11 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   g_free (id_s);
+   g_object_unref (media);
++  g_free(album);
++  g_free(artist);
++  g_free(genre);
++  g_free(title);
++  g_free(url);
+   return --nextid;
+ }
+diff --git a/src/dmap/grl-dpap-db.c b/src/dmap/grl-dpap-db.c
+index 02ffd3a..8be278b 100644
+--- a/src/dmap/grl-dpap-db.c
++++ b/src/dmap/grl-dpap-db.c
+@@ -177,6 +177,12 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   g_free (id_s);
+   g_object_unref (media);
++  g_free(filename);
++  g_free(aspectratio);
++  g_free(format);
++  g_free(comments);
++  g_free(url);
++  g_byte_array_unref(thumbnail);
+   return --nextid;
+ }
diff --git a/multimedia/grilo-plugins/patches/030-backport-libdmapsharing4.patch b/multimedia/grilo-plugins/patches/030-backport-libdmapsharing4.patch
new file mode 100644 (file)
index 0000000..5eb2d1d
--- /dev/null
@@ -0,0 +1,1490 @@
+diff --git a/meson.build b/meson.build
+index 33a6f40..8a590b9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -62,7 +62,12 @@ gstreamer_dep = dependency('gstreamer-1.0', required: false)
+ gthread_dep = dependency('gthread-2.0', required: false)
+ json_glib_dep = dependency('json-glib-1.0', required: false)
+ libarchive_dep = dependency('libarchive', required: false)
+-libdmapsharing_dep = dependency('libdmapsharing-3.0', version: '>= 2.9.12', required: false)
++libdmapsharing4_dep = dependency('libdmapsharing-4.0', version: '>= 3.9.4', required: false)
++if libdmapsharing4_dep.found()
++    libdmapsharing_dep = libdmapsharing4_dep
++else
++    libdmapsharing_dep = dependency('libdmapsharing-3.0', version: '>= 2.9.12', required: false)
++endif
+ libgdata_dep = dependency('libgdata', version: '>= 0.9.1', required: false)
+ libmediaart_dep = dependency('libmediaart-2.0', required: false)
+ libsoup_dep = dependency('libsoup-2.4', required: false)
+diff --git a/src/dmap/grl-common.c b/src/dmap/grl-common.c
+index 6a1da5e..74a965f 100644
+--- a/src/dmap/grl-common.c
++++ b/src/dmap/grl-common.c
+@@ -33,13 +33,27 @@
+ #include <stdlib.h>
+ #include <libdmapsharing/dmap.h>
++#include "grl-dmap-compat.h"
+ #include "grl-common.h"
+ gchar *
+-grl_dmap_build_url (DMAPMdnsBrowserService *service)
++grl_dmap_build_url (DmapMdnsService *service)
+ {
+-  return g_strdup_printf ("%s://%s:%u",
+-                           service->service_name,
+-                           service->host,
+-                           service->port);
++  gchar *url = NULL;
++  gchar *service_name, *host;
++  guint port;
++
++  service_name = grl_dmap_service_get_service_name (service);
++  host         = grl_dmap_service_get_host (service);
++  port         = grl_dmap_service_get_port (service);
++
++  url = g_strdup_printf ("%s://%s:%u",
++                          service_name,
++                          host,
++                          port);
++
++  g_free (service_name);
++  g_free (host);
++
++  return url;
+ }
+diff --git a/src/dmap/grl-common.h b/src/dmap/grl-common.h
+index e9c8327..d61df63 100644
+--- a/src/dmap/grl-common.h
++++ b/src/dmap/grl-common.h
+@@ -24,9 +24,6 @@
+ #ifndef _GRL_COMMON_H_
+ #define _GRL_COMMON_H_
+-#include <grilo.h>
+-#include <libdmapsharing/dmap.h>
+-
+ typedef struct {
+   GrlSourceResultCb callback;
+   GrlSource *source;
+@@ -41,9 +38,9 @@ typedef struct {
+ typedef struct {
+   ResultCbAndArgs cb;
+-  DMAPDb *db;
++  DmapDb *db;
+ } ResultCbAndArgsAndDb;
+-gchar *grl_dmap_build_url (DMAPMdnsBrowserService *service);
++gchar *grl_dmap_build_url (DmapMdnsService *service);
+ #endif /* _GRL_COMMON_H_ */
+diff --git a/src/dmap/grl-daap-compat.h b/src/dmap/grl-daap-compat.h
+new file mode 100644
+index 0000000..da9025f
+--- /dev/null
++++ b/src/dmap/grl-daap-compat.h
+@@ -0,0 +1,76 @@
++/*
++ * Copyright (C) 2019 W. Michael Petullo
++ * Copyright (C) 2019 Igalia S.L.
++ *
++ * Contact: W. Michael Petullo <mike@flyn.org>
++ *
++ * This library 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; version 2.1 of
++ * the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ */
++
++#ifndef _GRL_DAAP_COMPAT_H_
++#define _GRL_DAAP_COMPAT_H_
++
++#include "grl-dmap-compat.h"
++
++#ifdef LIBDMAPSHARING_COMPAT
++
++DMAPRecord *grl_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data, GError **error);
++guint grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record, GError **error);
++
++/* Building against libdmapsharing 3 API. */
++
++#define dmap_av_connection_new daap_connection_new
++#define DmapAvRecord DAAPRecord
++#define DmapAvRecordInterface DAAPRecordIface
++#define DMAP_AV_RECORD DAAP_RECORD
++#define DMAP_TYPE_AV_RECORD DAAP_TYPE_RECORD
++#define IS_DMAP_AV_RECORD IS_DAAP_RECORD
++
++static inline DmapRecord *
++grl_daap_record_factory_create_compat (DmapRecordFactory *factory, gpointer user_data)
++{
++  return grl_daap_record_factory_create (factory, user_data, NULL);
++}
++
++static inline guint
++grl_daap_db_add_compat (DmapDb *_db, DmapRecord *_record)
++{
++  return grl_daap_db_add (_db, _record, NULL);
++}
++
++#else
++
++/* Building against libdmapsharing 4 API. */
++
++DmapRecord *grl_daap_record_factory_create (DmapRecordFactory *factory, gpointer user_data, GError **error);
++guint grl_daap_db_add (DmapDb *_db, DmapRecord *_record, GError **error);
++
++static inline DmapRecord *
++grl_daap_record_factory_create_compat (DmapRecordFactory *factory, gpointer user_data, GError **error)
++{
++  return grl_daap_record_factory_create (factory, user_data, error);
++}
++
++static inline guint
++grl_daap_db_add_compat (DmapDb *_db, DmapRecord *_record, GError **error)
++{
++  return grl_daap_db_add (_db, _record, error);
++}
++
++#endif
++
++#endif /* _GRL_DAAP_COMPAT_H_ */
+diff --git a/src/dmap/grl-daap-db.c b/src/dmap/grl-daap-db.c
+index f460113..315370e 100644
+--- a/src/dmap/grl-daap-db.c
++++ b/src/dmap/grl-daap-db.c
+@@ -54,8 +54,12 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <glib.h>
++#include <grilo.h>
+ #include <string.h>
++#include <libdmapsharing/dmap.h>
++#include "grl-daap-compat.h"
++#include "grl-common.h"
+ #include "grl-daap-db.h"
+ #define ALBUMS_ID    "albums"
+@@ -103,23 +107,23 @@ grl_daap_db_new (void)
+   return db;
+ }
+-static DMAPRecord *
+-grl_daap_db_lookup_by_id (const DMAPDb *db, guint id)
++static DmapRecord *
++grl_daap_db_lookup_by_id (const DmapDb *db, guint id)
+ {
+   g_error ("Not implemented");
+   return NULL;
+ }
+ static void
+-grl_daap_db_foreach (const DMAPDb *db,
+-                     GHFunc func,
++grl_daap_db_foreach (const DmapDb *db,
++                     DmapIdRecordFunc func,
+                      gpointer data)
+ {
+   g_error ("Not implemented");
+ }
+ static gint64
+-grl_daap_db_count (const DMAPDb *db)
++grl_daap_db_count (const DmapDb *db)
+ {
+   g_error ("Not implemented");
+   return 0;
+@@ -150,14 +154,14 @@ set_insert (GHashTable *category, const char *category_name, char *set_name, Grl
+   g_object_unref (container);
+ }
+-static guint
+-grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
++guint
++grl_daap_db_add (DmapDb *_db, DmapRecord *_record, GError **error)
+ {
+   g_assert (IS_GRL_DAAP_DB (_db));
+-  g_assert (IS_DAAP_RECORD (_record));
++  g_assert (IS_DMAP_AV_RECORD (_record));
+   GrlDAAPDb *db = GRL_DAAP_DB (_db);
+-  DAAPRecord *record = DAAP_RECORD (_record);
++  DmapAvRecord *record = DMAP_AV_RECORD (_record);
+   gint   duration = 0;
+   gint32  bitrate = 0,
+@@ -232,11 +236,11 @@ grl_daap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   g_free (id_s);
+   g_object_unref (media);
+-  g_free(album);
+-  g_free(artist);
+-  g_free(genre);
+-  g_free(title);
+-  g_free(url);
++  g_free (album);
++  g_free (artist);
++  g_free (genre);
++  g_free (title);
++  g_free (url);
+   return --nextid;
+ }
+@@ -359,11 +363,11 @@ grl_daap_db_search (GrlDAAPDb *db,
+ static void
+ dmap_db_interface_init (gpointer iface, gpointer data)
+ {
+-  DMAPDbIface *daap_db = iface;
++  DmapDbInterface *daap_db = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (daap_db) == DMAP_TYPE_DB);
+-  daap_db->add = grl_daap_db_add;
++  daap_db->add = grl_daap_db_add_compat;
+   daap_db->lookup_by_id = grl_daap_db_lookup_by_id;
+   daap_db->foreach = grl_daap_db_foreach;
+   daap_db->count = grl_daap_db_count;
+diff --git a/src/dmap/grl-daap-db.h b/src/dmap/grl-daap-db.h
+index 2548c50..1a37a3a 100644
+--- a/src/dmap/grl-daap-db.h
++++ b/src/dmap/grl-daap-db.h
+@@ -24,6 +24,8 @@
+ #include <libdmapsharing/dmap.h>
+ #include <grilo.h>
++#include "grl-daap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_GRL_DAAP_DB (grl_daap_db_get_type ())
+diff --git a/src/dmap/grl-daap-record-factory.c b/src/dmap/grl-daap-record-factory.c
+index 648fd85..d0c590f 100644
+--- a/src/dmap/grl-daap-record-factory.c
++++ b/src/dmap/grl-daap-record-factory.c
+@@ -1,5 +1,5 @@
+ /*
+- * DAAPRecord factory class
++ * DmapAvRecord factory class
+  *
+  * Copyright (C) 2008 W. Michael Petullo <mike@flyn.org>
+  *
+@@ -18,11 +18,16 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
++#include <grilo.h>
++#include <libdmapsharing/dmap.h>
++
++#include "grl-daap-compat.h"
++#include "grl-common.h"
+ #include "grl-daap-record-factory.h"
+ #include "grl-daap-record.h"
+-DMAPRecord *
+-grl_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data)
++DmapRecord *
++grl_daap_record_factory_create (DmapRecordFactory *factory, gpointer user_data, GError **error)
+ {
+   return DMAP_RECORD (grl_daap_record_new ());
+ }
+@@ -40,11 +45,11 @@ grl_daap_record_factory_class_init (GrlDAAPRecordFactoryClass *klass)
+ static void
+ grl_daap_record_factory_interface_init (gpointer iface, gpointer data)
+ {
+-  DMAPRecordFactoryIface *factory = iface;
++  DmapRecordFactoryInterface *factory = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
+-  factory->create = grl_daap_record_factory_create;
++  factory->create = grl_daap_record_factory_create_compat;
+ }
+ G_DEFINE_TYPE_WITH_CODE (GrlDAAPRecordFactory, grl_daap_record_factory, G_TYPE_OBJECT,
+diff --git a/src/dmap/grl-daap-record-factory.h b/src/dmap/grl-daap-record-factory.h
+index 45aa69a..f114bad 100644
+--- a/src/dmap/grl-daap-record-factory.h
++++ b/src/dmap/grl-daap-record-factory.h
+@@ -23,6 +23,8 @@
+ #include <libdmapsharing/dmap.h>
++#include "grl-daap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_SIMPLE_DAAP_RECORD_FACTORY (grl_daap_record_factory_get_type ())
+@@ -64,8 +66,6 @@ GType grl_daap_record_factory_get_type (void);
+ GrlDAAPRecordFactory *grl_daap_record_factory_new (void);
+-DMAPRecord *grl_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data);
+-
+ #endif /* __SIMPLE_DAAP_RECORD_FACTORY */
+ G_END_DECLS
+diff --git a/src/dmap/grl-daap-record.c b/src/dmap/grl-daap-record.c
+index 82bf2f9..4fa0c54 100644
+--- a/src/dmap/grl-daap-record.c
++++ b/src/dmap/grl-daap-record.c
+@@ -20,6 +20,11 @@
+  *
+  */
++#include <grilo.h>
++#include <libdmapsharing/dmap.h>
++
++#include "grl-daap-compat.h"
++#include "grl-common.h"
+ #include "grl-daap-record.h"
+ struct GrlDAAPRecordPrivate {
+@@ -226,7 +231,7 @@ grl_daap_record_new (void)
+ }
+ GInputStream *
+-grl_daap_record_read (DAAPRecord *record, GError **error)
++grl_daap_record_read (DmapAvRecord *record, GError **error)
+ {
+   GFile *file;
+   GInputStream *stream;
+@@ -280,9 +285,9 @@ grl_daap_record_class_init (GrlDAAPRecordClass *klass)
+ static void
+ grl_daap_record_daap_iface_init (gpointer iface, gpointer data)
+ {
+-  DAAPRecordIface *daap_record = iface;
++  DmapAvRecordInterface *daap_record = iface;
+-  g_assert (G_TYPE_FROM_INTERFACE (daap_record) == DAAP_TYPE_RECORD);
++  g_assert (G_TYPE_FROM_INTERFACE (daap_record) == DMAP_TYPE_AV_RECORD);
+   daap_record->read = grl_daap_record_read;
+ }
+@@ -290,7 +295,7 @@ grl_daap_record_daap_iface_init (gpointer iface, gpointer data)
+ static void
+ grl_daap_record_dmap_iface_init (gpointer iface, gpointer data)
+ {
+-  DMAPRecordIface *dmap_record = iface;
++  DmapRecordInterface *dmap_record = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (dmap_record) == DMAP_TYPE_RECORD);
+ }
+@@ -298,7 +303,7 @@ grl_daap_record_dmap_iface_init (gpointer iface, gpointer data)
+ G_DEFINE_TYPE_WITH_CODE (GrlDAAPRecord, grl_daap_record, G_TYPE_OBJECT,
+                          G_ADD_PRIVATE (GrlDAAPRecord)
+-                         G_IMPLEMENT_INTERFACE (DAAP_TYPE_RECORD, grl_daap_record_daap_iface_init)
++                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_AV_RECORD, grl_daap_record_daap_iface_init)
+                          G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD, grl_daap_record_dmap_iface_init))
+ static void
+diff --git a/src/dmap/grl-daap-record.h b/src/dmap/grl-daap-record.h
+index 7aae82d..42782b1 100644
+--- a/src/dmap/grl-daap-record.h
++++ b/src/dmap/grl-daap-record.h
+@@ -23,6 +23,8 @@
+ #include <libdmapsharing/dmap.h>
++#include "grl-daap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_SIMPLE_DAAP_RECORD (grl_daap_record_get_type ())
+@@ -69,8 +71,8 @@ typedef struct {
+ GType grl_daap_record_get_type (void);
+ GrlDAAPRecord *grl_daap_record_new (void);
+-GInputStream *grl_daap_record_read (DAAPRecord *record, GError **error);
+-gint grl_daap_record_get_id (DAAPRecord *record);
++GInputStream *grl_daap_record_read (DmapAvRecord *record, GError **error);
++gint grl_daap_record_get_id (DmapAvRecord *record);
+ #endif /* __SIMPLE_DAAP_RECORD */
+diff --git a/src/dmap/grl-daap.c b/src/dmap/grl-daap.c
+index f3c4115..962f2b8 100644
+--- a/src/dmap/grl-daap.c
++++ b/src/dmap/grl-daap.c
+@@ -33,6 +33,7 @@
+ #include <stdlib.h>
+ #include <libdmapsharing/dmap.h>
++#include "grl-daap-compat.h"
+ #include "grl-common.h"
+ #include "grl-daap.h"
+ #include "grl-daap-db.h"
+@@ -52,12 +53,12 @@ GRL_LOG_DOMAIN_STATIC (daap_log_domain);
+ /* --- Grilo DAAP Private --- */
+ struct _GrlDaapSourcePrivate {
+-  DMAPMdnsBrowserService *service;
++  DmapMdnsService *service;
+ };
+ /* --- Data types --- */
+-static GrlDaapSource *grl_daap_source_new (DMAPMdnsBrowserService *service);
++static GrlDaapSource *grl_daap_source_new (DmapMdnsService *service);
+ static void grl_daap_source_finalize (GObject *object);
+@@ -74,16 +75,16 @@ static void grl_daap_source_search (GrlSource *source,
+                                     GrlSourceSearchSpec *ss);
+-static void grl_daap_service_added_cb (DMAPMdnsBrowser *browser,
+-                                       DMAPMdnsBrowserService *service,
++static void grl_daap_service_added_cb (DmapMdnsBrowser *browser,
++                                       DmapMdnsService *service,
+                                        GrlPlugin *plugin);
+-static void grl_daap_service_removed_cb (DMAPMdnsBrowser *browser,
++static void grl_daap_service_removed_cb (DmapMdnsBrowser *browser,
+                                          const gchar *service_name,
+                                          GrlPlugin *plugin);
+ /* ===================== Globals  ======================= */
+-static DMAPMdnsBrowser *browser;
++static DmapMdnsBrowser *browser;
+ /* Maps URIs to DBs */
+ static GHashTable *connections;
+ /* Map DAAP services to Grilo media sources */
+@@ -106,7 +107,7 @@ grl_daap_plugin_init (GrlRegistry *registry,
+   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+-  browser     = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP);
++  browser     = dmap_mdns_browser_new (DMAP_MDNS_SERVICE_TYPE_DAAP);
+   connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+   sources     = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+@@ -153,8 +154,10 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
+ G_DEFINE_TYPE_WITH_PRIVATE (GrlDaapSource, grl_daap_source, GRL_TYPE_SOURCE)
+ static GrlDaapSource *
+-grl_daap_source_new (DMAPMdnsBrowserService *service)
++grl_daap_source_new (DmapMdnsService *service)
+ {
++  gchar *name;
++  gchar *service_name;
+   gchar *source_desc;
+   gchar *source_id;
+@@ -162,12 +165,15 @@ grl_daap_source_new (DMAPMdnsBrowserService *service)
+   GRL_DEBUG ("grl_daap_source_new");
+-  source_desc = g_strdup_printf (SOURCE_DESC_TEMPLATE, service->name);
+-  source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, service->name);
++  name = grl_dmap_service_get_name (service);
++  service_name = grl_dmap_service_get_service_name (service);
++
++  source_desc = g_strdup_printf (SOURCE_DESC_TEMPLATE, name);
++  source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, name);
+   source = g_object_new (GRL_DAAP_SOURCE_TYPE,
+                         "source-id",   source_id,
+-                        "source-name", service->name,
++                        "source-name", service_name,
+                         "source-desc", source_desc,
+                         "supported-media", GRL_SUPPORTED_MEDIA_AUDIO,
+                          NULL);
+@@ -176,6 +182,8 @@ grl_daap_source_new (DMAPMdnsBrowserService *service)
+   g_free (source_desc);
+   g_free (source_id);
++  g_free (service_name);
++  g_free (name);
+   return source;
+ }
+@@ -209,7 +217,7 @@ grl_daap_source_finalize (GObject *object)
+ static void
+ grl_daap_do_browse (ResultCbAndArgsAndDb *cb_and_db)
+ {
+-  grl_daap_db_browse (GRL_DAAP_DB(cb_and_db->db),
++  grl_daap_db_browse (GRL_DAAP_DB (cb_and_db->db),
+                       cb_and_db->cb.container,
+                       cb_and_db->cb.source,
+                       cb_and_db->cb.op_id,
+@@ -236,7 +244,7 @@ grl_daap_do_search (ResultCbAndArgsAndDb *cb_and_db)
+ }
+ static void
+-browse_connected_cb (DMAPConnection       *connection,
++browse_connected_cb (DmapConnection       *connection,
+                      gboolean              result,
+                      const char           *reason,
+                      ResultCbAndArgsAndDb *cb_and_db)
+@@ -261,7 +269,7 @@ browse_connected_cb (DMAPConnection       *connection,
+ }
+ static void
+-search_connected_cb (DMAPConnection       *connection,
++search_connected_cb (DmapConnection       *connection,
+                      gboolean              result,
+                      const char           *reason,
+                      ResultCbAndArgsAndDb *cb_and_db)
+@@ -286,8 +294,8 @@ search_connected_cb (DMAPConnection       *connection,
+ }
+ static void
+-grl_daap_service_added_cb (DMAPMdnsBrowser *browser,
+-                           DMAPMdnsBrowserService *service,
++grl_daap_service_added_cb (DmapMdnsBrowser *browser,
++                           DmapMdnsService *service,
+                            GrlPlugin *plugin)
+ {
+   GrlRegistry   *registry = grl_registry_get_default ();
+@@ -301,13 +309,16 @@ grl_daap_service_added_cb (DMAPMdnsBrowser *browser,
+                                 GRL_SOURCE (source),
+                                 NULL);
+   if (source != NULL) {
+-    g_hash_table_insert (sources, g_strdup (service->name), g_object_ref (source));
++    gchar *name;
++    name = grl_dmap_service_get_name (service);
++    g_hash_table_insert (sources, g_strdup (name), g_object_ref (source));
+     g_object_remove_weak_pointer (G_OBJECT (source), (gpointer *) &source);
++    g_free (name);
+   }
+ }
+ static void
+-grl_daap_service_removed_cb (DMAPMdnsBrowser *browser,
++grl_daap_service_removed_cb (DmapMdnsBrowser *browser,
+                              const gchar *service_name,
+                              GrlPlugin *plugin)
+ {
+@@ -323,14 +334,14 @@ grl_daap_service_removed_cb (DMAPMdnsBrowser *browser,
+ }
+ static void
+-grl_daap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb_and_db, DMAPConnectionCallback callback)
++grl_daap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb_and_db, DmapConnectionFunc callback)
+ {
+-  DMAPRecordFactory *factory;
+-  DMAPConnection *connection;
++  DmapRecordFactory *factory;
++  DmapConnection *connection;
+   factory = DMAP_RECORD_FACTORY (grl_daap_record_factory_new ());
+-  connection = DMAP_CONNECTION (daap_connection_new (name, host, port, DMAP_DB (cb_and_db->db), factory));
+-  dmap_connection_connect (connection, (DMAPConnectionCallback) callback, cb_and_db);
++  connection = DMAP_CONNECTION (dmap_av_connection_new (name, host, port, DMAP_DB (cb_and_db->db), factory));
++  dmap_connection_start (connection, (DmapConnectionFunc) callback, cb_and_db);
+ }
+ static gboolean
+@@ -397,15 +408,25 @@ grl_daap_source_browse (GrlSource *source,
+     browse_connected_cb (NULL, TRUE, NULL, cb_and_db);
+   } else {
+     /* Connect */
++    gchar *name, *host;
++    guint port;
++
+     cb_and_db->db = DMAP_DB (grl_daap_db_new ());
+-    grl_daap_connect (dmap_source->priv->service->name,
+-                      dmap_source->priv->service->host,
+-                      dmap_source->priv->service->port,
++    name = grl_dmap_service_get_name (dmap_source->priv->service);
++    host = grl_dmap_service_get_host (dmap_source->priv->service);
++    port = grl_dmap_service_get_port (dmap_source->priv->service);
++
++    grl_daap_connect (name,
++                      host,
++                      port,
+                       cb_and_db,
+-                      (DMAPConnectionCallback) browse_connected_cb);
++                      (DmapConnectionFunc) browse_connected_cb);
+     g_hash_table_insert (connections, g_strdup (url), cb_and_db->db);
++
++    g_free (name);
++    g_free (host);
+   }
+   g_free (url);
+@@ -417,7 +438,7 @@ static void grl_daap_source_search (GrlSource *source,
+   GrlDaapSource *dmap_source = GRL_DAAP_SOURCE (source);
+   ResultCbAndArgsAndDb *cb_and_db;
+-  DMAPMdnsBrowserService *service = dmap_source->priv->service;
++  DmapMdnsService *service = dmap_source->priv->service;
+   gchar *url = grl_dmap_build_url (service);
+   cb_and_db = g_new (ResultCbAndArgsAndDb, 1);
+@@ -435,9 +456,25 @@ static void grl_daap_source_search (GrlSource *source,
+     search_connected_cb (NULL, TRUE, NULL, cb_and_db);
+   } else {
+     /* Connect */
++    gchar *name, *host;
++    guint port;
++
+     cb_and_db->db = DMAP_DB (grl_daap_db_new ());
+-    grl_daap_connect (service->name, service->host, service->port, cb_and_db, (DMAPConnectionCallback) search_connected_cb);
++
++    name = grl_dmap_service_get_name (dmap_source->priv->service);
++    host = grl_dmap_service_get_host (dmap_source->priv->service);
++    port = grl_dmap_service_get_port (dmap_source->priv->service);
++
++    grl_daap_connect (name,
++                      host,
++                      port,
++                      cb_and_db,
++                      (DmapConnectionFunc) search_connected_cb);
++
+     g_hash_table_insert (connections, g_strdup (url), cb_and_db->db);
++
++    g_free (name);
++    g_free (host);
+   }
+   g_free (url);
+diff --git a/src/dmap/grl-daap.h b/src/dmap/grl-daap.h
+index 1119495..5271435 100644
+--- a/src/dmap/grl-daap.h
++++ b/src/dmap/grl-daap.h
+@@ -26,6 +26,8 @@
+ #include <grilo.h>
++#include "grl-daap-compat.h"
++
+ #define GRL_DAAP_SOURCE_TYPE (grl_daap_source_get_type ())
+ #define GRL_DAAP_SOURCE(obj)                                                   \
+diff --git a/src/dmap/grl-dmap-compat.h b/src/dmap/grl-dmap-compat.h
+new file mode 100644
+index 0000000..cd1934f
+--- /dev/null
++++ b/src/dmap/grl-dmap-compat.h
+@@ -0,0 +1,108 @@
++/*
++ * Copyright (C) 2019 W. Michael Petullo
++ * Copyright (C) 2019 Igalia S.L.
++ *
++ * Contact: W. Michael Petullo <mike@flyn.org>
++ *
++ * This library 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; version 2.1 of
++ * the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ */
++
++#ifndef _GRL_DMAP_COMPAT_H_
++#define _GRL_DMAP_COMPAT_H_
++
++#ifdef LIBDMAPSHARING_COMPAT
++
++/* Building against libdmapsharing 3 API. */
++
++#define DmapConnection DMAPConnection
++#define DmapConnectionFunc DMAPConnectionCallback
++#define dmap_connection_start dmap_connection_connect
++#define DmapDb DMAPDb
++#define DmapDbInterface DMAPDbIface
++#define DmapIdRecordFunc GHFunc
++#define DmapMdnsBrowser DMAPMdnsBrowser
++#define DmapMdnsService DMAPMdnsBrowserService
++#define DMAP_MDNS_SERVICE_TYPE_DAAP DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP
++#define DMAP_MDNS_SERVICE_TYPE_DPAP DMAP_MDNS_BROWSER_SERVICE_TYPE_DPAP
++#define DmapRecord DMAPRecord
++#define DmapRecordFactory DMAPRecordFactory
++#define DmapRecordFactoryInterface DMAPRecordFactoryIface
++#define DmapRecordInterface DMAPRecordIface
++
++static inline gchar *
++grl_dmap_service_get_name (DmapMdnsService *service)
++{
++  return g_strdup (service->name);
++}
++
++static inline gchar *
++grl_dmap_service_get_service_name (DmapMdnsService *service)
++{
++  return g_strdup (service->service_name);
++}
++
++static inline gchar *
++grl_dmap_service_get_host (DmapMdnsService *service)
++{
++  return g_strdup (service->host);
++}
++
++static inline guint
++grl_dmap_service_get_port (DmapMdnsService *service)
++{
++  return service->port;
++}
++
++#else
++
++/* Building against libdmapsharing 4 API. */
++
++static inline gchar *
++grl_dmap_service_get_name (DmapMdnsService *service)
++{
++  gchar *name;
++  g_object_get (service, "name", &name, NULL);
++  return name;
++}
++
++static inline gchar *
++grl_dmap_service_get_service_name (DmapMdnsService *service)
++{
++  gchar *service_name;
++  g_object_get (service, "service-name", &service_name, NULL);
++  return service_name;
++}
++
++static inline gchar *
++grl_dmap_service_get_host (DmapMdnsService *service)
++{
++  gchar *host;
++  g_object_get (service, "host", &host, NULL);
++  return host;
++}
++
++static inline guint
++grl_dmap_service_get_port (DmapMdnsService *service)
++{
++  guint port;
++  g_object_get (service, "port", &port, NULL);
++  return port;
++}
++
++#endif
++
++#endif /* _GRL_DMAP_COMPAT_H_ */
+diff --git a/src/dmap/grl-dpap-compat.h b/src/dmap/grl-dpap-compat.h
+new file mode 100644
+index 0000000..b996464
+--- /dev/null
++++ b/src/dmap/grl-dpap-compat.h
+@@ -0,0 +1,116 @@
++/*
++ * Copyright (C) 2019 W. Michael Petullo
++ * Copyright (C) 2019 Igalia S.L.
++ *
++ * Contact: W. Michael Petullo <mike@flyn.org>
++ *
++ * This library 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; version 2.1 of
++ * the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ */
++
++#ifndef _GRL_DPAP_COMPAT_H_
++#define _GRL_DPAP_COMPAT_H_
++
++#include "grl-dmap-compat.h"
++
++#ifdef LIBDMAPSHARING_COMPAT
++
++DMAPRecord *grl_dpap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data, GError **error);
++guint grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record, GError **error);
++
++/* Building against libdmapsharing 3 API. */
++
++#define dmap_image_connection_new dpap_connection_new
++#define DmapImageRecord DPAPRecord
++#define DmapImageRecordInterface DPAPRecordIface
++#define DMAP_IMAGE_RECORD DPAP_RECORD
++#define DMAP_TYPE_IMAGE_RECORD DPAP_TYPE_RECORD
++#define IS_DMAP_IMAGE_RECORD IS_DPAP_RECORD
++
++static inline DmapRecord *
++grl_dpap_record_factory_create_compat (DmapRecordFactory *factory, gpointer user_data)
++{
++  return grl_dpap_record_factory_create (factory, user_data, NULL);
++}
++
++static inline void
++set_thumbnail (GValue *value, GByteArray *thumbnail)
++{
++  g_value_set_pointer (value, thumbnail);
++}
++
++static inline GByteArray *
++get_thumbnail (GByteArray *thumbnail, const GValue *value)
++{
++  if (thumbnail)
++    g_byte_array_unref (thumbnail);
++  return g_byte_array_ref (g_value_get_pointer (value));
++}
++
++static inline void
++unref_thumbnail (GByteArray *thumbnail)
++{
++  g_byte_array_unref (thumbnail);
++}
++
++static inline guint
++grl_dpap_db_add_compat (DMAPDb *_db, DmapRecord *_record)
++{
++  return grl_dpap_db_add (_db, _record, NULL);
++}
++
++#else
++
++/* Building against libdmapsharing 4 API. */
++
++DmapRecord *grl_dpap_record_factory_create (DmapRecordFactory *factory, gpointer user_data, GError **error);
++guint grl_dpap_db_add (DmapDb *_db, DmapRecord *_record, GError **error);
++
++static inline void
++set_thumbnail (GValue *value, GArray *thumbnail)
++{
++  g_value_set_boxed (value, thumbnail);
++}
++
++static inline GArray *
++get_thumbnail (GArray *thumbnail, const GValue *value)
++{
++  if (thumbnail)
++    g_array_unref (thumbnail);
++  return g_value_get_boxed (value);
++}
++
++static inline void
++unref_thumbnail (GArray *thumbnail)
++{
++  g_array_unref (thumbnail);
++}
++
++static inline DmapRecord *
++grl_dpap_record_factory_create_compat (DmapRecordFactory *factory, gpointer user_data, GError **error)
++{
++  return grl_dpap_record_factory_create (factory, user_data, error);
++}
++
++static inline guint
++grl_dpap_db_add_compat (DmapDb *_db, DmapRecord *_record, GError **error)
++{
++  return grl_dpap_db_add (_db, _record, error);
++}
++
++#endif
++
++#endif /* _GRL_DPAP_COMPAT_H_ */
+diff --git a/src/dmap/grl-dpap-db.c b/src/dmap/grl-dpap-db.c
+index 8be278b..cd647ee 100644
+--- a/src/dmap/grl-dpap-db.c
++++ b/src/dmap/grl-dpap-db.c
+@@ -24,12 +24,16 @@
+ #include "config.h"
+ #endif
++#include <grilo.h>
+ #include <glib/gi18n-lib.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <glib.h>
+ #include <string.h>
++#include <libdmapsharing/dmap.h>
++#include "grl-dpap-compat.h"
++#include "grl-common.h"
+ #include "grl-dpap-db.h"
+ #define PHOTOS_ID     "photos"
+@@ -71,23 +75,23 @@ grl_dpap_db_new (void)
+   return db;
+ }
+-static DMAPRecord *
+-grl_dpap_db_lookup_by_id (const DMAPDb *db, guint id)
++static DmapRecord *
++grl_dpap_db_lookup_by_id (const DmapDb *db, guint id)
+ {
+   g_warning ("Not implemented");
+   return NULL;
+ }
+ static void
+-grl_dpap_db_foreach (const DMAPDb *db,
+-                     GHFunc func,
++grl_dpap_db_foreach (const DmapDb *db,
++                     DmapIdRecordFunc func,
+                      gpointer data)
+ {
+   g_warning ("Not implemented");
+ }
+ static gint64
+-grl_dpap_db_count (const DMAPDb *db)
++grl_dpap_db_count (const DmapDb *db)
+ {
+   g_warning ("Not implemented");
+   return 0;
+@@ -118,21 +122,21 @@ set_insert (GHashTable *category, const char *category_name, char *set_name, Grl
+   g_object_unref (container);
+ }
+-static guint
+-grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
++guint
++grl_dpap_db_add (DmapDb *_db, DmapRecord *_record, GError **error)
+ {
+   g_assert (IS_GRL_DPAP_DB (_db));
+-  g_assert (IS_DPAP_RECORD (_record));
++  g_assert (IS_DMAP_IMAGE_RECORD (_record));
+   GrlDPAPDb *db = GRL_DPAP_DB (_db);
+-  DPAPRecord *record = DPAP_RECORD (_record);
++  DmapImageRecord *record = DMAP_IMAGE_RECORD (_record);
+   gint        height        = 0,
+               width         = 0,
+               largefilesize = 0,
+               creationdate  = 0,
+               rating        = 0;
+-  GByteArray *thumbnail     = NULL;
++  GArray     *thumbnail     = NULL;
+   gchar      *id_s          = NULL,
+              *filename      = NULL,
+              *aspectratio   = NULL,
+@@ -177,12 +181,12 @@ grl_dpap_db_add (DMAPDb *_db, DMAPRecord *_record)
+   g_free (id_s);
+   g_object_unref (media);
+-  g_free(filename);
+-  g_free(aspectratio);
+-  g_free(format);
+-  g_free(comments);
+-  g_free(url);
+-  g_byte_array_unref(thumbnail);
++  g_free (filename);
++  g_free (aspectratio);
++  g_free (format);
++  g_free (comments);
++  g_free (url);
++  g_array_unref (thumbnail);
+   return --nextid;
+ }
+@@ -298,11 +302,11 @@ grl_dpap_db_search (GrlDPAPDb *db,
+ static void
+ dmap_db_interface_init (gpointer iface, gpointer data)
+ {
+-  DMAPDbIface *dpap_db = iface;
++  DmapDbInterface *dpap_db = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (dpap_db) == DMAP_TYPE_DB);
+-  dpap_db->add = grl_dpap_db_add;
++  dpap_db->add = grl_dpap_db_add_compat;
+   dpap_db->lookup_by_id = grl_dpap_db_lookup_by_id;
+   dpap_db->foreach = grl_dpap_db_foreach;
+   dpap_db->count = grl_dpap_db_count;
+diff --git a/src/dmap/grl-dpap-db.h b/src/dmap/grl-dpap-db.h
+index d3abcba..a21ad7a 100644
+--- a/src/dmap/grl-dpap-db.h
++++ b/src/dmap/grl-dpap-db.h
+@@ -24,6 +24,8 @@
+ #include <libdmapsharing/dmap.h>
+ #include <grilo.h>
++#include "grl-dpap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_GRL_DPAP_DB (grl_dpap_db_get_type ())
+diff --git a/src/dmap/grl-dpap-record-factory.c b/src/dmap/grl-dpap-record-factory.c
+index 3d0c87a..860d957 100644
+--- a/src/dmap/grl-dpap-record-factory.c
++++ b/src/dmap/grl-dpap-record-factory.c
+@@ -18,11 +18,18 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
++#include <grilo.h>
++#include <libdmapsharing/dmap.h>
++
++#include "grl-dpap-compat.h"
++#include "grl-common.h"
+ #include "grl-dpap-record-factory.h"
+ #include "grl-dpap-record.h"
+-DMAPRecord *
+-grl_dpap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data)
++DmapRecord *
++grl_dpap_record_factory_create (DmapRecordFactory *factory,
++                                gpointer user_data,
++                                GError **error)
+ {
+   return DMAP_RECORD (grl_dpap_record_new ());
+ }
+@@ -40,11 +47,11 @@ grl_dpap_record_factory_class_init (GrlDPAPRecordFactoryClass *klass)
+ static void
+ grl_dpap_record_factory_interface_init (gpointer iface, gpointer data)
+ {
+-  DMAPRecordFactoryIface *factory = iface;
++  DmapRecordFactoryInterface *factory = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
+-  factory->create = grl_dpap_record_factory_create;
++  factory->create = grl_dpap_record_factory_create_compat;
+ }
+ G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecordFactory, grl_dpap_record_factory, G_TYPE_OBJECT,
+diff --git a/src/dmap/grl-dpap-record-factory.h b/src/dmap/grl-dpap-record-factory.h
+index 3f4ca54..899fd0a 100644
+--- a/src/dmap/grl-dpap-record-factory.h
++++ b/src/dmap/grl-dpap-record-factory.h
+@@ -23,6 +23,8 @@
+ #include <libdmapsharing/dmap.h>
++#include "grl-dpap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_SIMPLE_DPAP_RECORD_FACTORY (grl_dpap_record_factory_get_type ())
+@@ -64,7 +66,7 @@ GType grl_dpap_record_factory_get_type (void);
+ GrlDPAPRecordFactory *grl_dpap_record_factory_new (void);
+-DMAPRecord *grl_dpap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data);
++DmapRecord *grl_dpap_record_factory_create (DmapRecordFactory *factory, gpointer user_data, GError **error);
+ #endif /* __SIMPLE_DPAP_RECORD_FACTORY */
+diff --git a/src/dmap/grl-dpap-record.c b/src/dmap/grl-dpap-record.c
+index 14eb1de..0afb2b8 100644
+--- a/src/dmap/grl-dpap-record.c
++++ b/src/dmap/grl-dpap-record.c
+@@ -20,6 +20,11 @@
+  *
+  */
++#include <grilo.h>
++#include <libdmapsharing/dmap.h>
++
++#include "grl-dpap-compat.h"
++#include "grl-common.h"
+ #include "grl-dpap-record.h"
+ struct GrlDPAPRecordPrivate {
+@@ -28,7 +33,7 @@ struct GrlDPAPRecordPrivate {
+   gint creationdate;
+   gint rating;
+   char *filename;
+-  GByteArray *thumbnail;
++  void *thumbnail; /* GByteArray or GArray, depending on libdmapsharing ver. */
+   char *aspectratio;
+   gint height;
+   gint width;
+@@ -56,7 +61,7 @@ static void grl_dpap_record_dpap_iface_init (gpointer iface, gpointer data);
+ G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecord, grl_dpap_record, G_TYPE_OBJECT,
+                          G_ADD_PRIVATE (GrlDPAPRecord)
+-                         G_IMPLEMENT_INTERFACE (DPAP_TYPE_RECORD, grl_dpap_record_dpap_iface_init)
++                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_IMAGE_RECORD, grl_dpap_record_dpap_iface_init)
+                          G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD, grl_dpap_record_dmap_iface_init))
+ static void
+@@ -104,9 +109,7 @@ grl_dpap_record_set_property (GObject *object,
+     record->priv->comments = g_value_dup_string (value);
+     break;
+   case PROP_THUMBNAIL:
+-    if (record->priv->thumbnail)
+-      g_byte_array_unref (record->priv->thumbnail);
+-    record->priv->thumbnail = g_byte_array_ref (g_value_get_pointer (value));
++    record->priv->thumbnail = get_thumbnail (record->priv->thumbnail, value);
+     break;
+   default:
+     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -154,7 +157,7 @@ grl_dpap_record_get_property (GObject *object,
+     g_value_set_static_string (value, record->priv->comments);
+     break;
+   case PROP_THUMBNAIL:
+-    g_value_set_pointer (value, record->priv->thumbnail);
++    set_thumbnail (value, record->priv->thumbnail);
+     break;
+   default:
+     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -169,7 +172,7 @@ grl_dpap_record_new (void)
+ }
+ GInputStream *
+-grl_dpap_record_read (DPAPRecord *record, GError **error)
++grl_dpap_record_read (DmapImageRecord *record, GError **error)
+ {
+   GFile *file;
+   GInputStream *stream;
+@@ -215,9 +218,9 @@ grl_dpap_record_class_init (GrlDPAPRecordClass *klass)
+ static void
+ grl_dpap_record_dpap_iface_init (gpointer iface, gpointer data)
+ {
+-  DPAPRecordIface *dpap_record = iface;
++  DmapImageRecordInterface *dpap_record = iface;
+-  g_assert (G_TYPE_FROM_INTERFACE (dpap_record) == DPAP_TYPE_RECORD);
++  g_assert (G_TYPE_FROM_INTERFACE (dpap_record) == DMAP_TYPE_IMAGE_RECORD);
+   dpap_record->read = grl_dpap_record_read;
+ }
+@@ -225,7 +228,7 @@ grl_dpap_record_dpap_iface_init (gpointer iface, gpointer data)
+ static void
+ grl_dpap_record_dmap_iface_init (gpointer iface, gpointer data)
+ {
+-  DMAPRecordIface *dmap_record = iface;
++  DmapRecordInterface *dmap_record = iface;
+   g_assert (G_TYPE_FROM_INTERFACE (dmap_record) == DMAP_TYPE_RECORD);
+ }
+@@ -242,7 +245,7 @@ grl_dpap_record_finalize (GObject *object)
+   g_free (record->priv->comments);
+   if (record->priv->thumbnail)
+-    g_byte_array_unref (record->priv->thumbnail);
++    unref_thumbnail (record->priv->thumbnail);
+   G_OBJECT_CLASS (grl_dpap_record_parent_class)->finalize (object);
+ }
+diff --git a/src/dmap/grl-dpap-record.h b/src/dmap/grl-dpap-record.h
+index 203e57e..77eece0 100644
+--- a/src/dmap/grl-dpap-record.h
++++ b/src/dmap/grl-dpap-record.h
+@@ -23,6 +23,8 @@
+ #include <libdmapsharing/dmap.h>
++#include "grl-dpap-compat.h"
++
+ G_BEGIN_DECLS
+ #define TYPE_SIMPLE_DPAP_RECORD (grl_dpap_record_get_type ())
+@@ -69,8 +71,8 @@ typedef struct {
+ GType grl_dpap_record_get_type (void);
+ GrlDPAPRecord *grl_dpap_record_new (void);
+-GInputStream *grl_dpap_record_read (DPAPRecord *record, GError **error);
+-gint grl_dpap_record_get_id (DPAPRecord *record);
++GInputStream *grl_dpap_record_read (DmapImageRecord *record, GError **error);
++gint grl_dpap_record_get_id (DmapImageRecord *record);
+ #endif /* __SIMPLE_DPAP_RECORD */
+diff --git a/src/dmap/grl-dpap.c b/src/dmap/grl-dpap.c
+index 9829ec2..6339654 100644
+--- a/src/dmap/grl-dpap.c
++++ b/src/dmap/grl-dpap.c
+@@ -33,6 +33,7 @@
+ #include <stdlib.h>
+ #include <libdmapsharing/dmap.h>
++#include "grl-dpap-compat.h"
+ #include "grl-common.h"
+ #include "grl-dpap.h"
+ #include "grl-dpap-db.h"
+@@ -57,12 +58,12 @@ GRL_LOG_DOMAIN_STATIC (dmap_log_domain);
+                                  GrlDpapSourcePrivate))
+ struct _GrlDpapSourcePrivate {
+-  DMAPMdnsBrowserService *service;
++  DmapMdnsService *service;
+ };
+ /* --- Data types --- */
+-static GrlDpapSource *grl_dpap_source_new (DMAPMdnsBrowserService *service);
++static GrlDpapSource *grl_dpap_source_new (DmapMdnsService *service);
+ static void grl_dpap_source_finalize (GObject *object);
+@@ -79,16 +80,16 @@ static void grl_dpap_source_search (GrlSource *source,
+                                     GrlSourceSearchSpec *ss);
+-static void grl_dpap_service_added_cb (DMAPMdnsBrowser *browser,
+-                                       DMAPMdnsBrowserService *service,
++static void grl_dpap_service_added_cb (DmapMdnsBrowser *browser,
++                                       DmapMdnsService *service,
+                                        GrlPlugin *plugin);
+-static void grl_dpap_service_removed_cb (DMAPMdnsBrowser *browser,
++static void grl_dpap_service_removed_cb (DmapMdnsBrowser *browser,
+                                          const gchar *service_name,
+                                          GrlPlugin *plugin);
+ /* ===================== Globals  ======================= */
+-static DMAPMdnsBrowser *browser;
++static DmapMdnsBrowser *browser;
+ /* Maps URIs to DBs */
+ static GHashTable *connections;
+ /* Map DPAP services to Grilo media sources */
+@@ -111,7 +112,7 @@ grl_dpap_plugin_init (GrlRegistry *registry,
+   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+-  browser     = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DPAP);
++  browser     = dmap_mdns_browser_new (DMAP_MDNS_SERVICE_TYPE_DPAP);
+   connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+   sources     = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+@@ -158,8 +159,10 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
+ G_DEFINE_TYPE_WITH_PRIVATE (GrlDpapSource, grl_dpap_source, GRL_TYPE_SOURCE)
+ static GrlDpapSource *
+-grl_dpap_source_new (DMAPMdnsBrowserService *service)
++grl_dpap_source_new (DmapMdnsService *service)
+ {
++  gchar *name;
++  gchar *service_name;
+   gchar *source_desc;
+   gchar *source_id;
+@@ -167,12 +170,14 @@ grl_dpap_source_new (DMAPMdnsBrowserService *service)
+   GRL_DEBUG ("grl_dpap_source_new");
+-  source_desc = g_strdup_printf (SOURCE_DESC_TEMPLATE, service->name);
+-  source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, service->name);
++  name = grl_dmap_service_get_name (service);
++  service_name = grl_dmap_service_get_service_name (service);
++  source_desc = g_strdup_printf (SOURCE_DESC_TEMPLATE, name);
++  source_id = g_strdup_printf (SOURCE_ID_TEMPLATE, name);
+   source = g_object_new (GRL_DPAP_SOURCE_TYPE,
+                         "source-id",   source_id,
+-                        "source-name", service->name,
++                        "source-name", service_name,
+                         "source-desc", source_desc,
+                         "supported-media", GRL_SUPPORTED_MEDIA_IMAGE,
+                          NULL);
+@@ -181,6 +186,8 @@ grl_dpap_source_new (DMAPMdnsBrowserService *service)
+   g_free (source_desc);
+   g_free (source_id);
++  g_free (service_name);
++  g_free (name);
+   return source;
+ }
+@@ -241,7 +248,7 @@ grl_dpap_do_search (ResultCbAndArgsAndDb *cb_and_db)
+ }
+ static void
+-browse_connected_cb (DMAPConnection       *connection,
++browse_connected_cb (DmapConnection       *connection,
+                      gboolean              result,
+                      const char           *reason,
+                      ResultCbAndArgsAndDb *cb_and_db)
+@@ -266,7 +273,7 @@ browse_connected_cb (DMAPConnection       *connection,
+ }
+ static void
+-search_connected_cb (DMAPConnection       *connection,
++search_connected_cb (DmapConnection       *connection,
+                      gboolean              result,
+                      const char           *reason,
+                      ResultCbAndArgsAndDb *cb_and_db)
+@@ -291,8 +298,8 @@ search_connected_cb (DMAPConnection       *connection,
+ }
+ static void
+-grl_dpap_service_added_cb (DMAPMdnsBrowser *browser,
+-                           DMAPMdnsBrowserService *service,
++grl_dpap_service_added_cb (DmapMdnsBrowser *browser,
++                           DmapMdnsService *service,
+                            GrlPlugin *plugin)
+ {
+   GrlRegistry   *registry = grl_registry_get_default ();
+@@ -306,13 +313,16 @@ grl_dpap_service_added_cb (DMAPMdnsBrowser *browser,
+                                 GRL_SOURCE (source),
+                                 NULL);
+   if (source != NULL) {
+-    g_hash_table_insert (sources, g_strdup (service->name), g_object_ref (source));
++    gchar *name;
++    name = grl_dmap_service_get_name (service);
++    g_hash_table_insert (sources, g_strdup (name), g_object_ref (source));
+     g_object_remove_weak_pointer (G_OBJECT (source), (gpointer *) &source);
++    g_free (name);
+   }
+ }
+ static void
+-grl_dpap_service_removed_cb (DMAPMdnsBrowser *browser,
++grl_dpap_service_removed_cb (DmapMdnsBrowser *browser,
+                              const gchar *service_name,
+                              GrlPlugin *plugin)
+ {
+@@ -328,14 +338,14 @@ grl_dpap_service_removed_cb (DMAPMdnsBrowser *browser,
+ }
+ static void
+-grl_dpap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb_and_db, DMAPConnectionCallback callback)
++grl_dpap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb_and_db, DmapConnectionFunc callback)
+ {
+-  DMAPRecordFactory *factory;
+-  DMAPConnection *connection;
++  DmapRecordFactory *factory;
++  DmapConnection *connection;
+   factory = DMAP_RECORD_FACTORY (grl_dpap_record_factory_new ());
+-  connection = DMAP_CONNECTION (dpap_connection_new (name, host, port, DMAP_DB (cb_and_db->db), factory));
+-  dmap_connection_connect (connection, (DMAPConnectionCallback) callback, cb_and_db);
++  connection = DMAP_CONNECTION (dmap_image_connection_new (name, host, port, DMAP_DB (cb_and_db->db), factory));
++  dmap_connection_start (connection, (DmapConnectionFunc) callback, cb_and_db);
+ }
+ static gboolean
+@@ -396,15 +406,25 @@ grl_dpap_source_browse (GrlSource *source,
+     browse_connected_cb (NULL, TRUE, NULL, cb_and_db);
+   } else {
+     /* Connect */
++    gchar *name, *host;
++    guint port;
++
+     cb_and_db->db = DMAP_DB (grl_dpap_db_new ());
+-    grl_dpap_connect (dmap_source->priv->service->name,
+-                      dmap_source->priv->service->host,
+-                      dmap_source->priv->service->port,
++    name = grl_dmap_service_get_name (dmap_source->priv->service);
++    host = grl_dmap_service_get_host (dmap_source->priv->service);
++    port = grl_dmap_service_get_port (dmap_source->priv->service);
++
++    grl_dpap_connect (name,
++                      host,
++                      port,
+                       cb_and_db,
+-                      (DMAPConnectionCallback) browse_connected_cb);
++                      (DmapConnectionFunc) browse_connected_cb);
+     g_hash_table_insert (connections, g_strdup (url), cb_and_db->db);
++
++    g_free (name);
++    g_free (host);
+   }
+   g_free (url);
+@@ -416,7 +436,7 @@ static void grl_dpap_source_search (GrlSource *source,
+   GrlDpapSource *dmap_source = GRL_DPAP_SOURCE (source);
+   ResultCbAndArgsAndDb *cb_and_db;
+-  DMAPMdnsBrowserService *service = dmap_source->priv->service;
++  DmapMdnsService *service = dmap_source->priv->service;
+   gchar *url = grl_dmap_build_url (service);
+   cb_and_db = g_new (ResultCbAndArgsAndDb, 1);
+@@ -434,9 +454,25 @@ static void grl_dpap_source_search (GrlSource *source,
+     search_connected_cb (NULL, TRUE, NULL, cb_and_db);
+   } else {
+     /* Connect */
++    gchar *name, *host;
++    guint port;
++
+     cb_and_db->db = DMAP_DB (grl_dpap_db_new ());
+-    grl_dpap_connect (service->name, service->host, service->port, cb_and_db, (DMAPConnectionCallback) search_connected_cb);
++
++    name = grl_dmap_service_get_name (dmap_source->priv->service);
++    host = grl_dmap_service_get_host (dmap_source->priv->service);
++    port = grl_dmap_service_get_port (dmap_source->priv->service);
++
++    grl_dpap_connect (name, 
++                      host,
++                      port,
++                      cb_and_db,
++                      (DmapConnectionFunc) search_connected_cb);
++
+     g_hash_table_insert (connections, g_strdup (url), cb_and_db->db);
++
++    g_free (name);
++    g_free (host);
+   }
+   g_free (url);
+diff --git a/src/dmap/grl-dpap.h b/src/dmap/grl-dpap.h
+index ee596b5..30cd61e 100644
+--- a/src/dmap/grl-dpap.h
++++ b/src/dmap/grl-dpap.h
+@@ -26,6 +26,8 @@
+ #include <grilo.h>
++#include "grl-dpap-compat.h"
++
+ #define GRL_DPAP_SOURCE_TYPE (grl_dpap_source_get_type ())
+ #define GRL_DPAP_SOURCE(obj)                                                   \
+diff --git a/src/dmap/meson.build b/src/dmap/meson.build
+index 2907a80..817ff5d 100644
+--- a/src/dmap/meson.build
++++ b/src/dmap/meson.build
+@@ -31,6 +31,15 @@ dpap_sources = [
+     'grl-dpap.h',
+ ]
++args = [
++    '-DG_LOG_DOMAIN="GrlDmap"',
++    '-DHAVE_CONFIG_H',
++]
++
++if not libdmapsharing4_dep.found()
++    args += '-DLIBDMAPSHARING_COMPAT'
++endif
++
+ configure_file(output: 'config.h',
+     configuration: cdata)
+@@ -39,17 +48,11 @@ shared_library('grldaap',
+     install: true,
+     install_dir: pluginsdir,
+     dependencies: must_deps + plugins[dmap_idx][REQ_DEPS] + plugins[dmap_idx][OPT_DEPS],
+-    c_args: [
+-        '-DG_LOG_DOMAIN="GrlDmap"',
+-        '-DHAVE_CONFIG_H',
+-    ])
++    c_args: args)
+ shared_library('grldpap',
+     sources: dpap_sources,
+     install: true,
+     install_dir: pluginsdir,
+     dependencies: must_deps + plugins[dmap_idx][REQ_DEPS] + plugins[dmap_idx][OPT_DEPS],
+-    c_args: [
+-        '-DG_LOG_DOMAIN="GrlDmap"',
+-        '-DHAVE_CONFIG_H',
+-    ])
++    c_args: args)
index bf52e91846a44654e05dd7c5f07300497fd31cb3..80d24f816571bfdc4f7e7039985b81fda903038e 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=minidlna
-PKG_RELEASE:=3
+PKG_RELEASE:=5
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.code.sf.net/p/minidlna/git
index 6dcc104ea88194e69daf725d98c4362a0beb7e18..27baa47ff216b2faf578d319b7b4890a9c2e7711 100644 (file)
@@ -45,7 +45,6 @@ minidlna_create_config() {
        { [ -z "$interface" ] || [ -t "$port" ]; } && return 1
 
        mkdir -p /var/etc
-       {
        echo "# this file is generated automatically, don't edit"
 
        echo "port=$port"
@@ -68,10 +67,9 @@ minidlna_create_config() {
        minidlna_cfg_addstr "$cfg" root_container '.'
        minidlna_cfg_addstr "$cfg" uuid '019f9a56-ff60-44c0-9edc-eae88d09fa05'
        config_list_foreach "$cfg" "media_dir" minidlna_cfg_add_media_dir
-       } > "$MINIDLNA_CONFIG_FILE"
 
        return 0
-}
+} > "$MINIDLNA_CONFIG_FILE"
 
 start_service() {
        local enabled
@@ -105,11 +103,3 @@ start_service() {
        procd_set_param respawn
        procd_close_instance
 }
-
-reload_service() {
-       procd_send_signal "$PROG"
-}
-
-service_triggers() {
-       procd_add_reload_trigger "minidlna"
-}
diff --git a/multimedia/minidlna/patches/050-no-cover-resizing.patch b/multimedia/minidlna/patches/050-no-cover-resizing.patch
deleted file mode 100644 (file)
index e05bb9c..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From aae49f0f80e73d1b52f23b89b0d314e9b9f89425 Mon Sep 17 00:00:00 2001
-From: Daniel Kamil Kozar <dkk089@gmail.com>
-Date: Sat, 15 Dec 2018 22:55:44 +0100
-Subject: [PATCH] Add an option to disable cover art resizing
-
-Imported from
-https://sourceforge.net/p/minidlna/patches/_discuss/thread/9825a1a0/4c28/attachment/minidlna-1.1.2-no-cover-resize.patch
----
- albumart.c       | 3 +++
- minidlna.c       | 4 ++++
- options.c        | 1 +
- options.h        | 1 +
- upnpglobalvars.h | 1 +
- 5 files changed, 10 insertions(+)
-
-diff --git a/albumart.c b/albumart.c
-index de026ec..04fa8f2 100644
---- a/albumart.c
-+++ b/albumart.c
-@@ -67,6 +67,9 @@ save_resized_album_art(image_s *imsrc, const char *path)
-       strncpyt(cache_dir, cache_file, sizeof(cache_dir));
-       make_dir(dirname(cache_dir), S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
-+      if( GETFLAG(NO_COVER_RESIZE_MASK) )
-+              return image_save_to_jpeg_file(imsrc, cache_file);
-+
-       if( imsrc->width > imsrc->height )
-       {
-               dstw = 160;
-diff --git a/minidlna.c b/minidlna.c
-index 7cce301..a1dd08b 100644
---- a/minidlna.c
-+++ b/minidlna.c
-@@ -735,6 +735,10 @@ init(int argc, char **argv)
-                       if (strtobool(ary_options[i].value))
-                               SETFLAG(DLNA_STRICT_MASK);
-                       break;
-+              case RESIZE_COVER_ART:
-+                      if((strcmp(ary_options[i].value, "no") == 0) || !atoi(ary_options[i].value))
-+                              SETFLAG(NO_COVER_RESIZE_MASK);
-+                      break;
-               case ROOT_CONTAINER:
-                       switch (ary_options[i].value[0]) {
-                       case '.':
-diff --git a/options.c b/options.c
-index cee3dff..cacbdfb 100644
---- a/options.c
-+++ b/options.c
-@@ -68,6 +68,7 @@ static const struct {
-       { WIDE_LINKS, "wide_links" },
-       { TIVO_DISCOVERY, "tivo_discovery" },
-       { ENABLE_SUBTITLES, "enable_subtitles" },
-+      { RESIZE_COVER_ART, "resize_covers" },
- };
- int
-diff --git a/options.h b/options.h
-index 1ff5b22..ec5ea68 100644
---- a/options.h
-+++ b/options.h
-@@ -61,6 +61,7 @@ enum upnpconfigoptions {
-       WIDE_LINKS,                     /* allow following symlinks outside the defined media_dirs */
-       TIVO_DISCOVERY,                 /* TiVo discovery protocol: bonjour or beacon. Defaults to bonjour if supported */
-       ENABLE_SUBTITLES,               /* Enable generic subtitle support for all clients by default */
-+      RESIZE_COVER_ART,               /* resize cover art to comply with DLNA spec */
- };
- /* readoptionsfile()
-diff --git a/upnpglobalvars.h b/upnpglobalvars.h
-index 1a2fb5e..7e3a1ba 100644
---- a/upnpglobalvars.h
-+++ b/upnpglobalvars.h
-@@ -205,6 +205,7 @@ extern uint32_t runtime_flags;
- #define RESCAN_MASK           0x0200
- #define SUBTITLES_MASK        0x0400
- #define FORCE_ALPHASORT_MASK  0x0800
-+#define NO_COVER_RESIZE_MASK  0x1000
- #define SETFLAG(mask) runtime_flags |= mask
- #define GETFLAG(mask) (runtime_flags & mask)
index 3e18e0a60d2912f84c7218daea5d4333a90a5eae..113afc39652472cae7517d96c0f516355cee2a25 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=youtube-dl
-PKG_VERSION:=2020.2.16
+PKG_VERSION:=2020.3.8
 PKG_RELEASE:=1
 
 PYPI_NAME:=youtube_dl
-PKG_HASH:=b98d240c928a1bd0412b270ccf0d776aae5448672ea374e0af45f6daa3984009
+PKG_HASH:=1b098b7ae41551f46dbae70e56dbabdf39c8faf50e072d0c0b42c44d64afebf8
 
 PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>, Josef Schlehofer <pepe.schlehofer@gmail.com>
 PKG_LICENSE:=Unlicense
index 1c53fcb61c7557b964ea450975a0524c87c970a1..82543d242725a6a852e1ac6663dc4e5eb0b84117 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=proto-bonding
-PKG_VERSION:=2018-06-11
+PKG_VERSION:=2020-03-03
 PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
index b624738fef1f6f2f100a7534a0cb6e809fb71082..5b106bc034adb06312e5190be68d71756d8e9c04 100755 (executable)
@@ -107,6 +107,15 @@ proto_bonding_setup() {
                        set_driver_values primary primary_reselect lp_interval tlb_dynamic_lb resend_igmp xmit_hash_policy
                ;;
 
+               balance-xor)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+                       set_driver_values xmit_hash_policy
+               ;;
+
+               broadcast)
+                       echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
+               ;;
+
                active-backup)
                        echo "$bonding_policy" > /sys/class/net/"$link"/bonding/mode
                        set_driver_values primary primary_reselect fail_over_mac num_grat_arp__num_unsol_na xmit_hash_policy
index 56a13d692e03420a2775046dbf9797df41bf6221..3226b01dbb9e1f8a54c40c40607cc847bf19f125 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.25.0
+PKG_VERSION:=2.25.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_HASH:=c060291a3ffb43d7c99f4aa5c4d37d3751cf6bca683e7344ea407ea504d9a8d0
+PKG_HASH:=222796cc6e3bf2f9fd765f8f097daa3c3999bb7865ac88a8c974d98182e29f26
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
index 7e3d0a5ba51eb38a9d02f7ff7ad81411a8e2f4b4..aab2c488c26603105cdb73f369d1c193e272644e 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=https-dns-proxy
 PKG_VERSION:=2019-12-03
-PKG_RELEASE=3
+PKG_RELEASE=4
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
index d844399bb743c515d57ba54b96f93a4f293e2999..87e548462688eb1c0a9fa72b8a15c746134e5fa9 100644 (file)
@@ -57,7 +57,7 @@ config https-dns-proxy
   option listen_addr '127.0.0.1'
   option listen_port '5054'
   option user 'nobody'
-  option group 'nogroup'```
+  option group 'nogroup'
 ```
 
 The ```update_dnsmasq_config``` option can be set to dash (set to ```'-'``` to not change ```DNSMASQ``` server settings on start/stop), can be set to ```'*'``` to affect all ```DNSMASQ``` instance server settings or have a space-separated list of ```DNSMASQ``` instances to affect (like ```'0 4 5'```). If this option is omitted, the default setting is ```'*'```.
@@ -87,7 +87,8 @@ The https-dns-proxy instance settings are:
 |user|String|nobody|Local user to run instance under.|
 |group|String|nogroup|Local group to run instance under.|
 |use_http1|Boolean|0|If set to 1, use HTTP/1 on installations with broken/outdated ```curl``` package. Included for posterity reasons, you will most likely not ever need it on OpenWrt.|
-|verbosity|Integer||Use setting between 1 to 4 to control the logging verbosity level.|String
+|verbosity|Integer|0|logging verbosity level. fatal = 0, error = 1, warning = 2, info = 3, debug = 4|
+|use_ipv6_resolvers_only|Boolean|0|If set to 1, Forces IPv6 DNS resolvers instead of IPv4|
 
 ## Thanks
 
index 0767da9353ec5618bb338ff4321a22b0563610a9..0267235d422ff3cfdc12ef2f5a3a8fd20ace3b4e 100755 (executable)
@@ -33,16 +33,6 @@ append_parm() {
        xappend "$switch $_loctmp"
 }
 
-append_match() {
-       local section="$1"
-       local option="$2"
-       local value="$3"
-       local match="$4"
-       local _loctmp
-       config_get_bool _loctmp "$section" "$option"
-       [ "$_loctmp" = "$match" ] && xappend "$value"
-}
-
 start_instance() {
        local cfg="$1" param listen_addr listen_port i
 
@@ -56,25 +46,36 @@ start_instance() {
        append_parm "$cfg" 'proxy_server' '-t'
        append_parm "$cfg" 'logfile' '-l'
        append_bool "$cfg" 'use_http1' '-x'
-       append_match "$cfg" 'verbosity' '-v' '1'
-       append_match "$cfg" 'verbosity' '-vv' '2'
-       append_match "$cfg" 'verbosity' '-vvv' '3'
-       append_match "$cfg" 'verbosity' '-vvvv' '4'
+
+       config_get verbosity "$cfg" 'verbosity' "0"
+# shellcheck disable=SC2086,SC2154
+       for i in $(seq 1 $verbosity); do
+               xappend "-v"
+       done
+
+       config_get_bool ipv6_resolvers_only "$cfg" 'use_ipv6_resolvers_only' '0'
+# shellcheck disable=SC2154
+       if [ "$ipv6_resolvers_only" = 0 ]; then
+               xappend "-4"
+       fi
 
        procd_open_instance
 # shellcheck disable=SC2086
-       procd_set_param command ${PROG} -4 ${param}
+       procd_set_param command ${PROG} ${param}
+       procd_set_param stderr 1
+       procd_set_param stdout 1
        procd_set_param respawn
        procd_close_instance
 
        config_get listen_addr "$cfg" 'listen_addr' '127.0.0.1'
        config_get listen_port "$cfg" 'listen_port' "$p"
+
        if [ "$dnsmasqConfig" = "*" ]; then
                config_load 'dhcp'
-               config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}#${listen_port}"
+               config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}" "${listen_port}"
        elif [ -n "$dnsmasqConfig" ]; then
                for i in $dnsmasqConfig; do
-                       dnsmasq_add_doh_server "@dnsmasq[${i}]" "${listen_addr}#${listen_port}"
+                       dnsmasq_add_doh_server "@dnsmasq[${i}]" "${listen_addr}" "${listen_port}"
                done
        fi
        p="$((p+1))"
@@ -112,9 +113,20 @@ service_triggers() {
 }
 
 dnsmasq_add_doh_server() {
-       local cfg="$1" value="$2"
-       uci -q del_list dhcp."$cfg".server="$value"
-       uci -q add_list dhcp."$cfg".server="$value"
+       local cfg="$1" address="$2" port="$3"
+
+       # Don't add the any address to dnsmasq
+       case $address in
+               0.0.0.0|::ffff:0.0.0.0)
+                       address='127.0.0.1'
+                       ;;
+               ::)
+                       address='::1'
+                       ;;
+       esac
+
+       uci -q del_list "dhcp.$cfg.server=${address}#${port}"
+       uci -q add_list "dhcp.$cfg.server=${address}#${port}"
 }
 
 dnsmasq_create_server_backup() {
@@ -124,7 +136,7 @@ dnsmasq_create_server_backup() {
        for i in $(uci -q get "dhcp.$cfg.server"); do
                uci -q add_list dhcp."$cfg".doh_backup_server="$i"
                if [ "$i" = "${i//127.0.0.1}" ] && [ "$i" = "$(echo "$i" | tr -d /)" ]; then
-                       uci -q del_list dhcp."$cfg".server="$i"
+                       uci -q del_list "dhcp.$cfg.server=$i"
                fi
        done
 }
@@ -135,7 +147,7 @@ dnsmasq_restore_server_backup() {
        if uci -q get "dhcp.$cfg.doh_backup_server" >/dev/null; then
                uci -q del "dhcp.$cfg.server"
                for i in $(uci -q get "dhcp.$cfg.doh_backup_server"); do
-                       uci -q add_list dhcp."$cfg".server="$i"
+                       uci -q add_list "dhcp.$cfg.server=$i"
                done
        uci -q del "dhcp.$cfg.doh_backup_server"
        fi
index 40f453fe738b6e0d2223075ad389d5e44a2f6b99..d38bec3cd624e6474f1889ea6d092a7501021cd6 100644 (file)
@@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=jool
-PKG_VERSION:=4.0.6
-PKG_RELEASE:=4
+PKG_VERSION:=4.0.7
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/NICMx/Jool/releases/download/v$(PKG_VERSION)
-PKG_HASH:=d9314c9de421c1fa854be83ab8ad6b4ad5062a01a9865a97bb87c5850d1c2b2a
+PKG_HASH:=3ea1b8ab7435de4776405ccf83c936b2028f20f860b7d0a462d39e4524564363
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-only
@@ -30,21 +30,21 @@ define Build/Compile
                KERNEL_DIR="$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)/src/mod/common" \
+               M="$(PKG_BUILD_DIR)/src/mod/common" \
                V="$(V)" \
                modules
        $(MAKE) -C "$(LINUX_DIR)" \
                KERNEL_DIR="$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)/src/mod/nat64" \
+               M="$(PKG_BUILD_DIR)/src/mod/nat64" \
                V="$(V)" \
                modules
        $(MAKE) -C "$(LINUX_DIR)" \
                KERNEL_DIR="$(LINUX_DIR)" \
                ARCH="$(LINUX_KARCH)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
-               SUBDIRS="$(PKG_BUILD_DIR)/src/mod/siit" \
+               M="$(PKG_BUILD_DIR)/src/mod/siit" \
                V="$(V)" \
                modules
        $(call Build/Compile/Default)
index ea64d5c22ba82684ff5ebf738eb05e9724da47c1..6ac3436147758512d10f62a570b7e52c5487fd46 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=keepalived
 PKG_VERSION:=2.0.20
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.keepalived.org/software
diff --git a/net/keepalived/patches/0001-Fix-building-with-disable-libipvs-dynamic.patch b/net/keepalived/patches/0001-Fix-building-with-disable-libipvs-dynamic.patch
new file mode 100644 (file)
index 0000000..33d7ed1
--- /dev/null
@@ -0,0 +1,53 @@
+From 42c020aab6e51d09f22a2e4a33ce6fd73009e2dc Mon Sep 17 00:00:00 2001
+From: Quentin Armitage <quentin@armitage.org.uk>
+Date: Wed, 4 Mar 2020 12:21:43 +0000
+Subject: [PATCH] Fix building with --disable-libipvs-dynamic
+
+Issue #1516 reported by the OpenWRT project identified that
+keepalived_modprobe() was not defined if --disable-libipvs-dynamic
+was specified.
+
+Signed-off-by: Quentin Armitage <quentin@armitage.org.uk>
+---
+ lib/utils.c | 4 ++--
+ lib/utils.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/utils.c b/lib/utils.c
+index 009da0ce..7f16f444 100644
+--- a/lib/utils.c
++++ b/lib/utils.c
+@@ -34,7 +34,7 @@
+ #include <stdint.h>
+ #include <errno.h>
+ #include <sys/prctl.h>
+-#if defined _WITH_LVS_ || defined _LIBIPSET_DYNAMIC_
++#if defined _WITH_LVS_ || defined _HAVE_LIBIPSET_
+ #include <sys/wait.h>
+ #endif
+ #ifdef _WITH_PERF_
+@@ -1097,7 +1097,7 @@ memcmp_constant_time(const void *s1, const void *s2, size_t n)
+  * Utility functions coming from Wensong code
+  */
+-#if defined _WITH_LVS_ || defined _LIBIPSET_DYNAMIC_
++#if defined _WITH_LVS_ || defined _HAVE_LIBIPSET_
+ static char*
+ get_modprobe(void)
+ {
+diff --git a/lib/utils.h b/lib/utils.h
+index 66d64d9f..22325023 100644
+--- a/lib/utils.h
++++ b/lib/utils.h
+@@ -263,7 +263,7 @@ extern int open_pipe(int [2]);
+ #endif
+ extern int memcmp_constant_time(const void *, const void *, size_t);
+-#if defined _WITH_LVS_ || defined _LIBIPSET_DYNAMIC_
++#if defined _WITH_LVS_ || defined _HAVE_LIBIPSET_
+ extern bool keepalived_modprobe(const char *);
+ #endif
+-- 
+2.20.1
+
index b83991d410369af911d8a27e28f96fa9a12448d6..0b09e34a51dca56ecc757d4384133603d1c944ef 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knot
-PKG_VERSION:=2.9.2
+PKG_VERSION:=2.9.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
-PKG_HASH:=298cdf33aa7589b50df7e5833694b24cd2de8b6d17cee7e1673873fe576db6ee
+PKG_HASH:=f2adf137d70955a4a20df90c5409e10be8e1127204a98b27d626ac090531a07e
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
 PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD BSD-3-Clause OLDAP-2.8
index ed4fd48115c2a7740fc6aafa2c0775eebd067dba..f097057b3da0b4215e4a4c5744e3fa4a4abbb522 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=linknx
-PKG_VERSION:=0.0.1.37
-PKG_RELEASE:=3
+PKG_VERSION:=0.0.1.38
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-${PKG_VERSION}.tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/linknx/linknx/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=3c3aaf8c409538153b15f5fb975a4485e58c4820cfea289a3f20777ba69782ab
+PKG_HASH:=00c53776c2e871295459ede922402d8ad0208367d2364781fdb92ddafad94d3d
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=GPL-2.0-or-later
@@ -42,9 +42,6 @@ CONFIGURE_ARGS+= \
        --with-libcurl \
        --without-mysql
 
-EXTRA_LDFLAGS+= \
-       -fno-builtin
-
 define Package/linknx/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/linknx $(1)/usr/bin/
index d2f05628f26538dca21cd2e0c0f0b066044e781f..f3b60f39d0448cbe58493992351422784129a20e 100644 (file)
@@ -1,8 +1,3 @@
-config daemon args
-        # daemon is started as 'linknx --config=$conf $options'
-        # use 'linknx --help' to get all possible options'
-        #
-        # typical example
+config args
         option conf '/etc/linknx.xml'
-        option options '-w --daemon=/tmp/linknx/linknx.log --pid-file=/var/run/linknx.pid'
 
index d38f194db7d86e43139d6969c58153911f3c4984..27b2c4b8045eff1409d62d17567340af3aa9d0dd 100644 (file)
@@ -3,21 +3,25 @@
 
 START=98
 STOP=10
+USE_PROCD=1
 NAME=linknx
 PROG=/usr/bin/$NAME
 
 . /lib/functions.sh
 
-start() {
-        local conf options
+start_service() {
+        local conf
         config_load "$NAME"
         config_get conf args conf '/etc/linknx.xml'
-        config_get options args options ''
-        test -f $conf || cp -p /etc/linknx.xml.dist $conf
+        [ -f "$conf" ] || cp -p /etc/linknx.xml.dist "$conf"
         mkdir -p /tmp/$NAME/persist
-        service_start $PROG --config=$conf $options
-}
 
-stop() {
-        service_stop $PROG
+       procd_open_instance
+       procd_set_param command "$PROG"
+       procd_append_param command --config="$conf" -w
+       procd_set_param file "$conf"
+       procd_set_param pidfile /var/run/linknx.pid
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_close_instance
 }
diff --git a/net/linknx/patches/010-iconv.patch b/net/linknx/patches/010-iconv.patch
deleted file mode 100644 (file)
index d4d2706..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8c025865f7cc57761d2227b897ba3980090391c2 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 24 Jun 2019 14:13:34 -0700
-Subject: [PATCH] Use AM_ICONV for properly supporting libiconv
-
-AM_ICONV does multiple things like checking the function parameters to
-avoid const problems.
----
- configure.ac             | 1 +
- src/Makefile.am          | 2 +-
- src/objectcontroller.cpp | 2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 22f242c..23582cb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -10,6 +10,7 @@ PKG_CONFIG=`which pkg-config`
- AC_PROG_CXX
- AC_PROG_CC
- AC_PROG_RANLIB
-+AM_ICONV
- AC_CHECK_PTHSEM(2.0.4,yes,yes,no)
- AC_CHECK_HEADER(argp.h,,[AC_MSG_ERROR([argp_parse not found])])
- AC_SEARCH_LIBS(argp_parse,argp,,[AC_MSG_ERROR([argp_parse not found])])
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 6a4f493..6e0dc03 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -7,5 +7,5 @@ B64_CFLAGS=
- B64_LIBS=
- endif
- AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/ticpp $(B64_CFLAGS) $(PTH_CPPFLAGS) $(LIBCURL_CPPFLAGS) $(LOG4CPP_CFLAGS) $(LUA_CFLAGS) $(MYSQL_CFLAGS) $(ESMTP_CFLAGS)
--linknx_LDADD=$(top_srcdir)/ticpp/libticpp.a $(B64_LIBS) $(PTH_LDFLAGS) $(PTH_LIBS) $(LIBCURL) $(LOG4CPP_LIBS) $(LUA_LIBS) $(MYSQL_LIBS) $(ESMTP_LIBS) -lm
-+linknx_LDADD=$(top_srcdir)/ticpp/libticpp.a $(LIBICONV) $(B64_LIBS) $(PTH_LDFLAGS) $(PTH_LIBS) $(LIBCURL) $(LOG4CPP_LIBS) $(LUA_LIBS) $(MYSQL_LIBS) $(ESMTP_LIBS) -lm
- linknx_SOURCES=linknx.cpp logger.cpp ruleserver.cpp objectcontroller.cpp eibclient.c threads.cpp timermanager.cpp  persistentstorage.cpp xmlserver.cpp smsgateway.cpp emailgateway.cpp knxconnection.cpp services.cpp suncalc.cpp  luacondition.cpp ioport.cpp ruleserver.h objectcontroller.h threads.h timermanager.h persistentstorage.h xmlserver.h smsgateway.h emailgateway.h knxconnection.h services.h suncalc.h luacondition.h ioport.h logger.h
-diff --git a/src/objectcontroller.cpp b/src/objectcontroller.cpp
-index fb2fc3a..7622491 100644
---- a/src/objectcontroller.cpp
-+++ b/src/objectcontroller.cpp
-@@ -2925,7 +2925,7 @@ std::string StringObjectValue::transcode(const std::string &source, const std::s
-       iconv_t conversionDescriptor = iconv_open((targetEncoding + "//TRANSLIT").c_str(), sourceEncoding.c_str());
-       char cSource[source.size()];
-       memcpy(cSource, source.c_str(), source.size() + 1);
--      char *sourceStart = &cSource[0];
-+      ICONV_CONST char *sourceStart = &cSource[0];
-       size_t sourceLength = source.size();
-       const size_t targetLength = source.size() * 5; // Should be pretty enough even in worst cases.
-       char targetChars[targetLength];
-
index b822ca014170e2a3277f8f786ddf306f4101cce1..0254300651b8450a3bbd14ea1ae31201599b32a1 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=1.6.8
+PKG_VERSION:=1.6.9
 PKG_RELEASE:=1
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
@@ -17,7 +17,7 @@ PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
-PKG_HASH:=7df23c81ca37f0e070574fe74414403cf25183016433d07add6134366fb45df6
+PKG_HASH:=412979b2db0a0020bd02fa64f0a0de9e7000b84462586e32b67f29bb1f6c1685
 
 include $(INCLUDE_DIR)/package.mk
 
index 9815663fc57cfcab8e3a491de9c2d6d81beeba78..c5d870cbac37604e893c169c6b766cf44c271053 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.8.2
+PKG_VERSION:=2.8.3
 PKG_RELEASE:=2
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
 PKG_LICENSE:=GPL-2.0
index a88708f063a71a86ada11e24fdeabf32965a7a19..2485d9c7377f375c8fa32170c52dab3ab204c891 100755 (executable)
@@ -132,11 +132,17 @@ main() {
                        if [ $host_up_count -lt $reliability ]; then
                                case "$track_method" in
                                        ping)
+                                               # pinging IPv6 hosts with an interface is troublesome
+                                               # https://bugs.openwrt.org/index.php?do=details&task_id=2897
+                                               # so get the IP address of the interface and use that instead                              
+                                               if echo $track_ip | grep -q ':'; then
+                                                    ADDR=$(ip -6 addr ls dev "$DEVICE" | sed -ne 's/ *inet6 \([^ \/]*\).* scope global.*/\1/p')
+                                               fi
                                                if [ $check_quality -eq 0 ]; then
-                                                       ping -I $DEVICE -c $count -W $timeout -s $size -t $max_ttl -q $track_ip &> /dev/null
+                                                       ping -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip &> /dev/null
                                                        result=$?
                                                else
-                                                       ping_result="$(ping -I $DEVICE -c $count -W $timeout -s $size -t $max_ttl -q $track_ip | tail -2)"
+                                                       ping_result="$(ping -I ${ADDR:-$DEVICE} -c $count -W $timeout -s $size -t $max_ttl -q $track_ip | tail -2)"
                                                        loss="$(echo "$ping_result" | grep "packet loss" |  cut -d "," -f3 | awk '{print $1}' | sed -e 's/%//')"
                                                        if [ "$loss" -eq 100 ]; then
                                                                latency=999999
index 689d0496a580f328efb1f0319f783a655559cf38..7ec31df1b303659b2b52d57106c93a3391fefa08 100644 (file)
@@ -11,10 +11,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall-core
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=3
-PKG_BUGFIX_MINOR_VERSION:=.6
+PKG_BUGFIX_MINOR_VERSION:=.7
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www1.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=e177d43d06be8db53008d736e0153d5c50a8ce6bd2171836f2f669c6a3233918
+PKG_HASH:=9c713ecb67603bd1b46648e31ff3f9e8a7af40187b4853feb6170738b1fd613a
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index a09ae075eadef5f67a652586854124c331484b56..ff23b1d3ba018b50ebb63abb0c2a8e9d90c6efcc 100644 (file)
@@ -11,10 +11,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=3
-PKG_BUGFIX_MINOR_VERSION:=.6
+PKG_BUGFIX_MINOR_VERSION:=.7
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www1.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=29e00965f4f3d5b27a917c6dc94b487a72fbd69ee1430b24d8eeedce8f79ebc6
+PKG_HASH:=2ba1000f46b959d87ce2ae1c841dda1fb89698e7e85fafade1a8752648c44dea
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index 865db1c909585f61515e47d6f8dfc315451361b7..a134c07982336474badab8ae81f8a57ce2ad4303 100644 (file)
@@ -11,10 +11,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=3
-PKG_BUGFIX_MINOR_VERSION:=.6
+PKG_BUGFIX_MINOR_VERSION:=.7
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www1.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=897110c803ededb873aa59af98f97a42a07968c29fd636e1a01f84e33b32e9d3
+PKG_HASH:=1d2f412d2189b01742d8837baa3a9de27ab84ab657eace34840312fb7ca3b4a7
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index 7043f185f0f998635d9788540631820d1ebcfa46..924187cbee22b5bafc1e44560a38ac67fdee7c9b 100644 (file)
@@ -11,10 +11,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall6-lite
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=3
-PKG_BUGFIX_MINOR_VERSION:=.6
+PKG_BUGFIX_MINOR_VERSION:=.7
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www1.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=6c3e0f76814be703bec1c78052abc191b1f47161a683fbdeaab0b12c37e11cc2
+PKG_HASH:=14d603222b434980fbe3776f028e0bef7873196c23f8070563320bcd9d508659
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index 2faa1e8a88fe6f32c7c306e6e973c3bb81125271..e40f82d6d3645df5af7c33ddae7fb5e24b0ffbb9 100644 (file)
@@ -11,10 +11,10 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=shorewall6
 PKG_MAJOR_MINOR_VERSION:=5.2
 PKG_BUGFIX_MAJOR_VERSION:=3
-PKG_BUGFIX_MINOR_VERSION:=.6
+PKG_BUGFIX_MINOR_VERSION:=.7
 PKG_VERSION:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)$(PKG_BUGFIX_MINOR_VERSION)
 PKG_DIRECTORY:=$(PKG_MAJOR_MINOR_VERSION).$(PKG_BUGFIX_MAJOR_VERSION)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www1.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
@@ -22,7 +22,7 @@ PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION
        http://shorewall.de/pub/shorewall/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/ \
        http://www.shorewall.com.au/$(PKG_MAJOR_MINOR_VERSION)/shorewall-$(PKG_DIRECTORY)/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=83dcad18aef2872904dd95d3cd882a926d2162ad870eb582fa7158c0d12f369d
+PKG_HASH:=a74379e0ddabe263a12945cdfc21f615930a5f258b55efb2b9a50fb035e84d87
 
 PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
 PKG_LICENSE:=GPL-2.0-or-later
index e3d13005f7fe5a574f414e508a6fc392fb7c837e..a890a257bfa8699d0cdc397d0ae2996108ec029f 100644 (file)
@@ -36,7 +36,7 @@ define Build/Prepare
 endef
 
 define Build/Compile
-       $(MAKE) $(KERNEL_MAKEOPTS) SUBDIRS="$(PKG_BUILD_DIR)" modules
+       $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)" modules
 endef
 
 $(eval $(call KernelPackage,siit))
index b5f9c4378fac0f340037f49d5c380e9a2c70c37e..5710e8e0dfd7b4fbf320032c97ac745848fb68ba 100644 (file)
@@ -12,21 +12,22 @@ PKG_NAME:=softethervpn
 PKG_VERSION:=4.29-9680
 PKG_VERREL:=rtm
 PKG_VERDATE:=2019.02.28
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=softether-src-v$(PKG_VERSION)-$(PKG_VERREL).tar.gz
 PKG_SOURCE_URL:=http://www.softether-download.com/files/softether/v$(PKG_VERSION)-$(PKG_VERREL)-$(PKG_VERDATE)-tree/Source_Code/
 PKG_HASH:=e6035fa7d9aaf59bdb342cd7ab5ecfdff89811a875f62a3230208cdc8a4e26e4
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/v$(PKG_VERSION)
-HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)/v$(PKG_VERSION)
-
-PKG_LICENSE:=GPL-2.0
+PKG_MAINTAINER:=Federico Di Marco <fededim@gmail.com>
+PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/v$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)/v$(PKG_VERSION)
 PKG_BUILD_DEPENDS:=softethervpn/host
 HOST_BUILD_DEPENDS:=readline/host libiconv/host
 
+PKG_ASLR_PIE:=0
 HAMCORE_SE2:=$(STAGING_DIR_HOST)/share/softethervpn/hamcore.se2
 
 include $(INCLUDE_DIR)/nls.mk
@@ -89,7 +90,6 @@ define Package/softethervpn/default
   SUBMENU:=VPN
   TITLE:=Free Cross-platform Multi-protocol VPN server and client
   URL:=http://www.softether.org/
-  MAINTAINER:=Federico Di Marco <fededim@gmail.com>
 endef
 
 define Package/softethervpn/description
index 91fd8572aa33cb9af0aedf5aafd518a1e3d3b992..bab74678ee941ea91f16c6316ea540a9850f0d60 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=sqm-scripts
 PKG_SOURCE_VERSION:=ab763cba8b1516b3afa99760e0ca884f8b8d93b8
 PKG_VERSION:=1.4.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/tohojo/sqm-scripts
@@ -57,18 +57,9 @@ define Package/luci-app-sqm/description
 endef
 
 define Package/luci-app-sqm/install
-       make -C $(PKG_BUILD_DIR) DESTDIR=$(1) PLATFORM=openwrt install-luci
-endef
-
-define Package/luci-app-sqm/postinst
-#!/bin/sh
-which uci > /dev/null || exit 0
-uci -q get ucitrack.@sqm[0] > /dev/null || {
-  uci add ucitrack sqm > /dev/null
-  uci set ucitrack.@sqm[0].init=sqm
-  uci add_list ucitrack.@firewall[0].affects=sqm
-  uci commit
-}
+       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(1) PLATFORM=openwrt install-luci
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_BIN) ./files/luci-app-sqm.defaults $(1)/etc/uci-defaults
 endef
 
 define Package/luci-app-sqm/postrm
diff --git a/net/sqm-scripts/files/luci-app-sqm.defaults b/net/sqm-scripts/files/luci-app-sqm.defaults
new file mode 100644 (file)
index 0000000..117a117
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+uci -q get ucitrack.@sqm[0] >/dev/null || {
+       uci add ucitrack sqm > /dev/null
+       uci set ucitrack.@sqm[0].init=sqm
+       uci add_list ucitrack.@firewall[0].affects=sqm
+       uci commit
+}
index e59f70203a7f13bd6f16a47f8bec139fca28b1ae..eb7b47e95e8fbc40fd6f3c2678766f2caf7aaec1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squid
 PKG_VERSION:=4.6
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www3.us.squid-cache.org/Versions/v4/ \
index 81de1da27f8accf352a4d948ccff2c64ad80afaa..e3cab6ad534c7e5ee89e9df25cde993c1cf520e6 100644 (file)
@@ -8,7 +8,7 @@
 acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
 acl localnet src 10.0.0.0/8            # RFC 1918 local private network (LAN)
 acl localnet src 100.64.0.0/10         # RFC 6598 shared address space (CGN)
-acl localhet src 169.254.0.0/16        # RFC 3927 link-local (directly plugged) machines
+acl localnet src 169.254.0.0/16        # RFC 3927 link-local (directly plugged) machines
 acl localnet src 172.16.0.0/12         # RFC 1918 local private network (LAN)
 acl localnet src 192.168.0.0/16                # RFC 1918 local private network (LAN)
 acl localnet src fc00::/7              # RFC 4193 local private network range
index f6a1fb610dcd409f0d20052c95539ed465ee2f9a..5fcb5b973f52120ce94d4fd7de3d52d4369732c1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=transmission
 PKG_VERSION:=2.94
-PKG_RELEASE:=12
+PKG_RELEASE:=15
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GITHUB/transmission/transmission-releases/master
index e284886de418d50b57291ac7c17373f306f18e02..08fbdc355aa9f96c401c68c0daf2f52dbd660967 100644 (file)
@@ -1,5 +1,6 @@
 {
        "whitelist": [
+               "accept",
                "accept4",
                "access",
                "arm_fadvise64_64",
@@ -27,6 +28,7 @@
                "getpid",
                "getsockname",
                "getsockopt",
+               "getuid32",
                "ioctl",
                "listen",
                "_llseek",
@@ -37,6 +39,7 @@
                "mmap",
                "mmap2",
                "mprotect",
+               "mremap",
                "munmap",
                "nanosleep",
                "_newselect",
@@ -47,6 +50,7 @@
                "pread64",
                "prlimit64",
                "pwrite64",
+               "quotactl",
                "read",
                "readlink",
                "readv",
                "socket",
                "stat",
                "stat64",
+               "socketpair",
                "umask",
                "uname",
                "unlink",
+               "statfs64",
+               "umask",
                "write",
                "writev"
        ],
index c936e3ad5c0ad25835139f3d0499f550e20e1928..b9d7d764105c0ce6ad3779c3f23f2ca0fe3bc4c7 100644 (file)
@@ -89,7 +89,7 @@ endef
 include $(INCLUDE_DIR)/kernel-defaults.mk
 
 define Build/Compile
-       $(MAKE) $(KERNEL_MAKEOPTS) SUBDIRS="$(PKG_BUILD_DIR)" modules
+       $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)" modules
 endef
 
 $(eval $(call BuildPackage,wifidog-ng-nossl))
index 5ed19e61878036c5e2a3e09d5039c2b0b73c1e4c..d0dfd60165161702b3ebd6d4d502fd06ab62ee18 100644 (file)
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=xtables-addons
-PKG_VERSION:=3.7
-PKG_RELEASE:=2
-PKG_HASH:=045ee3fcfe5d6edb95483cf49e2446ff8cab4bb79411018b18354138b70c5eb5
+PKG_VERSION:=3.9
+PKG_RELEASE:=1
+PKG_HASH:=064dd68937d98e6cfcbdf51ef459310d9810c17ab31b21285bc7a76cdcef7c49
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/xtables-addons
index 930687a5b3f803098efe9dae7863f9aa6dadc374..97ffeacbdc4bf27a4dfa6b0b57dee252e987b055 100644 (file)
@@ -6,21 +6,17 @@ This reverts commit bf63a25a64c9223435c26e6543ba749834b47752.
  extensions/pknock/xt_pknock.c | 16 ++++++++++++++++
  3 files changed, 19 insertions(+), 3 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 7631f6b..0d3aa72 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -61,7 +61,7 @@ if test -n "$kbuilddir"; then
                        echo "WARNING: That kernel version is not officially supported yet. Continue at own luck.";
                elif test "$kmajor" -eq 5 -a "$kminor" -ge 0; then
                        :
--              elif test "$kmajor" -eq 4 -a "$kminor" -ge 18; then
+-              elif test "$kmajor" -eq 4 -a "$kminor" -ge 15; then
 +              elif test "$kmajor" -eq 4 -a "$kminor" -ge 14; then
                        :
                else
                        echo "WARNING: That kernel version is not officially supported.";
-diff --git a/extensions/compat_xtables.h b/extensions/compat_xtables.h
-index d08354a..faf5dd8 100644
 --- a/extensions/compat_xtables.h
 +++ b/extensions/compat_xtables.h
 @@ -8,8 +8,8 @@
@@ -34,11 +30,9 @@ index d08354a..faf5dd8 100644
  #endif
  
  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-diff --git a/extensions/pknock/xt_pknock.c b/extensions/pknock/xt_pknock.c
-index c76901a..7be0345 100644
 --- a/extensions/pknock/xt_pknock.c
 +++ b/extensions/pknock/xt_pknock.c
-@@ -357,10 +357,18 @@ has_logged_during_this_minute(const struct peer *peer)
+@@ -356,10 +356,18 @@ has_logged_during_this_minute(const stru
   *
   * @r: rule
   */
@@ -57,7 +51,7 @@ index c76901a..7be0345 100644
        struct peer *peer;
        struct list_head *pos, *n;
  
-@@ -467,7 +475,15 @@ add_rule(struct xt_pknock_mtinfo *info)
+@@ -466,7 +474,15 @@ add_rule(struct xt_pknock_mtinfo *info)
        rule->peer_head      = alloc_hashtable(peer_hashsize);
        if (rule->peer_head == NULL)
                goto out;
@@ -73,6 +67,3 @@ index c76901a..7be0345 100644
        rule->status_proc = proc_create_data(info->rule_name, 0, pde,
                            &pknock_proc_ops, rule);
        if (rule->status_proc == NULL)
--- 
-2.21.0
-
index 3cb37007180eefd04e426d73aaeb718cfc11160a..9eddf780d49af53a3bb314e5932652ce72d15af8 100644 (file)
@@ -7,7 +7,7 @@
 +obj-m += nf_conntrack_rtsp.o
 --- /dev/null
 +++ b/extensions/rtsp/netfilter_helpers.h
-@@ -0,0 +1,133 @@
+@@ -0,0 +1,144 @@
 +/*
 + * Helpers for netfiler modules.  This file provides implementations for basic
 + * functions such as strncasecmp(), etc.
@@ -24,6 +24,8 @@
 +/* Only include these functions for kernel code. */
 +#ifdef __KERNEL__
 +
++#include <net/netfilter/nf_conntrack_expect.h>
++
 +#include <linux/ctype.h>
 +#define iseol(c) ( (c) == '\r' || (c) == '\n' )
 +
 +}
 +#endif /* NF_NEED_NEXTLINE */
 +
++static inline int rtsp_nf_ct_expect_related(struct nf_conntrack_expect *expect)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
++      return nf_ct_expect_related(expect, 0);
++#else
++      return nf_ct_expect_related(expect);
++#endif
++}
++
 +#endif /* __KERNEL__ */
 +
 +#endif /* _NETFILTER_HELPERS_H */
 +#endif /* _NETFILTER_MIME_H */
 --- /dev/null
 +++ b/extensions/rtsp/nf_conntrack_rtsp.c
-@@ -0,0 +1,761 @@
+@@ -0,0 +1,756 @@
 +/*
 + * RTSP extension for IP connection tracking
 + * (C) 2003 by Tom Marshall <tmarshall at real.com>
 +#include <net/tcp.h>
 +
 +#include <net/netfilter/nf_conntrack.h>
-+#include <net/netfilter/nf_conntrack_expect.h>
 +#include <net/netfilter/nf_conntrack_helper.h>
 +#include <net/netfilter/nf_conntrack_zones.h>
 +#include "nf_conntrack_rtsp.h"
 +MODULE_PARM_DESC(ports, "port numbers of RTSP servers");
 +module_param(max_outstanding, int, 0400);
 +MODULE_PARM_DESC(max_outstanding, "max number of outstanding SETUP requests per RTSP session");
-+module_param(setup_timeout, int, 0400);
++module_param(setup_timeout, uint, 0400);
 +MODULE_PARM_DESC(setup_timeout, "timeout on for unestablished data channels");
 +
 +static char *rtsp_buffer;
 +                                        &expinfo, rtp_exp, rtcp_exp);
 +#endif
 +              else {
-+                      if (nf_ct_expect_related(rtp_exp) == 0) {
-+                              if (rtcp_exp && nf_ct_expect_related(rtcp_exp) != 0) {
++                      if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
++                              if (rtcp_exp && rtsp_nf_ct_expect_related(rtcp_exp) != 0) {
 +                                      nf_ct_unexpect_related(rtp_exp);
 +                                      pr_info("nf_conntrack_expect_related failed for rtcp\n");
 +                                      ret = NF_DROP;
 +              printk("nf_conntrack_rtsp: max_outstanding must be a positive integer\n");
 +              return -EBUSY;
 +      }
-+      if (setup_timeout < 0) {
-+              printk("nf_conntrack_rtsp: setup_timeout must be a positive integer\n");
-+              return -EBUSY;
-+      }
 +
 +      rtsp_exp_policy.max_expected = max_outstanding;
 +      rtsp_exp_policy.timeout = setup_timeout;
 +#endif /* _IP_CONNTRACK_RTSP_H */
 --- /dev/null
 +++ b/extensions/rtsp/nf_nat_rtsp.c
-@@ -0,0 +1,636 @@
+@@ -0,0 +1,635 @@
 +/*
 + * RTSP extension for TCP NAT alteration
 + * (C) 2003 by Tom Marshall <tmarshall at real.com>
 +#endif
 +#include <net/netfilter/nf_nat_helper.h>
 +#include "nf_conntrack_rtsp.h"
-+#include <net/netfilter/nf_conntrack_expect.h>
 +
 +#include <linux/inet.h>
 +#include <linux/ctype.h>
 +      case pb_single:
 +              for (loport = prtspexp->loport; loport != 0; loport++) { /* XXX: improper wrap? */
 +                      rtp_t->dst.u.udp.port = htons(loport);
-+                      if (nf_ct_expect_related(rtp_exp) == 0) {
++                      if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
 +                              pr_debug("using port %hu\n", loport);
 +                              break;
 +                      }
 +      case pb_range:
 +              for (loport = prtspexp->loport; loport != 0; loport += 2) { /* XXX: improper wrap? */
 +                      rtp_t->dst.u.udp.port = htons(loport);
-+                      if (nf_ct_expect_related(rtp_exp) != 0) {
++                      if (rtsp_nf_ct_expect_related(rtp_exp) != 0) {
 +                              continue;
 +                      }
 +                      hiport = loport + 1;
 +                      rtcp_exp->tuple.dst.u.udp.port = htons(hiport);
-+                      if (nf_ct_expect_related(rtcp_exp) != 0) {
++                      if (rtsp_nf_ct_expect_related(rtcp_exp) != 0) {
 +                              nf_ct_unexpect_related(rtp_exp);
 +                              continue;
 +                      }
 +      case pb_discon:
 +              for (loport = prtspexp->loport; loport != 0; loport++) { /* XXX: improper wrap? */
 +                      rtp_t->dst.u.udp.port = htons(loport);
-+                      if (nf_ct_expect_related(rtp_exp) == 0) {
++                      if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
 +                              pr_debug("using port %hu (1 of 2)\n", loport);
 +                              break;
 +                      }
 +              }
 +              for (hiport = prtspexp->hiport; hiport != 0; hiport++) { /* XXX: improper wrap? */
 +                      rtp_t->dst.u.udp.port = htons(hiport);
-+                      if (nf_ct_expect_related(rtp_exp) == 0) {
++                      if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
 +                              pr_debug("using port %hu (2 of 2)\n", hiport);
 +                              break;
 +                      }
index a9fb796d0965fd4f933e8f669ef1e6da9494e797..5a016e2ae0ac120a0b8169c2c86e021d25a02a70 100644 (file)
  {
        uint32_t  verdict;
        lua_packet_segment *p;
+@@ -79,7 +79,7 @@ lua_tg(struct sk_buff *pskb, const struc
+       L = lua_envs[info->state_id]->L;
+-      if (!skb_make_writable(pskb, pskb->len))
++      if (skb_ensure_writable(pskb, pskb->len))
+               return NF_DROP;
+       /* call the function provided by --function parameter or the default 'process_packet' defined in Lua */
 @@ -88,11 +88,11 @@ lua_tg(struct sk_buff *pskb, const struc
        /* push the lua_packet_segment as a parameter */
        p = (lua_packet_segment *)lua_newuserdata(L, sizeof(lua_packet_segment));
index 23e4e795660387e15c97cd3a13606150ea5c49f7..b7887aa9f599b55fac5f9a4d05df8d1658787f80 100644 (file)
@@ -6,19 +6,19 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squeezelite
-PKG_VERSION:=1.9.1-1130
-PKG_RELEASE:=2
+PKG_VERSION:=1.9.6-1210
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/ralph-irving/squeezelite
+PKG_SOURCE_VERSION:=1b7a17616cd2bbd9935c710dc33cda11cd0de45e
+PKG_MIRROR_HASH:=5993fa5fcacd1640962bc60f88a93faa4fcac74a767fbf820b40a27c338a9062
 
-PKG_LICENSE:=GPL-3.0
-PKG_LICENSE_FILES:=LICENSE.txt
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=LICENSE.txt
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/ralph-irving/squeezelite.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=451cad8da651073d18118fb9ca39faef550825ff
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=e6082b486e364c8cbd7db96fc06dc5243242a3ac786113e42e3061c06ea8889e
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -119,10 +119,6 @@ endif
 
 MAKE_FLAGS+=OPTS="$(opts)"
 
-# Squeezelite uses functions which are deprecated in recent ffmpeg versions.
-# See https://github.com/ralph-irving/squeezelite/issues/60
-TARGET_CFLAGS+=-Wno-deprecated-declarations
-
 define Package/squeezelite/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/squeezelite $(1)/usr/bin
index 330cc407b7f5cd848cf75853f3d2ae2117fcf558..e5dc8068d4503e4e822efe7aac73aff467bb31fa 100644 (file)
@@ -9,9 +9,10 @@ PROG=/usr/bin/squeezelite
 
 # Check if a codec is disabled in the configuration (ie "decode_<codec> 0")
 checkcodec() {
+       local codec
        config_get_bool codec options "$1" 1
 
-       if [ $codec -eq 0 ] ; then
+       if [ "$codec" -eq 0 ] ; then
                if [ -z "$3" ] ; then
                        echo "-e $2"
                else
@@ -25,55 +26,70 @@ checkcodec() {
 make_cmdline() {
        cmdline=""
 
+       local name
        config_get name options name "SqueezeWrt"
        cmdline="$cmdline -n $name"
 
+       local model_name
        config_get model_name options model_name "SqueezeLite"
        cmdline="$cmdline -M $model_name"
 
+       local interface
        config_get interface options interface ""
        [ -n "$interface" ] && cmdline="$cmdline -I $interface"
 
+       local device
        config_get device options device ""
        [ -n "$device" ] && cmdline="$cmdline -o $device"
 
+       local alsa_buffer
        config_get alsa_buffer options alsa_buffer 200
-       [ $alsa_buffer -eq 0 ] && alsa_buffer="200"
+       [ "$alsa_buffer" -eq 0 ] && alsa_buffer="200"
 
+       local alsa_period
        config_get alsa_period options alsa_period 4
-       [ $alsa_period -eq 0 ] && alsa_period="4"
+       [ "$alsa_period" -eq 0 ] && alsa_period="4"
 
+       local alsa_format
        config_get alsa_format options alsa_format 16
-       [ $alsa_format = "0" ] && alsa_format="16"
+       [ "$alsa_format" = "0" ] && alsa_format="16"
 
+       local alsa_mmap
        config_get alsa_mmap options alsa_mmap 0
        cmdline="$cmdline -a $alsa_buffer:$alsa_period:$alsa_format:$alsa_mmap"
 
+       local stream_bufsiz
+       local out_bufsiz
        config_get stream_bufsiz options stream_bufsiz 2048
        config_get out_bufsiz options out_bufsiz 3763
        cmdline="$cmdline -b $stream_bufsiz:$out_bufsiz"
 
+       local max_sr
        config_get max_sr options max_sr 0
-       if [ $max_sr -ne 0 ] ; then
+       [ "$max_sr" -ne 0 ] && {
                max_sr="-r $max_sr"
 
+               local sr_delay
                config_get sr_delay options sr_delay 0
-               [ $sr_delay -ne 0 ] &&  max_sr="$max_sr:$sr_delay"
+               [ "$sr_delay" -ne 0 ] && max_sr="$max_sr:$sr_delay"
                cmdline="$cmdline $max_sr"
-       fi
-
+       }
 
+       local close_delay
        config_get close_delay options close_delay 0
-       [ $close_delay -ne 0 ] && cmdline="$cmdline -C $close_delay"
+       [ "$close_delay" -ne 0 ] && cmdline="$cmdline -C $close_delay"
 
+       local server_addr
        config_get server_addr options server_addr ""
-       if [ -n "$server_addr" ] ; then
+       [ -n "$server_addr" ] && {
+               local server_port
                config_get server_port options server_port 3483
                cmdline="$cmdline -s $server_addr:$server_port"
-       fi
+       }
 
+       local priority
        config_get priority options priority 0
-       [ $priority -ne 0 ] && cmdline="$cmdline -p $priority"
+       [ "$priority" -ne 0 ] && cmdline="$cmdline -p $priority"
 
        local excl_codecs=""
        excl_codecs=$(checkcodec decode_flac flac "$excl_codecs")
@@ -83,15 +99,17 @@ make_cmdline() {
        excl_codecs=$(checkcodec decode_wma_alac wma,alac "$excl_codecs")
        cmdline="$cmdline $excl_codecs"
 
+       local dop
        config_get dop options dsd_over_pcm 0
-       [ $dop -eq 1 ] && cmdline="$cmdline -D"
+       [ "$dop" -eq 1 ] && cmdline="$cmdline -D"
 }
 
 start_service() {
        config_load squeezelite
 
+       local enabled
        config_get_bool enabled options 'enabled' 0
-       [ $enabled -eq 0 ] && return
+       [ "$enabled" -eq 0 ] && return
 
        # Build command params
        make_cmdline
index e016d2bfce394808997e669afa72c8386d7f8fb5..145287379fc6920d2826aaac6e484e6cbf894b8d 100644 (file)
@@ -1,8 +1,6 @@
-Index: squeezelite-1.9.1-1130/main.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/main.c
-+++ squeezelite-1.9.1-1130/main.c
-@@ -84,6 +84,7 @@ static void usage(const char *argv0) {
+--- a/main.c
++++ b/main.c
+@@ -93,6 +93,7 @@ static void usage(const char *argv0) {
  #if IR
                   "  -i [<filename>]\tEnable lirc remote control support (lirc config file ~/.lircrc used if filename not specified)\n"
  #endif
@@ -10,7 +8,7 @@ Index: squeezelite-1.9.1-1130/main.c
                   "  -m <mac addr>\t\tSet mac address, format: ab:cd:ef:12:34:56\n"
                   "  -M <modelname>\tSet the squeezelite player model name sent to the server (default: " MODEL_NAME_STRING ")\n"
                   "  -n <name>\t\tSet the player name\n"
-@@ -267,6 +268,8 @@ int main(int argc, char **argv) {
+@@ -285,6 +286,8 @@ int main(int argc, char **argv) {
        extern bool user_rates;
        char *logfile = NULL;
        u8_t mac[6];
@@ -19,7 +17,7 @@ Index: squeezelite-1.9.1-1130/main.c
        unsigned stream_buf_size = STREAMBUF_SIZE;
        unsigned output_buf_size = 0; // set later
        unsigned rates[MAX_SUPPORTED_SAMPLERATES] = { 0 };
-@@ -307,6 +310,7 @@ int main(int argc, char **argv) {
+@@ -325,6 +328,7 @@ int main(int argc, char **argv) {
  
        int maxSampleRate = 0;
  
@@ -27,7 +25,7 @@ Index: squeezelite-1.9.1-1130/main.c
        char *optarg = NULL;
        int optind = 1;
        int i;
-@@ -314,8 +318,6 @@ int main(int argc, char **argv) {
+@@ -332,8 +336,6 @@ int main(int argc, char **argv) {
  #define MAXCMDLINE 512
        char cmdline[MAXCMDLINE] = "";
  
@@ -36,7 +34,7 @@ Index: squeezelite-1.9.1-1130/main.c
        for (i = 0; i < argc && (strlen(argv[i]) + strlen(cmdline) + 2 < MAXCMDLINE); i++) {
                strcat(cmdline, argv[i]);
                strcat(cmdline, " ");
-@@ -323,7 +325,7 @@ int main(int argc, char **argv) {
+@@ -341,7 +343,7 @@ int main(int argc, char **argv) {
  
        while (optind < argc && strlen(argv[optind]) >= 2 && argv[optind][0] == '-') {
                char *opt = argv[optind] + 1;
@@ -45,7 +43,7 @@ Index: squeezelite-1.9.1-1130/main.c
  #if ALSA
                                   "UVO"
  #endif
-@@ -424,6 +426,9 @@ int main(int argc, char **argv) {
+@@ -442,6 +444,9 @@ int main(int argc, char **argv) {
                case 'f':
                        logfile = optarg;
                        break;
@@ -55,7 +53,7 @@ Index: squeezelite-1.9.1-1130/main.c
                case 'm':
                        {
                                int byte = 0;
-@@ -733,6 +738,11 @@ int main(int argc, char **argv) {
+@@ -755,6 +760,11 @@ int main(int argc, char **argv) {
        winsock_init();
  #endif
  
@@ -67,7 +65,7 @@ Index: squeezelite-1.9.1-1130/main.c
        stream_init(log_stream, stream_buf_size);
  
        if (!strcmp(output_device, "-")) {
-@@ -776,7 +786,7 @@ int main(int argc, char **argv) {
+@@ -798,7 +808,7 @@ int main(int argc, char **argv) {
                exit(1);
        }
  
@@ -76,42 +74,18 @@ Index: squeezelite-1.9.1-1130/main.c
  
        decode_close();
        stream_close();
-Index: squeezelite-1.9.1-1130/squeezelite.h
-===================================================================
---- squeezelite-1.9.1-1130.orig/squeezelite.h
-+++ squeezelite-1.9.1-1130/squeezelite.h
-@@ -414,7 +414,7 @@ typedef enum { EVENT_TIMEOUT = 0, EVENT_
- char *next_param(char *src, char c);
- u32_t gettime_ms(void);
--void get_mac(u8_t *mac);
-+in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac);
- void set_nonblock(sockfd s);
- int connect_timeout(sockfd sock, const struct sockaddr *addr, socklen_t addrlen, int timeout);
- void server_addr(char *server, in_addr_t *ip_ptr, unsigned *port_ptr);
-@@ -470,7 +470,7 @@ void buf_init(struct buffer *buf, size_t
- void buf_destroy(struct buffer *buf);
- // slimproto.c
--void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
-+void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
- void slimproto_stop(void);
- void wake_controller(void);
-Index: squeezelite-1.9.1-1130/slimproto.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/slimproto.c
-+++ squeezelite-1.9.1-1130/slimproto.c
-@@ -113,7 +113,7 @@ void send_packet(u8_t *packet, size_t le
+--- a/slimproto.c
++++ b/slimproto.c
+@@ -113,7 +113,7 @@ void send_packet(u8_t *packet, size_t len) {
        }
  }
  
 -static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t mac[6]) {
 +static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t *mac) {
-       const char *base_cap = "Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION;
-       struct HELO_packet pkt;
-@@ -757,7 +757,7 @@ void wake_controller(void) {
+       #define BASE_CAP "Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION
+       #define SSL_CAP "CanHTTPS=1"
+       const char *base_cap;
+@@ -761,7 +761,7 @@ void wake_controller(void) {
        wake_signal(wake_e);
  }
  
@@ -120,7 +94,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
        struct sockaddr_in d;
        struct sockaddr_in s;
        char *buf;
-@@ -774,7 +774,7 @@ in_addr_t discover_server(char *default_
+@@ -778,7 +778,7 @@ in_addr_t discover_server(char *default_server) {
        memset(&d, 0, sizeof(d));
        d.sin_family = AF_INET;
        d.sin_port = htons(PORT);
@@ -129,7 +103,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
  
        pollinfo.fd = disc_sock;
        pollinfo.events = POLLIN;
-@@ -809,7 +809,7 @@ in_addr_t discover_server(char *default_
+@@ -813,7 +813,7 @@ in_addr_t discover_server(char *default_server) {
  #define FIXED_CAP_LEN 256
  #define VAR_CAP_LEN   128
  
@@ -138,7 +112,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
        struct sockaddr_in serv_addr;
        static char fixed_cap[FIXED_CAP_LEN], var_cap[VAR_CAP_LEN] = "";
        bool reconnect = false;
-@@ -830,7 +830,7 @@ void slimproto(log_level level, char *se
+@@ -834,7 +834,7 @@ void slimproto(log_level level, char *server, u8_t mac[6], const char *name, con
        }
  
        if (!slimproto_ip) {
@@ -147,7 +121,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
        }
  
        if (!slimproto_port) {
-@@ -911,7 +911,7 @@ void slimproto(log_level level, char *se
+@@ -915,7 +915,7 @@ void slimproto(log_level level, char *server, u8_t mac[6], const char *name, con
  
                        // rediscover server if it was not set at startup
                        if (!server && ++failed_connect > 5) {
@@ -156,10 +130,28 @@ Index: squeezelite-1.9.1-1130/slimproto.c
                        }
  
                } else {
-Index: squeezelite-1.9.1-1130/utils.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/utils.c
-+++ squeezelite-1.9.1-1130/utils.c
+--- a/squeezelite.h
++++ b/squeezelite.h
+@@ -455,7 +455,7 @@ char* strcasestr(const char *haystack, const char *needle);
+ char *next_param(char *src, char c);
+ u32_t gettime_ms(void);
+-void get_mac(u8_t *mac);
++in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac);
+ void set_nonblock(sockfd s);
+ int connect_timeout(sockfd sock, const struct sockaddr *addr, socklen_t addrlen, int timeout);
+ void server_addr(char *server, in_addr_t *ip_ptr, unsigned *port_ptr);
+@@ -511,7 +511,7 @@ void buf_init(struct buffer *buf, size_t size);
+ void buf_destroy(struct buffer *buf);
+ // slimproto.c
+-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
++void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
+ void slimproto_stop(void);
+ void wake_controller(void);
+--- a/utils.c
++++ b/utils.c
 @@ -22,11 +22,11 @@
  #include "squeezelite.h"
  
@@ -175,9 +167,9 @@ Index: squeezelite-1.9.1-1130/utils.c
  #include <net/if_dl.h>
  #include <net/if_types.h>
  #endif
-@@ -44,15 +44,11 @@
- #if WIN
- #include <iphlpapi.h>
+@@ -49,15 +49,11 @@
+ #include <ctype.h>
+ #endif
  #endif
 -#if OSX
 -#include <net/if_dl.h>
@@ -193,7 +185,7 @@ Index: squeezelite-1.9.1-1130/utils.c
  // logging functions
  const char *logtime(void) {
        static char buf[100];
-@@ -114,58 +110,94 @@ u32_t gettime_ms(void) {
+@@ -119,58 +115,94 @@ u32_t gettime_ms(void) {
  #endif
  }
  
@@ -228,23 +220,29 @@ Index: squeezelite-1.9.1-1130/utils.c
 +      unsigned char *ptr;
 +      in_addr_t bcast_addr = 0;
 +      int have_mac = 0, have_ifname = 0;
-+
+-      }
 +      loglevel = level;
-+
+-      mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0;
 +      // Check for non-zero MAC
 +      if (mac[0] | mac[1] | mac[2] != 0)
 +              have_mac = 1;
-+
+-      int s = socket(AF_INET, SOCK_DGRAM, 0);
 +      // Copy interface name, if it was provided.
 +      if (iface != NULL) {
 +              if (strlen(iface) > sizeof(ifname))
 +                      return -1;
  
-+              strncpy(ifname, iface, sizeof(ifname));
+-      ifc.ifc_len = sizeof(ifs);
+-      ifc.ifc_req = ifs;
++              strncpy(ifname, iface, sizeof(ifname) - 1);
 +              have_ifname = 1;
-       }
++      }
  
--      mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0;
+-      if (ioctl(s, SIOCGIFCONF, &ifc) == 0) {
+-              ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
 +      if (getifaddrs(&addrs) == 0) {
 +              //iterate to find corresponding ethernet address
 +              for (ifa = addrs; ifa; ifa = ifa->ifa_next) {
@@ -255,11 +253,10 @@ Index: squeezelite-1.9.1-1130/utils.c
 +                                || !ifa->ifa_flags & IFF_BROADCAST) {
 +                              continue;
 +                      }
--      int s = socket(AF_INET, SOCK_DGRAM, 0);
++
 +                      if (!have_ifname) {
 +                              // We have found a valid interface name. Keep it.
-+                              strncpy(ifname, ifa->ifa_name, sizeof(ifname));
++                              strncpy(ifname, ifa->ifa_name, sizeof(ifname) - 1);
 +                              have_ifname = 1;
 +                      } else {
 +                              if (strncmp(ifname, ifa->ifa_name, sizeof(ifname)) != 0) {
@@ -268,11 +265,15 @@ Index: squeezelite-1.9.1-1130/utils.c
 +                              }
 +                      }
  
--      ifc.ifc_len = sizeof(ifs);
--      ifc.ifc_req = ifs;
+-              for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
+-                      if (ifr->ifr_addr.sa_family == AF_INET) {
  
--      if (ioctl(s, SIOCGIFCONF, &ifc) == 0) {
--              ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
+-                              strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name) - 1);
+-                              if (ioctl (s, SIOCGIFHWADDR, &ifreq) == 0) {
+-                                      memcpy(mac, ifreq.ifr_hwaddr.sa_data, 6);
+-                                      if (mac[0]+mac[1]+mac[2] != 0) {
+-                                              break;
+-                                      }
 +                      // Check address family.
 +                      if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET &&
 +                          ((struct sockaddr_in *)ifa->ifa_broadaddr)->sin_addr.s_addr != 0) {
@@ -286,16 +287,7 @@ Index: squeezelite-1.9.1-1130/utils.c
 +                                      have_ifname = 0;
 +                      }
 +              }
--              for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
--                      if (ifr->ifr_addr.sa_family == AF_INET) {
--
--                              strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
--                              if (ioctl (s, SIOCGIFHWADDR, &ifreq) == 0) {
--                                      memcpy(mac, ifreq.ifr_hwaddr.sa_data, 6);
--                                      if (mac[0]+mac[1]+mac[2] != 0) {
--                                              break;
--                                      }
++
 +              // Find MAC address matching interface
 +              if (!have_mac && bcast_addr != 0) {
 +                      for (ifa = addrs; ifa; ifa = ifa->ifa_next) {
@@ -324,7 +316,7 @@ Index: squeezelite-1.9.1-1130/utils.c
  #if SUN
  void get_mac(u8_t mac[]) {
        struct  arpreq          parpreq;
-@@ -232,30 +264,6 @@ void get_mac(u8_t mac[]) {
+@@ -237,30 +269,6 @@ void get_mac(u8_t mac[]) {
  }
  #endif
  
index 4504a55374489cce14ce3b884edb42dc0e9d3746..c65243210b4212b05a2a699355db8b455ee5804a 100644 (file)
@@ -1,8 +1,6 @@
-Index: squeezelite-1.9.1-1130/Makefile
-===================================================================
---- squeezelite-1.9.1-1130.orig/Makefile
-+++ squeezelite-1.9.1-1130/Makefile
-@@ -17,7 +17,7 @@ OPT_NO_FAAD = -DNO_FAAD
+--- a/Makefile
++++ b/Makefile
+@@ -22,7 +22,7 @@ OPT_OPUS    = -DOPUS
  SOURCES = \
        main.c slimproto.c buffer.c stream.c utils.c \
        output.c output_alsa.c output_pa.c output_stdout.c output_pack.c decode.c \
@@ -11,20 +9,18 @@ Index: squeezelite-1.9.1-1130/Makefile
  
  SOURCES_DSD      = dsd.c dop.c dsd2pcm/dsd2pcm.c
  SOURCES_FF       = ffmpeg.c
-@@ -30,7 +30,7 @@ SOURCES_FAAD     = faad.c
- LINK_LINUX       = -ldl
- LINK_RPI         = -lwiringPi
+@@ -40,7 +40,7 @@ LINK_LINUX       = -ldl
+ LINK_SSL         = -lssl -lcrypto
+ LINK_ALAC        = -lalac
  
--LINKALL          = -lFLAC -lmad -lvorbisfile -lmpg123
-+LINKALL          = -lFLAC -lvorbisfile -lmpg123
- LINKALL_FF       = -lavcodec -lavformat -lavutil
+-LINKALL          = -lmad -lmpg123 -lFLAC -lvorbisfile -lvorbis -logg
++LINKALL          = -lmpg123 -lFLAC -lvorbisfile -lvorbis -logg
+ LINKALL_FF       = -lavformat -lavcodec -lavutil
  LINKALL_RESAMPLE = -lsoxr
  LINKALL_IR       = -llirc_client
-Index: squeezelite-1.9.1-1130/decode.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/decode.c
-+++ squeezelite-1.9.1-1130/decode.c
-@@ -176,11 +176,7 @@ void decode_init(log_level level, const
+--- a/decode.c
++++ b/decode.c
+@@ -184,11 +184,7 @@ void decode_init(log_level level, const char *include_codecs, const char *exclud
        if (!strstr(exclude_codecs, "pcm")      && (!include_codecs || (order_codecs = strstr(include_codecs, "pcm"))))
                sort_codecs((include_codecs ? order_codecs - include_codecs : i), register_pcm());
  
@@ -37,32 +33,28 @@ Index: squeezelite-1.9.1-1130/decode.c
                (!include_codecs || (order_codecs = strstr(include_codecs, "mp3")) || (order_codecs = strstr(include_codecs, "mpg"))))
                sort_codecs((include_codecs ? order_codecs - include_codecs : i), register_mpg());
  
-Index: squeezelite-1.9.1-1130/main.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/main.c
-+++ squeezelite-1.9.1-1130/main.c
-@@ -44,7 +44,7 @@
+--- a/main.c
++++ b/main.c
+@@ -51,7 +51,7 @@
  #else
  #define CODECS_DSD  ""
  #endif
 -#define CODECS_MP3  " (mad,mpg for specific mp3 codec)"
 +#define CODECS_MP3  ""
  
- #define CODECS CODECS_BASE CODECS_AAC CODECS_FF CODECS_DSD CODECS_MP3
+ #define CODECS CODECS_BASE CODECS_AAC CODECS_FF CODECS_OPUS CODECS_DSD CODECS_MP3
  
-Index: squeezelite-1.9.1-1130/squeezelite.h
-===================================================================
---- squeezelite-1.9.1-1130.orig/squeezelite.h
-+++ squeezelite-1.9.1-1130/squeezelite.h
-@@ -163,7 +163,6 @@
+--- a/squeezelite.h
++++ b/squeezelite.h
+@@ -190,7 +190,6 @@
  
  #if LINUX
  #define LIBFLAC "libFLAC.so.8"
 -#define LIBMAD  "libmad.so.0"
  #define LIBMPG "libmpg123.so.0"
  #define LIBVORBIS "libvorbisfile.so.3"
- #define LIBTREMOR "libvorbisidec.so.1"
-@@ -177,7 +176,6 @@
+ #define LIBOPUS "libopusfile.so.0"
+@@ -205,7 +204,6 @@
  
  #if OSX
  #define LIBFLAC "libFLAC.8.dylib"
@@ -70,19 +62,19 @@ Index: squeezelite-1.9.1-1130/squeezelite.h
  #define LIBMPG "libmpg123.0.dylib"
  #define LIBVORBIS "libvorbisfile.3.dylib"
  #define LIBTREMOR "libvorbisidec.1.dylib"
-@@ -190,7 +188,6 @@
+@@ -219,7 +217,6 @@
  
  #if WIN
  #define LIBFLAC "libFLAC.dll"
 -#define LIBMAD  "libmad-0.dll"
  #define LIBMPG "libmpg123-0.dll"
  #define LIBVORBIS "libvorbisfile.dll"
- #define LIBTREMOR "libvorbisidec.dll"
-@@ -203,7 +200,6 @@
+ #define LIBOPUS "libopusfile-0.dll"
+@@ -233,7 +230,6 @@
  
  #if FREEBSD
- #define LIBFLAC "libFLAC.so.11"
--#define LIBMAD  "libmad.so.2"
+ #define LIBFLAC "libFLAC.so.8"
+-#define LIBMAD  "libmad.so.0"
  #define LIBMPG "libmpg123.so.0"
- #define LIBVORBIS "libvorbisfile.so.6"
+ #define LIBVORBIS "libvorbisfile.so.3"
  #define LIBTREMOR "libvorbisidec.so.1"
diff --git a/utils/antfs-mount/Makefile b/utils/antfs-mount/Makefile
new file mode 100644 (file)
index 0000000..48ffc6f
--- /dev/null
@@ -0,0 +1,28 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=antfs-mount
+PKG_RELEASE:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/antfs-mount
+       SECTION:=utils
+       CATEGORY:=Utilities
+       SUBMENU:=Filesystem
+       TITLE:=NTFS mount script for AVM NTFS driver
+       PKGARCH:=all
+       DEPENDS:=+kmod-fs-antfs
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/antfs-mount/install
+       $(INSTALL_DIR) $(1)/sbin
+       $(INSTALL_BIN) ./files/mount.ntfs $(1)/sbin
+endef
+
+$(eval $(call BuildPackage,antfs-mount))
diff --git a/utils/antfs-mount/files/mount.ntfs b/utils/antfs-mount/files/mount.ntfs
new file mode 100644 (file)
index 0000000..e97709a
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+mount -t antfs "$@"
index 6a8431fd2fba2d2f3a3327c6df48188e20a5bd5b..bea3d033ee84bd97dc75f5da093d23029c78ae9d 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btrfs-progs
 PKG_VERSION:=5.4.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs
index 608d3d6c59b0c861debbb049e515e84f69ba6692..6b9ab62df9c05addc0d8aad08886ac30fbc2e7ce 100644 (file)
@@ -1,7 +1,9 @@
 #!/bin/sh
 
 preinit_btrfs_scan() {
-       grep -vq btrfs /proc/filesystems || btrfs device scan
+       if grep -q btrfs /proc/filesystems; then
+                btrfs device scan
+       fi
 }
 
 boot_hook_add preinit_main preinit_btrfs_scan
index 809489a605201d50555393fc6feea27306a2668b..acf690e5f016ac0164fd93fe4ab817bf4be33bdd 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.10.0
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://collectd.org/files/ \
@@ -382,7 +382,7 @@ $(eval $(call BuildPlugin,exec,process exec input,exec,))
 $(eval $(call BuildPlugin,filecount,file count input,filecount,))
 $(eval $(call BuildPlugin,fscache,file-system based caching framework input,fscache,))
 $(eval $(call BuildPlugin,interface,network interfaces input,interface,))
-$(eval $(call BuildPlugin,iptables,iptables status input,iptables,+PACKAGE_collectd-mod-iptables:iptables +libiptc))
+$(eval $(call BuildPlugin,iptables,iptables status input,iptables,+PACKAGE_collectd-mod-iptables:iptables +libip4tc +libip6tc))
 $(eval $(call BuildPlugin,irq,interrupt usage input,irq,))
 $(eval $(call BuildPlugin,iwinfo,libiwinfo wireless statistics,iwinfo,+PACKAGE_collectd-mod-iwinfo:libiwinfo))
 $(eval $(call BuildPlugin,load,system load input,load,))
index 8437ce8e89a70c53dbd01fc82a09c26548ec651e..3da8c8cb35ac95aa7f6a1a2e470d4c790707a0b0 100644 (file)
@@ -1,15 +1,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=containerd
-PKG_VERSION:=1.2.10
-PKG_RELEASE:=4
+PKG_VERSION:=1.2.13
+PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/containerd/containerd/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=a0965e1492fca558629826f1aa89a9675de3d451cec67540400b30c0bf6ac387
-PKG_SOURCE_VERSION:=b34a5c8af56e510852c35414db4c1f4fa6172339
+PKG_HASH:=0811057ab67b78ce911416e793edaeb14b3f1e105d67b8e67b6302e0eab572e4
+PKG_SOURCE_VERSION:=7ad184331fa3e55e52b890ea95e65ba581ae3429
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 3136513691a88b286032ddcb876ff704302346bf..a09b81b265eb6aa3aeaa8a17410d08410f8b7c1f 100644 (file)
@@ -8,17 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cryptsetup
-PKG_VERSION:=2.2.2
+PKG_VERSION:=2.3.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.2
-PKG_HASH:=2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46
+PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v2.3
+PKG_HASH:=395690de99509428354d3cd15cf023bed01487e6f1565b2181e013dc847bbc85
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
 
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/cryptsetup
@@ -42,13 +45,14 @@ CONFIGURE_ARGS += \
        --disable-veritysetup \
        --disable-udev \
        --with-default-luks-format=LUKS2 \
+       --with-luks2-lock-path=/var/run/cryptsetup \
        --with-crypto_backend=kernel
 
 define Package/cryptsetup/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) $(PKG_BUILD_DIR)/.libs/cryptsetup $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/cryptsetup $(1)/usr/sbin
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_BUILD_DIR)/.libs/libcryptsetup.so* $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcryptsetup.so* $(1)/usr/lib
 endef
 
 $(eval $(call BuildPackage,cryptsetup))
index 6d4acc2a61eb144ff7419de0b6fd9ecf42ee0335..adbaa6b7c6313cb332673b53fd014a62865ebc62 100644 (file)
@@ -1,15 +1,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=docker-ce
-PKG_VERSION:=19.03.5
+PKG_VERSION:=19.03.8
 PKG_RELEASE:=2
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=components/cli/LICENSE components/engine/LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/docker-ce/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=d7948256e32bb4c104285d78e652ba9ead898c2e4dcee05f05ede2eaba719919
-PKG_SOURCE_VERSION:=633a0ea838 # SHA1 used within the docker executables
+PKG_HASH:=781c69e00e98f64fb167ee61de764882bd4926a873d98ce6f370d3cd3435b501
+PKG_SOURCE_VERSION:=afacb8b7f0 # SHA1 used within the docker executables
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
@@ -22,9 +22,9 @@ define CheckExpectedSrcVer
 endef
 
 # values from respective '.installer' files at https://github.com/docker/docker-ce/blob/v$(PKG_VERSION)/components/engine/hack/dockerfile/install/
-$(eval $(call CheckExpectedSrcVer,../containerd/Makefile,b34a5c8af56e510852c35414db4c1f4fa6172339))
-$(eval $(call CheckExpectedSrcVer,../libnetwork/Makefile,3eb39382bfa6a3c42f83674ab080ae13b0e34e5d))
-$(eval $(call CheckExpectedSrcVer,../runc/Makefile,3e425f80a8c931f88e6d94a8c831b9d5aa481657))
+$(eval $(call CheckExpectedSrcVer,../containerd/Makefile,7ad184331fa3e55e52b890ea95e65ba581ae3429))
+$(eval $(call CheckExpectedSrcVer,../libnetwork/Makefile,9fd385be8302dbe1071a3ce124891893ff27f90f))
+$(eval $(call CheckExpectedSrcVer,../runc/Makefile,dc9208a3303feef5b3839f4323d9beb36df0a9dd))
 $(eval $(call CheckExpectedSrcVer,../tini/Makefile,fec3683b971d9c3ef73f284f176672c44b448662))
 
 PKG_BUILD_DEPENDS:=golang/host
index 1e5549f67ea977d325c04bf1b840d735975ec8b0..029baa5ee576183d4918c55af40de170798e9a42 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gptfdisk
-PKG_VERSION:=1.0.4
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=b663391a6876f19a3cd901d862423a16e2b5ceaa2f4a3b9bb681e64b9c7ba78d
+PKG_HASH:=0e7d3987cd0488ecaf4b48761bc97f40b1dc089e5ff53c4b37abe30bc67dcb2f
 
 PKG_MAINTAINER:=Alif M. Ahmad <alive4ever@live.com>
 PKG_LICENSE:=GPL-2.0-or-later
diff --git a/utils/gptfdisk/patches/010-gptcurses-Add-missing-header.patch b/utils/gptfdisk/patches/010-gptcurses-Add-missing-header.patch
deleted file mode 100644 (file)
index 08a77a5..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9e6016b07ff6d1de5143d3dfefb58fb4268a78e1 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 7 Oct 2019 15:34:43 -0700
-Subject: [PATCH 1/4] gptcurses: Add missing header
-
-Needed with uClibc++ as it doesn't implicitly include it.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- gptcurses.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gptcurses.cc b/gptcurses.cc
-index 3e9b240..4ebfde1 100644
---- a/gptcurses.cc
-+++ b/gptcurses.cc
-@@ -19,6 +19,7 @@
-  *
-  */
-+#include <clocale>
- #include <iostream>
- #include <string>
- #include <sstream>
--- 
-2.17.1
-
diff --git a/utils/gptfdisk/patches/020-support-Flush-cout-in-GetYN.patch b/utils/gptfdisk/patches/020-support-Flush-cout-in-GetYN.patch
deleted file mode 100644 (file)
index 21f29a9..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5542b160fa73e5e81e83c2d8dd1b79c3023094ee Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 7 Oct 2019 15:36:31 -0700
-Subject: [PATCH 2/4] support: Flush cout in GetYN
-
-uClibc++ does not implicitly flush cout before getline.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- support.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/support.cc b/support.cc
-index d47965a..5ab8a23 100644
---- a/support.cc
-+++ b/support.cc
-@@ -101,7 +101,7 @@ char GetYN(void) {
-    do {
-       if ( again ) { cout << "Your option? " ; }
-       again = 1 ;
--      cout << "(Y/N): ";
-+      cout << "(Y/N): " << flush;
-       line = ReadString();
-       response = toupper(line[0]);
-    } while ((response != 'Y') && (response != 'N'));
--- 
-2.17.1
-
diff --git a/utils/gptfdisk/patches/030-support-flush-cout-in-GetNumber.patch b/utils/gptfdisk/patches/030-support-flush-cout-in-GetNumber.patch
deleted file mode 100644 (file)
index 326be84..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 31d1f45cd63ec142fc559ea4f8a70bd4a1151c42 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 7 Oct 2019 15:39:14 -0700
-Subject: [PATCH 3/4] support: flush cout in GetNumber
-
-uClibc++ does not implicitly do this before getline.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- support.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/support.cc b/support.cc
-index 5ab8a23..1107993 100644
---- a/support.cc
-+++ b/support.cc
-@@ -73,7 +73,7 @@ uint64_t GetNumber(uint64_t low, uint64_t high, uint64_t def, const string & pro
-    if (low != high) { // bother only if low and high differ...
-       do {
--         cout << prompt;
-+         cout << prompt << flush;
-          cin.getline(line, 255);
-          if (!cin.good())
-             exit(5);
--- 
-2.17.1
-
diff --git a/utils/gptfdisk/patches/040-support-flush-cout-in-ReadString.patch b/utils/gptfdisk/patches/040-support-flush-cout-in-ReadString.patch
deleted file mode 100644 (file)
index 2e0e271..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From 185f73b1084936f85beddd4523a302cb1f906234 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Mon, 7 Oct 2019 15:41:53 -0700
-Subject: [PATCH 4/4] support: flush cout in ReadString
-
-uClibc++ does not implicitly do this.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
----
- support.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/support.cc b/support.cc
-index 1107993..891caad 100644
---- a/support.cc
-+++ b/support.cc
-@@ -55,6 +55,7 @@ string ReadString(void) {
- string ReadString(void) {
-    string inString;
-+   cout << flush;
-    getline(cin, inString);
-    if (!cin.good())
-       exit(5);
--- 
-2.17.1
-
index e42e26f51b5072acefb7a4c27683fbe3cc0776be..1ad8332c8d87c70dbb70d50bfe8f0f2d1606555c 100644 (file)
@@ -30,7 +30,7 @@ diff --git a/gptcurses.cc b/gptcurses.cc
 index 4ebfde1..ca6f4ea 100644
 --- a/gptcurses.cc
 +++ b/gptcurses.cc
-@@ -418,7 +418,7 @@ void GPTDataCurses::Verify(void) {
+@@ -422,7 +422,7 @@ void GPTDataCurses::Verify(void) {
     def_prog_mode();
     endwin();
     GPTData::Verify();
@@ -39,7 +39,7 @@ index 4ebfde1..ca6f4ea 100644
     cin.get(junk);
     reset_prog_mode();
     refresh();
-@@ -816,7 +816,7 @@ void ShowTypes(void) {
+@@ -820,7 +820,7 @@ void ShowTypes(void) {
     def_prog_mode();
     endwin();
     tempType.ShowAllTypes(LINES - 3);
@@ -52,20 +52,20 @@ diff --git a/parttypes.cc b/parttypes.cc
 index cd225d1..6c2c8c6 100644
 --- a/parttypes.cc
 +++ b/parttypes.cc
-@@ -524,7 +524,7 @@ void PartType::ShowAllTypes(int maxLines) const {
-             if (thisType->next) {
-                cout << "\n";
-                if ((maxLines > 0) && (lineCount++ % maxLines) == 0) {
--                  cout << "Press the <Enter> key to see more codes: ";
-+                  cout << "Press the <Enter> key to see more codes: " << flush;
-                   getline(cin, line);
-                } // if reached screen line limit
-             } // if there's another entry following this one
+@@ -530,7 +530,7 @@ void PartType::ShowAllTypes(int maxLines) const {
+    cout.unsetf(ios::uppercase);
+    if (maxLines > 0) {
+-      cout << "Type search string, or <Enter> to show all codes: ";
++      cout << "Type search string, or <Enter> to show all codes: " << flush;
+       matchString = ToLower(ReadString());
+    } // if
+    while (thisType != NULL) {
 diff --git a/support.cc b/support.cc
 index 891caad..645ef5d 100644
 --- a/support.cc
 +++ b/support.cc
-@@ -123,7 +123,7 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
+@@ -127,7 +127,7 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
     char line[255];
  
     do {
index 2409c92f17f754d34cfea14c155c982493ef04e8..b53e8585d5e9e7b075ca83e27cffdf43bf121650 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haveged
 PKG_VERSION:=1.9.8
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/jirka-h/haveged/tar.gz/v$(PKG_VERSION)?
index c0b1a7ffc1118b5e19e47b218a0aa7ef0393e891..da3a55d6d9c60ffeaa033face53df75130e8cfeb 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh /etc/rc.common
 
-START=13
+START=01
 USE_PROCD=1
 
 HAVEGED_THRESHOLD=1024
index a0ebac2da24fc63422e7839b0f88f6107f5aa730..88172afddb11fd97fea39390c1b14cfbfe4d259f 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=irqbalance
 PKG_VERSION:=1.6.0
-PKG_RELEASE:=6
+PKG_RELEASE:=7
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_PROTO:=git
index 3f968d075640d215ad83d8caa41f98b6a9edd727..638dcb39f65ae4973424495926f795da6b74b366 100644 (file)
@@ -1,8 +1,15 @@
 #!/bin/sh /etc/rc.common
 
-START=11
+START=90
+STOP=10
+
 USE_PROCD=1
 
+service_triggers()
+{
+       procd_add_reload_trigger "irqbalance"
+}
+
 start_service() {
        local enabled
        config_load 'irqbalance'
@@ -25,4 +32,3 @@ start_service() {
        procd_set_param respawn
        procd_close_instance
 }
-
index ba583f25c6d4d64eb1119891a03baf202023389c..2c73778525be8ceed053c0c2ae5f1f4f0f2d54db 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnetwork
-PKG_RELEASE:=3
+PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
@@ -12,9 +12,9 @@ GO_PKG_BUILD_PKG:= \
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://$(GO_PKG)
-PKG_SOURCE_VERSION:=3eb39382bfa6a3c42f83674ab080ae13b0e34e5d
-PKG_SOURCE_DATE:=2019-10-22
-PKG_MIRROR_HASH:=0c2e3c83559b9ac27d2ef953911400957c8634847038c9da83a1fd8769a37a8d
+PKG_SOURCE_VERSION:=9fd385be8302dbe1071a3ce124891893ff27f90f
+PKG_SOURCE_DATE:=2020-01-03
+PKG_MIRROR_HASH:=16cea9d9978b11869029bc9ae0da533c2d7fdf4b9c1f7905bf6c98f443347831
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
index 261235a42c4602fe8dc1381a5a0b2203bf163720..2fa1eda46551b0e3e1d2f1322b401a04044b7f4c 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
-PKG_VERSION:=2.03.05
+PKG_VERSION:=2.03.08
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2
-PKG_HASH:=ca52815c999b20c6d25e3192f142f081b93d01f07b9d787e99664b169dba2700
+PKG_HASH:=6e0261dc9f6ab0ef1fc4a63d105a73e06eb536a273a9d6c2ccc414548c8e1ec8
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
@@ -22,6 +22,8 @@ PKG_LICENSE:=GPL-2.0 LGPL-2.1
 PKG_LICENSE_FILES:=COPYING COPYING.lib
 PKG_CPE_ID:=cpe:/a:heinz_mauelshagen:lvm2
 
+PKG_BUILD_PARALLEL:=1
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libdevmapper
@@ -53,11 +55,11 @@ define Package/lvm2/description
 endef
 
 CONFIGURE_ARGS += \
-  --disable-o_direct \
-  --with-default-pid-dir=/var/run \
-  --with-default-dm-run-dir=/var/run \
-  --with-default-run-dir=/var/run/lvm \
-  --with-default-locking-dir=/var/lock/lvm
+       --disable-o_direct \
+       --with-default-pid-dir=/var/run \
+       --with-default-dm-run-dir=/var/run \
+       --with-default-run-dir=/var/run/lvm \
+       --with-default-locking-dir=/var/lock/lvm
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
diff --git a/utils/lvm2/patches/000-compile.patch b/utils/lvm2/patches/000-compile.patch
deleted file mode 100644 (file)
index 111a86e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/make.tmpl.in
-+++ b/make.tmpl.in
-@@ -29,7 +29,7 @@ SHELL = @SHELL@
- # Allow environment to override any built-in default value for CC.
- # If there is a built-in default, CC is NOT set to @CC@ here.
--CC ?= @CC@
-+CC = @CC@
- # If $(CC) holds the usual built-in default value of 'cc' then replace it with
- # the configured value.
diff --git a/utils/lvm2/patches/001-include_fix.patch b/utils/lvm2/patches/001-include_fix.patch
deleted file mode 100644 (file)
index c209c0e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/device/dev-type.c
-+++ b/lib/device/dev-type.c
-@@ -25,7 +25,7 @@
- #include <ctype.h>
- #ifdef BLKID_WIPING_SUPPORT
--#include <blkid.h>
-+#include <blkid/blkid.h>
- #endif
- #ifdef UDEV_SYNC_SUPPORT
index d547c5f78bd01d2c5867714dc8343da303e1df84..1cc2b8f86ca9a523c6c16c5de7346006cb225e61 100644 (file)
@@ -1,6 +1,6 @@
 --- a/lib/commands/toolcontext.c
 +++ b/lib/commands/toolcontext.c
-@@ -1649,7 +1649,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
+@@ -1599,7 +1599,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
        /* FIXME Make this configurable? */
        reset_lvm_errno(1);
  
@@ -9,10 +9,10 @@
        /* Set in/out stream buffering before glibc */
        if (set_buffering
  #ifdef SYS_gettid
-@@ -2031,7 +2031,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
-       if (cmd->libmem)
-               dm_pool_destroy(cmd->libmem);
+@@ -1980,7 +1980,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
  
+       if (cmd->pending_delete_mem)
+               dm_pool_destroy(cmd->pending_delete_mem);
 -#ifndef VALGRIND_POOL
 +#if defined(__GLIBC__) && !defined(VALGRIND_POOL)
        if (cmd->linebuffer) {
@@ -20,7 +20,7 @@
                if (is_valid_fd(STDIN_FILENO) &&
 --- a/tools/lvmcmdline.c
 +++ b/tools/lvmcmdline.c
-@@ -3055,6 +3055,7 @@ int lvm_split(char *str, int *argc, char **argv, int max)
+@@ -3230,6 +3230,7 @@ int lvm_split(char *str, int *argc, char **argv, int max)
  /* Make sure we have always valid filedescriptors 0,1,2 */
  static int _check_standard_fds(void)
  {
@@ -28,7 +28,7 @@
        int err = is_valid_fd(STDERR_FILENO);
  
        if (!is_valid_fd(STDIN_FILENO) &&
-@@ -3081,6 +3082,12 @@ static int _check_standard_fds(void)
+@@ -3256,6 +3257,12 @@ static int _check_standard_fds(void)
                       strerror(errno));
                return 0;
        }
index 13682bf5843b723eacfb3e33c628cf99ed8d370d..2993a5a4600515208153c41087ba7dcddf19ed49 100644 (file)
@@ -15,7 +15,7 @@ on standard C libraries without O_DIRECT_SUPPORT.
 
 --- a/lib/device/dev-io.c
 +++ b/lib/device/dev-io.c
-@@ -564,7 +564,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet)
+@@ -374,7 +374,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet)
                return 0;
        }
  
index e8cb4140a8b4e1973ee14bdd7680b0d93deb829b..eef25fa8eb3a964a5dfcbed0697d4ea4a455d02d 100644 (file)
@@ -1,17 +1,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=runc
-PKG_VERSION:=1.0.0-rc8+91-3e425f80
-PKG_RELEASE:=4
+PKG_VERSION:=1.0.0-rc10
+PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/opencontainers/runc
-PKG_MIRROR_HASH:=11dce499b6fbdb159d2ef64b0e9b719ccdf6c59ca1cc7ac0026b1d58547fc187
-PKG_SOURCE_VERSION:=3e425f80a8c931f88e6d94a8c831b9d5aa481657
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2019-10-15
+PKG_SOURCE_URL:=https://codeload.github.com/opencontainers/runc/tar.gz/v${PKG_VERSION}?
+PKG_HASH:=6b44985023347fb9c5a2cc6f761df8c41cc2c84a7a68a6e6acf834dff6653a9a
+PKG_SOURCE_VERSION:=dc9208a3303feef5b3839f4323d9beb36df0a9dd
 
 PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
 
diff --git a/utils/sed/Makefile b/utils/sed/Makefile
new file mode 100644 (file)
index 0000000..9387283
--- /dev/null
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2010-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=sed
+PKG_VERSION:=4.8
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@GNU/sed
+PKG_HASH:=f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633
+
+PKG_MAINTAINER:=Russell Senior <russell@personaltelco.net>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:gnu:sed
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/sed
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=sed stream editor utility - full version
+  DEPENDS:=+libpcre
+  URL:=https://www.gnu.org/software/sed/
+endef
+
+define Package/sed/description
+sed (stream editor) is a non-interactive command-line text editor. sed is commonly 
+used to filter text, i.e., it takes text input, performs some operation (or set of 
+operations) on it, and outputs the modified text. sed is typically used for 
+extracting part of a file using pattern matching or substituting multiple 
+occurrences of a string within a file.
+endef
+
+define Package/sed/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
+endef
+
+CONFIGURE_ARGS+= --disable-acl
+
+define Package/sed/postinst
+#!/bin/sh
+[ -L "$${IPKG_INSTROOT}/bin/sed" ] && rm -f "$${IPKG_INSTROOT}/bin/sed"
+exit 0
+endef
+
+define Package/sed/prerm
+$${IPKG_INSTROOT}/bin/busybox sed -h 2>&1 | grep -q BusyBox && \
+ln -sf busybox $${IPKG_INSTROOT}/bin/sed
+exit 0
+endef
+
+$(eval $(call BuildPackage,sed))
diff --git a/utils/shinit/Makefile b/utils/shinit/Makefile
deleted file mode 100644 (file)
index d4c1e8c..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Copyright (C) 2019 Jeffery To
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=shinit
-PKG_VERSION:=0.1.0
-PKG_RELEASE:=1
-
-PKG_LICENSE:=GPL-2.0-only
-PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/shinit
-  SECTION:=utils
-  CATEGORY:=Utilities
-  TITLE:=Initialization for all interactive shells (login or not)
-  PKGARCH:=all
-endef
-
-define Package/shinit/description
-  This package adds support for /etc/shinit and ~/.shinit files, which
-  contain commands to be run at the start of all interactive shells.
-  (/etc/profile and ~/.profile are read for login shells only.)
-
-  This is useful for those who regularly open non-login, interactive
-  shells, for example users of GNU Screen or tmux.
-endef
-
-define Package/shinit/conffiles
-/etc/shinit
-endef
-
-Build/Prepare:=:
-Build/Configure:=:
-Build/Compile:=:
-
-define Package/shinit/install
-       $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_DATA) ./files/etc/shinit $(1)/etc
-
-       $(INSTALL_DIR) $(1)/etc/profile.d
-       $(INSTALL_DATA) ./files/etc/profile.d/shinit.sh $(1)/etc/profile.d
-endef
-
-$(eval $(call BuildPackage,shinit))
diff --git a/utils/shinit/files/etc/profile.d/shinit.sh b/utils/shinit/files/etc/profile.d/shinit.sh
deleted file mode 100644 (file)
index 5382ff9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-export ENV=/etc/shinit
diff --git a/utils/shinit/files/etc/shinit b/utils/shinit/files/etc/shinit
deleted file mode 100644 (file)
index 0062573..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-[ -x /bin/more ] || alias more=less
-[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
-
-alias ll='ls -alF --color=auto'
-
-# If you use mksh and want to source /etc/mkshrc for all interactive shells,
-# uncomment the following line and comment out the same line in /etc/profile.
-#[ -z "$KSH_VERSION" -o \! -s /etc/mkshrc ] || . /etc/mkshrc
-
-[ -x /usr/bin/arp -o -x /sbin/arp ] || arp() { cat /proc/net/arp; }
-[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
-
-service() {
-       [ -f "/etc/init.d/$1" ] || {
-               echo "service "'"'"$1"'"'" not found, the following services are available:"
-               ls "/etc/init.d"
-               return 1
-       }
-       /etc/init.d/$@
-}
-
-[ -n "$KSH_VERSION" -o \! -s "$HOME/.shinit" ] || . "$HOME/.shinit"
-[ -z "$KSH_VERSION" -o \! -s "$HOME/.mkshrc" ] || . "$HOME/.mkshrc"
index bc9adaccdd5cabb532fd38168621d48040e8a44d..815b16099f0014678c5c83136389e85ad636f7eb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sispmctl
-PKG_VERSION:=4.2
-PKG_RELEASE:=2
+PKG_VERSION:=4.4
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=300adc32ab35a4f9260705f8f57ccd83c3c6601fc493dbe7d259335938819aaf
+PKG_HASH:=824a2317205c34693e989a9958d72eef61f72aa331ffb3ca2c2c45dc880984ad
 
 PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_LICENSE:=GPL-2.0-or-later
index ee1feff33983a73d510c0c8cbfa437031c6a6ee4..5d9797699d17ee83aaca50637d304c85133a2b0f 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/uclibc++.mk
 
 PKG_NAME:=smartmontools
 PKG_VERSION:=7.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/smartmontools
index f1453f2577da6487e70fc78ef9ddcd4e2b5e2af7..ae849adde6320b560463bd816f73c8390e297033 100644 (file)
@@ -3,14 +3,16 @@
 
 START=95
 
-start() {
-       service_start /usr/sbin/smartd -q never
-}
+USE_PROCD=1
+PROG=/usr/sbin/smartd
 
-stop() {
-       service_stop /usr/sbin/smartd
+start_service() {
+       procd_open_instance
+       procd_set_param command "$PROG"
+       procd_append_param command -n -q never
+       procd_close_instance
 }
 
-reload() {
-       service_reload /usr/sbin/smartd
+reload_service() {
+       procd_send_signal smartd
 }
index 78474964fa4302bf9a37f85029e2990e89ac4122..f55f511d98f00180bad7136392443613fe1083e1 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=syncthing
 PKG_VERSION:=1.3.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=syncthing-source-v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/syncthing/syncthing/releases/download/v$(PKG_VERSION)
index 9c17b68a5558d8599d8b72f7809b33343fdd5366..427c8c5b12f7f584a71b5660e86c89ebccbf5ac3 100644 (file)
@@ -1,3 +1,7 @@
+
 config syncthing 'syncthing'
-    option gui_address 'http://127.0.0.1:8384'
-    option home '/etc/syncthing/'
+       option enabled '0'
+
+       option gui_address 'http://127.0.0.1:8384'
+       option home '/etc/syncthing/'
+
index 1740351adc9d4c4e84f25b738d782fedbf3d5405..443ef4f359ab04b94d2e4ef085fad7518fc69adc 100755 (executable)
@@ -1,14 +1,24 @@
 #!/bin/sh /etc/rc.common
 
-START=99
+START=90
+STOP=10
+
+USE_PROCD=1
+NICEPRIO=19
 
 PROG=/usr/bin/syncthing
 
 start_service() {
     [ -d /var/syncthing/ ] || mkdir /var/syncthing/
 
-    local gui_address home
+    local gui_address home enabled
     config_load "syncthing"
+
+    # The first version had the service enabled by default,
+    #   so preserving the old behaviour
+    config_get_bool enabled syncthing enabled 1
+    [ "$enabled" -gt 0 ] || return 0
+
     config_get gui_address syncthing gui_address "http://127.0.0.1:8384"
     config_get home syncthing home "/etc/syncthing/"
 
@@ -17,5 +27,6 @@ start_service() {
     procd_append_param command -gui-address="$gui_address"
     procd_append_param command -home="$home"
     procd_set_param respawn
+    procd_set_param nice "$NICEPRIO"
     procd_close_instance
 }