Merge pull request #5211 from dibdot/adblock
authorchamptar <champetier.etienne@gmail.com>
Sat, 2 Dec 2017 18:12:43 +0000 (10:12 -0800)
committerGitHub <noreply@github.com>
Sat, 2 Dec 2017 18:12:43 +0000 (10:12 -0800)
adblock: update 3.1.1

73 files changed:
lang/perl-uri/Makefile
lang/php7-pecl-http/Makefile
lang/php7/Makefile
lang/php7/patches/1007-ext-imap-config.m4-fix-ac_cv_u8t_decompose-check.patch [new file with mode: 0644]
libs/alsa-lib/Makefile
libs/alsa-lib/patches/200-fix_include_file_redirect_warnings.patch [deleted file]
libs/freetype/Makefile
libs/glib2/Makefile
libs/uw-imap/Makefile [new file with mode: 0644]
libs/uw-imap/patches/001-fix_Makefiles_and_shlib.patch [new file with mode: 0644]
libs/uw-imap/patches/002-imap-2004a-doc.patch [new file with mode: 0644]
libs/uw-imap/patches/003-imap-2007e-overflow.patch [new file with mode: 0644]
libs/uw-imap/patches/005-imap-2007e-authmd5.patch [new file with mode: 0644]
libs/uw-imap/patches/006-imap-2007f-format-security.patch [new file with mode: 0644]
libs/uw-imap/patches/007-imap-2007e-poll.patch [new file with mode: 0644]
mail/postfix/Makefile
mail/postfix/patches/110-glibc-defs.patch [new file with mode: 0644]
multimedia/ffmpeg/Makefile
multimedia/gst1-libav/Makefile
multimedia/gst1-plugins-bad/Makefile
multimedia/gst1-plugins-bad/patches/001-no-translations.patch
multimedia/gst1-plugins-bad/patches/002-no-tests.patch
multimedia/gst1-plugins-base/Makefile
multimedia/gst1-plugins-base/patches/001-no-translations.patch
multimedia/gst1-plugins-base/patches/002-no-tests.patch
multimedia/gst1-plugins-base/patches/003-no-docs.patch
multimedia/gst1-plugins-good/Makefile
multimedia/gst1-plugins-good/patches/001-no-translations.patch
multimedia/gst1-plugins-good/patches/002-no-tests.patch
multimedia/gst1-plugins-good/patches/003-no-docs.patch
multimedia/gst1-plugins-ugly/Makefile
multimedia/gst1-plugins-ugly/patches/001-no-translations.patch
multimedia/gstreamer1/Makefile
multimedia/gstreamer1/patches/001-no-translations.patch
multimedia/gstreamer1/patches/002-no-tests.patch
multimedia/gstreamer1/patches/003-no-docs.patch
net/apache/Makefile
net/apache/patches/010-reproducible-builds.patch [new file with mode: 0644]
net/bind/Config.in
net/bind/Makefile
net/horst/Makefile
net/horst/patches/0001-reproducible-builds.patch [new file with mode: 0644]
net/mdnsresponder/Makefile
net/mdnsresponder/patches/100-linux_fixes.patch
net/mdnsresponder/patches/120-reproducible-builds.patch [new file with mode: 0644]
net/openconnect/Makefile
net/openconnect/README
net/openconnect/files/openconnect.sh
net/ser2net/Makefile
net/ser2net/patches/0001-dataxfer.c-fix-possible-buffer-overruns-caused-by-ga.patch [deleted file]
net/ser2net/patches/0002-dataxfer.c-truncate-error-message-to-fit-the-column-.patch [deleted file]
net/ser2net/patches/0003-dataxfer.c-adjust-Remote-address-column-width.patch [deleted file]
net/ser2net/patches/0004-dataxfer.c-in-case-port-is-not-connected-display-thi.patch [deleted file]
net/shadowsocks-libev/Makefile
net/strongswan/Makefile
net/transmission/Makefile
net/transmission/files/transmission.sysctl [new file with mode: 0644]
net/transmission/patches/030-fix-musl-build.patch [deleted file]
net/transmission/patches/060-fix-foreground-syslog.patch [new file with mode: 0644]
utils/auc/Makefile
utils/auc/src/auc.c
utils/btrfs-progs/Makefile
utils/btrfs-progs/patches/0001-use-pthread_join-instead-of-pthread_tryjoin_np.patch [deleted file]
utils/haveged/Makefile
utils/hdparm/Makefile
utils/mc/Makefile
utils/minicom/Makefile
utils/minicom/patches/110-reproducible-builds.patch [new file with mode: 0644]
utils/openocd/Makefile
utils/unzip/Makefile
utils/unzip/patches/010-remove-build-date.patch [new file with mode: 0644]
utils/zip/Makefile
utils/zip/patches/010-remove-build-date.patch [new file with mode: 0644]

index aa182b24455061f709993adbdd36d43caaceab6b..3f043e4ffbe596c0a4c991dc16048441d721d412 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-uri
-PKG_VERSION:=1.71
+PKG_VERSION:=1.72
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.cpan.org/authors/id/E/ET/ETHER/
 PKG_SOURCE:=URI-$(PKG_VERSION).tar.gz
-PKG_HASH:=9c8eca0d7f39e74bbc14706293e653b699238eeb1a7690cc9c136fb8c2644115
+PKG_HASH:=35f14431d4b300de4be1163b0b5332de2d7fbda4f05ff1ed198a8e9330d40a32
 
 PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
index 65874fcda030a81bac737e36dc607fc544482d4e..15d47a891c129fe7f5d054e11704759b3413d726 100644 (file)
@@ -9,7 +9,7 @@ PECL_NAME:=pecl_http
 PECL_LONGNAME:=Extended HTTP Support
 
 PKG_VERSION:=3.1.0
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_HASH:=e3de67b156e7d5f6c2e5eb1e2b5f0acceb7004f1260d68c9f8b2c0f9629aabf0
 
 PKG_NAME:=php7-pecl-http
@@ -53,5 +53,5 @@ CONFIGURE_ARGS+= \
        --with-http-libevent-dir="$(STAGING_DIR)/usr" \
        --with-http-libidn-dir="$(STAGING_DIR)/usr"
 
-$(eval $(call PECLPackage,http,$(PECL_LONGNAME),+icu +libcurl +librt +libevent2 +libidn +php7-mod-iconv +php7-mod-session +php7-pecl-raphf +php7-pecl-propro,30))
+$(eval $(call PECLPackage,http,$(PECL_LONGNAME),+icu +libcurl +librt +libevent2 +libidn +php7-mod-hash +php7-mod-iconv +php7-mod-session +php7-pecl-raphf +php7-pecl-propro,30))
 $(eval $(call BuildPackage,$(PKG_NAME)))
index de8f157d7656e17803bf9d5f6320d816a43c6541..fe259628d466e766e8c0d382166ed43e0bdb2b62 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.1.11
-PKG_RELEASE:=3
+PKG_VERSION:=7.1.12
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=074093e9d7d21afedc5106904218a80a47b854abe368d2728ed22184c884893e
+PKG_HASH:=a0118850774571b1f2d4e30b4fe7a4b958ca66f07d07d65ebdc789c54ba6eeb3
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -30,7 +30,7 @@ PHP7_MODULES = \
        ftp \
        gettext gd gmp \
        hash \
-       iconv intl \
+       iconv imap intl \
        json \
        ldap \
        mbstring mcrypt mysqli \
@@ -42,7 +42,7 @@ PHP7_MODULES = \
 
 PKG_CONFIG_DEPENDS:= \
        $(patsubst %,CONFIG_PACKAGE_php7-mod-%,$(PHP7_MODULES)) \
-       CONFIG_PHP7_FILTER CONFIG_PHP7_LIBXML CONFIG_PHP7_SYSTEMTZDATA
+       CONFIG_PHP7_FILTER CONFIG_PHP7_LIBXML CONFIG_PHP7_SYSTEMTZDATA CONFIG_PHP7_LIBFREETYPE
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
@@ -142,6 +142,13 @@ define Package/php7-fpm/description
   This package contains the FastCGI Process Manager of the PHP7 interpreter.
 endef
 
+define Package/php7-mod-gd/config
+  config PHP7_LIBFREETYPE
+       bool "Enable Freetype 2 support in php7-mod-gd"
+       depends on PACKAGE_php7-mod-gd
+       default y
+endef
+
 # not everything groks --disable-nls
 DISABLE_NLS:=
 
@@ -214,7 +221,6 @@ endif
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-gd),)
   CONFIGURE_ARGS+= \
        --with-gd=shared \
-       --without-freetype-dir \
        --with-jpeg-dir="$(STAGING_DIR)/usr" \
        --with-png-dir="$(STAGING_DIR)/usr" \
        --without-xpm-dir \
@@ -223,6 +229,11 @@ ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-gd),)
 else
   CONFIGURE_ARGS+= --without-gd
 endif
+ifneq ($(CONFIG_PHP7_LIBFREETYPE),)
+  CONFIGURE_ARGS+= --with-freetype-dir="$(STAGING_DIR)"
+else
+  CONFIGURE_ARGS+= --without-freetype-dir
+endif
 
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-gmp),)
   CONFIGURE_ARGS+= --with-gmp=shared,"$(STAGING_DIR)/usr"
@@ -242,6 +253,15 @@ else
   CONFIGURE_ARGS+= --without-iconv
 endif
 
+ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-imap),)
+  CONFIGURE_ARGS+= \
+               --with-imap=shared,"$(STAGING_DIR)/usr" \
+               --with-imap-kerberos=no \
+               --with-imap-ssl="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= --without-imap
+endif
+
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-intl),)
   CONFIGURE_ARGS+= --enable-intl=shared
   TARGET_CXXFLAGS+= -std=c++0x
@@ -454,6 +474,7 @@ CONFIGURE_VARS+= \
        php_cv_cc_rpath="no" \
        iconv_impl_name="gnu_libiconv" \
        ac_cv_php_xml2_config_path="$(STAGING_DIR)/host/bin/xml2-config" \
+       ac_cv_u8t_decompose=yes \
 
 define Package/php7/conffiles
 /etc/php.ini
@@ -574,11 +595,12 @@ $(eval $(call BuildModule,dom,DOM,+@PHP7_LIBXML +PACKAGE_php7-mod-dom:libxml2))
 $(eval $(call BuildModule,exif,EXIF))
 $(eval $(call BuildModule,fileinfo,Fileinfo))
 $(eval $(call BuildModule,ftp,FTP,+PACKAGE_php7-mod-ftp:libopenssl))
-$(eval $(call BuildModule,gd,GD graphics,+PACKAGE_php7-mod-gd:libjpeg +PACKAGE_php7-mod-gd:libpng))
+$(eval $(call BuildModule,gd,GD graphics,+PACKAGE_php7-mod-gd:libjpeg +PACKAGE_php7-mod-gd:libpng +PHP7_LIBFREETYPE:libfreetype))
 $(eval $(call BuildModule,gettext,Gettext,+PACKAGE_php7-mod-gettext:libintl-full))
 $(eval $(call BuildModule,gmp,GMP,+PACKAGE_php7-mod-gmp:libgmp))
 $(eval $(call BuildModule,hash,Hash))
 $(eval $(call BuildModule,iconv,iConv,$(ICONV_DEPENDS)))
+$(eval $(call BuildModule,imap,IMAP,+PACKAGE_php7-mod-imap:libopenssl +PACKAGE_libpam:libpam +PACKAGE_php7-mod-imap:uw-imap))
 $(eval $(call BuildModule,intl,Internationalization Functions,+PACKAGE_php7-mod-intl:icu))
 $(eval $(call BuildModule,json,JSON))
 $(eval $(call BuildModule,ldap,LDAP,+PACKAGE_php7-mod-ldap:libopenldap +PACKAGE_php7-mod-ldap:libsasl2))
diff --git a/lang/php7/patches/1007-ext-imap-config.m4-fix-ac_cv_u8t_decompose-check.patch b/lang/php7/patches/1007-ext-imap-config.m4-fix-ac_cv_u8t_decompose-check.patch
new file mode 100644 (file)
index 0000000..88b2db4
--- /dev/null
@@ -0,0 +1,35 @@
+From 96465be0f4ac225cfe6f52b809c91b9496807eac Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Sun, 26 Nov 2017 18:29:42 +0100
+Subject: [PATCH] ext/imap/config.m4: fix ac_cv_u8t_decompose check
+
+Once upon the time, commit c58f63a38ae19caaab339c61486fc3bd7e5894f9
+changed the check from U8T_CANONICAL to U8T_DECOMPOSE. However,
+the autoconf cache id was not renamed.
+
+Sometimes it is desirable to preseed the autoconf variables, e.g. when
+cross-compiling to avoid the tests running on the host system. In this
+case it's confusing when the cache id does not match the variable to
+set, so let's adjust it.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+---
+ ext/imap/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
+index d0b86cb..badb6e2 100644
+--- a/ext/imap/config.m4
++++ b/ext/imap/config.m4
+@@ -147,7 +147,7 @@ if test "$PHP_IMAP" != "no"; then
+     old_CFLAGS=$CFLAGS
+     CFLAGS="-I$IMAP_INC_DIR"
+-    AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_canonical,
++    AC_CACHE_CHECK(for U8T_DECOMPOSE, ac_cv_u8t_decompose,
+       AC_TRY_COMPILE([
+ #include <c-client.h>
+       ],[
+-- 
+2.7.4
+
index caf513389fa7d279fe9d76fc37d647c3679f5c97..8bdb99c1814171cfb8dee3933942a7dadc989486 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=alsa-lib
-PKG_VERSION:=1.1.4.1
+PKG_VERSION:=1.1.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.alsa-project.org/pub/lib/ \
                http://distfiles.gentoo.org/distfiles/
 
-PKG_HASH:=91bb870c14d1c7c269213285eeed874fa3d28112077db061a3af8010d0885b76
+PKG_HASH:=f4f68ad3c6da36b0b5241ac3c798a7a71e0e97d51f972e9f723b3f20a9650ae6
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Peter Wagner <tripolar@gmx.at>
 
diff --git a/libs/alsa-lib/patches/200-fix_include_file_redirect_warnings.patch b/libs/alsa-lib/patches/200-fix_include_file_redirect_warnings.patch
deleted file mode 100644 (file)
index a0976bd..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
---- a/aserver/aserver.c
-+++ b/aserver/aserver.c
-@@ -20,7 +20,7 @@
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <stdio.h>
---- a/include/asoundlib-head.h
-+++ b/include/asoundlib-head.h
-@@ -35,6 +35,6 @@
- #include <string.h>
- #include <fcntl.h>
- #include <assert.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <errno.h>
- #include <stdarg.h>
---- a/include/asoundlib.h
-+++ b/include/asoundlib.h
-@@ -35,7 +35,7 @@
- #include <string.h>
- #include <fcntl.h>
- #include <assert.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <errno.h>
- #include <stdarg.h>
- #include <endian.h>
---- a/include/local.h
-+++ b/include/local.h
-@@ -47,7 +47,7 @@
- #error Header defining endianness not defined
- #endif
- #include <stdarg.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/types.h>
- #include <errno.h>
- #if defined(__linux__)
---- a/src/control/control.c
-+++ b/src/control/control.c
-@@ -90,7 +90,7 @@ against the original design.
- #include <string.h>
- #include <fcntl.h>
- #include <signal.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <stdbool.h>
- #include "control_local.h"
---- a/src/control/control_shm.c
-+++ b/src/control/control_shm.c
-@@ -27,7 +27,7 @@
- #include <fcntl.h>
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <sys/mman.h>
---- a/src/pcm/pcm.c
-+++ b/src/pcm/pcm.c
-@@ -651,7 +651,7 @@ playback devices.
- #include <stdarg.h>
- #include <signal.h>
- #include <ctype.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #include <limits.h>
- #include "pcm_local.h"
---- a/src/pcm/pcm_direct.c
-+++ b/src/pcm/pcm_direct.c
-@@ -30,7 +30,7 @@
- #include <grp.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/shm.h>
- #include <sys/sem.h>
- #include <sys/wait.h>
---- a/src/pcm/pcm_mmap.c
-+++ b/src/pcm/pcm_mmap.c
-@@ -22,7 +22,7 @@
- #include <stdio.h>
- #include <malloc.h>
- #include <string.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #ifdef HAVE_SYS_SHM_H
- #include <sys/shm.h>
---- a/src/pcm/pcm_share.c
-+++ b/src/pcm/pcm_share.c
-@@ -34,7 +34,7 @@
- #include <signal.h>
- #include <math.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <pthread.h>
- #include "pcm_local.h"
---- a/src/pcm/pcm_shm.c
-+++ b/src/pcm/pcm_shm.c
-@@ -36,7 +36,7 @@
- #include <sys/ioctl.h>
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/mman.h>
- #include <netinet/in.h>
---- a/src/seq/seq.c
-+++ b/src/seq/seq.c
-@@ -777,7 +777,7 @@ void event_filter(snd_seq_t *seq, snd_se
- */
--#include <sys/poll.h>
-+#include <poll.h>
- #include "seq_local.h"
- /****************************************************************************
---- a/src/shmarea.c
-+++ b/src/shmarea.c
-@@ -27,7 +27,7 @@
- #include <malloc.h>
- #include <string.h>
- #include <errno.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #include <sys/shm.h>
- #include "list.h"
index f9566b24b5a09eae3d23636f51dc919af19af05b..36a540261d326edfcdcabda8b41ce51733caaa86 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freetype
 PKG_VERSION:=2.8.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/freetype
@@ -56,6 +56,8 @@ endef
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/freetype-config $(1)/bin/
+       $(INSTALL_DIR) $(2)/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/freetype-config $(2)/bin/
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/freetype2 $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
@@ -63,11 +65,6 @@ define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/freetype2.pc $(1)/usr/lib/pkgconfig/
 
-       $(SED) \
-               's,^\(prefix\|exec_prefix\)=.*,\1="$(STAGING_DIR)/usr",; \
-                s,^\(includedir\)=.*,\1="$(STAGING_DIR)/usr/include",; \
-                s,^\(libdir\)=.*,\1="$(STAGING_DIR)/usr/lib",' \
-                $(1)/bin/freetype-config
        $(SED) \
                's,/usr/include,$$$${prefix}/include,g; \
                 s,/usr/lib,$$$${exec_prefix}/lib,g' \
@@ -80,4 +77,5 @@ define Package/libfreetype/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfreetype.so.* $(1)/usr/lib/
 endef
 
+$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libfreetype))
index 754e96e8f3c8da65ba5c90136e355fc2adfc1042..c203fd316b1696d36e6ea937ebfb717f814285ff 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glib2
-PKG_VERSION:=2.54.2
+PKG_VERSION:=2.55.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION)
-PKG_SOURCE_URL:=@GNOME/glib/2.54
-PKG_HASH:=bb89e5c5aad33169a8c7f28b45671c7899c12f74caf707737f784d7102758e6c
+PKG_SOURCE_URL:=@GNOME/glib/2.55
+PKG_HASH:=13fc009e68ca490f986f21a7d5d3a429486fb28a1f4e06298c9ac976067518f5
 
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
diff --git a/libs/uw-imap/Makefile b/libs/uw-imap/Makefile
new file mode 100644 (file)
index 0000000..9fe5509
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# Copyright (C) 2017 Lucian Cristian <lucian.cristian@gmail.com>
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=uw-imap
+PKG_VERSION:=2007f
+PKG_RELEASE:=1
+
+PKG_SOURCE:=imap-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:= \
+       https://www.mirrorservice.org/sites/ftp.cac.washington.edu/imap \
+       http://ftp.ntua.gr/pub/net/mail/imap \
+       http://gd.tuwien.ac.at/infosys/mail/imap
+
+PKG_HASH:=53e15a2b5c1bc80161d42e9f69792a3fa18332b7b771910131004eb520004a28
+PKG_BUILD_DIR:=$(BUILD_DIR)/imap-$(PKG_VERSION)
+
+PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE.txt
+
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/uw-imap
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=University of Washington IMAP toolkit
+  URL:=https://www.washington.edu/imap/
+  DEPENDS:=+libpthread +libopenssl
+endef
+
+define Package/uw-imap/description
+    The UW IMAP tookit includes the following:
+    c-lient library : an API (application programming interface) used to build email clients and servers,
+    including support for IMAP,POP3, SMTP and NNTP protocols and for local mailbox file access on Unix and Windows
+endef
+
+TARGET_CFLAGS += \
+       -fPIC -DPIC -D_REENTRANT -DDISABLE_POP_PROXY -fno-strict-aliasing -Wno-pointer-sign \
+       -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
+
+MAKE_FLAGS += \
+       SSLINCLUDE=$(STAGING_DIR)/usr/include SSLCERTS=/etc/ssl/certs GCCOPTLEVEL=" -Os" \
+       SSLDIR=$(STAGING_DIR)/usr SHLIBNAME=libc-client.so.$(PKG_VERSION) $(if $(CONFIG_IPV6),IP=6,IP=4)
+
+define Build/Compile
+    $(MAKE) -C $(PKG_BUILD_DIR) slx EXTRACFLAGS='$(TARGET_CFLAGS)' CC='$(TARGET_CC)' $(MAKE_FLAGS)
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR)  $(1)/usr/lib \
+                       $(1)/usr/include/c-client
+       $(CP) $(PKG_BUILD_DIR)/c-client/libc-client.so.$(PKG_VERSION) $(1)/usr/lib/
+       $(LN) libc-client.so.$(PKG_VERSION) $(1)/usr/lib/libc-client.so
+       $(CP) $(PKG_BUILD_DIR)/c-client/linkage.h $(1)/usr/include/c-client/
+       $(CP) $(PKG_BUILD_DIR)/src/c-client/*.h $(1)/usr/include/c-client/
+       $(CP) $(PKG_BUILD_DIR)/src/osdep/unix/*.h $(1)/usr/include/c-client/
+       $(LN) os_slx.h $(1)/usr/include/c-client/osdep.h
+endef
+
+define Package/uw-imap/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/c-client/libc-client.so.$(PKG_VERSION) $(1)/usr/lib/
+       $(LN) libc-client.so.$(PKG_VERSION) $(1)/usr/lib/libc-client.so
+endef
+
+
+$(eval $(call BuildPackage,uw-imap))
diff --git a/libs/uw-imap/patches/001-fix_Makefiles_and_shlib.patch b/libs/uw-imap/patches/001-fix_Makefiles_and_shlib.patch
new file mode 100644 (file)
index 0000000..cf0cc7f
--- /dev/null
@@ -0,0 +1,167 @@
+--- a/Makefile 2017-11-13 01:13:36.340236114 +0200
++++ b/Makefile 2017-11-13 01:34:56.869682313 +0200
+@@ -638,10 +638,6 @@
+       @echo + yourself, try adding IP6=4 to the make command line.
+       @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+       @echo
+-      @echo Do you want to build with IPv6 anyway?  Type y or n please:
+-      @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make noip6;exit 1);; esac'
+-      @echo OK, I will remember that you really want to build with IPv6.
+-      @echo You will not see this message again.
+       @$(TOUCH) ip6
+ noip6:
+@@ -678,20 +674,18 @@
+       $(TOOLS)/$@ "$(LN)" src/tmail tmail
+       $(LN) $(TOOLS)/$@ .
+-build:        OSTYPE rebuild rebuildclean bundled
++build:        OSTYPE rebuild rebuildclean
+ OSTYPE:
+       @$(MAKE) ip$(IP)
+       @echo Building c-client for $(BUILDTYPE)...
+       @$(TOUCH) SPECIALS
+-      echo `$(CAT) SPECIALS` $(EXTRASPECIALS) > c-client/SPECIALS
+       $(CD) c-client;$(MAKE) $(BUILDTYPE) EXTRACFLAGS='$(EXTRACFLAGS)'\
+        EXTRALDFLAGS='$(EXTRALDFLAGS)'\
+        EXTRADRIVERS='$(EXTRADRIVERS)'\
+        EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
+        PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)\
+-       $(SPECIALS) $(EXTRASPECIALS)
+-      echo $(BUILDTYPE) > OSTYPE
++       $(SPECIALS) $(EXTRASPECIALS) OSTYPE=$(BUILDTYPE)
+       $(TOUCH) rebuild
+ rebuild:
+--- a/src/osdep/unix/Makefile  2017-11-13 01:37:58.674011768 +0200
++++ b/src/osdep/unix/Makefile  2017-11-13 03:30:18.204908962 +0200
+@@ -96,11 +96,11 @@
+ LOGINPW=std
+ SIGTYPE=bsd
+ CRXTYPE=std
+-ACTIVEFILE=/usr/lib/news/active
+-SPOOLDIR=/usr/spool
++ACTIVEFILE=/var/lib/news/active
++SPOOLDIR=/var/spool
+ MAILSPOOL=$(SPOOLDIR)/mail
+ NEWSSPOOL=$(SPOOLDIR)/news
+-RSHPATH=/usr/ucb/rsh
++RSHPATH=/usr/bin/rsh
+ MD5PWD=/etc/cram-md5.pwd
+ # Tries one of the test alternatives below if not specified.
+ LOCKPGM=
+@@ -154,7 +154,7 @@
+  dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
+  rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
+  unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
+-CFLAGS=-g
++CFLAGS=$(BASECFLAGS) $(EXTRACFLAGS) -DCHUNKSIZE=$(CHUNKSIZE)
+ CAT=cat
+ MAKE=make
+@@ -162,6 +162,16 @@
+ RM=rm -rf
+ SH=sh
++OSCFLAGS= $(SSLCFLAGS) \
++       -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
++       -DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
++       -DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
++       -DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
++       -DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
++       -DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
++       -DLOCKPGM3=\"$(LOCKPGM3)\"
++
++LDFLAGS= $(BASELDFLAGS) $(EXTRALDFLAGS) $(SSLLDFLAGS)
+ # Primary build command
+@@ -174,7 +184,7 @@
+ # Here if no make argument established
+ missing: osdep.h
+-      $(MAKE) all `$(CAT) SPECIALS`
++      $(MAKE) all $(SPECIALS)
+ osdep.h:
+       @echo You must specify what type of system
+@@ -674,7 +684,7 @@
+       @echo You are building for libc6/glibc versions of Secure Linux
+       @echo If you want libc5 versions you must use sl5 instead!
+       @echo If you want libc4 versions you must use sl4 instead!
+-      $(BUILD) `$(CAT) SPECIALS` OS=$@ \
++      $(BUILD) $(SPECIALS) OS=$@ \
+        SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
+        SPOOLDIR=/var/spool \
+        ACTIVEFILE=/var/lib/news/active \
+@@ -863,7 +873,7 @@
+       @$(SH) ARCHIVE
+ .c.o:
+-      `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
++      $(CC) -c $(CFLAGS) $*.c
+ # Cleanup
+@@ -922,8 +932,8 @@
+       @echo If you get No such file error messages for files x509.h, ssl.h,
+       @echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
+       @echo is not installed on your system.  Either install OpenSSL first
+-      @echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none
+-      `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
++      @echo or build with command: make $(OSTYPE) SSLTYPE=none
++      $(CC) -c $(CFLAGS) $(OSCFLAGS) -c osdep.c
+ osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
+       $(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c
+@@ -962,21 +972,14 @@
+ # Once-only environment setup
+-once: onceenv ckp$(PASSWDTYPE) ssl$(SSLTYPE) osdep.c
++once: ssl$(SSLTYPE) onceenv ckp$(PASSWDTYPE) osdep.c
+ onceenv:
+       @echo Once-only environment setup...
+-      echo $(CC) > CCTYPE
+-      echo $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
+-      echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
+-       -DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
+-       -DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
+-       -DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
+-       -DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
+-       -DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
+-       -DLOCKPGM3=\"$(LOCKPGM3)\" > OSCFLAGS
+-      echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
+       echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
++      echo "$(OSCFLAGS)" > OSCFLAGS
++      echo "$(CC) $(CFLAGS) $(OSCFLAGS) -shared  -Wl,-soname,libc-client.so \
++      -o $(SHLIBNAME) $(BINARIES) $(LDFLAGS)" >> ARCHIVE
+       echo $(OS) > OSTYPE
+       ./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
+       ./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
+@@ -1055,7 +1058,6 @@
+ sbasic:       # UNIX OpenSSL
+       @echo Building with SSL
+       $(LN) ssl_unix.c osdepssl.c
+-      echo $(SSLCFLAGS) >> OSCFLAGS
+       echo "  ssl_onceonlyinit ();" >> linkage.c
+ snopwd:       # Plaintext disable
+@@ -1063,13 +1065,12 @@
+       echo "  mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
+ sldunix:# Normal UNIX SSL load flags
+-      echo $(SSLLDFLAGS) >> LDFLAGS
++      @echo Normal UNIX SSL load flags
+ sldsco:       # SCO SSL load flags
+ # Note: Tim Rice says that SSL has to be lunk before other libraries on SCO.
+-      echo $(SSLLDFLAGS) `cat LDFLAGS` > LDFLAGS.tmp
+-      mv LDFLAGS.tmp LDFLAGS
++      @echo SCO SSL load flags
+ # A monument to a hack of long ago and far away...
diff --git a/libs/uw-imap/patches/002-imap-2004a-doc.patch b/libs/uw-imap/patches/002-imap-2004a-doc.patch
new file mode 100644 (file)
index 0000000..dcae4ab
--- /dev/null
@@ -0,0 +1,30 @@
+Patch by Robert Scheck <redhat@linuxnetz.de> for uw-imap >= 2004a, which corrects
+paths to imapd, ipop2d and ipop3d in the man pages. 
+
+This patch is based on Red Hat Bugzilla ID #127271 and solves ID #229781.
+
+--- imap-2004a/src/imapd/imapd.8               2004-05-18 19:46:54.000000000 +0200
++++ imap-2004a/src/imapd/imapd.8.doc           2004-07-23 15:24:17.000000000 +0200
+@@ -3,7 +3,7 @@
+ .SH NAME
+ IMAPd \- Internet Message Access Protocol server
+ .SH SYNOPSIS
+-.B /usr/etc/imapd
++.B /usr/sbin/imapd
+ .SH DESCRIPTION
+ .I imapd
+ is a server which supports the
+--- imap-2004a/src/ipopd/ipopd.8               2004-05-18 19:50:05.000000000 +0200
++++ imap-2004a/src/ipopd/ipopd.8.doc           2004-07-23 15:23:38.000000000 +0200
+@@ -3,9 +3,9 @@
+ .SH NAME
+ IPOPd \- Post Office Protocol server
+ .SH SYNOPSIS
+-.B /usr/etc/ipop2d
++.B /usr/sbin/ipop2d
+ .PP
+-.B /usr/etc/ipop3d
++.B /usr/sbin/ipop3d
+ .SH DESCRIPTION
+ .I ipop2d
+ and
diff --git a/libs/uw-imap/patches/003-imap-2007e-overflow.patch b/libs/uw-imap/patches/003-imap-2007e-overflow.patch
new file mode 100644 (file)
index 0000000..86512b2
--- /dev/null
@@ -0,0 +1,13 @@
+diff -up imap-2007e/src/c-client/rfc822.c.overflow imap-2007e/src/c-client/rfc822.c
+--- imap-2007e/src/c-client/rfc822.c.overflow  2008-12-12 11:08:26.000000000 -0600
++++ imap-2007e/src/c-client/rfc822.c   2009-07-07 19:27:20.057772757 -0500
+@@ -384,6 +384,9 @@ void rfc822_parse_content (BODY *body,ST
+       if (CHR (bs) == '\012'){/* following LF? */
+         c = SNX (bs); i--;    /* yes, slurp it */
+       }
++      if (!i)                 /* Make sure we don't get an overflow for */
++        break;                /* messages ending on \015 (or the following */
++                              /* i-- will cause i to be MAXINT. Not good.) */
+       case '\012':            /* at start of a line, start with -- ? */
+       if (!(i && i-- && ((c = SNX (bs)) == '-') && i-- &&
+             ((c = SNX (bs)) == '-'))) break;
diff --git a/libs/uw-imap/patches/005-imap-2007e-authmd5.patch b/libs/uw-imap/patches/005-imap-2007e-authmd5.patch
new file mode 100644 (file)
index 0000000..66883a1
--- /dev/null
@@ -0,0 +1,29 @@
+diff -up imap-2007e/src/c-client/auth_md5.c.authmd5 imap-2007e/src/c-client/auth_md5.c
+--- imap-2007e/src/c-client/auth_md5.c.authmd5 2008-06-04 13:18:34.000000000 -0500
++++ imap-2007e/src/c-client/auth_md5.c 2009-07-07 19:24:12.348005485 -0500
+@@ -42,17 +42,17 @@ typedef struct {
+ /* Prototypes */
+-long auth_md5_valid (void);
+-long auth_md5_client (authchallenge_t challenger,authrespond_t responder,
++static long auth_md5_valid (void);
++static long auth_md5_client (authchallenge_t challenger,authrespond_t responder,
+                     char *service,NETMBX *mb,void *stream,
+                     unsigned long *trial,char *user);
+-char *auth_md5_server (authresponse_t responder,int argc,char *argv[]);
+-char *auth_md5_pwd (char *user);
++static char *auth_md5_server (authresponse_t responder,int argc,char *argv[]);
++static char *auth_md5_pwd (char *user);
+ char *apop_login (char *chal,char *user,char *md5,int argc,char *argv[]);
+-char *hmac_md5 (char *text,unsigned long tl,char *key,unsigned long kl);
+-void md5_init (MD5CONTEXT *ctx);
+-void md5_update (MD5CONTEXT *ctx,unsigned char *data,unsigned long len);
+-void md5_final (unsigned char *digest,MD5CONTEXT *ctx);
++static char *hmac_md5 (char *text,unsigned long tl,char *key,unsigned long kl);
++static void md5_init (MD5CONTEXT *ctx);
++static void md5_update (MD5CONTEXT *ctx,unsigned char *data,unsigned long len);
++static void md5_final (unsigned char *digest,MD5CONTEXT *ctx);
+ static void md5_transform (unsigned long *state,unsigned char *block);
+ static void md5_encode (unsigned char *dst,unsigned long *src,int len);
+ static void md5_decode (unsigned long *dst,unsigned char *src,int len);
diff --git a/libs/uw-imap/patches/006-imap-2007f-format-security.patch b/libs/uw-imap/patches/006-imap-2007f-format-security.patch
new file mode 100644 (file)
index 0000000..244153e
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur imap-2007f.orig/src/osdep/unix/flocklnx.c imap-2007f/src/osdep/unix/flocklnx.c
+--- imap-2007f.orig/src/osdep/unix/flocklnx.c  2011-07-23 02:20:11.000000000 +0200
++++ imap-2007f/src/osdep/unix/flocklnx.c       2014-04-14 19:17:46.429000000 +0200
+@@ -57,7 +57,7 @@
+     case ENOLCK:              /* lock table is full */
+       sprintf (tmp,"File locking failure: %s",strerror (errno));
+       mm_log (tmp,WARN);      /* give the user a warning of what happened */
+-      if (!logged++) syslog (LOG_ERR,tmp);
++      if (!logged++) syslog (LOG_ERR, "%s", tmp);
+                               /* return failure if non-blocking lock */
+       if (op & LOCK_NB) return -1;
+       sleep (5);              /* slow down in case it loops */
diff --git a/libs/uw-imap/patches/007-imap-2007e-poll.patch b/libs/uw-imap/patches/007-imap-2007e-poll.patch
new file mode 100644 (file)
index 0000000..e25f1b6
--- /dev/null
@@ -0,0 +1,192 @@
+http://anonscm.debian.org/cgit/collab-maint/uw-imap.git/plain/debian/patches/1005_poll.patch
+
+Description: Use poll(2) instead of select(2) to support more than 1024 file descriptors
+Author: Ben Smithurst <ben.smithurst@gradwell.com>
+Bug-Debian: https://bugs.debian.org/478193
+
+diff --git a/src/osdep/unix/os_lnx.c b/src/osdep/unix/os_lnx.c
+index 03fd17d..671bbd6 100644
+--- a/src/osdep/unix/os_lnx.c
++++ b/src/osdep/unix/os_lnx.c
+@@ -41,6 +41,7 @@
+ extern int errno;             /* just in case */
+ #include <pwd.h>
+ #include "misc.h"
++#include <poll.h>
+ #include "fs_unix.c"
+diff --git a/src/osdep/unix/os_slx.c b/src/osdep/unix/os_slx.c
+index c94d632..f6bf27d 100644
+--- a/src/osdep/unix/os_slx.c
++++ b/src/osdep/unix/os_slx.c
+@@ -42,6 +42,7 @@ extern int errno;            /* just in case */
+ #include <pwd.h>
+ #include <shadow.h>
+ #include "misc.h"
++#include <poll.h>
+ #include "fs_unix.c"
+diff --git a/src/osdep/unix/tcp_unix.c b/src/osdep/unix/tcp_unix.c
+index 795fb4f..c69eaec 100644
+--- a/src/osdep/unix/tcp_unix.c
++++ b/src/osdep/unix/tcp_unix.c
+@@ -235,12 +235,11 @@ TCPSTREAM *tcp_open (char *host,char *service,unsigned long port)
+ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port,
+                    char *tmp,int *ctr,char *hst)
+ {
+-  int i,ti,sock,flgs;
++  int i,ti,sock,flgs,tmo;
++  struct pollfd pfd;
+   size_t len;
+   time_t now;
+   struct protoent *pt = getprotobyname ("tcp");
+-  fd_set rfds,wfds,efds;
+-  struct timeval tmo;
+   struct sockaddr *sadr = ip_sockaddr (family,adr,adrlen,port,&len);
+   blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL);
+                               /* fetid Solaris */
+@@ -252,14 +251,6 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port,
+     sprintf (tmp,"Unable to create TCP socket: %s",strerror (errno));
+     (*bn) (BLOCK_NONSENSITIVE,data);
+   }
+-  else if (sock >= FD_SETSIZE) {/* unselectable sockets are useless */
+-    sprintf (tmp,"Unable to create selectable TCP socket (%d >= %d)",
+-           sock,FD_SETSIZE);
+-    (*bn) (BLOCK_NONSENSITIVE,data);
+-    close (sock);
+-    sock = -1;
+-    errno = EMFILE;
+-  }
\f
+   else {                      /* get current socket flags */
+     flgs = fcntl (sock,F_GETFL,0);
+@@ -284,16 +275,11 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port,
+     if ((sock >= 0) && ctr) { /* want open timeout? */
+       now = time (0);         /* open timeout */
+       ti = ttmo_open ? now + ttmo_open : 0;
+-      tmo.tv_usec = 0;
+-      FD_ZERO (&rfds);                /* initialize selection vector */
+-      FD_ZERO (&wfds);                /* initialize selection vector */
+-      FD_ZERO (&efds);                /* handle errors too */
+-      FD_SET (sock,&rfds);    /* block for error or readable or writable */
+-      FD_SET (sock,&wfds);
+-      FD_SET (sock,&efds);
++      pfd.fd = sock;
++      pfd.events = POLLIN | POLLOUT;
+       do {                    /* block under timeout */
+-      tmo.tv_sec = ti ? ti - now : 0;
+-      i = select (sock+1,&rfds,&wfds,&efds,ti ? &tmo : NIL);
++      tmo = ti ? ti - now : 0;
++      i = poll (&pfd, 1, ti ? tmo * 1000 : -1);
+       now = time (0);         /* fake timeout if interrupt & time expired */
+       if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0;
+       } while ((i < 0) && (errno == EINTR));
+@@ -302,7 +288,7 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port,
+       fcntl (sock,F_SETFL,flgs);
+       /* This used to be a zero-byte read(), but that crashes Solaris */
+                               /* get socket status */
+-      if(FD_ISSET(sock, &rfds)) while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR));
++      if(pfd.revents & POLLIN) while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR));
+       }       
+       if (i <= 0) {           /* timeout or error? */
+       i = i ? errno : ETIMEDOUT;/* determine error code */
+@@ -545,9 +531,8 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s)
+     stream->ictr -=n;
+   }
+   if (size) {
+-    int i;
+-    fd_set fds,efds;
+-    struct timeval tmo;
++    int i, tmo;
++    struct pollfd pfd;
+     time_t t = time (0);
+     blocknotify_t bn=(blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL);
+     (*bn) (BLOCK_TCPREAD,NIL);
+@@ -556,16 +541,13 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s)
+       time_t now = tl;
+       time_t ti = ttmo_read ? now + ttmo_read : 0;
+       if (tcpdebug) mm_log ("Reading TCP buffer",TCPDEBUG);
+-      tmo.tv_usec = 0;
+-      FD_ZERO (&fds);         /* initialize selection vector */
+-      FD_ZERO (&efds);                /* handle errors too */
+-                              /* set bit in selection vectors */
+-      FD_SET (stream->tcpsi,&fds);
+-      FD_SET (stream->tcpsi,&efds);
++
++      pfd.events = POLLIN;
++      pfd.fd = stream->tcpsi;
+       errno = NIL;            /* initially no error */
+       do {                    /* block under timeout */
+-      tmo.tv_sec = ti ? ti - now : 0;
+-      i = select (stream->tcpsi+1,&fds,NIL,&efds,ti ? &tmo : NIL);
++      tmo = ti ? ti - now : 0;
++      i = poll (&pfd, 1, ti ? tmo * 1000 : -1);
+       now = time (0);         /* fake timeout if interrupt & time expired */
+       if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0;
+       } while ((i < 0) && (errno == EINTR));
+@@ -605,9 +587,8 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s)
+ long tcp_getdata (TCPSTREAM *stream)
+ {
+-  int i;
+-  fd_set fds,efds;
+-  struct timeval tmo;
++  int i, tmo;
++  struct pollfd pfd;
+   time_t t = time (0);
+   blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL);
+   if (stream->tcpsi < 0) return NIL;
+@@ -617,15 +598,12 @@ long tcp_getdata (TCPSTREAM *stream)
+     time_t now = tl;
+     time_t ti = ttmo_read ? now + ttmo_read : 0;
+     if (tcpdebug) mm_log ("Reading TCP data",TCPDEBUG);
+-    tmo.tv_usec = 0;
+-    FD_ZERO (&fds);           /* initialize selection vector */
+-    FD_ZERO (&efds);          /* handle errors too */
+-    FD_SET (stream->tcpsi,&fds);/* set bit in selection vectors */
+-    FD_SET (stream->tcpsi,&efds);
++    pfd.fd = stream->tcpsi;
++    pfd.events = POLLIN;
+     errno = NIL;              /* initially no error */
+     do {                      /* block under timeout */
+-      tmo.tv_sec = ti ? ti - now : 0;
+-      i = select (stream->tcpsi+1,&fds,NIL,&efds,ti ? &tmo : NIL);
++      tmo = ti ? ti - now : 0;
++      i = poll (&pfd, 1, ti ? tmo * 1000 : -1);
+       now = time (0);         /* fake timeout if interrupt & time expired */
+       if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0;
+     } while ((i < 0) && (errno == EINTR));
+@@ -677,9 +655,8 @@ long tcp_soutr (TCPSTREAM *stream,char *string)
+ long tcp_sout (TCPSTREAM *stream,char *string,unsigned long size)
+ {
+-  int i;
+-  fd_set fds,efds;
+-  struct timeval tmo;
++  int i, tmo;
++  struct pollfd pfd;
+   time_t t = time (0);
+   blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL);
+   if (stream->tcpso < 0) return NIL;
+@@ -689,15 +666,12 @@ long tcp_sout (TCPSTREAM *stream,char *string,unsigned long size)
+     time_t now = tl;
+     time_t ti = ttmo_write ? now + ttmo_write : 0;
+     if (tcpdebug) mm_log ("Writing to TCP",TCPDEBUG);
+-    tmo.tv_usec = 0;
+-    FD_ZERO (&fds);           /* initialize selection vector */
+-    FD_ZERO (&efds);          /* handle errors too */
+-    FD_SET (stream->tcpso,&fds);/* set bit in selection vector */
+-    FD_SET(stream->tcpso,&efds);/* set bit in error selection vector */
++    pfd.fd = stream->tcpso;
++    pfd.events = POLLOUT;
+     errno = NIL;              /* block and write */
+     do {                      /* block under timeout */
+-      tmo.tv_sec = ti ? ti - now : 0;
+-      i = select (stream->tcpso+1,NIL,&fds,&efds,ti ? &tmo : NIL);
++      tmo = ti ? ti - now : 0;
++      i = poll (&pfd, 1, ti ? tmo * 1000 : -1);
+       now = time (0);         /* fake timeout if interrupt & time expired */
+       if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0;
+     } while ((i < 0) && (errno == EINTR));
index a04af3d1660888a6fb987852130722668c28b413..530950788ec77f114130b652637f5836fa3fb0a7 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=postfix
-PKG_RELEASE:=2
-PKG_VERSION:=3.2.3
+PKG_RELEASE:=1
+PKG_VERSION:=3.2.4
 PKG_SOURCE_URL:= \
        https://cdn.postfix.johnriley.me/mirrors/postfix-release/official/ \
        ftp://ftp.porcupine.org/mirrors/postfix-release/official/
 
-PKG_HASH:=5b0b975d075ea7561028d4109c581549b794aa92d733429ea6d9fa57751140bf
+PKG_HASH:=ec55ebaa2aa464792af8d5ee103eb68b27a42dc2b36a02fee42dafbf9740c7f6
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_MAINTAINER:=Denis Shulyaka <Shulyaka@gmail.com>
 PKG_LICENSE:=IPL-1.0
diff --git a/mail/postfix/patches/110-glibc-defs.patch b/mail/postfix/patches/110-glibc-defs.patch
new file mode 100644 (file)
index 0000000..b2d7c17
--- /dev/null
@@ -0,0 +1,19 @@
+This patch fixes the runtime error when libmilter is used with Postfix:
+"unix_send_fd: your system has no support for file descriptor passing"
+
+The issue has been fixed upstream in 20170618 update to Postfix v.3.3:
+http://postfix.1071664.n5.nabble.com/Fix-check-for-file-descriptor-passing-td90983.html
+
+This patch must be removed before compiling Postfix v.3.3.*
+
+--- a/src/util/sys_defs.h
++++ b/src/util/sys_defs.h
+@@ -804,7 +804,7 @@ extern int initgroups(const char *, int)
+ #define KERNEL_VERSION(a,b,c) (LINUX_VERSION_CODE + 1)
+ #endif
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,0)) \
+-      || (__GLIBC__ < 2)
++      || (defined(__GLIBC__) && __GLIBC__ < 2)
+ #define CANT_USE_SEND_RECV_MSG
+ #define DEF_SMTP_CACHE_DEMAND 0
+ #else
index f260642a8814ac4cfce32e336fc4f765b41fc2c0..0ab9c3991873e8ff18db321cfb0eb41136854290 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
-PKG_VERSION:=3.2.8
+PKG_VERSION:=3.2.9
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
-PKG_HASH:=42e7362692318afc666f14378dd445effa9a1b09787504a6ab5811fe442674cd
+PKG_HASH:=1131d37890ed3dcbc3970452b200a56ceb36b73eaa51d1c23c770c90f928537f
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
                Ian Leonard <antonlacon@gmail.com>
 
@@ -215,6 +215,12 @@ PKG_CONFIG_DEPENDS:= \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_PARSER_%,$(FFMPEG_CUSTOM_PARSERS)) \
        $(patsubst %,CONFIG_FFMPEG_CUSTOM_PROTOCOL_%,$(FFMPEG_CUSTOM_PROTOCOLS))
 
+PKG_BUILD_DEPENDS:= \
+       PACKAGE_shine:shine \
+       PACKAGE_libx264:libx264 \
+       PACKAGE_lame-lib:lame-lib \
+       PACKAGE_libopus:libopus
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/ffmpeg/Default
@@ -286,10 +292,12 @@ $(call Package/ffmpeg/Default)
 endef
 
 
+# Package build suppressed when CONFIG_ALL=y
 define Package/libffmpeg-custom
 $(call Package/libffmpeg/Default)
  TITLE+= (custom)
- DEPENDS+= +FFMPEG_CUSTOM_SELECT_libopus:libopus \
+ DEPENDS+= @!ALL \
+           +FFMPEG_CUSTOM_SELECT_libopus:libopus \
            +PACKAGE_libx264:libx264 +PACKAGE_lame-lib:lame-lib \
            +FFMPEG_CUSTOM_SELECT_libshine:shine \
            +PACKAGE_fdk-aac:fdk-aac
@@ -689,6 +697,4 @@ $(eval $(call BuildPackage,ffserver))
 $(eval $(call BuildPackage,libffmpeg-audio-dec))
 $(eval $(call BuildPackage,libffmpeg-full))
 $(eval $(call BuildPackage,libffmpeg-mini))
-ifneq ($(CONFIG_ALL),y)
-   $(eval $(call BuildPackage,libffmpeg-custom))
-endif
+$(eval $(call BuildPackage,libffmpeg-custom))
index d9da20bc88dd6db01dbcca92f5295a3ca1288b83..3cdc8d3316be3aebea5b682729b098cf4566161b 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-libav
-PKG_VERSION:=1.8.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.10.5
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
                Ted Hess <thess@kitschensync.net>
 
 PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-libav
-PKG_HASH:=b5f3c7a27b39b5f5c2f0bfd546b0c655020faf6b38d27b64b346c43e5ebf687a
+PKG_HASH:=e4d2f315f478d47281fbfdfbd590a63d23704ca37911d7142d5992616f4b28d3
 
 PKG_LICENSE:=GPL-2.0 LGPL-2.0
 PKG_LICENSE_FILES:=COPYING COPYING.LIB
@@ -146,8 +146,6 @@ LIBAV_CONFIGURE_PROTOCOLS:=$(call FILTER_CONFIG,PROTOCOL,protocol,$(LIBAV_PROTOC
 
 CONFIGURE_ARGS += \
        --without-system-libav \
-       --with-libav-extra-configure="--target-os=linux \
-       $(if $(findstring " ",$(CONFIG_CPU_TYPE)),,--cpu=$(CONFIG_CPU_TYPE)) \
        --disable-bsfs \
        --disable-programs \
        --disable-devices \
index eec418c37d31be96825f4e8b1d6d46f294b02641..ab9f61ef8c51caf03bf80d81246ebb5935726fd8 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-bad
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.10.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,9 +20,9 @@ PKG_LICENSE_FILES:=COPYING.LIB COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-bad-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-bad-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-bad/
-PKG_HASH:=d7995317530c8773ec088f94d9320909d41da61996b801ebacce9a56af493f97
+PKG_HASH:=c5806040bb83b43be86ce592e6a19c5d83d7776f7d9f434eb4b911c4efff3573
 
-PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
+PKG_BUILD_DEPENDS:= libgstreamer1 gst1-plugins-base libgst1basecamerabinsrc libgst1photography libgst1adaptivedemux libgst1uridownloader libgst1badbase
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -38,7 +38,7 @@ define Package/gstreamer1-bad/Default
   SECTION:=multimedia
   TITLE:=GStreamer
   URL:=http://gstreamer.freedesktop.org/
-  DEPENDS:= +libgstreamer1 $(ICONV_DEPENDS)
+  DEPENDS:= +gst1-plugins-base +libgstreamer1 +libgst1pbutils $(ICONV_DEPENDS)
 endef
 
 define Package/gstreamer1-bad/description/Default
index ee5d05b3f046cdcda6d15ee70ce898b5cae2e4fa..ac1aedd2980f71fa100cd06950ab4831a22e1915 100644 (file)
@@ -1,9 +1,9 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -3717,7 +3717,6 @@ ext/x265/Makefile
- ext/xvid/Makefile
+@@ -3841,7 +3841,6 @@ ext/xvid/Makefile
  ext/zbar/Makefile
  ext/dtls/Makefile
+ ext/webrtcdsp/Makefile
 -po/Makefile.in
  docs/Makefile
  docs/plugins/Makefile
index 3bef421c3d662a6714055020a02e6fe556de8aad..19aebe5c9076c8db9d03b0f8b59c6f427ffe5d12 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -3617,38 +3617,6 @@ sys/wasapi/Makefile
+@@ -3739,37 +3739,6 @@ sys/wasapi/Makefile
  sys/wininet/Makefile
  sys/winks/Makefile
  sys/winscreencap/Makefile
@@ -21,7 +21,6 @@
 -tests/examples/gl/generic/doublecube/Makefile
 -tests/examples/gl/generic/recordgraphic/Makefile
 -tests/examples/gl/gtk/Makefile
--tests/examples/gl/gtk/gtkvideooverlay/Makefile
 -tests/examples/gl/gtk/3dvideo/Makefile
 -tests/examples/gl/gtk/filternovideooverlay/Makefile
 -tests/examples/gl/gtk/filtervideooverlay/Makefile
index 32bf8c95a1d1ae8b689049a10927784d120ee1a7..cf52c7b1e1b4864dc20913a01f0cc8ee09f18aed 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-base
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.10.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING.LIB COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-base-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-base-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-base/
-PKG_HASH:=9d7109c8fb0a5dec8edb17b0053c59a46aba7ddf48dc48ea822ebbbd4339d38d
+PKG_HASH:=1c401a79bd1e4521c6ef1b66579bddedd9136e164e54792aab4bfcf3485bf9a7
 
 PKG_BUILD_DEPENDS:= libgstreamer1
 PKG_CONFIG_DEPENDS:= \
index d4956062474dc496f2816ca54b30abb042d3221b..34dfeff71291ba4d1d44bad368ff7a2a05c6a23f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -929,7 +929,6 @@ docs/design/Makefile
+@@ -963,7 +963,6 @@ docs/design/Makefile
  docs/libs/Makefile
  docs/plugins/Makefile
  docs/version.entities
index f177d1832234366a23e50fedc370fa7e28841313..e650c2057fd2f81ba8ac1695d653912407760ca0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -907,23 +907,6 @@ pkgconfig/gstreamer-video.pc
+@@ -940,24 +940,6 @@ pkgconfig/gstreamer-video.pc
  pkgconfig/gstreamer-video-uninstalled.pc
  pkgconfig/gstreamer-plugins-base.pc
  pkgconfig/gstreamer-plugins-base-uninstalled.pc
@@ -9,6 +9,7 @@
 -tests/examples/Makefile
 -tests/examples/app/Makefile
 -tests/examples/audio/Makefile
+-tests/examples/decodebin_next/Makefile
 -tests/examples/dynamic/Makefile
 -tests/examples/encoding/Makefile
 -tests/examples/fft/Makefile
index a12c7e75ef638ef6654728f7ce963d0ceb443b9f..33bf4a1785523b739855ede9396ab4f8b0823a36 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -907,11 +907,6 @@ pkgconfig/gstreamer-video.pc
+@@ -940,11 +940,6 @@ pkgconfig/gstreamer-video.pc
  pkgconfig/gstreamer-video-uninstalled.pc
  pkgconfig/gstreamer-plugins-base.pc
  pkgconfig/gstreamer-plugins-base-uninstalled.pc
index 1e2da92f8106762d29f00ec35d772484873a1ce7..514e759e083fef56e859a315dc3cf1543d46ab75 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-good
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.10.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,9 +20,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-good-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-good-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-good/
-PKG_HASH:=8d7549118a3b7a009ece6bb38a05b66709c551d32d2adfd89eded4d1d7a23944
+PKG_HASH:=be053f6ed716eeb517cec148cec637cdce571c6e04d5c21409e2876fb76c7639
 
-PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
+PKG_BUILD_DEPENDS:= libgstreamer1 gst1-plugins-base
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -37,7 +37,7 @@ define Package/gstreamer1-good/Default
   SECTION:=multimedia
   TITLE:=GStreamer
   URL:=http://gstreamer.freedesktop.org/
-  DEPENDS:= +libgstreamer1 $(ICONV_DEPENDS)
+  DEPENDS:= +libgstreamer1 +libgst1pbutils $(ICONV_DEPENDS)
 endef
 
 define Package/gstreamer1-good/description/Default
index 141187500510510839aeb4ec3eaadfe25426e351..c6aa7fb57b14fb5c09250f7ea76054b001873672 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1049,7 +1049,6 @@ sys/sunaudio/Makefile
+@@ -1061,7 +1061,6 @@ sys/sunaudio/Makefile
  sys/v4l2/Makefile
  sys/waveform/Makefile
  sys/ximage/Makefile
index b7a7dc761051b26ce99e3c5f56507359e3bc7d1c..5dd513254790718b510fec59c6fddde7c406a449 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1049,21 +1049,6 @@ sys/sunaudio/Makefile
+@@ -1061,21 +1061,6 @@ sys/sunaudio/Makefile
  sys/v4l2/Makefile
  sys/waveform/Makefile
  sys/ximage/Makefile
index 38a876f216fb5cae048bc06c68e7e0cc7a017dd4..17fa97c3e2003cb82fc686348dc133e7f4f74b8b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1052,9 +1052,6 @@ sys/ximage/Makefile
+@@ -1064,9 +1064,6 @@ sys/ximage/Makefile
  common/Makefile
  common/m4/Makefile
  m4/Makefile
index 3381e86640916d5c3c35017171350dee47867c04..a85230663b3a903d2217682c2e35568d345c453a 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-ugly
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.10.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-ugly-$(PKG_VERSION)
 PKG_SOURCE:=gst-plugins-ugly-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-ugly/
-PKG_HASH:=9c5b33a2a98fc1d6d6c99a1b536b1fb2de45f53cc8bf8ab85a8b8141fed1a8ac
+PKG_HASH:=d6edc046350809c967f5b058c5c2e534d99d1d69fe1b26acd849e87781a7d7fc
 
 PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
 PKG_CONFIG_DEPENDS:= \
index ea02ec82155e2573e16991b047541f3cd3974314..012546d5a88308b58e67df1da0f2ab456ff35f77 100644 (file)
@@ -1,17 +1,15 @@
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/configure.ac gst-plugins-ugly-1.6.2/configure.ac
---- gst-plugins-ugly-1.6.2-vanilla/configure.ac        2016-01-01 10:47:06.333623730 -0500
-+++ gst-plugins-ugly-1.6.2/configure.ac        2016-01-01 10:47:20.211613708 -0500
-@@ -470,7 +470,6 @@
- tests/Makefile
+--- a/configure.ac
++++ b/configure.ac
+@@ -482,7 +482,6 @@ tests/Makefile
  tests/check/Makefile
+ tests/files/Makefile
  m4/Makefile
 -po/Makefile.in
  pkgconfig/Makefile
  pkgconfig/gstreamer-plugins-ugly-uninstalled.pc
  gst-plugins-ugly.spec
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/Makefile.am gst-plugins-ugly-1.6.2/Makefile.am
---- gst-plugins-ugly-1.6.2-vanilla/Makefile.am 2016-01-01 10:47:06.333623730 -0500
-+++ gst-plugins-ugly-1.6.2/Makefile.am 2016-01-01 10:47:14.523210855 -0500
+--- a/Makefile.am
++++ b/Makefile.am
 @@ -1,7 +1,7 @@
  DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
  
index f8b51c079ca688899690b2f6b22b69e92a9beaf9..7d34f9448db594abd02c556fdd4c1dc1df9cbdaa 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gstreamer1
-PKG_VERSION:=1.8.2
+PKG_VERSION:=1.10.5
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_BUILD_DIR:=$(BUILD_DIR)/gstreamer-$(PKG_VERSION)
 PKG_SOURCE:=gstreamer-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gstreamer/
-PKG_HASH:=9dbebe079c2ab2004ef7f2649fa317cabea1feb4fb5605c24d40744b90918341
+PKG_HASH:=bc06243600817f637029da29d089d5908d1d266542f68bf6626a10c5f05f1f1d
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=autogen.sh aclocal.m4
@@ -135,11 +135,6 @@ define Build/InstallDev
                ./usr/include/gstreamer-$(GST_VERSION)/* \
                $(1)/usr/include/gstreamer-$(GST_VERSION)/ \
        )
-       $(INSTALL_DIR) $(1)/usr/lib/gstreamer-$(GST_VERSION)/include/gst
-       ( cd $(PKG_INSTALL_DIR); $(CP) \
-               ./usr/lib/gstreamer-$(GST_VERSION)/include/gst/*.h \
-               $(1)/usr/lib/gstreamer-$(GST_VERSION)/include/gst \
-       )
        $(INSTALL_DIR) $(1)/usr/lib
        ( cd $(PKG_INSTALL_DIR); $(CP) \
                ./usr/lib/libgst*-$(GST_VERSION).{a,la,so*} \
index 9c5b590fdb2943b9d140522de33cbe5db3799a48..750fa0c33e5aeb20302d45a40d8e816f2bcf973b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -998,7 +998,6 @@ libs/gst/net/Makefile
+@@ -1047,7 +1047,6 @@ libs/gst/net/Makefile
  plugins/Makefile
  plugins/elements/Makefile
  plugins/tracers/Makefile
index 42874100b861ad6d49d03f344f2c3895d120fe8e..f1d62a0298dc89ccd3e462665650536076dfb677 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -998,21 +998,6 @@ libs/gst/net/Makefile
+@@ -1047,21 +1047,6 @@ libs/gst/net/Makefile
  plugins/Makefile
  plugins/elements/Makefile
  plugins/tracers/Makefile
index 3d1187ae64e7ed271b5b968836a51714c532b2af..86143e4d650696d33cc54615e5e8ab998124ef3c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1001,18 +1001,6 @@ plugins/tracers/Makefile
+@@ -1050,18 +1050,6 @@ plugins/tracers/Makefile
  tools/Makefile
  common/Makefile
  common/m4/Makefile
index 6763c4a0e9b0348dfe4ad2fe3a0b0457273357e9..9b13383469eef097c07a2b3276e9b99be2a16ae8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apache
 PKG_VERSION:=2.4.28
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE_NAME:=httpd
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=Apache License
diff --git a/net/apache/patches/010-reproducible-builds.patch b/net/apache/patches/010-reproducible-builds.patch
new file mode 100644 (file)
index 0000000..7a5324b
--- /dev/null
@@ -0,0 +1,44 @@
+Description: Make builds reproducible
+ Don't use __DATE__ __TIME__. Use changelog date instead.
+ Sort exported symbols.
+Author: Jean-Michel Vourgère <nirgal@debian.org>
+Forwarded: no
+Last-Update: 2015-08-11
+
+Index: apache2/server/buildmark.c
+===================================================================
+--- apache2.orig/server/buildmark.c
++++ apache2/server/buildmark.c
+@@ -17,11 +17,7 @@
+ #include "ap_config.h"
+ #include "httpd.h"
+-#if defined(__DATE__) && defined(__TIME__)
+-static const char server_built[] = __DATE__ " " __TIME__;
+-#else
+-static const char server_built[] = "unknown";
+-#endif
++static const char server_built[] = "";
+ AP_DECLARE(const char *) ap_get_server_built()
+ {
+Index: apache2/server/Makefile.in
+===================================================================
+--- apache2.orig/server/Makefile.in
++++ apache2/server/Makefile.in
+@@ -1,3 +1,4 @@
++export LC_ALL = C
+ CLEAN_TARGETS = gen_test_char test_char.h \
+       ApacheCoreOS2.def httpd.exp export_files \
+@@ -80,8 +81,8 @@ httpd.exp: exports.c export_vars.h
+       @echo "#! ." > $@
+       @echo "* This file was AUTOGENERATED at build time." >> $@
+       @echo "* Please do not edit by hand." >> $@
+-      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
+-      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
++      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' | sort >> $@
++      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' | sort >> $@
+ #   developer stuff
index 04d6bdc1b15d055a08c84a2a9f475a6b8374093e..ed3734642d7a8bf2ff77064154f70f4e53382183 100644 (file)
@@ -14,4 +14,24 @@ config BIND_ENABLE_FILTER_AAAA
                Additional details are available at
                https://kb.isc.org/article/AA-00576/0/Filter-AAAA-option-in-BIND-9-.html
 
+config BIND_LIBJSON
+       bool
+       default n
+       prompt "Include libjson support in bind-server"
+       help
+               BIND 9 supports reporting statistics about usage. libjson
+               is required to report server statistics in JSON format. 
+               Building with libjson support will require the libjson-c
+               package to be installed as well.
+
+config BIND_LIBXML2
+       bool
+       default n
+       prompt "Include libxml2 support in bind-server"
+       help
+               BIND 9 supports reporting statistics about usage. 
+               libxml2 is required to report server statistics in XML
+               format. Building with libjson support will require the
+               libxml2 package to be installed as well.
+
 endif
index bd33aa2ff977dfd5e9537f06fa6345a2988d6759..229e1006ec1b40316a5c661b7696fbc095d0b46e 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
 PKG_VERSION:=9.11.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 USERID:=bind=57:bind=57
 
 PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
@@ -29,7 +29,16 @@ PKG_INSTALL:=1
 PKG_USE_MIPS16:=0
 
 PKG_CONFIG_DEPENDS := \
-       CONFIG_BIND_ENABLE_FILTER_AAAA
+       CONFIG_BIND_ENABLE_FILTER_AAAA \
+       CONFIG_BIND_LIBJSON \
+       CONFIG_BIND_LIBXML2
+
+ifdef CONFIG_BIND_LIBXML2
+  PKG_BUILD_DEPENDS += libxml2
+endif
+ifdef CONFIG_BIND_LIBJSON
+  PKG_BUILD_DEPENDS += libjson-c
+endif
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -48,6 +57,12 @@ define Package/bind-libs
   DEPENDS:=+libopenssl +zlib
   TITLE:=bind shared libraries
   URL:=https://www.isc.org/software/bind
+ifdef CONFIG_BIND_LIBJSON
+  DEPENDS+= +libjson-c
+endif
+ifdef CONFIG_BIND_LIBXML2
+  DEPENDS+= +libxml2
+endif
 endef
 
 define Package/bind-server
@@ -104,9 +119,7 @@ CONFIGURE_ARGS += \
        --disable-threads \
        --disable-linux-caps \
        --with-openssl="$(STAGING_DIR)/usr" \
-       --with-libjson=no \
        --with-libtool \
-       --with-libxml2=no \
        --without-lmdb \
        --enable-epoll=yes \
        --with-gost=no \
@@ -120,6 +133,22 @@ ifdef CONFIG_BIND_ENABLE_FILTER_AAAA
                --enable-filter-aaaa
 endif
 
+ifdef CONFIG_BIND_LIBJSON
+       CONFIGURE_ARGS += \
+               --with-libjson="$(STAGING_DIR)/usr"
+else
+       CONFIGURE_ARGS += \
+               --with-libjson=no
+endif
+
+ifdef CONFIG_BIND_LIBXML2
+       CONFIGURE_ARGS += \
+               --with-libxml2="$(STAGING_DIR)/usr"
+else
+       CONFIGURE_ARGS += \
+               --with-libxml2=no
+endif
+
 CONFIGURE_VARS += \
        BUILD_CC="$(TARGET_CC)" \
 
index c18e7454e2b45d5a39c90a200977f67f14717d6d..6805199e51ab61030a0817cd17cfbc96ddad7f55 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=horst
 PKG_VERSION:=5.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/br101/horst/archive/v$(PKG_VERSION)/
diff --git a/net/horst/patches/0001-reproducible-builds.patch b/net/horst/patches/0001-reproducible-builds.patch
new file mode 100644 (file)
index 0000000..541d16f
--- /dev/null
@@ -0,0 +1,26 @@
+Index: horst-5.1/conf_options.c
+===================================================================
+--- horst-5.1.orig/conf_options.c
++++ horst-5.1/conf_options.c
+@@ -519,7 +519,7 @@ void config_parse_file_and_cmdline(int a
+                       conf_filename = optarg;
+                       break;
+               case 'v':
+-                      printf("%s (build date: %s %s)\n", VERSION, __DATE__, __TIME__);
++                      printf("%s\n", VERSION);
+                       exit(0);
+               case 'h':
+               case '?':
+Index: horst-5.1/display-help.c
+===================================================================
+--- horst-5.1.orig/display-help.c
++++ horst-5.1/display-help.c
+@@ -36,7 +36,7 @@ void update_help_win(WINDOW *win)
+       print_centered(win, 2, COLS, "HORST - Horsts OLSR Radio Scanning Tool (or)");
+       print_centered(win, 3, COLS, "HORST - Highly Optimized Radio Scanning Tool");
+-      print_centered(win, 5, COLS, "Version " VERSION " (build date " __DATE__ " " __TIME__ ")");
++      print_centered(win, 5, COLS, "Version " VERSION);
+       print_centered(win, 6, COLS, "(C) 2005-2016 Bruno Randolf, Licensed under the GPLv2");
+       mvwprintw(win, 8, 2, "Known IEEE802.11 Packet Types:");
index 164819b99d5363e3be7af13b5d03a64f506ca0a6..72d01aa3f381c6d9db760e003d13d02202e34eeb 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mDNSResponder
 PKG_VERSION:=576.30.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
index df56608d5bc93a094144661af3e9e7ee184811a8..974588d200a62efbff514e904a5767c8db579ee2 100644 (file)
@@ -1,6 +1,3 @@
-diff --git a/.gitignore b/.gitignore
-new file mode 100644
-index 0000000..920cdfc
 --- /dev/null
 +++ b/.gitignore
 @@ -0,0 +1,4 @@
@@ -8,11 +5,9 @@ index 0000000..920cdfc
 +mDNSPosix/build
 +mDNSPosix/objects
 +
-diff --git a/Clients/Makefile b/Clients/Makefile
-index 383af31..925c20e 100755
 --- a/Clients/Makefile
 +++ b/Clients/Makefile
-@@ -34,7 +34,7 @@ TARGETS = build/dns-sd build/dns-sd64
+@@ -36,7 +36,7 @@ TARGETS = build/dns-sd build/dns-sd64
  LIBS =
  else
  TARGETS = build/dns-sd
@@ -21,8 +16,6 @@ index 383af31..925c20e 100755
  endif
  
  all: $(TARGETS)
-diff --git a/mDNSPosix/PosixDaemon.c b/mDNSPosix/PosixDaemon.c
-index 88b3292..e86a6c7 100644
 --- a/mDNSPosix/PosixDaemon.c
 +++ b/mDNSPosix/PosixDaemon.c
 @@ -37,6 +37,11 @@
@@ -88,11 +81,9 @@ index 88b3292..e86a6c7 100644
      if (mStatus_NoError == err)
          err = MainLoop(&mDNSStorage);
  
-diff --git a/mDNSPosix/Responder.c b/mDNSPosix/Responder.c
-index 3996b7b..e58d8eb 100755
 --- a/mDNSPosix/Responder.c
 +++ b/mDNSPosix/Responder.c
-@@ -603,7 +603,8 @@ static mStatus RegisterServicesInFile(const char *filePath)
+@@ -603,7 +603,8 @@ static mStatus RegisterServicesInFile(co
          status = mStatus_UnknownErr;
      }
  
@@ -102,11 +93,9 @@ index 3996b7b..e58d8eb 100755
  
      return status;
  }
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 6effa12..7c1d6eb 100755
 --- a/mDNSPosix/mDNSPosix.c
 +++ b/mDNSPosix/mDNSPosix.c
-@@ -138,7 +138,7 @@ mDNSlocal void SockAddrTomDNSAddr(const struct sockaddr *const sa, mDNSAddr *ipA
+@@ -138,7 +138,7 @@ mDNSlocal void SockAddrTomDNSAddr(const
  
  // mDNS core calls this routine when it needs to send a packet.
  mDNSexport mStatus mDNSPlatformSendUDP(const mDNS *const m, const void *const msg, const mDNSu8 *const end,
@@ -115,7 +104,7 @@ index 6effa12..7c1d6eb 100755
                                         mDNSIPPort dstPort, mDNSBool useBackgroundTrafficClass)
  {
      int err = 0;
-@@ -583,9 +583,17 @@ mDNSlocal void FreePosixNetworkInterface(PosixNetworkInterface *intf)
+@@ -583,9 +583,17 @@ mDNSlocal void FreePosixNetworkInterface
  {
      assert(intf != NULL);
      if (intf->intfName != NULL) free((void *)intf->intfName);
@@ -135,7 +124,7 @@ index 6effa12..7c1d6eb 100755
  #endif
  
      // Move interface to the RecentInterfaces list for a minute
-@@ -724,6 +732,29 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
+@@ -724,6 +732,29 @@ mDNSlocal int SetupSocket(struct sockadd
              if (err < 0) { err = errno; perror("setsockopt - IP_MULTICAST_TTL"); }
          }
  
@@ -165,7 +154,7 @@ index 6effa12..7c1d6eb 100755
          // And start listening for packets
          if (err == 0)
          {
-@@ -805,6 +836,29 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
+@@ -805,6 +836,29 @@ mDNSlocal int SetupSocket(struct sockadd
              if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); }
          }
  
@@ -195,7 +184,7 @@ index 6effa12..7c1d6eb 100755
          // And start listening for packets
          if (err == 0)
          {
-@@ -836,7 +890,12 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
+@@ -836,7 +890,12 @@ mDNSlocal int SetupSocket(struct sockadd
      }
  
      // Clean up
@@ -209,7 +198,7 @@ index 6effa12..7c1d6eb 100755
      assert((err == 0) == (*sktPtr != -1));
      return err;
  }
-@@ -938,19 +997,14 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
+@@ -942,19 +1001,14 @@ mDNSlocal int SetupInterfaceList(mDNS *c
      int err            = 0;
      struct ifi_info *intfList      = get_ifi_info(AF_INET, mDNStrue);
      struct ifi_info *firstLoopback = NULL;
@@ -232,7 +221,7 @@ index 6effa12..7c1d6eb 100755
  #endif
  
      if (err == 0)
-@@ -1026,7 +1080,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
+@@ -1030,7 +1084,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int
      /* Subscribe the socket to Link & IP addr notifications. */
      mDNSPlatformMemZero(&snl, sizeof snl);
      snl.nl_family = AF_NETLINK;
@@ -241,7 +230,7 @@ index 6effa12..7c1d6eb 100755
      ret = bind(sock, (struct sockaddr *) &snl, sizeof snl);
      if (0 == ret)
          *pFD = sock;
-@@ -1104,11 +1158,18 @@ mDNSlocal mDNSu32       ProcessRoutingNotification(int sd)
+@@ -1108,11 +1162,18 @@ mDNSlocal mDNSu32       ProcessRoutingNo
          PrintNetLinkMsg(pNLMsg);
  #endif
  
@@ -262,7 +251,7 @@ index 6effa12..7c1d6eb 100755
  
          // Advance pNLMsg to the next message in the buffer
          if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
-@@ -1279,8 +1340,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS *const m)
+@@ -1283,8 +1344,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS
      if (err == mStatus_NoError) err = SetupSocket(&sa, zeroIPPort, 0, &m->p->unicastSocket6);
  #endif
  
@@ -275,7 +264,7 @@ index 6effa12..7c1d6eb 100755
  
      // Tell mDNS core about DNS Servers
      mDNS_Lock(m);
-@@ -1313,9 +1378,17 @@ mDNSexport void mDNSPlatformClose(mDNS *const m)
+@@ -1317,9 +1382,17 @@ mDNSexport void mDNSPlatformClose(mDNS *
  {
      assert(m != NULL);
      ClearInterfaceList(m);
@@ -295,7 +284,7 @@ index 6effa12..7c1d6eb 100755
  #endif
  }
  
-@@ -1571,14 +1644,14 @@ mDNSexport mStatus    mDNSPlatformClearSPSMACAddr(void)
+@@ -1575,14 +1648,14 @@ mDNSexport mStatus    mDNSPlatformClearS
  mDNSexport mDNSu16 mDNSPlatformGetUDPPort(UDPSocket *sock)
  {
      (void) sock; // unused
@@ -312,8 +301,6 @@ index 6effa12..7c1d6eb 100755
      return mDNSfalse;
  }
  
-diff --git a/mDNSPosix/mDNSUNP.c b/mDNSPosix/mDNSUNP.c
-index b392fc7..f551ad5 100755
 --- a/mDNSPosix/mDNSUNP.c
 +++ b/mDNSPosix/mDNSUNP.c
 @@ -63,6 +63,7 @@
@@ -324,7 +311,7 @@ index b392fc7..f551ad5 100755
  
  /* Converts a prefix length to IPv6 network mask */
  void plen_to_mask(int plen, char *addr) {
-@@ -86,7 +87,7 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
+@@ -86,7 +87,7 @@ struct ifi_info *get_ifi_info_linuxv6(in
      FILE *fp;
      char addr[8][5];
      int flags, myflags, index, plen, scope;
@@ -333,7 +320,7 @@ index b392fc7..f551ad5 100755
      char addr6[32+7+1]; /* don't forget the seven ':' */
      struct addrinfo hints, *res0;
      struct sockaddr_in6 *sin6;
-@@ -94,7 +95,8 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
+@@ -94,7 +95,8 @@ struct ifi_info *get_ifi_info_linuxv6(in
      int err;
      int sockfd = -1;
      struct ifreq ifr;
@@ -343,7 +330,7 @@ index b392fc7..f551ad5 100755
      res0=NULL;
      ifihead = NULL;
      ifipnext = &ifihead;
-@@ -106,11 +108,12 @@ struct ifi_info *get_ifi_info_linuxv6(int family, int doaliases)
+@@ -106,11 +108,12 @@ struct ifi_info *get_ifi_info_linuxv6(in
              goto gotError;
          }
          while (fscanf(fp,
@@ -370,8 +357,6 @@ index b392fc7..f551ad5 100755
      }
      return(ifihead);    /* pointer to first structure in linked list */
  }
-diff --git a/mDNSShared/dnsextd_parser.y b/mDNSShared/dnsextd_parser.y
-index 18c5990..d4b63ce 100644
 --- a/mDNSShared/dnsextd_parser.y
 +++ b/mDNSShared/dnsextd_parser.y
 @@ -15,6 +15,8 @@
diff --git a/net/mdnsresponder/patches/120-reproducible-builds.patch b/net/mdnsresponder/patches/120-reproducible-builds.patch
new file mode 100644 (file)
index 0000000..b1e7caa
--- /dev/null
@@ -0,0 +1,52 @@
+--- a/Clients/dns-sd.c
++++ b/Clients/dns-sd.c
+@@ -1811,7 +1811,7 @@ Fail:
+ // NOT static -- otherwise the compiler may optimize it out
+ // The "@(#) " pattern is a special prefix the "what" command looks for
+-const char VersionString_SCCS[] = "@(#) dns-sd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++const char VersionString_SCCS[] = "@(#) dns-sd " STRINGIFY(mDNSResponderVersion);
+ #if _BUILDING_XCODE_PROJECT_
+ // If the process crashes, then this string will be magically included in the automatically-generated crash log
+--- a/mDNSPosix/PosixDaemon.c
++++ b/mDNSPosix/PosixDaemon.c
+@@ -289,9 +289,9 @@ asm (".desc ___crashreporter_info__, 0x1
+ // For convenience when using the "strings" command, this is the last thing in the file
+ #if mDNSResponderVersion > 1
+-mDNSexport const char mDNSResponderVersionString_SCCS[] = "@(#) mDNSResponder-" STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++mDNSexport const char mDNSResponderVersionString_SCCS[] = "@(#) mDNSResponder-" STRINGIFY(mDNSResponderVersion);
+ #elif MDNS_VERSIONSTR_NODTS
+ mDNSexport const char mDNSResponderVersionString_SCCS[] = "@(#) mDNSResponder (Engineering Build)";
+ #else
+-mDNSexport const char mDNSResponderVersionString_SCCS[] = "@(#) mDNSResponder (Engineering Build) (" __DATE__ " " __TIME__ ")";
++mDNSexport const char mDNSResponderVersionString_SCCS[] = "@(#) mDNSResponder (Engineering Build)";
+ #endif
+--- a/mDNSShared/Java/JNISupport.c
++++ b/mDNSShared/Java/JNISupport.c
+@@ -1069,4 +1069,4 @@ exit:
+ // NOT static -- otherwise the compiler may optimize it out
+ // The "@(#) " pattern is a special prefix the "what" command looks for
+-const char VersionString_SCCS[] = "@(#) libjdns_sd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++const char VersionString_SCCS[] = "@(#) libjdns_sd " STRINGIFY(mDNSResponderVersion);
+--- a/mDNSShared/dnsextd.c
++++ b/mDNSShared/dnsextd.c
+@@ -3141,7 +3141,7 @@ mDNS mDNSStorage;
+ // For convenience when using the "strings" command, this is the last thing in the file
+ // The "@(#) " pattern is a special prefix the "what" command looks for
+-const char mDNSResponderVersionString_SCCS[] = "@(#) dnsextd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++const char mDNSResponderVersionString_SCCS[] = "@(#) dnsextd " STRINGIFY(mDNSResponderVersion);
+ #if _BUILDING_XCODE_PROJECT_
+ // If the process crashes, then this string will be magically included in the automatically-generated crash log
+--- a/mDNSShared/dnssd_clientlib.c
++++ b/mDNSShared/dnssd_clientlib.c
+@@ -363,4 +363,4 @@ DNSServiceErrorType DNSSD_API TXTRecordG
+ // NOT static -- otherwise the compiler may optimize it out
+ // The "@(#) " pattern is a special prefix the "what" command looks for
+-const char VersionString_SCCS_libdnssd[] = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion) " (" __DATE__ " " __TIME__ ")";
++const char VersionString_SCCS_libdnssd[] = "@(#) libdns_sd " STRINGIFY(mDNSResponderVersion);
index ec2554c8354e7296daf06ed1b61987da1d8ee762..a9c66fad77cc7959a4bd2d08ff0b18651ccfc840 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openconnect
 PKG_VERSION:=7.08
-PKG_RELEASE:=4
+PKG_RELEASE:=6
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -32,19 +32,20 @@ define Package/openconnect
   SECTION:=net
   CATEGORY:=Network
   DEPENDS:=+libxml2 +kmod-tun +resolveip +vpnc-scripts +OPENCONNECT_OPENSSL:libopenssl +OPENCONNECT_OPENSSL:p11-kit +OPENCONNECT_OPENSSL:libp11 +OPENCONNECT_GNUTLS:libgnutls +OPENCONNECT_STOKEN:libstoken
-  TITLE:=OpenConnect VPN client (Cisco AnyConnect compatible)
+  TITLE:=OpenConnect VPN client (Cisco AnyConnect and Juniper/Pulse compatible)
   MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
   URL:=http://www.infradead.org/openconnect/
   SUBMENU:=VPN
 endef
 
 define Package/openconnect/description
-       A VPN client compatible with Cisco's AnyConnect SSL VPN and ocserv.
+       A VPN client compatible with Cisco's AnyConnect SSL VPN, ocserv and Juniper (Pulse secure).
 
         OpenConnect is a client that follows the Cisco's AnyConnect SSL VPN protocol,
         which is supported by IOS 12.4(9)T or later on Cisco SR500, 870, 880, 1800,
         2800, 3800, 7200 Series and Cisco 7301 Routers, as well as the OpenConnect
-        VPN server.
+        VPN server. It has later been ported to support the Juniper SSL VPN which
+        is now known as Pulse Connect Secure.
 endef
 
 CONFIGURE_ARGS += \
index 772b0e3cc6bea6983703c3419663c45a9b228c89..1a7b798d50e4c637559117ab6ea2197302249341 100644 (file)
@@ -26,6 +26,9 @@ config interface 'MYVPN'
         #option token_mode 'hotp'
         #option token_secret '00'
 
+       # Juniper vpn support
+       #option juniper '1'
+
 The additional files are also used:
 /etc/openconnect/user-cert-vpn-MYVPN.pem: The user certificate
 /etc/openconnect/user-key-vpn-MYVPN.pem: The user private key
index 0e3d90ab4436e5e5c37532ff1751164f76763f03..7683eca8bbf01fdb565638113cc29d2916e4c62b 100755 (executable)
@@ -7,6 +7,8 @@ proto_openconnect_init_config() {
        proto_config_add_string "server"
        proto_config_add_int "port"
        proto_config_add_int "mtu"
+       proto_config_add_int "juniper"
+       proto_config_add_string "interface"
        proto_config_add_string "username"
        proto_config_add_string "serverhash"
        proto_config_add_string "authgroup"
@@ -23,7 +25,7 @@ proto_openconnect_init_config() {
 proto_openconnect_setup() {
        local config="$1"
 
-       json_get_vars server port username serverhash authgroup password password2 token_mode token_secret os csd_wrapper mtu
+       json_get_vars server port interface username serverhash authgroup password password2 token_mode token_secret os csd_wrapper mtu juniper
 
        grep -q tun /proc/modules || insmod tun
        ifname="vpn-$config"
@@ -33,7 +35,7 @@ proto_openconnect_setup() {
        logger -t "openconnect" "adding host dependency for $server at $config"
        for ip in $(resolveip -t 10 "$server"); do
                logger -t "openconnect" "adding host dependency for $ip at $config"
-               proto_add_host_dependency "$config" "$ip"
+               proto_add_host_dependency "$config" "$ip" "$interface"
        done
 
        [ -n "$port" ] && port=":$port"
@@ -52,6 +54,11 @@ proto_openconnect_setup() {
                append cmdline "--cafile /etc/openconnect/ca-vpn-$config.pem"
                append cmdline "--no-system-trust"
        }
+
+       if [ "${juniper:-0}" -gt 0 ]; then
+               append cmdline "--juniper"
+       fi
+
        [ -n "$serverhash" ] && {
                append cmdline " --servercert=$serverhash"
                append cmdline "--no-system-trust"
index 2640187676ca5f745fa8b4097a38e3b094a778a0..3b7c67775605d03ed3213ef8771ede81f46f0120 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ser2net
-PKG_VERSION:=3.4
-PKG_RELEASE:=2
+PKG_VERSION:=3.5
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/ser2net
-PKG_HASH:=d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824
+PKG_HASH:=ba9e1d60a89fd7ed075553b4a2074352902203f7fbd9b65b15048c05f0e3f3be
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/ser2net/patches/0001-dataxfer.c-fix-possible-buffer-overruns-caused-by-ga.patch b/net/ser2net/patches/0001-dataxfer.c-fix-possible-buffer-overruns-caused-by-ga.patch
deleted file mode 100644 (file)
index 83874eb..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 8614cf0ad4a017184285e814a704322f59a28869 Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Wed, 12 Apr 2017 23:36:17 +0200
-Subject: [PATCH] dataxfer.c: fix possible buffer overruns caused by
- gai_strerror
-
-This fixes a possible buffer overrun that could occur due to
-gai_strerror() returning a string which is longer than the portbuff
-array, i.e. longer than 32 byte.
-
-Reported-by: David Thornley <david.thornley@touchstargroup.com>
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-
-diff --git a/dataxfer.c b/dataxfer.c
-index 3d1e713..988f4e4 100644
---- a/dataxfer.c
-+++ b/dataxfer.c
-@@ -3702,18 +3702,20 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
-                     portbuff, sizeof(portbuff),
-                     NI_NUMERICHOST | NI_NUMERICSERV);
-     if (err) {
--      strcpy(buffer, "*err*");
--      sprintf(portbuff, "%s", gai_strerror(err));
-+      snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-+      count = controller_outputf(cntlr, "%s", buffer);
-+    } else {
-+      count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
-     }
--    bytes_recv = netcon->bytes_received;
--    bytes_sent = netcon->bytes_sent;
--    count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
-     while (count < 23) {
-       controller_outs(cntlr, " ");
-       count++;
-     }
-+    bytes_recv = netcon->bytes_received;
-+    bytes_sent = netcon->bytes_sent;
-+
-     controller_outputf(cntlr, "%-22s ", port->io.devname);
-     controller_outputf(cntlr, "%-14s ", state_str[port->net_to_dev_state]);
-     controller_outputf(cntlr, "%-14s ", state_str[port->dev_to_net_state]);
-@@ -3758,11 +3760,12 @@ showport(struct controller_info *cntlr, port_info_t *port)
-                         portbuff, sizeof(portbuff),
-                         NI_NUMERICHOST | NI_NUMERICSERV);
-       if (err) {
--          strcpy(buffer, "*err*");
--          sprintf(portbuff, "%s", gai_strerror(err));
-+          snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-+          controller_outputf(cntlr, "  connected to: %s\r\n", buffer);
-+      } else {
-+          controller_outputf(cntlr, "  connected to: %s,%s\r\n",
-+                             buffer, portbuff);
-       }
--      controller_outputf(cntlr, "  connected to: %s,%s\r\n",
--                         buffer, portbuff);
-       controller_outputf(cntlr, "    bytes read from TCP: %d\r\n",
-                          netcon->bytes_received);
-       controller_outputf(cntlr, "    bytes written to TCP: %d\r\n",
--- 
-2.7.4
-
diff --git a/net/ser2net/patches/0002-dataxfer.c-truncate-error-message-to-fit-the-column-.patch b/net/ser2net/patches/0002-dataxfer.c-truncate-error-message-to-fit-the-column-.patch
deleted file mode 100644 (file)
index 215a357..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From b303432f2dbd6a20afa99cb462aa0a1bb740b86d Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Wed, 12 Apr 2017 23:43:18 +0200
-Subject: [PATCH] dataxfer.c: truncate error message to fit the column width
-
-gai_strerror() could return a string which is longer than our current
-column width of "Remote address". To make the output nice again,
-truncate the error string in this case.
-
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-
-diff --git a/dataxfer.c b/dataxfer.c
-index 988f4e4..75c2777 100644
---- a/dataxfer.c
-+++ b/dataxfer.c
-@@ -3703,6 +3703,10 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
-                     NI_NUMERICHOST | NI_NUMERICSERV);
-     if (err) {
-       snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-+      /* gai_strerror could return an elongated string which could break
-+         our pretty formatted output below, so truncate the string nicely */
-+      if (strlen(buffer) > 22)
-+          strcpy(&buffer[22 - 3], "...");
-       count = controller_outputf(cntlr, "%s", buffer);
-     } else {
-       count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
--- 
-2.7.4
-
diff --git a/net/ser2net/patches/0003-dataxfer.c-adjust-Remote-address-column-width.patch b/net/ser2net/patches/0003-dataxfer.c-adjust-Remote-address-column-width.patch
deleted file mode 100644 (file)
index fbc7aed..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From 81f3991e232fd45b05ff52b5091393532e4305e5 Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Thu, 13 Apr 2017 20:29:10 +0200
-Subject: [PATCH] dataxfer.c: adjust "Remote address" column width
-
-In case we are connected to an IPv6 address the current column width
-is too small to take the complete address and port number so adjust it.
-
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-
-diff --git a/dataxfer.c b/dataxfer.c
-index 75c2777..9955403 100644
---- a/dataxfer.c
-+++ b/dataxfer.c
-@@ -3674,6 +3674,9 @@ clear_old_port_config(int curr_config)
-     UNLOCK(ports_lock);
- }
-+#define REMOTEADDR_COLUMN_WIDTH \
-+    (INET6_ADDRSTRLEN - 1 /* terminating NUL */ + 1 /* comma */ + 5 /* strlen("65535") */)
-+
- /* Print information about a port to the control port given in cntlr. */
- static void
- showshortport(struct controller_info *cntlr, port_info_t *port)
-@@ -3705,14 +3708,14 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
-       snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-       /* gai_strerror could return an elongated string which could break
-          our pretty formatted output below, so truncate the string nicely */
--      if (strlen(buffer) > 22)
--          strcpy(&buffer[22 - 3], "...");
-+      if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
-+          strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
-       count = controller_outputf(cntlr, "%s", buffer);
-     } else {
-       count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
-     }
--    while (count < 23) {
-+    while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
-       controller_outs(cntlr, " ");
-       count++;
-     }
-@@ -3878,10 +3881,11 @@ showshortports(struct controller_info *cntlr, char *portspec)
-     port_info_t *port;
-     controller_outputf(cntlr,
--          "%-22s %-6s %7s %-22s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
-+          "%-22s %-6s %7s %-*s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
-           "Port name",
-           "Type",
-           "Timeout",
-+          REMOTEADDR_COLUMN_WIDTH,
-           "Remote address",
-           "Device",
-           "TCP to device",
--- 
-2.7.4
-
diff --git a/net/ser2net/patches/0004-dataxfer.c-in-case-port-is-not-connected-display-thi.patch b/net/ser2net/patches/0004-dataxfer.c-in-case-port-is-not-connected-display-thi.patch
deleted file mode 100644 (file)
index 04cbddc..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From 1479d3acc7ffb77225ea294f83a8d3fbdadfece6 Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Thu, 13 Apr 2017 20:37:35 +0200
-Subject: [PATCH] dataxfer.c: in case port is not connected display this
- directly
-
-In this case we don't bother to call into getnameinfo but show
-directly "unconnected", this prevents showing an error message.
-
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-
-diff --git a/dataxfer.c b/dataxfer.c
-index 9955403..d6a59d9 100644
---- a/dataxfer.c
-+++ b/dataxfer.c
-@@ -3700,19 +3700,23 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
-     if (!netcon)
-       netcon = &(port->netcons[0]);
--    err = getnameinfo(netcon->raddr, netcon->raddrlen,
--                    buffer, sizeof(buffer),
--                    portbuff, sizeof(portbuff),
--                    NI_NUMERICHOST | NI_NUMERICSERV);
--    if (err) {
--      snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
--      /* gai_strerror could return an elongated string which could break
--         our pretty formatted output below, so truncate the string nicely */
--      if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
--          strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
--      count = controller_outputf(cntlr, "%s", buffer);
-+    if (port->net_to_dev_state != PORT_UNCONNECTED) {
-+      err = getnameinfo(netcon->raddr, netcon->raddrlen,
-+                        buffer, sizeof(buffer),
-+                        portbuff, sizeof(portbuff),
-+                        NI_NUMERICHOST | NI_NUMERICSERV);
-+      if (err) {
-+          snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-+          /* gai_strerror could return an elongated string which could break
-+             our pretty formatted output below, so truncate the string nicely */
-+          if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
-+              strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
-+          count = controller_outputf(cntlr, "%s", buffer);
-+      } else {
-+          count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
-+      }
-     } else {
--      count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
-+      count = controller_outputf(cntlr, "unconnected");
-     }
-     while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
-@@ -3762,21 +3766,25 @@ showport(struct controller_info *cntlr, port_info_t *port)
-     controller_outputf(cntlr, "  timeout: %d\r\n", port->timeout);
-     for_each_connection(port, netcon) {
--      err = getnameinfo(netcon->raddr, netcon->raddrlen,
--                        buffer, sizeof(buffer),
--                        portbuff, sizeof(portbuff),
--                        NI_NUMERICHOST | NI_NUMERICSERV);
--      if (err) {
--          snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
--          controller_outputf(cntlr, "  connected to: %s\r\n", buffer);
-+      if (port->net_to_dev_state != PORT_UNCONNECTED) {
-+          err = getnameinfo(netcon->raddr, netcon->raddrlen,
-+                            buffer, sizeof(buffer),
-+                            portbuff, sizeof(portbuff),
-+                            NI_NUMERICHOST | NI_NUMERICSERV);
-+          if (err) {
-+              snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
-+              controller_outputf(cntlr, "  connected to: %s\r\n", buffer);
-+          } else {
-+              controller_outputf(cntlr, "  connected to: %s,%s\r\n",
-+                                 buffer, portbuff);
-+          }
-+          controller_outputf(cntlr, "    bytes read from TCP: %d\r\n",
-+                             netcon->bytes_received);
-+          controller_outputf(cntlr, "    bytes written to TCP: %d\r\n",
-+                             netcon->bytes_sent);
-       } else {
--          controller_outputf(cntlr, "  connected to: %s,%s\r\n",
--                             buffer, portbuff);
-+          controller_outputf(cntlr, "  unconnected\r\n");
-       }
--      controller_outputf(cntlr, "    bytes read from TCP: %d\r\n",
--                         netcon->bytes_received);
--      controller_outputf(cntlr, "    bytes written to TCP: %d\r\n",
--                         netcon->bytes_sent);
-     }
-     controller_outputf(cntlr, "  device: %s\r\n", port->io.devname);
--- 
-2.7.4
-
index 303475beb5fa4fc69760d0f9158c49011de320ec..47b17f7f9bb98ef0f20d6e6ca5450e4cc70b1ca0 100644 (file)
@@ -13,12 +13,12 @@ include $(TOPDIR)/rules.mk
 # - check if default mode has changed from being tcp_only
 #
 PKG_NAME:=shadowsocks-libev
-PKG_VERSION:=3.1.0
+PKG_VERSION:=3.1.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev/releases/download/v$(PKG_VERSION)
-PKG_HASH:=3b6493ebdcfff1eb31faf34d164d57049f7253ff5bffafa6ce2263c9ac123f31
+PKG_HASH:=24a002c100fbe9b4481e3134273cb1a2f25a4026eb030760e7e7eb57f8466ef6
 
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 
index e374dc55f5db403201961ee74f6ca5a7452c18e8..aff11fdef40b48a1b3f865b2ee972358e5ca011d 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=strongswan
-PKG_VERSION:=5.6.0
+PKG_VERSION:=5.6.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=a14dc0d92634ed52730bfc76a76db30943a28ed3c65a560066e1e9f785827b13
+PKG_HASH:=e0c282d8ad418609c5dfb5e8efa01b28b95ef3678070ed47bf2a229f55f4ab53
 PKG_SOURCE_URL:=http://download.strongswan.org/ http://download2.strongswan.org/
 PKG_LICENSE:=GPL-2.0+
 PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
index f6cb8b99c1f6058ee9bb5e9acb5ab0c7762122ab..c762f05dfaf43cdf3267221bc5fd7fa5fb54200b 100644 (file)
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=transmission
 PKG_VERSION:=2.92+git
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/transmission/transmission.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=35fea28d1a37875ef7480ac061754df617805b19
+PKG_SOURCE_VERSION:=5b29fe15561d40c40cbee635446df6b33e18d2c2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_MIRROR_HASH:=aeeb8dfd918bd2cf4fb6fbdf58bd822e9b509df1ba5ec408888edd161123ef8e
+PKG_MIRROR_HASH:=f99982ae68564da9bf6ad4407285aff2e29508e4fd801ff56f86a8b3dae01819
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
@@ -32,7 +32,7 @@ define Package/transmission/template
   CATEGORY:=Network
   TITLE:=BitTorrent client
   URL:=http://www.transmissionbt.com
-  MAINTAINER:=Cezary Jackiewicz <cezary@eko.one.pl>
+  MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 endef
 
 define Package/transmission-daemon/Default
@@ -171,6 +171,8 @@ define Package/transmission-daemon-openssl/install
        $(INSTALL_BIN) files/transmission.init $(1)/etc/init.d/transmission
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) files/transmission.config $(1)/etc/config/transmission
+       $(INSTALL_DIR) $(1)/etc/sysctl.d/
+       $(INSTALL_CONF) files/transmission.sysctl $(1)/etc/sysctl.d/20-transmission.conf
 endef
 Package/transmission-daemon-mbedtls/install = $(Package/transmission-daemon-openssl/install)
 
diff --git a/net/transmission/files/transmission.sysctl b/net/transmission/files/transmission.sysctl
new file mode 100644 (file)
index 0000000..bdf0de2
--- /dev/null
@@ -0,0 +1,2 @@
+net.core.rmem_max = 4194304
+net.core.wmem_max = 1048576
diff --git a/net/transmission/patches/030-fix-musl-build.patch b/net/transmission/patches/030-fix-musl-build.patch
deleted file mode 100644 (file)
index f03aebc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/libtransmission/bitfield.c
-+++ b/libtransmission/bitfield.c
-@@ -6,6 +6,8 @@
-  *
-  */
-+#define __NEED_ssize_t
-+
- #include <assert.h>
- #include <string.h> /* memset */
-@@ -13,6 +15,7 @@
- #include "bitfield.h"
- #include "utils.h" /* tr_new0 () */
-+
- const tr_bitfield TR_BITFIELD_INIT = { NULL, 0, 0, 0, false, false };
- /****
---- a/libtransmission/fdlimit.h
-+++ b/libtransmission/fdlimit.h
-@@ -10,6 +10,8 @@
-  #error only libtransmission should #include this header.
- #endif
-+#define __NEED_off_t
-+
- #include "transmission.h"
- #include "file.h"
- #include "net.h"
diff --git a/net/transmission/patches/060-fix-foreground-syslog.patch b/net/transmission/patches/060-fix-foreground-syslog.patch
new file mode 100644 (file)
index 0000000..0334ca5
--- /dev/null
@@ -0,0 +1,30 @@
+diff --git a/daemon/daemon.c b/daemon/daemon.c
+index 7b2a3b425..5b19d105a 100644
+--- a/daemon/daemon.c
++++ b/daemon/daemon.c
+@@ -715,12 +715,7 @@ static int daemon_start(void* raw_arg, bool foreground)
+     }
+ #ifdef HAVE_SYSLOG
+-
+-    if (!foreground)
+-    {
+-        openlog(MY_NAME, LOG_CONS | LOG_PID, LOG_DAEMON);
+-    }
+-
++    openlog(MY_NAME, LOG_CONS | LOG_PID, LOG_DAEMON);
+ #endif
+     /* Create new timer event to report daemon status */
+@@ -772,11 +767,8 @@ cleanup:
+     /* shutdown */
+ #ifdef HAVE_SYSLOG
+-    if (!foreground)
+-    {
+         syslog(LOG_INFO, "%s", "Closing session");
+         closelog();
+-    }
+ #endif
index 4142ac208c639e3515365742ca7909471df50707..fa8290d3d905d30dda03f155428a2dbcfb3db156 100644 (file)
@@ -5,7 +5,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=auc
-PKG_VERSION:=0.0.3
+PKG_VERSION:=0.0.8
 PKG_RELEASE=1
 PKG_LICENSE:=GPL-3.0
 
index b8d97742df1097104c6002585598973c234924f3..21c13461de8663286e0fc116bb24703b8a64892e 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 #define _GNU_SOURCE
-#define AUC_VERSION "0.0.3"
+#define AUC_VERSION "0.0.8"
 
 #include <fcntl.h>
 #include <dlfcn.h>
@@ -41,6 +41,7 @@
 
 static char user_agent[80];
 static char *serverurl;
+static int upgrade_packages;
 static struct ustream_ssl_ctx *ssl_ctx;
 static const struct ustream_ssl_ops *ssl_ops;
 static off_t out_bytes;
@@ -48,12 +49,13 @@ static off_t out_len;
 static off_t out_offset;
 static bool cur_resume;
 static int output_fd = -1;
-static int retry, imagebuilder, building;
+static int retry, imagebuilder, building, ibready;
 static char *board_name = NULL;
 static char *target = NULL, *subtarget = NULL;
 static char *distribution = NULL, *version = NULL, *revision = NULL;
 static int uptodate;
 static char *filename = NULL;
+static int debug = 0;
 
 /*
  * policy for ubus call system board
@@ -135,20 +137,21 @@ static const struct blobmsg_policy upgtest_policy[__UPGTEST_MAX] = {
  */
 enum {
        CHECK_VERSION,
+       CHECK_UPGRADES,
        __CHECK_MAX,
 };
 
 static const struct blobmsg_policy check_policy[__CHECK_MAX] = {
        [CHECK_VERSION] = { .name = "version", .type = BLOBMSG_TYPE_STRING },
+       [CHECK_UPGRADES] = { .name = "upgrades", .type = BLOBMSG_TYPE_TABLE },
 };
 
 /*
  * policy for upgrade-request response
- * it can be either only a queue position or the download information
- * for the ready image.
+ * parse download information for the ready image.
  */
 enum {
-       IMAGE_QUEUE,
+       IMAGE_REQHASH,
        IMAGE_FILESIZE,
        IMAGE_URL,
        IMAGE_CHECKSUM,
@@ -158,7 +161,7 @@ enum {
 };
 
 static const struct blobmsg_policy image_policy[__IMAGE_MAX] = {
-       [IMAGE_QUEUE] = { .name = "queue", .type = BLOBMSG_TYPE_INT32 },
+       [IMAGE_REQHASH] = { .name = "request_hash", .type = BLOBMSG_TYPE_STRING },
        [IMAGE_FILESIZE] = { .name = "filesize", .type = BLOBMSG_TYPE_INT32 },
        [IMAGE_URL] = { .name = "url", .type = BLOBMSG_TYPE_STRING },
        [IMAGE_CHECKSUM] = { .name = "checksum", .type = BLOBMSG_TYPE_STRING },
@@ -166,14 +169,13 @@ static const struct blobmsg_policy image_policy[__IMAGE_MAX] = {
        [IMAGE_SYSUPGRADE] = { .name = "sysupgrade", .type = BLOBMSG_TYPE_STRING },
 };
 
-
 /*
  * load serverurl from UCI
  */
 static int load_config() {
        static struct uci_context *uci_ctx;
        static struct uci_package *uci_attendedsysupgrade;
-       struct uci_section *uci_server;
+       struct uci_section *uci_s;
 
        uci_ctx = uci_alloc_context();
        if (!uci_ctx)
@@ -186,12 +188,21 @@ static int load_config() {
                fprintf(stderr, "Failed to load attendedsysupgrade config\n");
                return -1;
        }
-       uci_server = uci_lookup_section(uci_ctx, uci_attendedsysupgrade, "server");
-       if (!uci_server) {
+
+       uci_s = uci_lookup_section(uci_ctx, uci_attendedsysupgrade, "server");
+       if (!uci_s) {
                fprintf(stderr, "Failed to read server url from config\n");
                return -1;
        }
-       serverurl = strdup(uci_lookup_option_string(uci_ctx, uci_server, "url"));
+       serverurl = strdup(uci_lookup_option_string(uci_ctx, uci_s, "url"));
+
+       uci_s = uci_lookup_section(uci_ctx, uci_attendedsysupgrade, "client");
+       if (!uci_s) {
+               fprintf(stderr, "Failed to read client config\n");
+               return -1;
+       }
+       upgrade_packages = atoi(uci_lookup_option_string(uci_ctx, uci_s, "upgrade_packages"));
+
        uci_free_context(uci_ctx);
 
        return 0;
@@ -324,8 +335,19 @@ free:
        return ret;
 }
 
+struct jsonblobber {
+       json_tokener *tok;
+       struct blob_buf *outbuf;
+};
+
 static void request_done(struct uclient *cl)
 {
+       struct jsonblobber *jsb = (struct jsonblobber *)cl->priv;
+       if (jsb) {
+               json_tokener_free(jsb->tok);
+               free(jsb);
+       };
+
        uclient_disconnect(cl);
        uloop_end();
 }
@@ -335,20 +357,24 @@ static void header_done_cb(struct uclient *cl)
        enum {
                H_RANGE,
                H_LEN,
+               H_IBSTATUS,
+               H_IBQUEUEPOS,
                __H_MAX
        };
        static const struct blobmsg_policy policy[__H_MAX] = {
                [H_RANGE] = { .name = "content-range", .type = BLOBMSG_TYPE_STRING },
                [H_LEN] = { .name = "content-length", .type = BLOBMSG_TYPE_STRING },
+               [H_IBSTATUS] = { .name = "x-imagebuilder-status", .type = BLOBMSG_TYPE_STRING },
+               [H_IBQUEUEPOS] = { .name = "x-build-queue-position", .type = BLOBMSG_TYPE_STRING },
        };
        struct blob_attr *tb[__H_MAX];
        uint64_t resume_offset = 0, resume_end, resume_size;
-       static int retries;
+       char *ibstatus;
+       unsigned int queuepos = 0;
 
-       if (retries < 10 && uclient_http_redirect(cl)) {
+       if (uclient_http_redirect(cl)) {
                fprintf(stderr, "Redirected to %s on %s\n", cl->url->location, cl->url->host);
 
-               retries++;
                return;
        }
 
@@ -359,12 +385,23 @@ static void header_done_cb(struct uclient *cl)
                return;
        }
 
+       if (debug)
+               fprintf(stderr, "headers:\n%s\n", blobmsg_format_json_indent(cl->meta, true, 0));
+
        blobmsg_parse(policy, __H_MAX, tb, blob_data(cl->meta), blob_len(cl->meta));
 
        switch (cl->status_code) {
        case 400:
                request_done(cl);
                break;
+       case 412:
+               fprintf(stderr, "target not found.\n");
+               request_done(cl);
+               break;
+       case 413:
+               fprintf(stderr, "image too big.\n");
+               request_done(cl);
+               break;
        case 416:
                fprintf(stderr, "File download already fully retrieved; nothing to do.\n");
                request_done(cl);
@@ -373,12 +410,9 @@ static void header_done_cb(struct uclient *cl)
                fprintf(stderr, "unknown package requested.\n");
                request_done(cl);
                break;
-       case 201:
-               if (!imagebuilder) {
-                       fprintf(stderr, "server is dispatching build job\n");
-                       imagebuilder=1;
-               }
-               retry=1;
+       case 501:
+               fprintf(stderr, "ImageBuilder didn't produce sysupgrade file.\n");
+               request_done(cl);
                break;
        case 204:
                fprintf(stderr, "system is up to date.\n");
@@ -386,11 +420,7 @@ static void header_done_cb(struct uclient *cl)
                break;
        case 206:
                if (!cur_resume) {
-                       if (!building) {
-                               fprintf(stderr, "server is now building image...\n");
-                               building=1;
-                       }
-                       retry=1;
+                       fprintf(stderr, "Error: Partial content received, full content requested\n");
                        request_done(cl);
                        break;
                }
@@ -406,6 +436,39 @@ static void header_done_cb(struct uclient *cl)
                        fprintf(stderr, "Content-Range header is invalid\n");
                        break;
                }
+       case 202:
+               if (!tb[H_IBSTATUS])
+                       break;
+
+               ibstatus = blobmsg_get_string(tb[H_IBSTATUS]);
+
+               if (!strncmp(ibstatus, "queue", 6)) {
+                       if (!imagebuilder) {
+                               fprintf(stderr, "server is dispatching build job\n");
+                               imagebuilder=1;
+                       } else {
+                               if (tb[H_IBQUEUEPOS]) {
+                                       queuepos = atoi(blobmsg_get_string(tb[H_IBQUEUEPOS]));
+                                       fprintf(stderr, "build is in queue position %u.\n", queuepos);
+                               }
+                       }
+                       retry=1;
+               } else if (!strncmp(ibstatus, "building", 9)) {
+                       if (!building) {
+                               fprintf(stderr, "server is now building image...\n");
+                               building=1;
+                       }
+                       retry=1;
+               } else if (!strncmp(ibstatus, "initialize", 11)) {
+                       if (!ibready) {
+                               fprintf(stderr, "server is setting up ImageBuilder...\n");
+                               ibready=1;
+                       }
+                       retry=1;
+               } else {
+                       fprintf(stderr, "unrecognized remote imagebuilder status '%s'\n", ibstatus);
+               }
+               // fall through
        case 200:
                if (cl->priv)
                        break;
@@ -431,12 +494,12 @@ static void read_data_cb(struct uclient *cl)
 {
        char buf[256];
        int len;
-       json_tokener *tok;
        json_object *jsobj;
+       struct blob_buf *outbuf = NULL;
+       json_tokener *tok = NULL;
+       struct jsonblobber *jsb = (struct jsonblobber *)cl->priv;
 
-       struct blob_buf *outbuf = (struct blob_buf *)cl->priv;
-
-       if (!outbuf) {
+       if (!jsb) {
                while (1) {
                        len = uclient_read(cl, buf, sizeof(buf));
                        if (!len)
@@ -448,8 +511,9 @@ static void read_data_cb(struct uclient *cl)
                return;
        }
 
-       tok = json_tokener_new();
-       
+       outbuf = jsb->outbuf;
+       tok = jsb->tok;
+
        while (1) {
                len = uclient_read(cl, buf, sizeof(buf));
                if (!len)
@@ -474,8 +538,6 @@ static void read_data_cb(struct uclient *cl)
                        break;
                }
        }
-
-       json_tokener_free(tok);
 }
 
 static void eof_cb(struct uclient *cl)
@@ -521,6 +583,7 @@ static const struct uclient_cb check_cb = {
 
 static int server_request(const char *url, struct blob_buf *inbuf, struct blob_buf *outbuf) {
        struct uclient *ucl;
+       struct jsonblobber *jsb = NULL;
        int rc = -1;
        char *post_data;
        out_offset = 0;
@@ -530,9 +593,15 @@ static int server_request(const char *url, struct blob_buf *inbuf, struct blob_b
        uloop_init();
 
        ucl = uclient_new(url, NULL, &check_cb);
+       if (outbuf) {
+               jsb = malloc(sizeof(struct jsonblobber));
+               jsb->outbuf = outbuf;
+               jsb->tok = json_tokener_new();
+       };
+
        uclient_http_set_ssl_ctx(ucl, ssl_ops, ssl_ctx, 1);
        ucl->timeout_msecs = REQ_TIMEOUT * 1000;
-       ucl->priv = outbuf;
+       ucl->priv = jsb;
        rc = uclient_connect(ucl);
        if (rc)
                return rc;
@@ -631,19 +700,40 @@ static char *md5sum(const char *file) {
 
 static int ask_user(void)
 {
-       fprintf(stderr, "Are you sure to proceed? [N/y]\n");
+       fprintf(stderr, "Are you sure you want to continue the upgrade process? [N/y] ");
        if (getchar() != 'y')
                return -1;
        return 0;
 }
 
+static void print_package_updates(struct blob_attr *upgrades) {
+       struct blob_attr *cur;
+       struct blob_attr *tb[2];
+       int rem;
+
+       static struct blobmsg_policy policy[2] = {
+               { .type = BLOBMSG_TYPE_STRING },
+               { .type = BLOBMSG_TYPE_STRING },
+       };
+
+       blobmsg_for_each_attr(cur, upgrades, rem) {
+               blobmsg_parse_array(policy, ARRAY_SIZE(policy), tb, blobmsg_data(cur), blobmsg_data_len(cur));
+               if (!tb[0] || !tb[1])
+                       continue;
+
+               fprintf(stdout, "\t%s (%s -> %s)\n", blobmsg_name(cur),
+                       blobmsg_get_string(tb[1]), blobmsg_get_string(tb[0]));
+       };
+}
+
 /* this main function is too big... todo: split */
 int main(int args, char *argv[]) {
+       unsigned char argc=1;
        static struct blob_buf checkbuf, reqbuf, imgbuf, upgbuf;
        struct ubus_context *ctx = ubus_connect(NULL);
        uint32_t id;
        int rc;
-       int queuepos, valid;
+       int queuepos, valid, use_get;
        char url[256];
        char *newversion = NULL;
        struct blob_attr *tb[__IMAGE_MAX];
@@ -652,6 +742,23 @@ int main(int args, char *argv[]) {
        char *checksum = NULL;
        struct stat imgstat;
 
+       snprintf(user_agent, sizeof(user_agent), "%s (%s)", argv[0], AUC_VERSION);
+       fprintf(stdout, "%s\n", user_agent);
+
+       while (argc<args) {
+               if (!strncmp(argv[argc], "-h", 3) ||
+                   !strncmp(argv[argc], "--help", 7)) {
+                       fprintf(stdout, "%s: Attended sysUpgrade CLI client\n", argv[0]);
+                       fprintf(stdout, "Usage: auc [-d] [-h]\n");
+                       fprintf(stdout, " -d\tenable debugging output\n");
+                       fprintf(stdout, " -h\toutput help\n");
+                       return 0;
+               }
+               if (!strncmp(argv[argc], "-d", 3))
+                       debug = 1;
+               argc++;
+       };
+
        if (!ctx) {
                fprintf(stderr, "failed to connect to ubus.\n");
                return -1;
@@ -684,10 +791,6 @@ int main(int args, char *argv[]) {
        blobmsg_buf_init(&imgbuf);
        blobmsg_buf_init(&upgbuf);
 
-       snprintf(user_agent, sizeof(user_agent), "%s (%s)", argv[0], AUC_VERSION);
-
-       fprintf(stderr, "%s\n", user_agent);
-
        if (ubus_lookup_id(ctx, "system", &id) ||
            ubus_invoke(ctx, id, "board", NULL, board_cb, &checkbuf, 3000)) {
                fprintf(stderr, "cannot request board info from procd\n");
@@ -702,10 +805,13 @@ int main(int args, char *argv[]) {
                goto freeboard;
        }
 
-       fprintf(stderr, "running %s %s %s on %s/%s (%s)\n", distribution, version,
-               revision, target, subtarget, board_name);
+       blobmsg_add_u32(&checkbuf, "upgrade_packages", upgrade_packages);
+
+       fprintf(stdout, "running %s %s %s on %s/%s (%s)\n", distribution,
+               version, revision, target, subtarget, board_name);
 
-       fprintf(stderr, "checking %s for sysupgrade\n", serverurl);
+       fprintf(stdout, "checking %s for release upgrade%s\n", serverurl,
+               upgrade_packages?" or updated packages":"");
 
        blobmsg_add_string(&reqbuf, "distro", distribution);
        blobmsg_add_string(&reqbuf, "target", target);
@@ -714,13 +820,27 @@ int main(int args, char *argv[]) {
 
        snprintf(url, sizeof(url), "%s/%s", serverurl, APIOBJ_CHECK);
        uptodate=0;
-       if (server_request(url, &checkbuf, &reqbuf)) {
-               fprintf(stderr, "failed to connect to server\n");
-               rc=-1;
-               goto freeboard;
-       };
+
+       do {
+               retry=0;
+               if (debug)
+                       fprintf(stderr, "requesting:\n%s\n", blobmsg_format_json_indent(checkbuf.head, true, 0));
+               if (server_request(url, &checkbuf, &reqbuf)) {
+                       fprintf(stderr, "failed to connect to server\n");
+                       rc=-1;
+                       goto freeboard;
+               };
+
+               if (retry)
+                       sleep(3);
+       } while(retry);
+
+       if (debug)
+               fprintf(stderr, "reply:\n%s\n", blobmsg_format_json_indent(reqbuf.head, true, 0));
+
        blobmsg_parse(check_policy, __CHECK_MAX, tbc, blob_data(reqbuf.head), blob_len(reqbuf.head));
-       if (!tbc[CHECK_VERSION]) {
+
+       if (!tbc[CHECK_VERSION] && !tbc[CHECK_UPGRADES]) {
                if (!uptodate) {
                        fprintf(stderr, "server reply invalid.\n");
                        rc=-1;
@@ -729,8 +849,18 @@ int main(int args, char *argv[]) {
                rc=0;
                goto freeboard;
        }
-       newversion = blobmsg_get_string(tbc[CHECK_VERSION]);
-       fprintf(stderr, "new release %s found.\n", newversion);
+       if (tbc[CHECK_VERSION]) {
+               newversion = blobmsg_get_string(tbc[CHECK_VERSION]);
+               fprintf(stdout, "new %s release %s found.\n", distribution, newversion);
+       } else {
+               fprintf(stdout, "staying on %s release version %s\n", distribution, version);
+               blobmsg_add_string(&reqbuf, "version", version);
+       };
+
+       if (tbc[CHECK_UPGRADES]) {
+               fprintf(stdout, "package updates:\n");
+               print_package_updates(tbc[CHECK_UPGRADES]);
+       }
 
        rc = ask_user();
        if (rc)
@@ -740,25 +870,38 @@ int main(int args, char *argv[]) {
 
        imagebuilder = 0;
        building = 0;
+       use_get = 0;
 
        do {
-               queuepos = 0;
                retry = 0;
-               server_request(url, &reqbuf, &imgbuf);
+
+               if (debug && !use_get)
+                       fprintf(stderr, "requesting:\n%s\n", blobmsg_format_json_indent(reqbuf.head, true, 0));
+
+               server_request(url, use_get?NULL:&reqbuf, &imgbuf);
                blobmsg_parse(image_policy, __IMAGE_MAX, tb, blob_data(imgbuf.head), blob_len(imgbuf.head));
 
-               if (tb[IMAGE_QUEUE]) {
-                       queuepos = blobmsg_get_u32(tb[IMAGE_QUEUE]);
-                       fprintf(stderr, "build is in queue position %u.\n", queuepos);
+               if (!use_get && tb[IMAGE_REQHASH]) {
+                       snprintf(url, sizeof(url), "%s/%s/%s", serverurl,
+                                APIOBJ_REQUEST,
+                                blobmsg_get_string(tb[IMAGE_REQHASH]));
+                       if (debug)
+                               fprintf(stderr, "polling via GET %s\n", url);
+
+                       retry=1;
+                       use_get=1;
                }
 
-               if (retry || queuepos) {
+               if (retry) {
                        blob_buf_free(&imgbuf);
                        blobmsg_buf_init(&imgbuf);
                        sleep(3);
                }
        } while(retry || queuepos);
 
+       if (debug)
+               fprintf(stderr, "reply:\n%s\n", blobmsg_format_json_indent(imgbuf.head, true, 0));
+
        if (!tb[IMAGE_SYSUPGRADE]) {
                fprintf(stderr, "no sysupgrade image returned\n");
                rc=-1;
@@ -814,21 +957,17 @@ int main(int args, char *argv[]) {
                }
        }
 
-       if (!ubus_lookup_id(ctx, "rpc-sys", &id)) {
-               valid = 0;
-               ubus_invoke(ctx, id, "upgrade_test", NULL, upgtest_cb, &valid, 3000);
-               if (!valid) {
-                       rc=-1;
-                       goto freeboard;
-               }
-
-               blobmsg_add_u8(&upgbuf, "keep", 1);
-               fprintf(stderr, "invoking sysupgrade\n");
-               ubus_invoke(ctx, id, "upgrade_start", upgbuf.head, NULL, NULL, 3000);
-       } else {
+       valid = 0;
+       ubus_invoke(ctx, id, "upgrade_test", NULL, upgtest_cb, &valid, 3000);
+       if (!valid) {
                rc=-1;
+               goto freeboard;
        }
 
+       blobmsg_add_u8(&upgbuf, "keep", 1);
+       fprintf(stdout, "invoking sysupgrade\n");
+       ubus_invoke(ctx, id, "upgrade_start", upgbuf.head, NULL, NULL, 3000);
+
 freeboard:
        free(board_name);
        free(target);
index ec3f88d6eed42cfcc95d307407d994f9e3d9e14e..89df1f7f7d8bec4db77d5f04ac34ebbe6dd96a17 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btrfs-progs
-PKG_VERSION:=4.13.2
+PKG_VERSION:=4.13.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs/
-PKG_HASH:=75c7331f1306495dfffabe542ef6c5539808f0cdaebdf14fa8b7ab09c59448bd
+PKG_HASH:=805bdb0031c21a0a5d2ba295a8c9bdd8ba831a68c3fa801aab85677ec902d783
+PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
 
 PKG_LICENSE:=GPL-2.0
diff --git a/utils/btrfs-progs/patches/0001-use-pthread_join-instead-of-pthread_tryjoin_np.patch b/utils/btrfs-progs/patches/0001-use-pthread_join-instead-of-pthread_tryjoin_np.patch
deleted file mode 100644 (file)
index 90b56b4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/chunk-recover.c
-+++ b/chunk-recover.c
-@@ -887,7 +887,7 @@ static int scan_devices(struct recover_c
-               for (i = 0; i < devidx; i++) {
-                       if (dev_scans[i].bytenr == -1)
-                               continue;
--                      ret = pthread_tryjoin_np(t_scans[i],
-+                      ret = pthread_join(t_scans[i],
-                                                (void **)&t_rets[i]);
-                       if (ret == EBUSY) {
-                               all_done = 0;
index 367d175bd83b4f882aed964a61ae17a9cbab2e77..acc3989206909c8248af55824c256ef0d5591ec9 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haveged
-PKG_VERSION:=1.9.1
-PKG_RELEASE:=5
+PKG_VERSION:=1.9.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/haveged \
                http://www.issihosts.com/$(PKG_NAME)
-PKG_HASH:=9c2363ed9542a6784ff08e247182137e71f2ddb79e8e6c1ac4ad50d21ced3715
+PKG_HASH:=f77d9adbdf421b61601fa29faa9ce3b479d910f73c66b9e364ba8642ccbfbe70
 PKG_LICENSE:=GPLv3
 
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
index 65e04f51dd38ab2491aa4c83929b669492d4c78e..bc1d46228b9a14b2909d35bb0d2797110e27642d 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hdparm
-PKG_VERSION:=9.50
+PKG_VERSION:=9.52
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_HASH:=0892b44bd817c251264a24f6ecbbb010958033e0395d2030f25f1c5608ac780e
+PKG_HASH:=c3429cd423e271fa565bf584598fd751dd2e773bb7199a592b06b5a61cec4fb6
 PKG_MAINTAINER:=Richard Kunze <richard.kunze@web.de>
 PKG_LICENSE:=BSD-Style Open Source License
 
index f1f4762826e1029f4afab27c4fe062c96b26948d..477f31f57ed8199f99da295905d42eda18ddd6b5 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mc
-PKG_VERSION:=4.8.19
+PKG_VERSION:=4.8.20
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 PKG_LICENSE:=GPL-3.0+
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://ftp.midnight-commander.org/
-PKG_HASH:=eb9e56bbb5b2893601d100d0e0293983049b302c5ab61bfb544ad0ee2cc1f2df
+PKG_HASH:=017ee7f4f8ae420a04f4d6fcebaabe5b494661075c75442c76e9c8b1923d501c
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf gettext-version
 
index 6798d05e99d443facc312b85bdc521064d281a50..5d26fcdffb9b3d608ee843b3a6782db683f3d7bf 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=minicom
 PKG_VERSION:=2.7
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://alioth.debian.org/frs/download.php/file/3977/
diff --git a/utils/minicom/patches/110-reproducible-builds.patch b/utils/minicom/patches/110-reproducible-builds.patch
new file mode 100644 (file)
index 0000000..40870c3
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/minicom.c
++++ b/src/minicom.c
+@@ -1159,7 +1159,7 @@ int main(int argc, char **argv)
+       switch(c) {
+       case 'v':
+         printf(_("%s version %s"), PACKAGE, VERSION);
+-#ifdef __DATE__
++#if 0 
+         printf(_(" (compiled %s)"), __DATE__);
+ #endif
+         printf("\n");
+@@ -1462,7 +1462,7 @@ int main(int argc, char **argv)
+   mc_wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION);
+   mc_wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string);
+-#if defined (__DATE__) && defined (__TIME__)
++#if 0
+   mc_wprintf(us, "%s %s, %s.\r\n",_("Compiled on"), __DATE__,__TIME__);
+ #endif
+   {
index 338c5d916ba19aec2745cf5944a380c2c103212e..e6d4c8f949d447e6c2863fd57b8bc87bee61b538 100644 (file)
@@ -8,15 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openocd
-PKG_VERSION:=v0.10.0
+PKG_SOURCE_VERSION:=0.10.0
+PKG_VERSION:=v$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.code.sf.net/p/openocd/code
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=ef8a71daa581a3a2296fd3dafff21de2ca7b86319ec3a5c24ed6a216d1fdff45
+PKG_SOURCE_URL:=@SF/openocd
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_HASH:=7312e7d680752ac088b8b8f2b5ba3ff0d30e0a78139531847be4b75c101316ae
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
index 39a28e7719142879641411abaa712e10802fed9e..fd8f74b7c34b7841d94fda04ab74ec5b5e84e2b8 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=unzip
 PKG_REV:=60
 PKG_VERSION:=6.0
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)$(PKG_REV).tar.gz
 PKG_SOURCE_URL:=@SF/infozip
diff --git a/utils/unzip/patches/010-remove-build-date.patch b/utils/unzip/patches/010-remove-build-date.patch
new file mode 100644 (file)
index 0000000..bb60533
--- /dev/null
@@ -0,0 +1,17 @@
+From: Jérémy Bobbio <lunar@debian.org>
+Subject: Remove build date
+Bug-Debian: https://bugs.debian.org/782851
+ In order to make unzip build reproducibly, we remove the
+ (already optional) build date from the binary.
+
+--- a/unix/unix.c
++++ b/unix/unix.c
+@@ -1705,7 +1705,7 @@
+ #endif /* Sun */
+ #endif /* SGI */
+-#ifdef __DATE__
++#if 0
+       " on ", __DATE__
+ #else
+       "", ""
index afdc76ada53f93848849d947faf666f522855b0b..c87f1ed84f16f96d1cee6f75eaa44d4345f2fbfb 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=zip
 PKG_REV:=30
 PKG_VERSION:=3.0
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)$(PKG_REV).tar.gz
 PKG_SOURCE_URL:=@SF/infozip
diff --git a/utils/zip/patches/010-remove-build-date.patch b/utils/zip/patches/010-remove-build-date.patch
new file mode 100644 (file)
index 0000000..d7165cd
--- /dev/null
@@ -0,0 +1,15 @@
+From: Santiago Vila <sanvila@debian.org>
+Subject: Remove (optional) build date to make the build reproducible
+Bug-Debian: http://bugs.debian.org/779042
+
+--- a/unix/unix.c
++++ b/unix/unix.c
+@@ -1020,7 +1020,7 @@
+ /* Define the compile date string */
+-#ifdef __DATE__
++#if 0
+ #  define COMPILE_DATE " on " __DATE__
+ #else
+ #  define COMPILE_DATE ""