--- a/README Fri Oct 27 11:56:51 2017 +0200
+++ b/README Wed Jul 25 12:31:28 2018 +0200
@@ -1,8 +1,1 @@
-Das ist einfach erstmal ein Container für verschiedene
-Diffs die wir für verschiedene Dinge machen.
-
-Am besten je "Applikation" ein Unterverzeichnis und möglichst
-sprechende Namen.
-
---
-HS
+moved to git.schlittermann.de/ius/diffs
--- a/amanda/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-$ apt-get source amanda-server/squeeze
-$ cd amanda-2.6.1p*
-$ patch -p0 <<path-to>/close-split-diskbuffer-file.patch
-$ dch
-$ $FAVOURITE-PACKAGE-BUILDER
--- a/amanda/close-split-diskbuffer-file.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-Index: server-src/taper-disk-port-source.c
-===================================================================
---- server-src/taper-disk-port-source.c (revision 2169)
-+++ server-src/taper-disk-port-source.c (working copy)
-@@ -94,6 +94,9 @@
- if(G_OBJECT_CLASS(parent_class)->finalize)
- (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-
-+ if (self->_priv->buffer_fd >= 0)
-+ aclose(self->_priv->buffer_fd);
-+
- amfree(self->buffer_dir_name);
- amfree(self->_priv->excess_buffer);
- amfree(self->_priv);
--- a/calamaris/2.99.4.0-19/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-$ apt-get source calamaris/jessie
-$ cd calamaris-2.99.4.0
-$ quilt import <path-to>/new-hier-methods-pinned-and-original-dst.diff
-$ dch -D jessie -n 'backported fix for new Squid3-Hierachy methods PINNED and ORIGINAL_DST.'
-$ # append '~ius' to debian revision number manually
-$ dch -e
-$ $FAVOURITE-PACKAGE-BUILDER
--- a/calamaris/2.99.4.0-19/new-hier-methods-pinned-and-original-dst.diff Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-diff --git a/calamaris b/calamaris
-index d0f76a6..aeba787 100755
---- a/calamaris
-+++ b/calamaris
-@@ -1220,7 +1220,7 @@ Thank You.\n\n";
- $hier++;
- $hier_size += $log_size;
- $hier_time += $log_reqtime;
-- if ( $log_hier_method =~ m#DIRECT|SOURCE_FASTEST#o ) {
-+ if ( $log_hier_method =~ m#DIRECT|ORIGINAL_DST|PINNED|SOURCE_FASTEST#o ) {
- $hier_direct++;
- $hier_direct_size += $log_size;
- $hier_direct_time += $log_reqtime;';
--- a/exim4/4.69/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-# memcache-support-upstream.patch is the patch against upstream sources
-# debian.patch is the patch against an unpacked debian source package
-# place memcache-support-upstream.patch in ius/memcache-support-upstream.patch
-# inside the unpacked debian source package and build it
-
-apt-get source exim4=4.69-9
-cd exim4-*
-mkdir -p ius
-cp ../memcache-support-upstream.patch ius/
-patch -p1 < ../debian.patch
--- a/exim4/4.69/debian.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-diff -r e4017e1459ec debian/changelog
---- a/debian/changelog Thu Aug 20 15:32:10 2009 +0200
-+++ b/debian/changelog Thu Aug 20 16:56:23 2009 +0200
-@@ -1,3 +1,10 @@
-+exim4 (4.69-9.2) unstable; urgency=low
-+
-+ * Non-maintainer upload.
-+ * patched for memcache support
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Thu, 20 Aug 2009 16:10:19 +0200
-+
- exim4 (4.69-9) unstable; urgency=medium
-
- * [update-exim4.conf]: Use POSIX character classes [:alnum:] or explicit
-diff -r e4017e1459ec debian/control
---- a/debian/control Thu Aug 20 15:32:10 2009 +0200
-+++ b/debian/control Thu Aug 20 16:56:23 2009 +0200
-@@ -5,7 +5,7 @@
- Uploaders: Andreas Metzler <ametzler@debian.org>,Marc Haber <mh+debian-packages@zugschlus.de>
- Homepage: http://www.exim.org/
- Standards-Version: 3.7.3
--Build-Depends: dpatch (>=2.0.10), debhelper (>= 5), po-debconf, bzip2, docbook-xsl, xsltproc, lynx, docbook-xml, libpcre3-dev, libldap2-dev, libpam0g-dev, libident-dev, libdb4.6-dev, libxmu-dev, libxt-dev, libxext-dev, libx11-dev, libxaw7-dev, libpq-dev, libmysqlclient15-dev, libsqlite3-dev, libperl-dev, libgnutls-dev, libsasl2-dev
-+Build-Depends: dpatch (>=2.0.10), debhelper (>= 5), po-debconf, bzip2, docbook-xsl, xsltproc, lynx, docbook-xml, libpcre3-dev, libldap2-dev, libpam0g-dev, libident-dev, libdb4.6-dev, libxmu-dev, libxt-dev, libxext-dev, libx11-dev, libxaw7-dev, libpq-dev, libmysqlclient15-dev, libsqlite3-dev, libperl-dev, libgnutls-dev, libsasl2-dev, patchutils
-
- Package: exim4-base
- Architecture: any
-diff -r e4017e1459ec debian/patches/00_memcache.dpatch
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/debian/patches/00_memcache.dpatch Thu Aug 20 16:56:23 2009 +0200
-@@ -0,0 +1,21 @@
-+#! /bin/sh -e
-+## 00_memcache.dpatch by Matthias Förste <foerste@schlittermann.de>
-+##
-+## All lines beginning with ## DP:' are a description of the patch.
-+## DP: apply memcache patches
-+
-+dpatch_patch ()
-+{
-+ filterdiff -p1 -x OS/os.h-Linux -x .hgignore -x .vimrc < ius/memcache-support-upstream.patch |patch --no-backup-if-mismatch -p1 --directory build-tree/
-+}
-+
-+dpatch_unpatch ()
-+{
-+ filterdiff -p1 -x OS/os.h-Linux -x .hgignore -x .vimrc < ius/memcache-support-upstream.patch |patch -R --no-backup-if-mismatch -p1 --directory build-tree/
-+}
-+
-+DPATCH_LIB_NO_DEFAULT=1
-+
-+. /usr/share/dpatch/dpatch.lib.sh
-+
-+exit 0
-diff -r e4017e1459ec debian/patches/00list
---- a/debian/patches/00list Thu Aug 20 15:32:10 2009 +0200
-+++ b/debian/patches/00list Thu Aug 20 16:56:23 2009 +0200
-@@ -1,4 +1,5 @@
- 00_unpack
-+00_memcache
- 30_dontoverridecflags
- 31_eximmanpage
- 32_exim4
--- a/exim4/4.69/memcache-support-upstream.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,848 +0,0 @@
-diff -r 938614e333a1 .hgignore
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/.hgignore Fri Aug 21 11:48:06 2009 +0200
-@@ -0,0 +1,7 @@
-+syntax: glob
-+tags
-+
-+syntax: regexp
-+
-+^Local/Makefile$
-+^build-Linux-i386/
-diff -r 938614e333a1 .vimrc
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/.vimrc Fri Aug 21 11:48:06 2009 +0200
-@@ -0,0 +1,3 @@
-+set sw=2
-+set cino={1s
-+set cindent
-diff -r 938614e333a1 OS/Makefile-Base
---- a/OS/Makefile-Base Fri Aug 14 08:39:52 2009 +0200
-+++ b/OS/Makefile-Base Fri Aug 21 11:48:06 2009 +0200
-@@ -298,7 +298,7 @@
-
- OBJ_WITH_CONTENT_SCAN = malware.o mime.o regex.o spam.o spool_mbox.o
- OBJ_WITH_OLD_DEMIME = demime.o
--OBJ_EXPERIMENTAL = bmi_spam.o spf.o srs.o dk.o dkim-exim.o
-+OBJ_EXPERIMENTAL = bmi_spam.o spf.o srs.o dk.o dkim-exim.o memcache.o
-
- # Targets for final binaries; the main one has a build number which is
- # updated each time. We don't bother with that for the auxiliaries.
-@@ -543,7 +543,7 @@
- dns.o: $(HDRS) dns.c
- enq.o: $(HDRS) enq.c
- exim.o: $(HDRS) exim.c
--expand.o: $(HDRS) expand.c
-+expand.o: $(HDRS) memcache.h expand.c
- filter.o: $(HDRS) filter.c
- filtertest.o: $(HDRS) filtertest.c
- globals.o: $(HDRS) globals.c
-@@ -600,6 +600,7 @@
- srs.o: $(HDRS) srs.h srs.c
- dk.o: $(HDRS) dk.h dk.c
- dkim-exim.o: $(HDRS) dkim-exim.h dkim-exim.c
-+memcache.o: $(HDRS) memcache.h memcache.c
-
- # The module containing tables of available lookups, routers, auths, and
- # transports must be rebuilt if any of them are. However, because the makefiles
-diff -r 938614e333a1 OS/os.h-Linux
---- a/OS/os.h-Linux Fri Aug 14 08:39:52 2009 +0200
-+++ b/OS/os.h-Linux Fri Aug 21 11:48:06 2009 +0200
-@@ -53,3 +53,8 @@
- #endif /* __linux__ */
-
- /* End */
-+
-+/* Fudge added because this Linux doesn't appear to have a definition
-+for ip_options in /usr/include/linux/ip.h. */
-+
-+#define ip_options options
-diff -r 938614e333a1 doc/OptionLists.txt
---- a/doc/OptionLists.txt Fri Aug 14 08:39:52 2009 +0200
-+++ b/doc/OptionLists.txt Fri Aug 21 11:48:06 2009 +0200
-@@ -11,7 +11,7 @@
- 4. Those that can appear in the build time configuration for the Exim monitor
- (Local/eximon.conf).
-
--This file was last updated for Exim release 4.67.
-+This file was last updated for Exim release 4.69.
-
-
- 1. RUN TIME OPTIONS
-@@ -887,6 +887,7 @@
- SUPPORT_CRYPTEQ optional support crypteq (if no auths)
- SUPPORT_MAILDIR optional support for maildir delivery
- SUPPORT_MAILSTORE optional support for mailstore delivery
-+SUPPORT_MEMCACHE optional* support for memcache storage and retrieval
- SUPPORT_MBX optional support for MBX delivery
- SUPPORT_MOVE_FROZEN_MESSAGES optional* support for frozen message moving
- SUPPORT_PAM optional support for PAM authentication
-diff -r 938614e333a1 doc/memcache.txt
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/doc/memcache.txt Fri Aug 21 11:48:06 2009 +0200
-@@ -0,0 +1,118 @@
-+* set some globals
-+
-+ hostlist memcache_servers = <; host1:port1 ; host2:port2 ; host3
-+ memcache_timeout = 3s
-+ memcache_expiration = 0s # keep forever or until memcache needs free memory
-+
-+* store some value under key; expands to 'true' if successful
-+
-+ ${memcache \
-+ {set} \
-+ {key} \
-+ {value} \
-+ {expiration} \ # optional
-+ {timeout} \
-+ {servers}}
-+
-+
-+* lookup the value of some key; expands to 'true' if the key has been found;
-+ stores the value in $value
-+
-+ ${memcache \
-+ {get} \
-+ {key} \
-+ {timeout} \ # optional
-+ {servers}}
-+
-+
-+Currently only tcp connections are supported. Whitespace and control characters
-+in keys will be urlencoded. Expansion will fail if the resulting key is then
-+longer than 250 characters. You can put multiple hosts in the hostlist, but its
-+probably not useful. Each host is tried in the order listed until one succeeds.
-+Expansion will fail if none suceeds.
-+
-+example usage for greylisting:
-+
-+ [...]
-+
-+ hostlist memcache_servers = <; host1:port1 ; host2:port2 ; host3
-+
-+ [...]
-+
-+ acl_check_rcpt:
-+
-+ # greylisting with memcache
-+ # do we already have a timestamp for this sender/receiver combo? try to store
-+ # one if we dont and defer if this succeeds, deny otherwise; accept the
-+ # message if we find a timestamp which is older than 5 minutes, deny
-+ # otherwise (if the timestamp is younger that is)
-+ accept
-+ logwrite = memcache \
-+ get \
-+ exim-lenny:${sender_address}*${local_part}@${domain}
-+ condition = ${memcache \
-+ {get} \
-+ {${sender_address}*${local_part}@${domain}} \
-+ {5s}
-+ {+memcache_servers}}
-+ endpass
-+ condition = ${if or { \
-+ {eq {$value}{}} \
-+ { > {$tod_epoch}{${eval: $value + 300}}} \
-+ }}
-+
-+ defer
-+ logwrite = memcache \
-+ set \
-+ exim-lenny:${sender_address}*${local_part}@${domain} \
-+ $tod_epoch
-+ condition = ${memcache \
-+ {set} \
-+ {${sender_address}*${local_part}@${domain}} \
-+ {$tod_epoch} \
-+ {10s} \
-+ {3w} \
-+ {<; host1:port1 ; host2:port2 ; host3}}
-+ deny
-+
-+or shorter:
-+
-+ [...]
-+
-+ hostlist memcache_servers = host1
-+
-+ [...]
-+
-+ acl_check_rcpt:
-+
-+ # greylisting with memcache
-+ # do we already have a timestamp for this sender/receiver combo? try to store
-+ # one if we dont and defer if this succeeds, deny otherwise; accept the
-+ # message if we find a timestamp which is older than 5 minutes, deny
-+ # otherwise (if the timestamp is younger that is)
-+ accept
-+ logwrite = memcache \
-+ get \
-+ exim-lenny:${sender_address}*${local_part}@${domain}
-+ condition = ${memcache \
-+ {get} \
-+ {${sender_address}*${local_part}@${domain}}}
-+ endpass
-+ condition = ${if or { \
-+ {eq {$value}{}} \
-+ { > {$tod_epoch}{${eval: $value + 300}}} \
-+ }}
-+
-+ defer
-+ logwrite = memcache \
-+ set \
-+ exim-lenny:${sender_address}*${local_part}@${domain} \
-+ $tod_epoch
-+ condition = ${memcache \
-+ {set} \
-+ {${sender_address}*${local_part}@${domain}} \
-+ {$tod_epoch}}
-+ deny
-+
-+* todo:
-+ Currently we just use the readsocket expansion internally. This limits us to tcp connections. Key validation and encoding will not work if the key contains null characters. Maybe we should just interface to one of the available memcache libraries. Some testcases would be useful.
-diff -r 938614e333a1 scripts/MakeLinks
---- a/scripts/MakeLinks Fri Aug 14 08:39:52 2009 +0200
-+++ b/scripts/MakeLinks Fri Aug 21 11:48:06 2009 +0200
-@@ -200,6 +200,7 @@
- ln -s ../src/globals.h globals.h
- ln -s ../src/local_scan.h local_scan.h
- ln -s ../src/macros.h macros.h
-+ln -s ../src/memcache.h memcache.h
- ln -s ../src/mytypes.h mytypes.h
- ln -s ../src/osfunctions.h osfunctions.h
- ln -s ../src/store.h store.h
-@@ -232,6 +233,7 @@
- ln -s ../src/log.c log.c
- ln -s ../src/lss.c lss.c
- ln -s ../src/match.c match.c
-+ln -s ../src/memcache.c memcache.c
- ln -s ../src/moan.c moan.c
- ln -s ../src/parse.c parse.c
- ln -s ../src/perl.c perl.c
-diff -r 938614e333a1 src/EDITME
---- a/src/EDITME Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/EDITME Fri Aug 21 11:48:06 2009 +0200
-@@ -1133,4 +1133,9 @@
-
- # ENABLE_DISABLE_FSYNC=yes
-
-+#------------------------------------------------------------------------------
-+# support storage/retrieval of values to and from memcache servers via
-+# expansions
-+SUPPORT_MEMCACHE=yes
-+
- # End of EDITME for Exim 4.
-diff -r 938614e333a1 src/config.h.defaults
---- a/src/config.h.defaults Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/config.h.defaults Fri Aug 21 11:48:06 2009 +0200
-@@ -120,6 +120,7 @@
- #define SUPPORT_MAILDIR
- #define SUPPORT_MAILSTORE
- #define SUPPORT_MBX
-+#define SUPPORT_MEMCACHE
- #define SUPPORT_MOVE_FROZEN_MESSAGES
- #define SUPPORT_PAM
- #define SUPPORT_TLS
-diff -r 938614e333a1 src/expand.c
---- a/src/expand.c Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/expand.c Fri Aug 21 11:48:06 2009 +0200
-@@ -25,6 +25,10 @@
-
- #ifdef LOOKUP_LDAP
- #include "lookups/ldap.h"
-+#endif
-+
-+#ifdef SUPPORT_MEMCACHE
-+#include "memcache.h"
- #endif
-
- #ifdef SUPPORT_CRYPTEQ
-@@ -113,6 +117,7 @@
- US"length",
- US"lookup",
- US"map",
-+ US"memcache",
- US"nhash",
- US"perl",
- US"prvs",
-@@ -135,6 +140,7 @@
- EITEM_LENGTH,
- EITEM_LOOKUP,
- EITEM_MAP,
-+ EITEM_MEMCACHE,
- EITEM_NHASH,
- EITEM_PERL,
- EITEM_PRVS,
-@@ -4980,6 +4986,316 @@
- }
- }
- #endif /* EXPAND_DLFUNC */
-+
-+ case EITEM_MEMCACHE:
-+ #ifndef SUPPORT_MEMCACHE
-+ expand_string_message = US"\"${memcache\" encountered, but this facility "
-+ "is not included in this binary";
-+ goto EXPAND_FAILED;
-+
-+ #else /* SUPPORT_MEMCACHE */
-+ /* we dont use flags right now - should we? */
-+
-+ {
-+ int i_memcache_expiration = -1, i_memcache_timeout = -1, i_memcache_servers = -1;
-+ int memcache_operation;
-+ int memcache_min_args = 2, memcache_max_args = 6;
-+ uschar *sub_arg[memcache_max_args];
-+
-+ uschar *memcache_key;
-+ uschar *memcache_hostlist_name = MEMCACHE_HOSTLIST_NAME;
-+ tree_node *memcache_hosts_node;
-+ uschar *memcache_hosts_string = NULL, *memcache_op_string;
-+ uschar *memcache_host;
-+ int memcache_hostlist_separator = 0;
-+ int i_memcache_server = 0;
-+ int n_memcache_servers = 0;
-+
-+ uschar *memcache_request;
-+ int memcache_request_len;
-+
-+ uschar *memcache_readsocket_result;
-+
-+ if ((expand_forbid & RDO_MEMCACHE) != 0)
-+ {
-+ expand_string_message = US"memcache storage/retrieval are not permitted";
-+ goto EXPAND_FAILED;
-+ }
-+
-+ /* read up to 6 args */
-+ switch(read_subs(sub_arg, memcache_max_args, memcache_min_args, &s, skipping, TRUE, US"memcache"))
-+ {
-+ case 1: goto EXPAND_FAILED_CURLY;
-+ case 2:
-+ case 3: goto EXPAND_FAILED;
-+ }
-+
-+ /* read_subs sets only the first unset arg to NULL; we set *all*
-+ * remaining unset args to NULL to avoid segfaults when trying to
-+ * access them later */
-+ int i = memcache_min_args;
-+ while (i < memcache_max_args - 1)
-+ {
-+ if (sub_arg[i++] == NULL) sub_arg[i] = NULL;
-+ }
-+
-+ /* validate operation and set argument indices */
-+ memcache_op_string = string_sprintf(US"%S", sub_arg[0]);
-+ if (Ustrcmp(memcache_op_string, US"set") == 0)
-+ {
-+ i_memcache_expiration = 3; i_memcache_timeout = 4; i_memcache_servers = 5; memcache_operation = MEMCACHE_OP_SET;
-+ }
-+ else if (Ustrcmp(memcache_op_string, US"get") == 0)
-+ {
-+ i_memcache_timeout = 2; i_memcache_servers = 3; memcache_operation = MEMCACHE_OP_GET;
-+ }
-+ else
-+ {
-+ expand_string_message = string_sprintf(US"invalid memcache operation '%s'",
-+ sub_arg[0]);
-+ goto EXPAND_FAILED;
-+ }
-+
-+ /* encode key */
-+ memcache_key = memcache_encode_key(sub_arg[1]);
-+ if (memcache_key == NULL)
-+ {
-+ if (memcache_errno == E_MEMCACHE_KEY_TOO_LONG)
-+ {
-+ expand_string_message = string_sprintf(US"memcache key '%s' is longer than 250 characters (or will be if invalid chars are urlencoded)", sub_arg[1]);
-+ }
-+ else
-+ {
-+ expand_string_message = string_sprintf(US"memcache: unknown error while urlencoding key");
-+ }
-+ goto EXPAND_FAILED;
-+ }
-+
-+ DEBUG(D_memcache)
-+ {
-+ debug_printf("sub_arg[1]: '");
-+ int i = 0;
-+ while (*(sub_arg[1] + i) != 0)
-+ {
-+ debug_printf("%c%c%c",
-+ ' ',
-+ hex_digits[*(sub_arg[1] + i) >> 4],
-+ hex_digits[*(sub_arg[1] + i) & 0xf]);
-+ i++;
-+ }
-+ debug_printf("'\nmemcache key: %s\n", memcache_key);
-+ }
-+
-+ /* expiration */
-+ if (i_memcache_expiration >=0 && sub_arg[i_memcache_expiration] != NULL)
-+ {
-+ memcache_expiration = readconf_readtime(sub_arg[i_memcache_expiration], 0, FALSE);
-+ if (memcache_expiration < 0)
-+ {
-+ expand_string_message = string_sprintf(US"bad time value %s",
-+ sub_arg[i_memcache_expiration]);
-+ goto EXPAND_FAILED;
-+ }
-+ }
-+
-+ DEBUG(D_memcache)
-+ {
-+ debug_printf("memcache expiration: %d\n", memcache_expiration);
-+ }
-+
-+ /* timeout */
-+ if (i_memcache_timeout >=0 && sub_arg[i_memcache_timeout] != NULL)
-+ {
-+ memcache_timeout = readconf_readtime(sub_arg[i_memcache_timeout], 0, FALSE);
-+ if (memcache_timeout < 0)
-+ {
-+ expand_string_message = string_sprintf(US"bad time value %s",
-+ sub_arg[i_memcache_timeout]);
-+ goto EXPAND_FAILED;
-+ }
-+ }
-+
-+ /* now that we have an expiration time we should be able to build the request string */
-+ if (memcache_operation == MEMCACHE_OP_SET)
-+ {
-+ uschar* data = sub_arg[2];
-+ int data_len = Ustrlen(data);
-+
-+ /* writeop key flags expiration size-in-bytes [noreply] */
-+ uschar *cmd = string_sprintf(US"%s %s %d %d %d %s",
-+ US"set",
-+ memcache_key,
-+ 0,
-+ memcache_expiration,
-+ data_len,
-+ US"");
-+ int cmd_len = Ustrlen(cmd);
-+
-+ memcache_request =
-+ memcache_escape_for_expansion(string_sprintf(US"%s\r\n%s\r\n", cmd,
-+ data));
-+ memcache_request_len = Ustrlen(memcache_request);
-+ }
-+ else if (memcache_operation == MEMCACHE_OP_GET)
-+ {
-+ memcache_request = memcache_escape_for_expansion(string_sprintf(
-+ US"%s %s\r\n", US"get", memcache_key));
-+ memcache_request_len = Ustrlen(memcache_request);
-+ }
-+ else
-+ {
-+ expand_string_message = string_sprintf(US"invalid memcache operation: '%s'", memcache_op_string);
-+ goto EXPAND_FAILED;
-+ }
-+
-+ if (memcache_request == NULL)
-+ {
-+ expand_string_message = memcache_errno == E_MEMCACHE_REQUEST_TOO_LONG
-+ ? US"memcache request too long" : US"memcache unknown error";
-+ goto EXPAND_FAILED;
-+ }
-+
-+ /* memcache servers - we expect either a named list or just a list */
-+ if (sub_arg[i_memcache_servers] != NULL)
-+ {
-+ if (sub_arg[i_memcache_servers][0] == '+')
-+ {
-+ memcache_hostlist_name = sub_arg[i_memcache_servers] + sizeof(sub_arg[i_memcache_servers][0]);
-+ }
-+ else
-+ {
-+ memcache_hosts_string = sub_arg[i_memcache_servers];
-+ }
-+ }
-+
-+ /* get the string of the named hostlist if we dont have one by now */
-+ if (memcache_hosts_string == NULL)
-+ {
-+ if (NULL == (memcache_hosts_node = tree_search(hostlist_anchor, memcache_hostlist_name)))
-+ {
-+ expand_string_message = string_sprintf(US"named list '%s' not found",
-+ sub_arg[0]);
-+ goto EXPAND_FAILED;
-+ }
-+ memcache_hosts_string = ((namedlist_block *) memcache_hosts_node->data.ptr)->string;
-+ }
-+
-+ /* talk to server(s) unless we are skipping */
-+ if (!skipping)
-+ {
-+ BOOL memcache_connections_failed = TRUE;
-+ BOOL memcache_requests_failed = TRUE;
-+ uschar *memcache_server_name, *memcache_port_name;
-+ while (NULL != (memcache_server_name =
-+ string_nextinlist(&memcache_hosts_string,
-+ &memcache_hostlist_separator, NULL, 0)) &&
-+ memcache_requests_failed)
-+ {
-+
-+ memcache_port_name = Ustrrchr(memcache_server_name, ':');
-+
-+ /* Sort out the port */
-+ if (memcache_port_name == NULL)
-+ {
-+ memcache_port_name = MEMCACHE_DEFAULT_PORT;
-+ }
-+ else
-+ {
-+ *memcache_port_name++ = 0; /* Terminate server name */
-+ }
-+
-+ uschar *memcache_server_readsocket =
-+ string_sprintf("${readsocket{inet:%s:%s}{%s}{%ds}}",
-+ memcache_server_name,
-+ memcache_port_name,
-+ memcache_request,
-+ memcache_timeout);
-+
-+ DEBUG(D_memcache)
-+ {
-+ debug_printf("readsocket expansion item: '%s'\n", memcache_server_readsocket);
-+ }
-+
-+ memcache_readsocket_result = expand_string(memcache_server_readsocket);
-+
-+ if (memcache_readsocket_result != NULL)
-+ {
-+
-+ memcache_connections_failed = FALSE;
-+
-+ if (memcache_operation == MEMCACHE_OP_GET
-+ && 0 == Ustrncmp(memcache_readsocket_result, US"VALUE ", Ustrlen(US"VALUE ")))
-+ {
-+
-+ memcache_requests_failed = FALSE;
-+
-+ /* we tried to use expand_gettokened but it segfaults and we
-+ didnt find out why */
-+ uschar *memcache_value_size = memcache_readsocket_result;
-+ int i;
-+ for (i = 0; i < 3; i++) { memcache_value_size = Ustrchr(memcache_value_size, ' ') + 1; }
-+
-+ lookup_value = strstr(memcache_readsocket_result, "\r\n") + Ustrlen("\r\n");
-+ lookup_value[
-+ Ustrtol(memcache_value_size,
-+ NULL,
-+ 0)] = 0;
-+
-+ DEBUG(D_memcache) { debug_printf("lookup_value: '%s'\n", lookup_value); }
-+
-+ }
-+ else if (memcache_operation == MEMCACHE_OP_SET
-+ && 0 == Ustrcmp(memcache_readsocket_result, US"STORED\r\n"))
-+ {
-+ memcache_requests_failed = FALSE;
-+ }
-+ else
-+ {
-+ /* something went wrong - try something else */
-+ DEBUG(D_memcache)
-+ {
-+ debug_printf("memcache operation '%s' failed: '%s'\n",
-+ memcache_op_string,
-+ memcache_readsocket_result);
-+ }
-+ }
-+
-+ if (!memcache_requests_failed)
-+ {
-+ yield = string_cat(yield,
-+ &size,
-+ &ptr,
-+ US"yes",
-+ Ustrlen(US"yes"));
-+ }
-+
-+ }
-+
-+ }
-+
-+ if (memcache_connections_failed)
-+ {
-+ /* expansion failed for last server */
-+ expand_string_message =
-+ string_sprintf(US"all memcache servers failed - last error was: '%s'",
-+ string_copy(expand_string_message));
-+ goto EXPAND_FAILED;
-+ }
-+
-+ if (memcache_requests_failed)
-+ {
-+ /* none of the memcache operations returned the expected result */
-+ yield = string_cat(yield,
-+ &size,
-+ &ptr,
-+ US"no",
-+ Ustrlen(US"no"));
-+ }
-+
-+ }
-+ continue;
-+ }
-+ #endif /* SUPPORT_MEMCACHE */
- }
-
- /* Control reaches here if the name is not recognized as one of the more
-diff -r 938614e333a1 src/globals.c
---- a/src/globals.c Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/globals.c Fri Aug 21 11:48:06 2009 +0200
-@@ -448,6 +448,7 @@
- { US"load", D_load },
- { US"local_scan", D_local_scan },
- { US"lookup", D_lookup },
-+ { US"memcache", D_memcache },
- { US"memory", D_memory },
- { US"pid", D_pid },
- { US"process_info", D_process_info },
-@@ -757,6 +758,10 @@
- #endif
- int max_received_linelength= 0;
- int max_username_length = 0;
-+#ifdef SUPPORT_MEMCACHE
-+int memcache_expiration = 0;
-+int memcache_timeout = 3;
-+#endif
- int message_age = 0;
- uschar *message_body = NULL;
- uschar *message_body_end = NULL;
-diff -r 938614e333a1 src/globals.h
---- a/src/globals.h Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/globals.h Fri Aug 21 11:48:06 2009 +0200
-@@ -441,6 +441,10 @@
- #endif
- extern int max_received_linelength;/* What it says */
- extern int max_username_length; /* For systems with broken getpwnam() */
-+#ifdef SUPPORT_MEMCACHE
-+extern int memcache_expiration;
-+extern int memcache_timeout;
-+#endif
- extern int message_age; /* In seconds */
- extern uschar *message_body; /* Start of message body for filter */
- extern uschar *message_body_end; /* End of message body for filter */
-diff -r 938614e333a1 src/macros.h
---- a/src/macros.h Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/macros.h Fri Aug 21 11:48:06 2009 +0200
-@@ -313,19 +313,20 @@
- #define D_load 0x00008000
- #define D_lookup 0x00010000
- #define D_memory 0x00020000
--#define D_pid 0x00040000
--#define D_process_info 0x00080000
--#define D_queue_run 0x00100000
--#define D_receive 0x00200000
--#define D_resolver 0x00400000
--#define D_retry 0x00800000
--#define D_rewrite 0x01000000
--#define D_route 0x02000000
--#define D_timestamp 0x04000000
--#define D_tls 0x08000000
--#define D_transport 0x10000000
--#define D_uid 0x20000000
--#define D_verify 0x40000000
-+#define D_memcache 0x00040000
-+#define D_pid 0x00080000
-+#define D_process_info 0x00100000
-+#define D_queue_run 0x00200000
-+#define D_receive 0x00400000
-+#define D_resolver 0x00800000
-+#define D_retry 0x01000000
-+#define D_rewrite 0x02000000
-+#define D_route 0x04000000
-+#define D_timestamp 0x08000000
-+#define D_tls 0x10000000
-+#define D_transport 0x20000000
-+#define D_uid 0x40000000
-+#define D_verify 0x80000000
-
- /* The D_all value must always have all bits set, as it is recognized specially
- by the function that decodes debug and log selectors. This is to enable it to
-@@ -515,21 +516,21 @@
- #define RDO_INCLUDE 0x00000100 /* Forbid :include: */
- #define RDO_LOG 0x00000200 /* Forbid "log" */
- #define RDO_LOOKUP 0x00000400 /* Forbid "lookup" in expansion in filter */
--#define RDO_PERL 0x00000800 /* Forbid "perl" in expansion in filter */
--#define RDO_READFILE 0x00001000 /* Forbid "readfile" in exp in filter */
--#define RDO_READSOCK 0x00002000 /* Forbid "readsocket" in exp in filter */
--#define RDO_RUN 0x00004000 /* Forbid "run" in expansion in filter */
--#define RDO_DLFUNC 0x00008000 /* Forbid "dlfunc" in expansion in filter */
--#define RDO_REALLOG 0x00010000 /* Really do log (not testing/verifying) */
--#define RDO_REWRITE 0x00020000 /* Rewrite generated addresses */
--#define RDO_EXIM_FILTER 0x00040000 /* Forbid Exim filters */
--#define RDO_SIEVE_FILTER 0x00080000 /* Forbid Sieve filters */
--#define RDO_PREPEND_HOME 0x00100000 /* Prepend $home to relative paths in Exim filter save commands */
--
-+#define RDO_MEMCACHE 0x00000800 /* Forbid "memcache" in expansion in filter */
-+#define RDO_PERL 0x00001000 /* Forbid "perl" in expansion in filter */
-+#define RDO_READFILE 0x00002000 /* Forbid "readfile" in exp in filter */
-+#define RDO_READSOCK 0x00004000 /* Forbid "readsocket" in exp in filter */
-+#define RDO_RUN 0x00008000 /* Forbid "run" in expansion in filter */
-+#define RDO_DLFUNC 0x00010000 /* Forbid "dlfunc" in expansion in filter */
-+#define RDO_REALLOG 0x00020000 /* Really do log (not testing/verifying) */
-+#define RDO_REWRITE 0x00040000 /* Rewrite generated addresses */
-+#define RDO_EXIM_FILTER 0x00080000 /* Forbid Exim filters */
-+#define RDO_SIEVE_FILTER 0x00100000 /* Forbid Sieve filters */
-+#define RDO_PREPEND_HOME 0x00200000 /* Prepend $home to relative paths in Exim filter save commands */
- /* This is the set that apply to expansions in filters */
-
- #define RDO_FILTER_EXPANSIONS \
-- (RDO_EXISTS|RDO_LOOKUP|RDO_PERL|RDO_READFILE|RDO_READSOCK|RDO_RUN|RDO_DLFUNC)
-+ (RDO_EXISTS|RDO_LOOKUP|RDO_MEMCACHE|RDO_PERL|RDO_READFILE|RDO_READSOCK|RDO_RUN|RDO_DLFUNC)
-
- /* As well as the RDO bits themselves, we need the bit numbers in order to
- access (most of) the individual bits as separate options. This could be
-@@ -537,8 +538,9 @@
-
- enum { RDON_BLACKHOLE, RDON_DEFER, RDON_EACCES, RDON_ENOTDIR, RDON_EXISTS,
- RDON_FAIL, RDON_FILTER, RDON_FREEZE, RDON_INCLUDE, RDON_LOG, RDON_LOOKUP,
-- RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN, RDON_DLFUNC, RDON_REALLOG,
-- RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER, RDON_PREPEND_HOME };
-+ RDON_MEMCACHE, RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN,
-+ RDON_DLFUNC, RDON_REALLOG, RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER,
-+ RDON_PREPEND_HOME };
-
- /* Results of filter or forward file processing. Some are only from a filter;
- some are only from a forward file. */
-diff -r 938614e333a1 src/memcache.c
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/memcache.c Fri Aug 21 11:48:06 2009 +0200
-@@ -0,0 +1,101 @@
-+
-+#include "exim.h"
-+#include "memcache.h"
-+
-+#ifdef SUPPORT_MEMCACHE
-+
-+int memcache_errno = E_MEMCACHE_OK;
-+
-+/* escape special chars for expansion (required as long as we are using the
-+ * 'readsocket' expansion instead of connecting and talking to the memcache
-+ * server ourselves) */
-+
-+uschar *
-+memcache_escape_for_expansion(uschar *s)
-+{
-+
-+int i = 0;
-+int slen = 2 * Ustrlen(s);
-+
-+/* we set this limit rather low - this function is supposed to go away anyway
-+ * */
-+if (slen > 1022)
-+ {
-+ memcache_errno = E_MEMCACHE_REQUEST_TOO_LONG;
-+ return NULL;
-+ }
-+
-+uschar *e = store_get(slen + 2);
-+
-+while (TRUE)
-+ {
-+ if (*s == '\\' || *s == '$' || *s == '}' || *s == '\n' || *s == '\r' || *s == '\t')
-+ {
-+ e[i++] = '\\';
-+ if (*s == '\n') e[i++] = 'n';
-+ else if (*s == '\r') e[i++] = 'r';
-+ else if (*s == '\t') e[i++] = 't';
-+ else e[i++] = *s;
-+ }
-+ else
-+ {
-+ e[i++] = *s;
-+ }
-+
-+ if (*s == 0)
-+ {
-+ return e;
-+ }
-+
-+ s++;
-+
-+ }
-+
-+
-+}
-+
-+/* urlencode the key because it may not contain any whitespace or control
-+ * characters; returns encoded string or NULL if the resulting key will be
-+ * longer than 250 bytes; memcache_errno will be set in that case */
-+
-+uschar *
-+memcache_encode_key(uschar *key)
-+{
-+
-+int i = 0;
-+int qlen = 3 * Ustrlen(key);
-+
-+uschar *q = store_get((qlen < MEMCACHE_MAX_KEY_SIZE ? qlen :
-+ MEMCACHE_MAX_KEY_SIZE) + 3);
-+
-+while (TRUE)
-+ {
-+ if ((iscntrl(*key) && *key != 0) || isspace(*key) || *key == '%')
-+ {
-+ q[i++] = '%';
-+ q[i++] = hex_digits[*key >> 4];
-+ q[i++] = hex_digits[*key & 0xf];
-+ }
-+ else
-+ {
-+ q[i++] = *key;
-+ }
-+
-+ if (*key == 0)
-+ {
-+ return q;
-+ }
-+
-+ if (i > MEMCACHE_MAX_KEY_SIZE)
-+ {
-+ memcache_errno = E_MEMCACHE_KEY_TOO_LONG;
-+ return NULL;
-+ }
-+
-+ key++;
-+
-+ }
-+
-+}
-+
-+#endif /* SUPPORT_MEMCACHE */
-diff -r 938614e333a1 src/memcache.h
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/memcache.h Fri Aug 21 11:48:06 2009 +0200
-@@ -0,0 +1,15 @@
-+#ifndef MEMCACHE_H
-+#define MEMCACHE_H
-+
-+#define MEMCACHE_HOSTLIST_NAME US"memcache_servers"
-+#define MEMCACHE_DEFAULT_PORT US"11211"
-+#define MEMCACHE_MAX_KEY_SIZE 250
-+
-+enum { MEMCACHE_OP_SET, MEMCACHE_OP_GET };
-+enum { E_MEMCACHE_OK, E_MEMCACHE_KEY_TOO_LONG, E_MEMCACHE_REQUEST_TOO_LONG };
-+
-+extern uschar *memcache_encode_key(uschar *);
-+extern uschar *memcache_escape_for_expansion(uschar *);
-+extern int memcache_errno;
-+
-+#endif
-diff -r 938614e333a1 src/readconf.c
---- a/src/readconf.c Fri Aug 14 08:39:52 2009 +0200
-+++ b/src/readconf.c Fri Aug 21 11:48:06 2009 +0200
-@@ -265,6 +265,10 @@
- { "log_timezone", opt_bool, &log_timezone },
- { "lookup_open_max", opt_int, &lookup_open_max },
- { "max_username_length", opt_int, &max_username_length },
-+#ifdef SUPPORT_MEMCACHE
-+ { "memcache_expiration", opt_time, &memcache_expiration },
-+ { "memcache_timeout", opt_time, &memcache_timeout },
-+#endif
- { "message_body_newlines", opt_bool, &message_body_newlines },
- { "message_body_visible", opt_mkint, &message_body_visible },
- { "message_id_header_domain", opt_stringptr, &message_id_domain },
--- a/freeradius/2.0.4/with-openssl.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
---- debian/changelog 2009-07-20 10:27:05.000000000 +0200
-+++ debian/changelog 2009-07-20 11:23:56.000000000 +0200
-@@ -1,3 +1,10 @@
-+freeradius (2.0.4+dfsg-6.1) unstable; urgency=low
-+
-+ * Non-maintainer upload.
-+ * Built with ssl support
-+
-+ -- Matthias Foerste <foerste@schlittermann.de> Mon, 20 Jul 2009 11:22:11 +0200
-+
- freeradius (2.0.4+dfsg-6) unstable; urgency=low
-
- * Fix unsafe use of tempfile (closes: #496389)
---- debian/control 2008-05-19 04:47:18.000000000 +0200
-+++ debian/control 2009-07-20 11:13:49.000000000 +0200
-@@ -1,5 +1,5 @@
- Source: freeradius
--Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev
-+Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev, libssl-dev
- Section: net
- Priority: optional
- Maintainer: Stephen Gran <sgran@debian.org>
---- debian/rules 2009-07-20 10:27:05.000000000 +0200
-+++ debian/rules 2009-07-20 11:13:49.000000000 +0200
-@@ -80,14 +80,14 @@
- --with-large-files --with-udpfromto --with-edir \
- --enable-developer \
- --config-cache \
-- --without-rlm_eap_tls \
-- --without-rlm_eap_ttls \
-- --without-rlm_eap_peap \
-+ --with-rlm_eap_tls \
-+ --with-rlm_eap_ttls \
-+ --with-rlm_eap_peap \
- --without-rlm_eap_tnc \
- --without-rlm_otp \
- --with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` \
- --with-rlm_sql_postgresql_include_dir=`pg_config --includedir` \
-- --without-openssl \
-+ --with-openssl \
- --without-rlm_eap_ikev2 \
- --without-rlm_sql_oracle \
- --without-rlm_sql_unixodbc \
-@@ -176,12 +176,6 @@
- dh_strip -a --dbg-package=freeradius-dbg
-
- dh_makeshlibs -a -n
-- for pkg in ${pkgs} ; do \
-- if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then \
-- echo "$$pkg links to openssl" ;\
-- exit 1 ;\
-- fi ;\
-- done
- dh_shlibdeps
-
- binary-common:
--- a/ghostscript/020120720~01dc18e.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-From 01dc18e8418fc44a993840f0aeaf741929c1921a Mon Sep 17 00:00:00 2001
-From: Ken Sharp <ken.sharp@artifex.com>
-Date: Fri, 20 Jul 2012 10:27:32 +0100
-Subject: [PATCH] ps2write - Always ascii hex encode the eexec portion of type
- 1 fonts
-
-Bug #693197 "ps2write outputs Type 1 fonts in pfb format"
-
-Technically it is possible for the eexec portion of a type 1 font to be in
-binary or ascii hex. Because we always ascii85 encode binary data if the
-device does not support it, we left eexec portion as binary.
-
-However it seems that at least some printers (Kyocera, possibly others) are
-unable to deal with this.
-
-This patch means that we alays use ascii hex data for the eexec encrypted
-portion of a type 1 font. We did consider making this a command line option
-but were unable to find any other tools which emitted binary here so opted
-simply to conform.
-
-All the investigation and the original patch (see bug report) by Chris Liddell
-
-
-No differences expected
----
- base/gdevpdtb.c | 26 +++++++++++++++++++-------
- base/gdevpsf1.c | 5 ++++-
- 2 files changed, 23 insertions(+), 8 deletions(-)
-
-Index: ghostscript-9.05~dfsg/base/gdevpdtb.c
-===================================================================
---- ghostscript-9.05~dfsg.orig/base/gdevpdtb.c 2013-07-09 13:05:30.000000000 +0200
-+++ ghostscript-9.05~dfsg/base/gdevpdtb.c 2013-07-09 14:19:38.000000000 +0200
-@@ -549,17 +549,29 @@
- pdf_data_writer_t writer;
- byte digest[6] = {0,0,0,0,0,0};
- int code;
-+ int options=0;
-
- if (pbfont->written)
- return 0; /* already written */
- code = copied_order_font((gs_font *)out_font);
- if (code < 0)
- return code;
-- code = pdf_begin_data_stream(pdev, &writer, DATA_STREAM_BINARY |
-- /* Don't set DATA_STREAM_ENCRYPT since we write to a temporary file.
-- See comment in pdf_begin_encrypt. */
-- (pdev->CompressFonts ?
-- DATA_STREAM_COMPRESS : 0), 0);
-+ /* Since we now always ASCIIHex encode the eexec encrypted portion of a
-+ * Type 1 font, such a font cannot contain any binary data, if its not being
-+ * compressed then there is no reason to ASCII encode it (which will happen
-+ * we set DATA_STREAM_BINARY and the device does not permit binary output)
-+ * NB if HaveCFF is true then we convert type 1 to CFF which is a binary
-+ * format, so we still need to set DATA_STREAM_BINARY.
-+ */
-+ if (pdev->CompressFonts)
-+ options = DATA_STREAM_BINARY | DATA_STREAM_COMPRESS;
-+ else
-+ if (FontType != ft_encrypted || pdev->HaveCFF)
-+ options = DATA_STREAM_BINARY;
-+ /* Don't set DATA_STREAM_ENCRYPT since we write to a temporary file.
-+ * See comment in pdf_begin_encrypt.
-+ */
-+ code = pdf_begin_data_stream(pdev, &writer, options, 0);
- if (code < 0)
- return code;
- if (pdev->PDFA) {
-@@ -610,8 +622,8 @@
-
- code = psf_write_type1_font(writer.binary.strm,
- (gs_font_type1 *)out_font,
-- WRITE_TYPE1_WITH_LENIV |
-- WRITE_TYPE1_EEXEC | WRITE_TYPE1_EEXEC_PAD,
-+ WRITE_TYPE1_WITH_LENIV | WRITE_TYPE1_EEXEC |
-+ WRITE_TYPE1_EEXEC_PAD | WRITE_TYPE1_ASCIIHEX,
- NULL, 0, &fnstr, lengths);
- if (lengths[0] > 0) {
- if (code < 0)
-Index: ghostscript-9.05~dfsg/base/gdevpsf1.c
-===================================================================
---- ghostscript-9.05~dfsg.orig/base/gdevpsf1.c 2013-07-09 13:05:30.000000000 +0200
-+++ ghostscript-9.05~dfsg/base/gdevpsf1.c 2013-07-09 14:19:38.000000000 +0200
-@@ -857,9 +857,12 @@
- if (options & WRITE_TYPE1_ASCIIHEX) {
- s_init(&AXE_stream, s->memory);
- s_init_state((stream_state *)&AXE_state, &s_AXE_template, NULL);
-- AXE_state.EndOfData = false;
- s_init_filter(&AXE_stream, (stream_state *)&AXE_state,
- AXE_buf, sizeof(AXE_buf), es);
-+ /* We have to set this after s_init_filter() as that function
-+ * sets it to true.
-+ */
-+ AXE_state.EndOfData = false;
- es = &AXE_stream;
- }
- s_init(&exE_stream, s->memory);
--- a/ghostscript/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-ghostscript-<version>$ quilt import ~/src/hg/ius-diffs/ghostscript/020120720~01dc18e.patch
-ghostscript-<version>$ dch -lius 'Non-maintainer upload.'
-ghostscript-<version>$ dch -D 'stable' --force-d --append 'Add patch from upstream bug #693197 to possibly fix problems with our kyocera printer'
-ghostscript-<version>$ $FAVOURITE-PACKAGE-BUILDER
--- a/nagios-plugins-contrib/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-$ git clone git://git.debian.org/pkg-nagios/pkg-nagios-plugins-contrib
-$ cd pkg-nagios-plugins-contrib/
-# aktuellen tag bestimmen und auschecken
-pkg-nagios-plugins-contrib$ apt-cache policy nagios-plugins-contrib
-pkg-nagios-plugins-contrib$ git checkout debian/4.20120702
-pkg-nagios-plugins-contrib$ export QUILT_PATCHES='debian/patches'
-pkg-nagios-plugins-contrib$ quilt import -P check_lm_sensors/sort_results ~/src/hg/ius-diffs/nagios-plugins-contrib/sort_results.patch
-# für die wheezy version 4.20120702 gab es einen +nmu1 postfix, besser wäre
-# aber ius gewesen
-pkg-nagios-plugins-contrib$ dch -lius 'Non-maintainer upload.'
-pkg-nagios-plugins-contrib$ dch -D 'stable' --force-d --append 'sort check_lm_sensors results'
-pkg-nagios-plugins-contrib$ $FAVOURITE-PACKAGE-BUILDER
--- a/nagios-plugins-contrib/sort_results.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
---- a/check_lm_sensors/src/check_lm_sensors
-+++ b/check_lm_sensors/src/check_lm_sensors
-@@ -501,8 +501,9 @@ if ($sensors) {
- # perform checks
-
- # old style checks
--while ( ( $name, $limits ) = each %checks ) {
-+for $name ( sort keys %checks ) {
-
-+ $limits = $checks{$name};
- $converted_name = $name;
- $converted_name =~ s/_/\ /gmx;
-
-@@ -541,8 +542,9 @@ while ( ( $name, $limits ) = each %checks ) {
- }
-
- # lows
--while ( ( $name, $limits ) = each %lows ) {
-+for $name ( sort keys %lows ) {
-
-+ $limits = $lows{$name};
- $converted_name = $name;
- $converted_name =~ s/_/\ /gmx;
-
-@@ -575,8 +577,9 @@ while ( ( $name, $limits ) = each %lows ) {
- }
-
- # highs
--while ( ( $name, $limits ) = each %highs ) {
-+for $name ( sort keys %highs ) {
-
-+ $limits = $highs{$name};
- $converted_name = $name;
- $converted_name =~ s/_/\ /gmx;
-
-@@ -610,8 +613,9 @@ while ( ( $name, $limits ) = each %highs ) {
- }
-
- # ranges
--while ( ( $name, $limits ) = each %ranges ) {
-+for $name ( sort keys %ranges ) {
-
-+ $limits = $ranges{$name};
- $converted_name = $name;
- $converted_name =~ s/_/\ /gmx;
-
--- a/owncloud/16862.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-From 14c760124fd0eb92684297c587769cea1d11f2f2 Mon Sep 17 00:00:00 2001
-From: Lukas Reschke <lukas@owncloud.com>
-Date: Wed, 10 Jun 2015 14:46:42 +0200
-Subject: [PATCH] Don't use command concatenation
-
-Possibly fixes https://github.com/owncloud/core/issues/16853
----
- apps/files_external/3rdparty/smb4php/smb.php | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/apps/files_external/3rdparty/smb4php/smb.php b/apps/files_external/3rdparty/smb4php/smb.php
-index 7ffdb42..5db663b 100644
---- a/apps/files_external/3rdparty/smb4php/smb.php
-+++ b/apps/files_external/3rdparty/smb4php/smb.php
-@@ -324,14 +324,14 @@ function rename ($url_from, $url_to) {
- trigger_error('rename(): error in URL', E_USER_ERROR);
- }
- smb::clearstatcache ($url_from);
-- $cmd = '';
- // check if target file exists
- if (smb::url_stat($url_to)) {
- // delete target file first
-- $cmd = 'del "' . $to['path'] . '"; ';
-+ $cmd = 'del "' . $to['path'] . '"';
-+ smb::execute($cmd, $to);
- $replace = true;
- }
-- $cmd .= 'rename "' . $from['path'] . '" "' . $to['path'] . '"';
-+ $cmd = 'rename "' . $from['path'] . '" "' . $to['path'] . '"';
- $result = smb::execute($cmd, $to);
- if ($replace) {
- // clear again, else the cache will return the info
--- a/owncloud/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-owncloud-<version>$ quilt import ../16862.patch
-owncloud-<version>$ dch -i 'Backport upstream patch to fix problems with https://github.com/owncloud/core/issues/16853 for seilerforstmann architekten'
-owncloud-<version>$ dch -l~ius ''
-owncloud-<version>$ dch --force-d -D jessie-backports ''
-owncloud-<version>$ $FAVOURITE-PACKAGE-BUILDER
--- a/pbuilder/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-$ git clone git://git.debian.org/git/pbuilder/pbuilder.git
-$ cd pbuilder
-# patch is against debian/0.213
-$ git checkout <revision-you-want-to-build-against>
-# patching debian/changelog should fail when not building against revision
-# debian/0.213; this is ok, but don't remove debian/changelog.rej; you will
-# need it when you want to copy the changelog entry from it
-$ patch -p1 <<path-to>/propagate-path-to-dpkg-buildpackage.diff
-# unless building against revision debian/0.213 add the changelog entry from
-# debian/changelog.rej
-$ dch
-$ $FAVOURITE-PACKAGE-BUILDER
--- a/pbuilder/propagate-path-to-dpkg-buildpackage.diff Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-diff --git a/debian/changelog b/debian/changelog
-index 5d6b9d9..dff933d 100644
---- a/debian/changelog
-+++ b/debian/changelog
-@@ -1,3 +1,11 @@
-+pbuilder (0.213+nmu1) oldstable stable; urgency=low
-+
-+ * Non-maintainer upload.
-+ * propagate $PATH to dpgk-buildpackage when using pdebuild-internal to make
-+ it possible to use ccache at all in that case
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Wed, 26 Jun 2013 16:01:49 +0200
-+
- pbuilder (0.213) unstable; urgency=low
-
- [ Beatrice Torracca ]
-diff --git a/pdebuild-internal b/pdebuild-internal
-index 0c4fb99..7056464 100644
---- a/pdebuild-internal
-+++ b/pdebuild-internal
-@@ -121,7 +121,7 @@ executehooks "A"
- # do build with that user.
- # $DEBBUILDOPTS is evaluated inside the su and chroot.
- export DEBBUILDOPTS
--CMD="/usr/bin/dpkg-buildpackage -rfakeroot -us -uc "'${DEBBUILDOPTS}'
-+CMD="env PATH=$PATH /usr/bin/dpkg-buildpackage -rfakeroot -us -uc "'${DEBBUILDOPTS}'
- echo "I: Running $CMD"
- # This command should be ran with current directory as bind-mounted
- # package source directory
--- a/pound/2.5/dynamic-backends.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-diff -r badbd0960f5b config.c
---- a/config.c Mon May 09 11:00:36 2011 +0200
-+++ b/config.c Thu May 12 10:36:12 2011 +0200
-@@ -77,7 +77,7 @@
- static regex_t Service, ServiceName, URL, HeadRequire, HeadDeny, BackEnd, Emergency, Priority, HAport, HAportAddr;
- static regex_t Redirect, RedirectN, TimeOut, Session, Type, TTL, ID, DynScale;
- static regex_t ClientCert, AddHeader, Ciphers, CAlist, VerifyList, CRLlist, NoHTTPS11;
--static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert;
-+static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert, DynamicAddress, DynamicHAAddress;
-
- static regmatch_t matches[5];
-
-@@ -182,7 +182,7 @@
- if((res = (BACKEND *)malloc(sizeof(BACKEND))) == NULL)
- conf_err("BackEnd config: out of memory - aborted");
- memset(res, 0, sizeof(BACKEND));
-- res->be_type = 0;
-+ res->be_type = res->dyn_addr = res->dyn_ha_addr = 0;
- res->addr.ai_socktype = SOCK_STREAM;
- res->to = is_emergency? 120: be_to;
- res->conn_to = is_emergency? 120: be_connto;
-@@ -200,6 +200,9 @@
- lin[strlen(lin) - 1] = '\0';
- if(!regexec(&Address, lin, 4, matches, 0)) {
- lin[matches[1].rm_eo] = '\0';
-+ if((res->hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-+ conf_err("out of memory");
-+ memcpy(res->hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
- if(get_host(lin + matches[1].rm_so, &res->addr)) {
- /* if we can't resolve it assume this is a UNIX domain socket */
- res->addr.ai_socktype = SOCK_STREAM;
-@@ -243,6 +246,7 @@
- if(is_emergency)
- conf_err("HAport is not supported for Emergency back-ends");
- res->ha_addr = res->addr;
-+ res->ha_hostname = res->hostname;
- if((res->ha_addr.ai_addr = (struct sockaddr *)malloc(res->addr.ai_addrlen)) == NULL)
- conf_err("out of memory");
- memcpy(res->ha_addr.ai_addr, res->addr.ai_addr, res->addr.ai_addrlen);
-@@ -264,6 +268,9 @@
- if(is_emergency)
- conf_err("HAportAddr is not supported for Emergency back-ends");
- lin[matches[1].rm_eo] = '\0';
-+ if((res->ha_hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-+ conf_err("out of memory");
-+ memcpy(res->ha_hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
- if(get_host(lin + matches[1].rm_so, &res->ha_addr)) {
- /* if we can't resolve it assume this is a UNIX domain socket */
- res->addr.ai_socktype = SOCK_STREAM;
-@@ -313,6 +320,10 @@
- SSL_CTX_set_session_id_context(res->ctx, (unsigned char *)lin, strlen(lin));
- SSL_CTX_set_tmp_rsa_callback(res->ctx, RSA_tmp_callback);
- SSL_CTX_set_tmp_dh_callback(res->ctx, DH_tmp_callback);
-+ } else if(!regexec(&DynamicAddress, lin, 4, matches, 0)) {
-+ res->dyn_addr = 1;
-+ } else if(!regexec(&DynamicHAAddress, lin, 4, matches, 0)) {
-+ res->dyn_ha_addr = 1;
- } else if(!regexec(&End, lin, 4, matches, 0)) {
- if(!has_addr)
- conf_err("BackEnd missing Address - aborted");
-@@ -1163,6 +1174,8 @@
- || regcomp(&IgnoreCase, "^[ \t]*IgnoreCase[ \t]+([01])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&HTTPS, "^[ \t]*HTTPS[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&HTTPSCert, "^[ \t]*HTTPS[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&DynamicAddress, "^[ \t]*DynamicAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&DynamicHAAddress, "^[ \t]*DynamicHAAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- ) {
- logmsg(LOG_ERR, "bad config Regex - aborted");
- exit(1);
-diff -r badbd0960f5b debian/changelog
---- a/debian/changelog Mon May 09 11:00:36 2011 +0200
-+++ b/debian/changelog Thu May 12 10:36:12 2011 +0200
-@@ -1,3 +1,16 @@
-+pound (2.5-1~bpo50+3) lenny-backports; urgency=low
-+
-+ * fixed manpage formatting
-+ * fixed unterminated strings
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Thu, 12 May 2011 10:35:36 +0200
-+
-+pound (2.5-1~bpo50+2) lenny-backports; urgency=low
-+
-+ * patched to deal with backend addresses on dynamic ips
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Wed, 11 May 2011 15:52:38 +0200
-+
- pound (2.5-1~bpo50+1) lenny-backports; urgency=low
-
- * Rebuild for lenny-backports.
-diff -r badbd0960f5b http.c
---- a/http.c Mon May 09 11:00:36 2011 +0200
-+++ b/http.c Thu May 12 10:36:12 2011 +0200
-@@ -773,6 +773,13 @@
- pthread_exit(NULL);
- break;
- }
-+ if (backend->dyn_addr && upd_addr(backend->hostname, &backend->addr)) {
-+ logmsg(LOG_WARNING, "(%lx) e503 backend: failed to resolve hostname '%s': %s", pthread_self(), backend->hostname, strerror(errno));
-+ err_reply(cl, h503, lstn->err503);
-+ free_headers(headers);
-+ clean_all();
-+ pthread_exit(NULL);
-+ }
- if((sock = socket(sock_proto, SOCK_STREAM, 0)) < 0) {
- str_be(buf, MAXBUF - 1, backend);
- logmsg(LOG_WARNING, "(%lx) e503 backend %s socket create: %s", pthread_self(), buf, strerror(errno));
-diff -r badbd0960f5b pound.8
---- a/pound.8 Mon May 09 11:00:36 2011 +0200
-+++ b/pound.8 Thu May 12 10:36:12 2011 +0200
-@@ -682,6 +682,24 @@
- .B Pound
- uses the same address as the back-end server, but you may use a separate address
- if you wish. This directive applies only to non Unix-domain servers.
-+.TP
-+\fBDynamicAddress\fR
-+If this directive is present then the
-+.I Address
-+given for this
-+.I Backend
-+is considered a dynamic address. It is resolved whenever a connection attempt
-+to that
-+.I Address
-+is made.
-+.TP
-+\fBDynamicHAAddress\fR
-+This is the same as
-+.I DynamicAddress
-+except that it applies to the address given in the
-+.I HAPort
-+directive if any.
-+
- .SH "Emergency"
- The emergency server will be used once all existing back-ends are "dead".
- All configuration directives enclosed between
-diff -r badbd0960f5b pound.h
---- a/pound.h Mon May 09 11:00:36 2011 +0200
-+++ b/pound.h Thu May 12 10:36:12 2011 +0200
-@@ -308,6 +308,10 @@
- int alive; /* false if the back-end is dead */
- int resurrect; /* this back-end is to be resurrected */
- int disabled; /* true if the back-end is disabled */
-+ int dyn_addr; /* true if the address of the backend may change over time (dynamic ip for example) */
-+ char *hostname; /* in case of a dynamic address we need to keep the hostname too */
-+ int dyn_ha_addr; /* like dynaddr but for the ha addr */
-+ char *ha_hostname; /* in case of a dynamic ha address we need to keep the hostname too */
- struct _backend *next;
- } BACKEND;
-
-@@ -571,3 +575,6 @@
- * listens to client requests and calls the appropriate functions
- */
- extern void *thr_control(void *);
-+
-+/* update address */
-+int upd_addr(char *hostname, struct addrinfo *ai);
-diff -r badbd0960f5b svc.c
---- a/svc.c Mon May 09 11:00:36 2011 +0200
-+++ b/svc.c Thu May 12 10:36:12 2011 +0200
-@@ -904,6 +904,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
- kill_be(svc, be, BE_KILL);
- str_be(buf, MAXBUF - 1, be);
-@@ -940,6 +943,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
- kill_be(svc, be, BE_KILL);
- str_be(buf, MAXBUF - 1, be);
-@@ -975,6 +981,9 @@
- default:
- continue;
- }
-+ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-+ }
- addr = &be->addr;
- } else {
- switch(be->ha_addr.ai_family) {
-@@ -993,6 +1002,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- addr = &be->ha_addr;
- }
- if(connect_nb(sock, addr, be->conn_to) == 0) {
-@@ -1044,6 +1056,9 @@
- default:
- continue;
- }
-+ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-+ }
- addr = &be->addr;
- } else {
- switch(be->ha_addr.ai_family) {
-@@ -1062,6 +1077,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- addr = &be->ha_addr;
- }
- if(connect_nb(sock, addr, be->conn_to) == 0) {
-@@ -1671,3 +1689,36 @@
- close(ctl);
- }
- }
-+
-+/* update address */
-+int
-+upd_addr(char *hostname, struct addrinfo *ai)
-+{
-+
-+ int r;
-+ in_port_t port;
-+
-+ /* get_host will set the port to zero */
-+ switch(ai->ai_family) {
-+ case AF_INET:
-+ port = ((struct sockaddr_in *)ai->ai_addr)->sin_port;
-+ break;
-+ case AF_INET6:
-+ port = ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port;
-+ break;
-+ }
-+
-+ r = get_host(hostname, ai);
-+
-+ switch(ai->ai_family) {
-+ case AF_INET:
-+ ((struct sockaddr_in *)ai->ai_addr)->sin_port = port;
-+ break;
-+ case AF_INET6:
-+ ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = port;
-+ break;
-+ }
-+
-+ return r;
-+
-+}
--- a/pound/2.6-6/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-$ apt-get source pound/jessie
-$ cd pound-2.6
-$ quilt import <path-to>/dynamic-backends.patch
-$ dch -D stable -n 'patched to deal with backends on dynamic ips'
-$ # append '~ius' to debian revision number manually
-$ dch -e
-$ $FAVOURITE-PACKAGE-BUILDER
--- a/pound/2.6-6/dynamic-backends.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-diff -r 48d93349de4c config.c
---- a/config.c Tue Jun 21 13:13:30 2016 +0200
-+++ b/config.c Tue Jun 21 13:37:02 2016 +0200
-@@ -77,7 +77,7 @@
- static regex_t Service, ServiceName, URL, HeadRequire, HeadDeny, BackEnd, Emergency, Priority, HAport, HAportAddr;
- static regex_t Redirect, RedirectN, TimeOut, Session, Type, TTL, ID, DynScale;
- static regex_t ClientCert, AddHeader, DisableSSLv2, DisableSSLv3, SSLAllowClientRenegotiation, SSLHonorCipherOrder, Ciphers, CAlist, VerifyList, CRLlist, NoHTTPS11;
--static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert, Disabled, Threads, CNName;
-+static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert, DynamicAddress, DynamicHAAddress, Disabled, Threads, CNName;
-
- static regmatch_t matches[5];
-
-@@ -183,7 +183,7 @@
- if((res = (BACKEND *)malloc(sizeof(BACKEND))) == NULL)
- conf_err("BackEnd config: out of memory - aborted");
- memset(res, 0, sizeof(BACKEND));
-- res->be_type = 0;
-+ res->be_type = res->dyn_addr = res->dyn_ha_addr = 0;
- res->addr.ai_socktype = SOCK_STREAM;
- res->to = is_emergency? 120: be_to;
- res->conn_to = is_emergency? 120: be_connto;
-@@ -200,6 +200,9 @@
- lin[strlen(lin) - 1] = '\0';
- if(!regexec(&Address, lin, 4, matches, 0)) {
- lin[matches[1].rm_eo] = '\0';
-+ if((res->hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-+ conf_err("out of memory");
-+ memcpy(res->hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
- if(get_host(lin + matches[1].rm_so, &res->addr)) {
- /* if we can't resolve it assume this is a UNIX domain socket */
- res->addr.ai_socktype = SOCK_STREAM;
-@@ -243,6 +246,7 @@
- if(is_emergency)
- conf_err("HAport is not supported for Emergency back-ends");
- res->ha_addr = res->addr;
-+ res->ha_hostname = res->hostname;
- if((res->ha_addr.ai_addr = (struct sockaddr *)malloc(res->addr.ai_addrlen)) == NULL)
- conf_err("out of memory");
- memcpy(res->ha_addr.ai_addr, res->addr.ai_addr, res->addr.ai_addrlen);
-@@ -264,6 +268,9 @@
- if(is_emergency)
- conf_err("HAportAddr is not supported for Emergency back-ends");
- lin[matches[1].rm_eo] = '\0';
-+ if((res->ha_hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-+ conf_err("out of memory");
-+ memcpy(res->ha_hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
- if(get_host(lin + matches[1].rm_so, &res->ha_addr)) {
- /* if we can't resolve it assume this is a UNIX domain socket */
- res->addr.ai_socktype = SOCK_STREAM;
-@@ -325,6 +332,10 @@
- SSL_CTX_set_session_id_context(res->ctx, (unsigned char *)lin, strlen(lin));
- SSL_CTX_set_tmp_rsa_callback(res->ctx, RSA_tmp_callback);
- SSL_CTX_set_tmp_dh_callback(res->ctx, DH_tmp_callback);
-+ } else if(!regexec(&DynamicAddress, lin, 4, matches, 0)) {
-+ res->dyn_addr = 1;
-+ } else if(!regexec(&DynamicHAAddress, lin, 4, matches, 0)) {
-+ res->dyn_ha_addr = 1;
- } else if(!regexec(&Disabled, lin, 4, matches, 0)) {
- res->disabled = atoi(lin + matches[1].rm_so);
- } else if(!regexec(&End, lin, 4, matches, 0)) {
-@@ -1374,6 +1385,8 @@
- || regcomp(&IgnoreCase, "^[ \t]*IgnoreCase[ \t]+([01])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&HTTPS, "^[ \t]*HTTPS[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&HTTPSCert, "^[ \t]*HTTPS[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&DynamicAddress, "^[ \t]*DynamicAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&DynamicHAAddress, "^[ \t]*DynamicHAAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&Disabled, "^[ \t]*Disabled[ \t]+[01][ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&CNName, ".*[Cc][Nn]=([-*.A-Za-z0-9]+).*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- ) {
-diff -r 48d93349de4c http.c
---- a/http.c Tue Jun 21 13:13:30 2016 +0200
-+++ b/http.c Tue Jun 21 13:37:02 2016 +0200
-@@ -846,6 +846,13 @@
- clean_all();
- return;
- }
-+ if (backend->dyn_addr && upd_addr(backend->hostname, &backend->addr)) {
-+ logmsg(LOG_WARNING, "(%lx) e503 backend: failed to resolve hostname '%s': %s", pthread_self(), backend->hostname, strerror(errno));
-+ err_reply(cl, h503, lstn->err503);
-+ free_headers(headers);
-+ clean_all();
-+ pthread_exit(NULL);
-+ }
- if((sock = socket(sock_proto, SOCK_STREAM, 0)) < 0) {
- str_be(buf, MAXBUF - 1, backend);
- logmsg(LOG_WARNING, "(%lx) e503 backend %s socket create: %s", pthread_self(), buf, strerror(errno));
-diff -r 48d93349de4c pound.8
---- a/pound.8 Tue Jun 21 13:13:30 2016 +0200
-+++ b/pound.8 Tue Jun 21 13:37:02 2016 +0200
-@@ -737,6 +737,24 @@
- uses the same address as the back-end server, but you may use a separate address
- if you wish. This directive applies only to non Unix-domain servers.
- .TP
-+\fBDynamicAddress\fR
-+If this directive is present then the
-+.I Address
-+given for this
-+.I Backend
-+is considered a dynamic address. It is resolved whenever a connection attempt
-+to that
-+.I Address
-+is made.
-+.TP
-+\fBDynamicHAAddress\fR
-+This is the same as
-+.I DynamicAddress
-+except that it applies to the address given in the
-+.I HAPort
-+directive if any.
-+
-+.TP
- \fBDisabled\fR 0|1
- Start
- .B Pound
-diff -r 48d93349de4c pound.h
---- a/pound.h Tue Jun 21 13:13:30 2016 +0200
-+++ b/pound.h Tue Jun 21 13:37:02 2016 +0200
-@@ -329,6 +329,10 @@
- int alive; /* false if the back-end is dead */
- int resurrect; /* this back-end is to be resurrected */
- int disabled; /* true if the back-end is disabled */
-+ int dyn_addr; /* true if the address of the backend may change over time (dynamic ip for example) */
-+ char *hostname; /* in case of a dynamic address we need to keep the hostname too */
-+ int dyn_ha_addr; /* like dynaddr but for the ha addr */
-+ char *ha_hostname; /* in case of a dynamic ha address we need to keep the hostname too */
- struct _backend *next;
- } BACKEND;
-
-@@ -633,3 +637,6 @@
- * listens to client requests and calls the appropriate functions
- */
- extern void *thr_control(void *);
-+
-+/* update address */
-+int upd_addr(char *hostname, struct addrinfo *ai);
-diff -r 48d93349de4c svc.c
---- a/svc.c Tue Jun 21 13:13:30 2016 +0200
-+++ b/svc.c Tue Jun 21 13:37:02 2016 +0200
-@@ -1022,6 +1022,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
- kill_be(svc, be, BE_KILL);
- str_be(buf, MAXBUF - 1, be);
-@@ -1058,6 +1061,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
- kill_be(svc, be, BE_KILL);
- str_be(buf, MAXBUF - 1, be);
-@@ -1093,6 +1099,9 @@
- default:
- continue;
- }
-+ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-+ }
- addr = &be->addr;
- } else {
- switch(be->ha_addr.ai_family) {
-@@ -1111,6 +1120,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- addr = &be->ha_addr;
- }
- if(connect_nb(sock, addr, be->conn_to) == 0) {
-@@ -1162,6 +1174,9 @@
- default:
- continue;
- }
-+ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-+ }
- addr = &be->addr;
- } else {
- switch(be->ha_addr.ai_family) {
-@@ -1180,6 +1195,9 @@
- default:
- continue;
- }
-+ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-+ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-+ }
- addr = &be->ha_addr;
- }
- if(connect_nb(sock, addr, be->conn_to) == 0) {
-@@ -1798,6 +1816,39 @@
- }
- }
-
-+/* update address */
-+int
-+upd_addr(char *hostname, struct addrinfo *ai)
-+{
-+
-+ int r;
-+ in_port_t port;
-+
-+ /* get_host will set the port to zero */
-+ switch(ai->ai_family) {
-+ case AF_INET:
-+ port = ((struct sockaddr_in *)ai->ai_addr)->sin_port;
-+ break;
-+ case AF_INET6:
-+ port = ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port;
-+ break;
-+ }
-+
-+ r = get_host(hostname, ai);
-+
-+ switch(ai->ai_family) {
-+ case AF_INET:
-+ ((struct sockaddr_in *)ai->ai_addr)->sin_port = port;
-+ break;
-+ case AF_INET6:
-+ ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = port;
-+ break;
-+ }
-+
-+ return r;
-+
-+}
-+
- void
- SSLINFO_callback(const SSL *ssl, int where, int rc)
- {
--- a/pound/2.6/dynamic-backends.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-diff --git a/debian/changelog b/debian/changelog
-index 689c84b..67ebb35 100644
---- a/debian/changelog
-+++ b/debian/changelog
-@@ -1,3 +1,10 @@
-+pound (2.6-2.1) wheezy; urgency=low
-+
-+ * Non-maintainer upload.
-+ * patched to deal with backend addresses on dynamic ips
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Fri, 28 Jun 2013 13:20:21 +0200
-+
- pound (2.6-2) unstable; urgency=low
-
- * Update anti_beast patch
-diff --git a/debian/patches/dyn_addr.patch b/debian/patches/dyn_addr.patch
-new file mode 100644
-index 0000000..c96b3c0
---- /dev/null
-+++ b/debian/patches/dyn_addr.patch
-@@ -0,0 +1,239 @@
-+diff --git a/config.c b/config.c
-+index 731b022..b19c78a 100755
-+--- a/config.c
-++++ b/config.c
-+@@ -77,7 +77,7 @@ static regex_t Err414, Err500, Err501, Err503, MaxRequest, HeadRemove, RewriteL
-+ static regex_t Service, ServiceName, URL, HeadRequire, HeadDeny, BackEnd, Emergency, Priority, HAport, HAportAddr;
-+ static regex_t Redirect, RedirectN, TimeOut, Session, Type, TTL, ID, DynScale;
-+ static regex_t ClientCert, AddHeader, SSLAllowClientRenegotiation, SSLHonorCipherOrder, Ciphers, CAlist, VerifyList, CRLlist, NoHTTPS11;
-+-static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert, Disabled, Threads, CNName;
-++static regex_t Grace, Include, ConnTO, IgnoreCase, HTTPS, HTTPSCert, Disabled, Threads, CNName, DynamicAddress, DynamicHAAddress;
-+
-+ static regmatch_t matches[5];
-+
-+@@ -183,7 +183,7 @@ parse_be(const int is_emergency)
-+ if((res = (BACKEND *)malloc(sizeof(BACKEND))) == NULL)
-+ conf_err("BackEnd config: out of memory - aborted");
-+ memset(res, 0, sizeof(BACKEND));
-+- res->be_type = 0;
-++ res->be_type = res->dyn_addr = res->dyn_ha_addr = 0;
-+ res->addr.ai_socktype = SOCK_STREAM;
-+ res->to = is_emergency? 120: be_to;
-+ res->conn_to = is_emergency? 120: be_connto;
-+@@ -200,6 +200,9 @@ parse_be(const int is_emergency)
-+ lin[strlen(lin) - 1] = '\0';
-+ if(!regexec(&Address, lin, 4, matches, 0)) {
-+ lin[matches[1].rm_eo] = '\0';
-++ if((res->hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-++ conf_err("out of memory");
-++ memcpy(res->hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
-+ if(get_host(lin + matches[1].rm_so, &res->addr)) {
-+ /* if we can't resolve it assume this is a UNIX domain socket */
-+ res->addr.ai_socktype = SOCK_STREAM;
-+@@ -243,6 +246,7 @@ parse_be(const int is_emergency)
-+ if(is_emergency)
-+ conf_err("HAport is not supported for Emergency back-ends");
-+ res->ha_addr = res->addr;
-++ res->ha_hostname = res->hostname;
-+ if((res->ha_addr.ai_addr = (struct sockaddr *)malloc(res->addr.ai_addrlen)) == NULL)
-+ conf_err("out of memory");
-+ memcpy(res->ha_addr.ai_addr, res->addr.ai_addr, res->addr.ai_addrlen);
-+@@ -264,6 +268,9 @@ parse_be(const int is_emergency)
-+ if(is_emergency)
-+ conf_err("HAportAddr is not supported for Emergency back-ends");
-+ lin[matches[1].rm_eo] = '\0';
-++ if((res->ha_hostname = (char *)malloc(matches[1].rm_eo - matches[1].rm_so + 1)) == NULL)
-++ conf_err("out of memory");
-++ memcpy(res->ha_hostname, lin + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so + 1);
-+ if(get_host(lin + matches[1].rm_so, &res->ha_addr)) {
-+ /* if we can't resolve it assume this is a UNIX domain socket */
-+ res->addr.ai_socktype = SOCK_STREAM;
-+@@ -321,6 +328,10 @@ parse_be(const int is_emergency)
-+ SSL_CTX_set_tmp_dh_callback(res->ctx, DH_tmp_callback);
-+ } else if(!regexec(&Disabled, lin, 4, matches, 0)) {
-+ res->disabled = atoi(lin + matches[1].rm_so);
-++ } else if(!regexec(&DynamicAddress, lin, 4, matches, 0)) {
-++ res->dyn_addr = 1;
-++ } else if(!regexec(&DynamicHAAddress, lin, 4, matches, 0)) {
-++ res->dyn_ha_addr = 1;
-+ } else if(!regexec(&End, lin, 4, matches, 0)) {
-+ if(!has_addr)
-+ conf_err("BackEnd missing Address - aborted");
-+@@ -1348,6 +1359,8 @@ config_parse(const int argc, char **const argv)
-+ || regcomp(&IgnoreCase, "^[ \t]*IgnoreCase[ \t]+([01])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&HTTPS, "^[ \t]*HTTPS[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&HTTPSCert, "^[ \t]*HTTPS[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-++ || regcomp(&DynamicAddress, "^[ \t]*DynamicAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-++ || regcomp(&DynamicHAAddress, "^[ \t]*DynamicHAAddress[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&Disabled, "^[ \t]*Disabled[ \t]+[01][ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&CNName, ".*[Cc][Nn]=([-*.A-Za-z0-9]+).*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ ) {
-+diff --git a/http.c b/http.c
-+index f6f1b8b..3946977 100755
-+--- a/http.c
-++++ b/http.c
-+@@ -817,6 +817,13 @@ do_http(thr_arg *arg)
-+ clean_all();
-+ return;
-+ }
-++ if (backend->dyn_addr && upd_addr(backend->hostname, &backend->addr)) {
-++ logmsg(LOG_WARNING, "(%lx) e503 backend: failed to resolve hostname '%s': %s", pthread_self(), backend->hostname, strerror(errno));
-++ err_reply(cl, h503, lstn->err503);
-++ free_headers(headers);
-++ clean_all();
-++ pthread_exit(NULL);
-++ }
-+ if((sock = socket(sock_proto, SOCK_STREAM, 0)) < 0) {
-+ str_be(buf, MAXBUF - 1, backend);
-+ logmsg(LOG_WARNING, "(%lx) e503 backend %s socket create: %s", pthread_self(), buf, strerror(errno));
-+diff --git a/pound.8 b/pound.8
-+index b95e794..8fd3457 100755
-+--- a/pound.8
-++++ b/pound.8
-+@@ -744,6 +744,24 @@ with this back-end disabled (1) or enabled (0). If started as disabled, the
-+ back-end can be later enabled with
-+ .I poundctl
-+ (8).
-++.TP
-++\fBDynamicAddress\fR
-++If this directive is present then the
-++.I Address
-++given for this
-++.I Backend
-++is considered a dynamic address. It is resolved whenever a connection attempt
-++to that
-++.I Address
-++is made.
-++.TP
-++\fBDynamicHAAddress\fR
-++This is the same as
-++.I DynamicAddress
-++except that it applies to the address given in the
-++.I HAPort
-++directive if any.
-++
-+ .SH "Emergency"
-+ The emergency server will be used once all existing back-ends are "dead".
-+ All configuration directives enclosed between
-+diff --git a/pound.h b/pound.h
-+index 5d0c880..a65a58c 100755
-+--- a/pound.h
-++++ b/pound.h
-+@@ -329,6 +329,10 @@ typedef struct _backend {
-+ int alive; /* false if the back-end is dead */
-+ int resurrect; /* this back-end is to be resurrected */
-+ int disabled; /* true if the back-end is disabled */
-++ int dyn_addr; /* true if the address of the backend may change over time (dynamic ip for example) */
-++ char *hostname; /* in case of a dynamic address we need to keep the hostname too */
-++ int dyn_ha_addr; /* like dynaddr but for the ha addr */
-++ char *ha_hostname; /* in case of a dynamic ha address we need to keep the hostname too */
-+ struct _backend *next;
-+ } BACKEND;
-+
-+@@ -631,3 +635,6 @@ extern void *thr_timer(void *);
-+ * listens to client requests and calls the appropriate functions
-+ */
-+ extern void *thr_control(void *);
-++
-++/* update address */
-++int upd_addr(char *hostname, struct addrinfo *ai);
-+diff --git a/svc.c b/svc.c
-+index 8c33a10..3551be3 100755
-+--- a/svc.c
-++++ b/svc.c
-+@@ -1022,6 +1022,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-++ }
-+ if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
-+ kill_be(svc, be, BE_KILL);
-+ str_be(buf, MAXBUF - 1, be);
-+@@ -1058,6 +1061,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-++ }
-+ if(connect_nb(sock, &be->ha_addr, be->conn_to) != 0) {
-+ kill_be(svc, be, BE_KILL);
-+ str_be(buf, MAXBUF - 1, be);
-+@@ -1093,6 +1099,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-++ }
-+ addr = &be->addr;
-+ } else {
-+ switch(be->ha_addr.ai_family) {
-+@@ -1111,6 +1120,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-++ }
-+ addr = &be->ha_addr;
-+ }
-+ if(connect_nb(sock, addr, be->conn_to) == 0) {
-+@@ -1162,6 +1174,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_addr && upd_addr(be->hostname, &be->addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->hostname, strerror(errno));
-++ }
-+ addr = &be->addr;
-+ } else {
-+ switch(be->ha_addr.ai_family) {
-+@@ -1180,6 +1195,9 @@ do_resurect(void)
-+ default:
-+ continue;
-+ }
-++ if (be->dyn_ha_addr && upd_addr(be->ha_hostname, &be->ha_addr)) {
-++ logmsg(LOG_NOTICE, "failed to resolve hostname '%s': %s", be->ha_hostname, strerror(errno));
-++ }
-+ addr = &be->ha_addr;
-+ }
-+ if(connect_nb(sock, addr, be->conn_to) == 0) {
-+@@ -1828,3 +1846,35 @@ SSLINFO_callback(const SSL *ssl, int where, int rc)
-+ //else if (where & SSL_CB_ALERT) logmsg(LOG_DEBUG, "alert");
-+ }
-+
-++/* update address */
-++int
-++upd_addr(char *hostname, struct addrinfo *ai)
-++{
-++
-++ int r;
-++ in_port_t port;
-++
-++ /* get_host will set the port to zero */
-++ switch(ai->ai_family) {
-++ case AF_INET:
-++ port = ((struct sockaddr_in *)ai->ai_addr)->sin_port;
-++ break;
-++ case AF_INET6:
-++ port = ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port;
-++ break;
-++ }
-++
-++ r = get_host(hostname, ai);
-++
-++ switch(ai->ai_family) {
-++ case AF_INET:
-++ ((struct sockaddr_in *)ai->ai_addr)->sin_port = port;
-++ break;
-++ case AF_INET6:
-++ ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = port;
-++ break;
-++ }
-++
-++ return r;
-++
-++}
-diff --git a/debian/patches/series b/debian/patches/series
-index d9c96c5..ed63eb9 100644
---- a/debian/patches/series
-+++ b/debian/patches/series
-@@ -1,2 +1,3 @@
- anti_beast.patch
- xss_redirect_fix.patch
-+dyn_addr.patch
--- a/reprepro/3.5.2/changes-file-process-messages.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
---- incoming.c.orig
-+++ incoming.c
-@@ -1854,6 +1854,8 @@
- for( j = 0 ; j < i->files.count ; j ++ ) {
- const char *basefilename = i->files.values[j];
- size_t l = strlen(basefilename);
-+ char *fullfilename;
-+
- #define C_SUFFIX ".changes"
- #define C_LEN strlen(C_SUFFIX)
- if( l <= C_LEN ||
-@@ -1861,7 +1863,16 @@
- if( changesfilename != NULL && strcmp(basefilename, changesfilename) != 0 )
- continue;
- /* a .changes file, check it */
-+ fullfilename = calc_dirconcat(i->directory, i->files.values[j]);
-+ if( fullfilename == NULL ) {
-+ result = RET_ERROR_OOM;
-+ continue;
-+ }
-+ printf("processing changesfile '%s'\n", fullfilename);
-+ fprintf(stderr, "processing changesfile '%s'\n", fullfilename);
- r = process_changes(database, i, j);
-+ printf("changesfile '%s' done\n", fullfilename);
-+ fprintf(stderr, "changesfile '%s' done\n", fullfilename);
- RET_UPDATE(result, r);
- }
-
--- a/reprepro/4.12.5-1/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-Please import the patch with quilt inside unpacked package sources:
-
-reprepro-4.12.5$ quilt import <path>/reprepro/4.12.5-1/debian/patches/0099-changes-file-process-messages.patch
--- a/reprepro/4.12.5-1/debian/patches/0099-changes-file-process-messages.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-diff -r ef6d4e102766 incoming.c
---- a/incoming.c Tue Jul 15 15:56:42 2014 +0200
-+++ b/incoming.c Tue Jul 15 16:02:01 2014 +0200
-@@ -2403,6 +2403,8 @@
- for (j = 0 ; j < i->files.count ; j ++) {
- const char *basefilename = i->files.values[j];
- size_t l = strlen(basefilename);
-+ char *fullfilename;
-+
- #define C_SUFFIX ".changes"
- const size_t c_len = strlen(C_SUFFIX);
- if (l <= c_len ||
-@@ -2411,7 +2413,16 @@
- if (changesfilename != NULL && strcmp(basefilename, changesfilename) != 0)
- continue;
- /* a .changes file, check it */
-+ fullfilename = calc_dirconcat(i->directory, i->files.values[j]);
-+ if( fullfilename == NULL ) {
-+ result = RET_ERROR_OOM;
-+ continue;
-+ }
-+ printf("processing changesfile '%s'\n", fullfilename);
-+ fprintf(stderr, "processing changesfile '%s'\n", fullfilename);
- r = process_changes(i, j);
-+ printf("changesfile '%s' done\n", fullfilename);
-+ fprintf(stderr, "changesfile '%s' done\n", fullfilename);
- RET_UPDATE(result, r);
- }
-
--- a/reprepro/4.2.0-2/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Please copy the patch to debian/patches and edit debian/patches/series inside
-unpacked package sources.
--- a/reprepro/4.2.0-2/debian/patches/0006-changes-file-process-messages.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
---- incoming.c.orig
-+++ incoming.c
-@@ -1854,6 +1854,8 @@
- for( j = 0 ; j < i->files.count ; j ++ ) {
- const char *basefilename = i->files.values[j];
- size_t l = strlen(basefilename);
-+ char *fullfilename;
-+
- #define C_SUFFIX ".changes"
- #define C_LEN strlen(C_SUFFIX)
- if( l <= C_LEN ||
-@@ -1861,7 +1863,16 @@
- if( changesfilename != NULL && strcmp(basefilename, changesfilename) != 0 )
- continue;
- /* a .changes file, check it */
-+ fullfilename = calc_dirconcat(i->directory, i->files.values[j]);
-+ if( fullfilename == NULL ) {
-+ result = RET_ERROR_OOM;
-+ continue;
-+ }
-+ printf("processing changesfile '%s'\n", fullfilename);
-+ fprintf(stderr, "processing changesfile '%s'\n", fullfilename);
- r = process_changes(database, i, j);
-+ printf("changesfile '%s' done\n", fullfilename);
-+ fprintf(stderr, "changesfile '%s' done\n", fullfilename);
- RET_UPDATE(result, r);
- }
-
--- a/reprepro/4.2.0-2squeeze1/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Please copy the patch to debian/patches and edit debian/patches/series inside
-unpacked package sources.
--- a/reprepro/4.2.0-2squeeze1/debian/patches/0099-changes-file-process-messages.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
---- a/incoming.c
-+++ b/incoming.c
-@@ -1854,6 +1854,8 @@
- for( j = 0 ; j < i->files.count ; j ++ ) {
- const char *basefilename = i->files.values[j];
- size_t l = strlen(basefilename);
-+ char *fullfilename;
-+
- #define C_SUFFIX ".changes"
- #define C_LEN strlen(C_SUFFIX)
- if( l <= C_LEN ||
-@@ -1861,7 +1863,16 @@
- if( changesfilename != NULL && strcmp(basefilename, changesfilename) != 0 )
- continue;
- /* a .changes file, check it */
-+ fullfilename = calc_dirconcat(i->directory, i->files.values[j]);
-+ if( fullfilename == NULL ) {
-+ result = RET_ERROR_OOM;
-+ continue;
-+ }
-+ printf("processing changesfile '%s'\n", fullfilename);
-+ fprintf(stderr, "processing changesfile '%s'\n", fullfilename);
- r = process_changes(database, i, j);
-+ printf("changesfile '%s' done\n", fullfilename);
-+ fprintf(stderr, "changesfile '%s' done\n", fullfilename);
- RET_UPDATE(result, r);
- }
-
--- a/thinstation/Makefile.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
---- Makefile.orig 2008-11-10 19:18:24.000000000 +0000
-+++ Makefile 2011-03-30 13:22:30.000000000 +0000
-@@ -540,9 +540,6 @@
- # warn about C99 declaration after statement
- KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
-
--# disable pointer signed / unsigned warnings in gcc 4.0
--KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
--
- # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
- # But warn user when we do so
- warn-assign = \
--- a/thinstation/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-apply this patch to
-http://www.batley.com.au/thinstation/patches/bootsplash-3.1.6-2.6.24.diff if
-you want to patch a 2.6.26 kernel with it. this is just here to have a link we
-can refer to in our howto for bfw.
--- a/thinstation/bootsplash.patch.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
---- ../../../../../bootsplash-3.1.6-2.6.24.diff 2009-03-26 10:19:04.000000000 +0100
-+++ bootsplash.patch 2011-03-29 19:29:44.816130546 +0200
-@@ -2318,7 +2318,7 @@
- + int sx, int height, int width)
- +{
- + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
--+ int bg_color = attr_bgcol_ec(bgshift, vc);
-++ int bg_color = attr_bgcol_ec(bgshift, vc, info);
- + int transparent = sd->splash_color == bg_color;
- + u32 bgx;
- + u8 *dst;
-@@ -2493,7 +2493,7 @@
- + return;
- + }
- +#endif
-- region.color = attr_bgcol_ec(bgshift, vc);
-+ region.color = attr_bgcol_ec(bgshift, vc, info);
- region.dx = sx * vc->vc_font.width;
- region.dy = sy * vc->vc_font.height;
- @@ -160,6 +177,13 @@
-@@ -2521,7 +2521,7 @@
- + }
- +#endif
- +
-- region.color = attr_bgcol_ec(bgshift, vc);
-+ region.color = attr_bgcol_ec(bgshift, vc, info);
- region.rop = ROP_COPY;
-
- @@ -379,6 +410,14 @@
--- a/thinstation/build.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-diff --git a/build.conf b/build.conf
-index 560127f..e09157d 100644
---- a/build.conf
-+++ b/build.conf
-@@ -293,7 +293,8 @@ module r8169 # Realtek 8169 Gigabit Ethernet support (v. 6.011)
- #module snd-rme96 # RME Digi96, Digi96/8 and Digi96/8 PRO/PAD/PST soundcards
- #module snd-rme9652 # RME Hammerfall (RME Digi9652/Digi9636) soundcards
- #module snd-hdsp # RME Hammerfall DSP Audio soundcards
--#module snd-hda-intel model=auto position_fix=1 # Intel HD Audio with default parameters - you may need to change these
-+module snd-hda-intel model=auto position_fix=1 # Intel HD Audio with default parameters - you may need to change these
-+module snd-pcm-oss
- #module snd-trident # Trident 4D-Wave DX/NX or SiS 7018 chips
- #module snd-ymfpci # Yamaha PCI chips YMF724,YMF724F,YMF740,YMF740C,YMF744,YMF754
- #module snd-als4000 # Avance Logic ALS4000 chips
-@@ -322,7 +323,7 @@ module usb-cdrom # Needed for USB CD-Rom Drives
- #!!Storage Devices
- #module ide-floppy # LS-120, Iomega Zip
- #module floppy # Floppy disk support
--module ide-cd # CD-Rom Drive Support
-+module ide-cd_mod # CD-Rom Drive Support
- #module ahci # ACHI SATA support
- module ata_piix # Intel piix SATA chipset support
- #module sata_nv # NVidia SATA support
-@@ -342,7 +343,7 @@ module vfat # Fat and VFat file system support
- module ntfs # NTFS file system support
- module ext2 # Ext2 file system support
- module ext3 # Ext3 file system support
--module supermount # Supermount support for auto unmounting of removable media
-+#module supermount # Supermount support for auto unmounting of removable media
- #module nfs # NFS file system support
- #module smbfs # Samba client FS Support, allows you to mount smb filesystems
-
-@@ -365,8 +366,8 @@ module supermount # Supermount support for auto unmounting of removable m
- package hwclock # Utility to set system time from hardware clock
- package rdate # Utility to obtain date & time from network
- #package ntp # Utility to obtain date & time from network (only use one of these)
--#package sound-esd # Enable sound-esd or sound-nasd if you want to be able to control
--#package sound-nasd # sound on your thin client from another computer or
-+package sound-esd # Enable sound-esd or sound-nasd if you want to be able to control
-+package sound-nasd # sound on your thin client from another computer or
- # your remote session.
- #package iptables # IP Tables support
-
-@@ -538,12 +539,13 @@ package xtdesk # Adds icons to desktop
- ### --- Miscellaneous Parameters --- ###
- ########################################
- #!!Basic
--param rootpasswd pleasechangeme # Do Change! Console/telnet password for root
-+param rootpasswd x # Do Change! Console/telnet password for root
- # If this is enabled, Telnetd will be enabled.
--param xorgvncpasswd pleasechangeme # VNC Access Password
--param storagepasswd pleasechangeme # Password for storage server
--param dialuppasswd pleasechangeme # Password for dialin account
--param sambapasswd pleasechangeme # Password for samba shares when using user mode security
-+param xorgvncpasswd x # VNC Access Password
-+param storagepasswd x # Password for storage server
-+param dialuppasswd x # Password for dialin account
-+param sambapasswd x # Password for samba shares when using user mode security
-+# set this to false to remove the 'splash=...' kernel parameter
- param bootlogo true # Backgound picture during boot
- param bootresolution 1024x768 # Resolution used during Thinstation boot
- param desktop ./background.jpg # Background image for the desktop. More images in backgrounds/
-diff --git a/kernel/dependencies_module/ata_piix b/kernel/dependencies_module/ata_piix
-new file mode 100644
-index 0000000..b60306b
---- /dev/null
-+++ b/kernel/dependencies_module/ata_piix
-@@ -0,0 +1,2 @@
-+module libata
-+module dock
-diff --git a/kernel/dependencies_module/button b/kernel/dependencies_module/button
-index 2029fec..85324d5 100644
---- a/kernel/dependencies_module/button
-+++ b/kernel/dependencies_module/button
-@@ -4,4 +4,7 @@ module fan
- module processor
- module thermal
- module video
-+module thermal_sys
-+module output
-+module backlight
- package acpi
-diff --git a/kernel/dependencies_module/ext3 b/kernel/dependencies_module/ext3
-new file mode 100644
-index 0000000..70cd362
---- /dev/null
-+++ b/kernel/dependencies_module/ext3
-@@ -0,0 +1,2 @@
-+module mbcache
-+module jbd
-diff --git a/kernel/dependencies_module/snd-hda-intel b/kernel/dependencies_module/snd-hda-intel
-index 46fac61..7c9cf3f 100644
---- a/kernel/dependencies_module/snd-hda-intel
-+++ b/kernel/dependencies_module/snd-hda-intel
-@@ -1 +1,5 @@
--snd-hda-codec
-+module snd-pcm
-+module snd-page-alloc
-+module snd
-+module soundcore
-+module snd-timer
-diff --git a/kernel/dependencies_module/snd-pcm-oss b/kernel/dependencies_module/snd-pcm-oss
-new file mode 100644
-index 0000000..c0b1976
---- /dev/null
-+++ b/kernel/dependencies_module/snd-pcm-oss
-@@ -0,0 +1,6 @@
-+module snd-pcm
-+module snd
-+module soundcore
-+module snd-page-alloc
-+module snd-timer
-+module snd-mixer-oss
-diff --git a/kernel/dependencies_module/soundcore b/kernel/dependencies_module/soundcore
-deleted file mode 100644
-index 37aac51..0000000
---- a/kernel/dependencies_module/soundcore
-+++ /dev/null
-@@ -1,3 +0,0 @@
--module snd-mixer-oss
--module snd-pcm-oss
--module snd-seq-oss
-diff --git a/kernel/dependencies_module/sr_mod b/kernel/dependencies_module/sr_mod
-new file mode 100644
-index 0000000..0b48de6
---- /dev/null
-+++ b/kernel/dependencies_module/sr_mod
-@@ -0,0 +1,2 @@
-+module scsi_mod
-+module cdrom
-diff --git a/kernel/dependencies_module/usb-storage b/kernel/dependencies_module/usb-storage
-index a98ee9c..c9a618c 100644
---- a/kernel/dependencies_module/usb-storage
-+++ b/kernel/dependencies_module/usb-storage
-@@ -1 +1,3 @@
- module sd_mod
-+module usbcore
-+module scsi_mod
-diff --git a/kernel/dependencies_module/usbhid b/kernel/dependencies_module/usbhid
-new file mode 100644
-index 0000000..5970e67
---- /dev/null
-+++ b/kernel/dependencies_module/usbhid
-@@ -0,0 +1,4 @@
-+module usbcore
-+module ehci-hcd
-+module ohci-hcd
-+module uhci-hcd
-diff --git a/kernel/dependencies_module/vfat b/kernel/dependencies_module/vfat
-index 603a11d..23cb22e 100644
---- a/kernel/dependencies_module/vfat
-+++ b/kernel/dependencies_module/vfat
-@@ -1,2 +1,3 @@
-+module fat
- module nls_cp850
- module nls_iso8859-1
-diff --git a/packages/base/etc/thinstation.init b/packages/base/etc/thinstation.init
-index 390f9e4..6b9c193 100755
---- a/packages/base/etc/thinstation.init
-+++ b/packages/base/etc/thinstation.init
-@@ -43,7 +43,7 @@ umask 022
-
- # Mount Filesystems
- mount -t tmpfs tmpfs /mnt/dynamic
--mount -t unionfs -o dirs=/mnt/dynamic:/ unionfs /mnt/union
-+mount -t unionfs -o dirs=/mnt/dynamic:/=ro unionfs /mnt/union
- cd /mnt/union
- mkdir oldroot
- pivot_root . /mnt/union/oldroot
-diff --git a/thinstation.conf.buildtime b/thinstation.conf.buildtime
-index 5965772..d1dfaf1 100644
---- a/thinstation.conf.buildtime
-+++ b/thinstation.conf.buildtime
-@@ -1,2 +1,3 @@
- SESSION_0_TYPE=icewm
- SESSION_0_AUTOSTART=on
-+AUDIO_LEVEL=100
--- a/twinkle/1:1.4.2-2+b2/README Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-$ apt-get source twinkle=1:1.4.2-2+b2
-$ cd twinkle-1.4.2
-$ patch -p1 <<path-to>/popup-on-incoming-call.patch
-$ $FAVOURITE-PACKAGE-BUILDER
--- a/twinkle/1:1.4.2-2+b2/popup-on-incoming-call.patch Fri Oct 27 11:56:51 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-diff --git a/debian/changelog b/debian/changelog
-index 8d6f05e..7ae4362 100644
---- a/debian/changelog
-+++ b/debian/changelog
-@@ -1,3 +1,10 @@
-+twinkle (1:1.4.2-2.1) stable oldstable; urgency=low
-+
-+ * Non-maintainer upload.
-+ * Re-enabled depreciated KDE3 support (for popups on incoming call)
-+
-+ -- Matthias Förste <foerste@schlittermann.de> Tue, 23 Apr 2013 13:46:31 +0200
-+
- twinkle (1:1.4.2-2) unstable; urgency=low
-
- * Drop depreciated KDE3 support: configure --without-kde
-diff --git a/debian/control b/debian/control
-index d3ac129..f40459b 100644
---- a/debian/control
-+++ b/debian/control
-@@ -10,8 +10,8 @@ Build-Depends: debhelper (>= 7), cdbs, help2man,
- libasound2-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
- libgsm1-dev, libsndfile1-dev, libspeex-dev, libspeexdsp-dev,
- libreadline-dev,
-- libboost-regex-dev, libxml2-dev, libxpm-dev, libmagic-dev
--Standards-Version: 3.8.1
-+ libboost-regex-dev, libxml2-dev, libxpm-dev, libmagic-dev, kdelibs-dev
-+Standards-Version: 3.9.1
- Homepage: http://www.twinklephone.com/
- Vcs-Svn: svn://svn.debian.org/pkg-voip/twinkle/trunk/
- Vcs-Browser: http://svn.debian.org/wsvn/pkg-voip/twinkle/?op=log
-diff --git a/debian/rules b/debian/rules
-index c75980f..e974e94 100755
---- a/debian/rules
-+++ b/debian/rules
-@@ -9,7 +9,7 @@ include /usr/share/cdbs/1/class/autotools.mk
- include /usr/share/cdbs/1/rules/debhelper.mk
- include /usr/share/cdbs/1/rules/simple-patchsys.mk
-
--DEB_CONFIGURE_EXTRA_FLAGS := --without-ilbc --without-kde
-+DEB_CONFIGURE_EXTRA_FLAGS := --without-ilbc
- DEB_AUTO_UPDATE_AUTOCONF := yes
-
- get-orig-source: