Date: Wednesday, August 8, 2018 @ 19:15:48
  Author: andyrtr
Revision: 331255

upgpkg: claws-mail 3.16.0-5

add missing pygtk optdep - FS#59141; apply upstream fix for glibc dropped 
encrypt function in 2.28

Added:
  claws-mail/trunk/glibc_2.28.patch
Modified:
  claws-mail/trunk/PKGBUILD

------------------+
 PKGBUILD         |   12 ++++--
 glibc_2.28.patch |   99 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 108 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2018-08-08 18:21:16 UTC (rev 331254)
+++ PKGBUILD    2018-08-08 19:15:48 UTC (rev 331255)
@@ -3,7 +3,7 @@
 
 pkgname=claws-mail
 pkgver=3.16.0
-pkgrel=4
+pkgrel=5
 pkgdesc="A GTK+ based e-mail client."
 arch=('x86_64')
 license=('GPL3')
@@ -17,6 +17,7 @@
              'docbook-utils')
              #'libchamplain' needed for geolocation plugin, disabled for now - 
most time it's not compatible with current gnome releases
 optdepends=('python2:           needed for some tools and python plugin'
+            'pygtk:             needed for python plugin'
             'perl:              needed for some tools and perl plugin'
             'spamassassin:      adds support for spamfiltering'
             'bogofilter:        adds support for spamfiltering'
@@ -36,10 +37,12 @@
 conflicts=('claws-mail-extra-plugins')
 provides=('claws')
 
source=(http://www.claws-mail.org/download.php?file=releases/claws-mail-$pkgver.tar.xz{,.asc}
-       dillo-plugin.diff)
+       dillo-plugin.diff
+       glibc_2.28.patch)
 sha256sums=('c212133d3d962129d8c7995c1c7d973faef2a8914481c0c74578217bf4c897ab'
             'SKIP'
-            'ab08ca513145e847d30a29d9e5a9ae63b94222423e88c1b375fd5cfcb427d6c5')
+            'ab08ca513145e847d30a29d9e5a9ae63b94222423e88c1b375fd5cfcb427d6c5'
+            '417b15cedb28f06028d2fb2922f597f1b5bab0a510db900bc866a81a2f181643')
 validpgpkeys=('8B3B297A03468356692F8D592CD716D654D6BBD4') # Paul 
<p...@claws-mail.org>
 
 prepare() {
@@ -47,6 +50,9 @@
   # upstream reintroduction of dillo plugin - after fancy plugin dropped
   patch -Np1 -i ../dillo-plugin.diff
 
+  # apply upstream fix to compile with recent glibc that removed encrypt 
function
+  patch -Np1 -i ../glibc_2.28.patch
+
   # fix new versioned enchant pkgconfig detection
   sed -i "s:PKG_CHECK_MODULES(ENCHANT, enchant >= 
1.4.0:PKG_CHECK_MODULES(ENCHANT, enchant-2 >= 1.4.0:" configure.ac
   sed -i "s:--cflags enchant:--cflags enchant-2:" configure.ac

Added: glibc_2.28.patch
===================================================================
--- glibc_2.28.patch                            (rev 0)
+++ glibc_2.28.patch    2018-08-08 19:15:48 UTC (rev 331255)
@@ -0,0 +1,99 @@
+From 9bbbdf372a261a5aa7716830f98d6368db38a2e2 Mon Sep 17 00:00:00 2001
+From: Paul <p...@claws-mail.org>
+Date: Tue, 15 May 2018 09:59:20 +0100
+Subject: [PATCH] require nettle, following removal of libcrypt from glibc
+
+based on the fedora patch, thanks!
+---
+ configure.ac           |   18 ++----------------
+ src/Makefile.am        |    1 +
+ src/common/passcrypt.c |   15 +++++++++++----
+ 3 files changed, 14 insertions(+), 20 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 50d6866..5fabeaf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -493,22 +493,8 @@ if test "x$enable_gnutls" != "xno"; then
+         AC_SUBST(GNUTLS_CFLAGS)
+ fi
+ 
+-dnl password encryption
+-OLDLIBS=$LIBS
+-LIBS=
+-case $host_os in
+-      *dragonfly*)
+-              AC_SEARCH_LIBS(encrypt, cipher, [], 
AC_MSG_ERROR(['encrypt'-function not found.]))
+-      ;;
+-      freebsd*)
+-      ;; # not used
+-      *)
+-              AC_SEARCH_LIBS(encrypt, crypt, [], 
AC_MSG_ERROR(['encrypt'-function not found.]))
+-      ;;
+-esac
+-CRYPT_LIBS=$LIBS
+-AC_SUBST(CRYPT_LIBS)
+-LIBS=$OLDLIBS
++PKG_CHECK_MODULES(NETTLE, nettle)
++AC_SUBST(NETTLE_LIBS)
+ 
+ AC_ARG_WITH(passcrypt-key, [  --with-passcrypt-key=KEY     Key used to encode 
passwords (8 byte string)],
+           with_passcrypt_key="$withval", with_passcrypt_key="passkey0")
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 460c182..d2d1548 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -598,6 +598,7 @@ claws_mail_LDADD = \
+       $(GTK_LIBS) \
+       $(LDAP_LIBS) \
+       $(GNUTLS_LIBS) \
++      $(NETTLE_LIBS) \
+       $(COMPFACE_LIBS) \
+       $(JPILOT_LIBS) \
+       $(PTHREAD_LIBS) \
+diff --git a/src/common/passcrypt.c b/src/common/passcrypt.c
+index 7b125aa..5fceb73 100644
+--- a/src/common/passcrypt.c
++++ b/src/common/passcrypt.c
+@@ -29,6 +29,7 @@
+ #include <ctype.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <nettle/des.h>
+ 
+ #if defined (__FreeBSD__)
+ #include <rpc/des_crypt.h>
+@@ -82,11 +83,10 @@ static void
+ crypt_cfb_buf(const char key[8], unsigned char *buf, unsigned len,
+             unsigned chunksize, int decrypt)
+ {
++      struct des_ctx ctx;
+       unsigned char temp[64];
+ 
+-      memcpy(temp, key, 8);
+-      crypt_unpack(temp);
+-      setkey((const char *) temp);
++      des_set_key(&ctx,(const uint8_t*) key);
+       memset(temp, 0, sizeof(temp));
+ 
+       memset(crypt_cfb_iv, 0, sizeof(crypt_cfb_iv));
+@@ -96,7 +96,14 @@ crypt_cfb_buf(const char key[8], unsigned char *buf, 
unsigned len,
+ 
+       while (len) {
+               memcpy(temp, crypt_cfb_iv, sizeof(temp));
+-              encrypt((char *) temp, 0);
++              /* simulate encrypt() via Nettle */
++              char temp2[8];
++              memset(temp2,0,sizeof(temp2));
++              crypt_cfb_xor(temp2,temp,sizeof(temp)/sizeof(temp2));
++              des_encrypt(&ctx,sizeof(temp2),(uint8_t*)temp2,(uint8_t*)temp2);
++              memcpy(temp,temp2,sizeof(temp2));
++              crypt_unpack(temp);
++              /* */
+               if (chunksize > len)
+                       chunksize = len;
+               if (decrypt)
+-- 
+1.7.10.4
+
+

Reply via email to