Control: tags 720606 + pending Control: tags 829310 + patch Control: tags 829310 + pending
Dear maintainer, I've prepared an NMU for up-imapproxy (versioned as 1.2.7-1.2) and uploaded it to DELAYED/5. Please feel free to tell me if I should delay it longer. Best, Christian diff -Nru up-imapproxy-1.2.7/debian/changelog up-imapproxy-1.2.7/debian/changelog --- up-imapproxy-1.2.7/debian/changelog 2012-02-14 07:22:41.000000000 +0100 +++ up-imapproxy-1.2.7/debian/changelog 2016-07-02 17:38:54.000000000 +0200 @@ -1,3 +1,17 @@ +up-imapproxy (1.2.7-1.2) unstable; urgency=medium + + * Non-maintainer upload. + * Install native systemd unit (Closes: #720606) + * Disable start of service during postinst, as the upstream imapd + may not be available (or even on localhost). (Closes: #829310) + * Remove remains of quilt, source format is 3.0 (quilt) already + and all patches were applied upstream. + * Enable hardening build flags. + * Replace dh_clean -k with dh_prep. + * Remove unused lintian override. + + -- Christian Hofstaedtler <z...@debian.org> Sat, 02 Jul 2016 16:22:31 +0200 + up-imapproxy (1.2.7-1.1) unstable; urgency=low * Non-maintainer upload. diff -Nru up-imapproxy-1.2.7/debian/control up-imapproxy-1.2.7/debian/control --- up-imapproxy-1.2.7/debian/control 2010-02-21 14:00:48.000000000 +0100 +++ up-imapproxy-1.2.7/debian/control 2016-07-02 16:53:40.000000000 +0200 @@ -2,8 +2,8 @@ Section: mail Priority: optional Maintainer: Jose Luis Tallon <jltal...@adv-solutions.net> -Build-Depends: autotools-dev, debhelper (>= 5), quilt, po-debconf (>= 0.8.2), - libwrap0-dev, libncurses-dev, libssl-dev +Build-Depends: autotools-dev, debhelper (>= 5), po-debconf (>= 0.8.2), + libwrap0-dev, libncurses-dev, libssl-dev, dh-systemd Homepage: http://www.imapproxy.org Standards-Version: 3.8.4 diff -Nru up-imapproxy-1.2.7/debian/imapproxy.service up-imapproxy-1.2.7/debian/imapproxy.service --- up-imapproxy-1.2.7/debian/imapproxy.service 1970-01-01 01:00:00.000000000 +0100 +++ up-imapproxy-1.2.7/debian/imapproxy.service 2016-07-02 16:15:08.000000000 +0200 @@ -0,0 +1,9 @@ +[Unit] +Documentation=man:imapproxyd(8) +Description=IMAP proxy +After=network-online.target +Wants=network-online.target + +[Service] +Type=forking +ExecStart=/usr/sbin/imapproxyd -f /etc/imapproxy.conf diff -Nru up-imapproxy-1.2.7/debian/patches/config_defaults.diff up-imapproxy-1.2.7/debian/patches/config_defaults.diff --- up-imapproxy-1.2.7/debian/patches/config_defaults.diff 2009-10-16 12:52:42.000000000 +0200 +++ up-imapproxy-1.2.7/debian/patches/config_defaults.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,75 +0,0 @@ -Index: up-imapproxy-1.2.7rc2/include/imapproxy.h -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/include/imapproxy.h 2009-10-16 12:49:51.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/include/imapproxy.h 2009-10-16 12:52:34.000000000 +0200 -@@ -196,6 +196,10 @@ - #define LOGIN_DISABLED 1 - #define LOGIN_NOT_DISABLED 0 - -+ -+#define DEFAULT_SERVER_CONNECT_RETRIES 10 -+#define DEFAULT_SERVER_CONNECT_DELAY 5 -+ - /* - * One IMAPServerDescriptor will be globally allocated such that each thread - * can save the time of doing host lookups, service lookups, and filling -@@ -361,6 +365,7 @@ - extern void ICC_Recycle_Loop( void ); - extern void LockMutex( pthread_mutex_t * ); - extern void UnLockMutex( pthread_mutex_t * ); -+extern void SetDefaultConfigValues(ProxyConfig_Struct *); - extern void SetConfigOptions( char * ); - extern void SetLogOptions( void ); - extern int Handle_Select_Command( ITD_Struct *, ITD_Struct *, ISC_Struct *, char *, int ); -Index: up-imapproxy-1.2.7rc2/src/config.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/config.c 2009-10-16 12:49:51.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/config.c 2009-10-16 12:51:35.000000000 +0200 -@@ -125,7 +125,6 @@ - static void SetNumericValue( char *, int *, unsigned int ); - static void SetBooleanValue( char *, unsigned int *, unsigned int ); - -- - /* - * An array of Config_Structs will need to be allocated, one for - * every possible keyword/value combination (plus a NULL). Note that -@@ -320,7 +319,25 @@ - } - - -+/*++ -+ * Function: SetDefaultConfigValues -+ * -+ * Purpose: Set global configuration default values -+ * -+ * Parameters: pointer to global config struct -+ * -+ * Returns: nada. -+ * -+ * Authors: Jose Luis Tallon <jltal...@adv-solutions.net> -+ *-- -+ */ -+void SetDefaultConfigValues(ProxyConfig_Struct *PC_Struct) -+{ -+ PC_Struct->server_connect_retries = DEFAULT_SERVER_CONNECT_RETRIES; -+ PC_Struct->server_connect_delay = DEFAULT_SERVER_CONNECT_DELAY; - -+ return; -+} - - /*++ - * Function: SetConfigOptions -Index: up-imapproxy-1.2.7rc2/src/main.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/main.c 2009-10-16 12:49:51.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/main.c 2009-10-16 12:49:51.000000000 +0200 -@@ -363,7 +363,8 @@ - syslog( LOG_INFO, "%s: Using default configuration file '%s'.", - fn, ConfigFile ); - } -- -+ -+ SetDefaultConfigValues(&PC_Struct); - SetConfigOptions( ConfigFile ); - SetLogOptions(); - diff -Nru up-imapproxy-1.2.7/debian/patches/fix_compiler_warnings.patch up-imapproxy-1.2.7/debian/patches/fix_compiler_warnings.patch --- up-imapproxy-1.2.7/debian/patches/fix_compiler_warnings.patch 2009-10-16 02:45:26.000000000 +0200 +++ up-imapproxy-1.2.7/debian/patches/fix_compiler_warnings.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,98 +0,0 @@ -Index: up-imapproxy-1.2.7rc2/src/main.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/main.c 2009-10-16 02:44:49.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/main.c 2009-10-16 02:44:59.000000000 +0200 -@@ -628,7 +628,7 @@ - pthread_create( &RecycleThread, &attr, (void *)ICC_Recycle_Loop, NULL ); - - syslog(LOG_INFO, "%s: Launched ICC recycle thread with id %d", -- fn, RecycleThread ); -+ fn, (int)RecycleThread ); - - /* - * Now start listening and accepting connections. -@@ -1154,7 +1154,6 @@ - ICD_Struct conn; - int BytesRead; - char *fn = "SetBannerAndCapability()"; -- int NumRef = 0; - - /* initialize some stuff */ - memset( &itd, 0, sizeof itd ); -Index: up-imapproxy-1.2.7rc2/src/request.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/request.c 2009-10-16 02:44:49.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/request.c 2009-10-16 02:45:20.000000000 +0200 -@@ -524,7 +524,7 @@ - - if ( !Username ) - { -- snprintf( SendBuf, BufLen, "\n\n-----> C= %d %s PROXY: user tracing disabled. Expect further output until client logout.\n", time( 0 ), TraceUser ); -+ snprintf( SendBuf, BufLen, "\n\n-----> C= %d %s PROXY: user tracing disabled. Expect further output until client logout.\n", (int)time(0), TraceUser ); - write( Tracefd, SendBuf, strlen( SendBuf ) ); - - memset( TraceUser, 0, sizeof TraceUser ); -@@ -569,7 +569,7 @@ - return( -1 ); - } - -- snprintf( SendBuf, BufLen, "\n\n-----> C= %d %s PROXY: user tracing enabled.\n", time( 0 ), TraceUser ); -+ snprintf( SendBuf, BufLen, "\n\n-----> C= %d %s PROXY: user tracing enabled.\n", (int)time(0), TraceUser ); - write( Tracefd, SendBuf, strlen( SendBuf ) ); - - UnLockMutex( &trace ); -@@ -821,7 +821,7 @@ - if ( getpeername( Client->conn->sd, (struct sockaddr *)&cli_addr, - &sockaddrlen ) < 0 ) - { -- syslog( LOG_WARNING, "AUTH_LOGIN: failed: getpeername() failed for client sd: %s", Username, strerror( errno ) ); -+ syslog( LOG_WARNING, "AUTH_LOGIN: user '%s' failed: getpeername() failed for client sd: %s", Username, strerror( errno ) ); - return( -1 ); - } - -@@ -1234,7 +1234,8 @@ - - if ( Server->TraceOn ) - { -- snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s SERVER: sd [%d]\n", time( 0 ), ( (TraceUser) ? TraceUser : "Null username" ), Server->conn->sd ); -+ snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s SERVER: sd [%d]\n", -+ (int)time(0), ( (*TraceUser) ? TraceUser : "Null username" ), Server->conn->sd ); - write( Tracefd, TraceBuf, strlen( TraceBuf ) ); - write( Tracefd, Server->ReadBuf, status ); - } -@@ -1280,7 +1281,7 @@ - - if ( Client->TraceOn ) - { -- snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s CLIENT: sd [%d]\n", time( 0 ), ( (TraceUser) ? TraceUser : "Null username" ), Client->conn->sd ); -+ snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s CLIENT: sd [%d]\n", (int)time(0), ( (*TraceUser) ? TraceUser : "Null username" ), Client->conn->sd ); - write( Tracefd, TraceBuf, strlen( TraceBuf ) ); - write( Tracefd, Client->ReadBuf, status ); - } -@@ -1442,7 +1443,7 @@ - status = IMAP_Line_Read( Server ); - if ( Server->TraceOn ) - { -- snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s SERVER: sd [%d]\n", time( 0 ), ( (TraceUser) ? TraceUser : "Null username" ), Server->conn->sd ); -+ snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s SERVER: sd [%d]\n", (int)time(0), ( (*TraceUser) ? TraceUser : "Null username" ), Server->conn->sd ); - write( Tracefd, TraceBuf, strlen( TraceBuf ) ); - write( Tracefd, Server->ReadBuf, status ); - } -@@ -1477,7 +1478,7 @@ - - if ( Client->TraceOn ) - { -- snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s CLIENT: sd [%d]\n", time( 0 ), ( (TraceUser) ? TraceUser : "Null username" ), Client->conn->sd ); -+ snprintf( TraceBuf, sizeof TraceBuf - 1, "\n\n-----> C= %d %s CLIENT: sd [%d]\n", (int)time(0), ( (*TraceUser) ? TraceUser : "Null username" ), Client->conn->sd ); - write( Tracefd, TraceBuf, strlen( TraceBuf ) ); - write( Tracefd, Client->ReadBuf, status ); - } -@@ -1940,7 +1941,7 @@ - - if ( BytesRead == -1 ) - { -- syslog( LOG_NOTICE, "%s: Failed to read string literal from client on login." ); -+ syslog( LOG_NOTICE, "%s: Failed to read string literal from client on login.", fn ); - snprintf( SendBuf, BufLen, "%s NO LOGIN failed\r\n", Tag ); - if ( IMAP_Write( Client.conn, SendBuf, strlen(SendBuf) ) == -1 ) - { diff -Nru up-imapproxy-1.2.7/debian/patches/fix_logging.diff up-imapproxy-1.2.7/debian/patches/fix_logging.diff --- up-imapproxy-1.2.7/debian/patches/fix_logging.diff 2009-10-16 02:48:08.000000000 +0200 +++ up-imapproxy-1.2.7/debian/patches/fix_logging.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -Index: up-imapproxy-1.2.7rc2/src/select.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/select.c 2009-10-16 02:44:49.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/select.c 2009-10-16 02:47:20.000000000 +0200 -@@ -349,7 +349,8 @@ - { - if ( Server->LiteralBytesRemaining ) - { -- syslog( LOG_ERR, "%s: Server response to SELECT command contains unexpected literal data on sd [%d].", fn ); -+ syslog( LOG_ERR, "%s: Server response to SELECT command contains unexpected literal data on sd [%d].", -+ fn, Server->conn ); - /* - * Must eat the literal. - */ diff -Nru up-imapproxy-1.2.7/debian/patches/ldflags up-imapproxy-1.2.7/debian/patches/ldflags --- up-imapproxy-1.2.7/debian/patches/ldflags 1970-01-01 01:00:00.000000000 +0100 +++ up-imapproxy-1.2.7/debian/patches/ldflags 2016-07-02 17:34:15.000000000 +0200 @@ -0,0 +1,14 @@ +Description: Consider LDFLAGS when linking pimstat +Author: Christian Hofstaedtler <z...@debian.org> + +--- up-imapproxy-1.2.7.orig/Makefile.in ++++ up-imapproxy-1.2.7/Makefile.in +@@ -70,7 +70,7 @@ $(XYD_BIN): $(XYD_OBJ) + $(CC) -o $@ $(XYD_OBJ) $(LDFLAGS) $(XYD_LIB) + + $(TAT_BIN): $(TAT_OBJ) +- $(CC) -o $@ $(TAT_OBJ) $(TAT_LIB) ++ $(CC) -o $@ $(TAT_OBJ) $(LDFLAGS) $(TAT_LIB) + + clean: + rm -f ./src/core $(XYD_OBJ) $(TAT_OBJ) $(XYD_BIN) $(TAT_BIN) diff -Nru up-imapproxy-1.2.7/debian/patches/retry_connect_imapserver.diff up-imapproxy-1.2.7/debian/patches/retry_connect_imapserver.diff --- up-imapproxy-1.2.7/debian/patches/retry_connect_imapserver.diff 2009-10-16 12:49:37.000000000 +0200 +++ up-imapproxy-1.2.7/debian/patches/retry_connect_imapserver.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,142 +0,0 @@ -Index: up-imapproxy-1.2.7rc2/include/imapproxy.h -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/include/imapproxy.h 2009-10-16 02:48:18.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/include/imapproxy.h 2009-10-16 12:48:04.000000000 +0200 -@@ -279,6 +279,8 @@ - char *listen_addr; /* address we bind to */ - char *server_hostname; /* server we proxy to */ - char *server_port; /* port we proxy to */ -+ unsigned int server_connect_retries; /* connect retries to IMAP server */ -+ unsigned int server_connect_delay; /* delay between connection retry rounds */ - unsigned int cache_size; /* number of cache slots */ - unsigned int cache_expiration_time; /* cache exp time in seconds */ - unsigned int send_tcp_keepalives; /* flag to send keepalives */ -Index: up-imapproxy-1.2.7rc2/scripts/imapproxy.conf -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/scripts/imapproxy.conf 2009-10-16 02:48:18.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/scripts/imapproxy.conf 2009-10-16 02:48:27.000000000 +0200 -@@ -15,6 +15,15 @@ - - - # -+## connect_retries -+## -+## This setting controls how many times we retry connecting to our server. -+## The delay between retries is configurable with 'connect_delay' -+# -+connect_retries 10 -+connect_delay 5 -+ -+# - ## cache_size - ## - ## This setting determines how many in-core imap connection structures -Index: up-imapproxy-1.2.7rc2/src/config.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/config.c 2009-10-16 02:48:18.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/config.c 2009-10-16 12:48:04.000000000 +0200 -@@ -372,6 +372,11 @@ - ADD_TO_TABLE( "server_port", SetStringValue, - &PC_Struct.server_port, index ); - -+ ADD_TO_TABLE( "connect_retries", SetNumericValue, -+ &PC_Struct.server_connect_retries, index ); -+ ADD_TO_TABLE( "connect_delay", SetNumericValue, -+ &PC_Struct.server_connect_delay, index ); -+ - ADD_TO_TABLE( "cache_size", SetNumericValue, - &PC_Struct.cache_size, index ); - -Index: up-imapproxy-1.2.7rc2/src/main.c -=================================================================== ---- up-imapproxy-1.2.7rc2.orig/src/main.c 2009-10-16 02:48:27.000000000 +0200 -+++ up-imapproxy-1.2.7rc2/src/main.c 2009-10-16 12:49:32.000000000 +0200 -@@ -276,6 +276,7 @@ - static int ParseBannerAndCapability( char *, unsigned int, - char *, unsigned int, unsigned int ); - static void ServerInit( void ); -+static int TestServerAlive( struct addrinfo *ai ); - static void Daemonize( const char* ); - static void Usage( void ); - -@@ -737,10 +738,10 @@ - { - char *fn = "ServerInit()"; - struct rlimit rl; -- int rc; -+ int rc, retry; - struct passwd *pw; - struct addrinfo aihints, *ai; -- int gaierrnum, sd; -+ int gaierrnum; - - - /* open the global trace file and make proc_username own it */ -@@ -820,18 +821,27 @@ - /* - * fill in the address family, the host address, and the - * service port of our global socket address structure -+ * Try to connect at least once (<=) before giving up - */ - ISD.airesults = ai; - ISD.srv = NULL; -- for ( ; ai != NULL; ai = ai->ai_next ) -+ for ( retry=0; retry <= PC_Struct.server_connect_retries && NULL == ISD.srv; retry++ ) - { -- if ( ( sd = socket( ai->ai_family, ai->ai_socktype, ai->ai_protocol ) ) -- < 0 ) continue; -- if ( connect( sd, (struct sockaddr *)ai->ai_addr, ai->ai_addrlen ) ) -- continue; -- close( sd ); -- ISD.srv = ai; -- break; -+ ai = ISD.airesults; -+ for ( ; ai != NULL; ai = ai->ai_next ) -+ { -+ if( ! TestServerAlive(ai) ) -+ { /* connect to server succeeded */ -+ ISD.srv = ai; -+ break; -+ } -+ } -+ if( ISD.srv ) -+ break; -+ -+ syslog( LOG_INFO, "%s: Connection to server failed. Sleeping %d seconds to retry...", fn, -+ PC_Struct.server_connect_delay); -+ sleep( PC_Struct.server_connect_delay ); - } - if ( ai == NULL ) - { -@@ -840,6 +850,31 @@ - } - } - -+/*++ -+ * Function: TestServerAlive -+ * -+ * Purpose: Attempt connecting to server -+ * -+ * Parameters: ai -- addrinfo corresponding to resolved server address -+ * -+ * Returns: 0 upon successful connection -+ * -+ * Authors: Jose Luis Tallon <jltal...@adv-solutions.net> -+ * -+ */ -+int TestServerAlive(struct addrinfo *ai) -+{ -+ int sd=-1; -+ -+ if( ( sd=socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol) ) < 0 ) -+ return -1; /* could not create socket */ -+ -+ if( connect(sd, (struct sockaddr *)ai->ai_addr, ai->ai_addrlen) ) -+ return -1; /* could not connect socket */ -+ -+ close( sd ); -+ return 0; -+} - - /*++ - * Function: Daemonize diff -Nru up-imapproxy-1.2.7/debian/patches/series up-imapproxy-1.2.7/debian/patches/series --- up-imapproxy-1.2.7/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ up-imapproxy-1.2.7/debian/patches/series 2016-07-02 17:33:41.000000000 +0200 @@ -0,0 +1 @@ +ldflags diff -Nru up-imapproxy-1.2.7/debian/.pc/.version up-imapproxy-1.2.7/debian/.pc/.version --- up-imapproxy-1.2.7/debian/.pc/.version 2009-10-16 00:43:46.000000000 +0200 +++ up-imapproxy-1.2.7/debian/.pc/.version 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -2 diff -Nru up-imapproxy-1.2.7/debian/rules up-imapproxy-1.2.7/debian/rules --- up-imapproxy-1.2.7/debian/rules 2010-02-21 14:13:22.000000000 +0100 +++ up-imapproxy-1.2.7/debian/rules 2016-07-02 17:31:56.000000000 +0200 @@ -10,28 +10,23 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk -CFLAGS = -g -Wall +CFLAGS += -Wall -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif -include /usr/share/quilt/quilt.make +configure: config.status - -configure: patch config.status - -config.status: patch +config.status: dh_testdir test -e config.sub -a -L config.sub || \ ln -sf /usr/share/misc/config.sub config.sub test -e config.guess -a -L config.guess || \ ln -sf /usr/share/misc/config.guess config.guess - CFLAGS="$(CFLAGS)" ./configure \ + ./configure \ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ --mandir=\$${prefix}/share/man \ @@ -49,7 +44,7 @@ distclean: $(RM) config.cache config.sub config.guess config.log -clean: unpatch +clean: dh_testdir dh_testroot $(RM) config.status build-stamp @@ -65,7 +60,7 @@ install: build dh_testdir dh_testroot - dh_clean -k + dh_prep dh_installdirs $(MAKE) install prefix=$(CURDIR)/debian/imapproxy/usr mv debian/imapproxy/usr/sbin/in.imapproxyd \ @@ -94,7 +89,9 @@ # dh_installexamples dh_installmenu # dh_installlogrotate - dh_installinit -- defaults 98 + dh_systemd_enable + dh_installinit --no-start -- defaults 98 + dh_systemd_start --no-start # dh_installcron dh_installman dh_installchangelogs ChangeLog diff -Nru up-imapproxy-1.2.7/debian/source.lintian-overrides up-imapproxy-1.2.7/debian/source.lintian-overrides --- up-imapproxy-1.2.7/debian/source.lintian-overrides 2009-10-16 00:28:22.000000000 +0200 +++ up-imapproxy-1.2.7/debian/source.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -up-imapproxy source: debian-rules-ignores-make-clean-error line 52