summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/dmg2img/0001-openssl-1.1-compatibility.patch219
-rw-r--r--misc/dmg2img/dmg2img.SlackBuild3
-rw-r--r--misc/glogg/glogg.SlackBuild4
-rw-r--r--misc/glogg/glogg.info8
-rw-r--r--misc/gourmet/gourmet.SlackBuild5
-rw-r--r--misc/gourmet/gourmet.info2
-rw-r--r--misc/gourmet/slack-desc2
-rw-r--r--misc/gourmet/tostring-to-tobytes.patch26
-rw-r--r--misc/ibus-unikey/ibus-unikey.SlackBuild2
-rw-r--r--misc/krename/krename.SlackBuild3
-rw-r--r--misc/krename/null.patch12
-rw-r--r--misc/stardict-tools/stardict-tools.SlackBuild3
-rw-r--r--misc/xca/xca.SlackBuild4
-rw-r--r--misc/yapet/gcc6.patch11
-rw-r--r--misc/yapet/yapet.SlackBuild3
-rw-r--r--misc/zinnia/zinnia-fixes-gcc6-compile.patch22
-rw-r--r--misc/zinnia/zinnia.SlackBuild3
17 files changed, 322 insertions, 10 deletions
diff --git a/misc/dmg2img/0001-openssl-1.1-compatibility.patch b/misc/dmg2img/0001-openssl-1.1-compatibility.patch
new file mode 100644
index 0000000000..b5ed45d2ff
--- /dev/null
+++ b/misc/dmg2img/0001-openssl-1.1-compatibility.patch
@@ -0,0 +1,219 @@
+From f16f247d30f868e84f31e24792b4464488f1c009 Mon Sep 17 00:00:00 2001
+From: Peter Wu <peter@lekensteyn.nl>
+Date: Tue, 2 May 2017 15:53:38 +0200
+Subject: [PATCH] vfdecrypt: OpenSSL 1.1 compatibility
+
+Allocate contexts from the heap on all OpenSSL versions, this is needed
+since OpenSSL 1.1.0. No attempt is done at addressing issues like global
+variables and fixing potential memleaks on error paths.
+
+Compile-tested only with OpenSSL 1.1.0e (Arch Linux) and OpenSSL 1.0.2g
+(Ubuntu 16.04), I have no test file.
+
+Fixes https://github.com/Lekensteyn/dmg2img/issues/4
+---
+ vfdecrypt.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 80 insertions(+), 23 deletions(-)
+
+diff --git a/vfdecrypt.c b/vfdecrypt.c
+index 56d3530..b1a36d3 100644
+--- a/vfdecrypt.c
++++ b/vfdecrypt.c
+@@ -183,7 +183,7 @@ void adjust_v2_header_byteorder(cencrypted_v2_pwheader *pwhdr) {
+ pwhdr->encrypted_keyblob_size = htonl(pwhdr->encrypted_keyblob_size);
+ }
+
+-HMAC_CTX hmacsha1_ctx;
++HMAC_CTX *hmacsha1_ctx;
+ AES_KEY aes_decrypt_key;
+ int CHUNK_SIZE=4096; // default
+
+@@ -196,9 +196,9 @@ void compute_iv(uint32_t chunk_no, uint8_t *iv) {
+ unsigned int mdLen;
+
+ chunk_no = OSSwapHostToBigInt32(chunk_no);
+- HMAC_Init_ex(&hmacsha1_ctx, NULL, 0, NULL, NULL);
+- HMAC_Update(&hmacsha1_ctx, (void *) &chunk_no, sizeof(uint32_t));
+- HMAC_Final(&hmacsha1_ctx, mdResult, &mdLen);
++ HMAC_Init_ex(hmacsha1_ctx, NULL, 0, NULL, NULL);
++ HMAC_Update(hmacsha1_ctx, (void *) &chunk_no, sizeof(uint32_t));
++ HMAC_Final(hmacsha1_ctx, mdResult, &mdLen);
+ memcpy(iv, mdResult, CIPHER_BLOCKSIZE);
+ }
+
+@@ -212,52 +212,75 @@ void decrypt_chunk(uint8_t *ctext, uint8_t *ptext, uint32_t chunk_no) {
+ /* DES3-EDE unwrap operation loosely based on to RFC 2630, section 12.6
+ * wrapped_key has to be 40 bytes in length. */
+ int apple_des3_ede_unwrap_key(uint8_t *wrapped_key, int wrapped_key_len, uint8_t *decryptKey, uint8_t *unwrapped_key) {
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ uint8_t *TEMP1, *TEMP2, *CEKICV;
+ uint8_t IV[8] = { 0x4a, 0xdd, 0xa2, 0x2c, 0x79, 0xe8, 0x21, 0x05 };
+ int outlen, tmplen, i;
+
+- EVP_CIPHER_CTX_init(&ctx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ ctx = EVP_CIPHER_CTX_new();
++#else
++ ctx = malloc(sizeof(*ctx));
++#endif
++ if (!ctx) {
++ fprintf(stderr, "Out of memory: EVP_CIPHER_CTX!\n");
++ return(-1);
++ }
++
++ EVP_CIPHER_CTX_init(ctx);
+ /* result of the decryption operation shouldn't be bigger than ciphertext */
+ TEMP1 = malloc(wrapped_key_len);
+ TEMP2 = malloc(wrapped_key_len);
+ CEKICV = malloc(wrapped_key_len);
+ /* uses PKCS#7 padding for symmetric key operations by default */
+- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, IV);
++ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, decryptKey, IV);
+
+- if(!EVP_DecryptUpdate(&ctx, TEMP1, &outlen, wrapped_key, wrapped_key_len)) {
++ if(!EVP_DecryptUpdate(ctx, TEMP1, &outlen, wrapped_key, wrapped_key_len)) {
+ fprintf(stderr, "internal error (1) during key unwrap operation!\n");
+ return(-1);
+ }
+- if(!EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen)) {
++ if(!EVP_DecryptFinal_ex(ctx, TEMP1 + outlen, &tmplen)) {
+ fprintf(stderr, "internal error (2) during key unwrap operation!\n");
+ return(-1);
+ }
+ outlen += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_reset(ctx);
++#else
++ EVP_CIPHER_CTX_cleanup(ctx);
++#endif
+
+ /* reverse order of TEMP3 */
+ for(i = 0; i < outlen; i++) TEMP2[i] = TEMP1[outlen - i - 1];
+
+- EVP_CIPHER_CTX_init(&ctx);
++ EVP_CIPHER_CTX_init(ctx);
+ /* uses PKCS#7 padding for symmetric key operations by default */
+- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, TEMP2);
+- if(!EVP_DecryptUpdate(&ctx, CEKICV, &outlen, TEMP2+8, outlen-8)) {
++ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, decryptKey, TEMP2);
++ if(!EVP_DecryptUpdate(ctx, CEKICV, &outlen, TEMP2+8, outlen-8)) {
+ fprintf(stderr, "internal error (3) during key unwrap operation!\n");
+ return(-1);
+ }
+- if(!EVP_DecryptFinal_ex(&ctx, CEKICV + outlen, &tmplen)) {
++ if(!EVP_DecryptFinal_ex(ctx, CEKICV + outlen, &tmplen)) {
+ fprintf(stderr, "internal error (4) during key unwrap operation!\n");
+ return(-1);
+ }
+
+ outlen += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_reset(ctx);
++#else
++ EVP_CIPHER_CTX_cleanup(ctx);
++#endif
+
+ memcpy(unwrapped_key, CEKICV+4, outlen-4);
+ free(TEMP1);
+ free(TEMP2);
+ free(CEKICV);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(ctx);
++#else
++ free(ctx);
++#endif
+ return(0);
+ }
+
+@@ -279,31 +302,46 @@ int unwrap_v1_header(char *passphrase, cencrypted_v1_header *header, uint8_t *ae
+ int unwrap_v2_header(char *passphrase, cencrypted_v2_pwheader *header, uint8_t *aes_key, uint8_t *hmacsha1_key) {
+ /* derived key is a 3DES-EDE key */
+ uint8_t derived_key[192/8];
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ uint8_t *TEMP1;
+ int outlen, tmplen;
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ ctx = EVP_CIPHER_CTX_new();
++#else
++ ctx = malloc(sizeof(*ctx));
++#endif
++ if (!ctx) {
++ fprintf(stderr, "Out of memory: EVP_CIPHER_CTX!\n");
++ return(-1);
++ }
++
+ PKCS5_PBKDF2_HMAC_SHA1(passphrase, strlen(passphrase), (unsigned char*)header->kdf_salt, 20,
+ PBKDF2_ITERATION_COUNT, sizeof(derived_key), derived_key);
+
+ print_hex(derived_key, 192/8);
+
+- EVP_CIPHER_CTX_init(&ctx);
++ EVP_CIPHER_CTX_init(ctx);
+ /* result of the decryption operation shouldn't be bigger than ciphertext */
+ TEMP1 = malloc(header->encrypted_keyblob_size);
+ /* uses PKCS#7 padding for symmetric key operations by default */
+- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, derived_key, header->blob_enc_iv);
++ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, derived_key, header->blob_enc_iv);
+
+- if(!EVP_DecryptUpdate(&ctx, TEMP1, &outlen, header->encrypted_keyblob, header->encrypted_keyblob_size)) {
++ if(!EVP_DecryptUpdate(ctx, TEMP1, &outlen, header->encrypted_keyblob, header->encrypted_keyblob_size)) {
+ fprintf(stderr, "internal error (1) during key unwrap operation!\n");
+ return(-1);
+ }
+- if(!EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen)) {
++ if(!EVP_DecryptFinal_ex(ctx, TEMP1 + outlen, &tmplen)) {
+ fprintf(stderr, "internal error (2) during key unwrap operation!\n");
+ return(-1);
+ }
+ outlen += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(ctx);
++#else
++ EVP_CIPHER_CTX_cleanup(ctx);
++ free(ctx);
++#endif
+ memcpy(aes_key, TEMP1, 16);
+ memcpy(hmacsha1_key, TEMP1, 20);
+
+@@ -446,8 +484,21 @@ int main(int argc, char *argv[]) {
+ CHUNK_SIZE = v2header.blocksize;
+ }
+
+- HMAC_CTX_init(&hmacsha1_ctx);
+- HMAC_Init_ex(&hmacsha1_ctx, hmacsha1_key, sizeof(hmacsha1_key), EVP_sha1(), NULL);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ hmacsha1_ctx = HMAC_CTX_new();
++#else
++ hmacsha1_ctx = malloc(sizeof(*hmacsha1_ctx));
++#endif
++ if (!hmacsha1_ctx) {
++ fprintf(stderr, "Out of memory: HMAC CTX!\n");
++ exit(1);
++ }
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ HMAC_CTX_reset(hmacsha1_ctx);
++#else
++ HMAC_CTX_init(hmacsha1_ctx);
++#endif
++ HMAC_Init_ex(hmacsha1_ctx, hmacsha1_key, sizeof(hmacsha1_key), EVP_sha1(), NULL);
+ AES_set_decrypt_key(aes_key, CIPHER_KEY_LENGTH * 8, &aes_decrypt_key);
+
+ if (verbose >= 1) {
+@@ -472,5 +523,11 @@ int main(int argc, char *argv[]) {
+ }
+
+ if (verbose) fprintf(stderr, "%"PRIX32" chunks written\n", chunk_no);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ HMAC_CTX_free(hmacsha1_ctx);
++#else
++ HMAC_CTX_cleanup(hmacsha1_ctx);
++ free(hmacsha1_ctx);
++#endif
+ return(0);
+ }
diff --git a/misc/dmg2img/dmg2img.SlackBuild b/misc/dmg2img/dmg2img.SlackBuild
index 941b7bae53..468aa42a51 100644
--- a/misc/dmg2img/dmg2img.SlackBuild
+++ b/misc/dmg2img/dmg2img.SlackBuild
@@ -71,6 +71,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Thanks Archlinux!
+patch -lp1 < $CWD/0001-openssl-1.1-compatibility.patch
+
make CFLAGS="$SLKCFLAGS"
make install DESTDIR=$PKG
diff --git a/misc/glogg/glogg.SlackBuild b/misc/glogg/glogg.SlackBuild
index 0278e2c4e8..33c808c379 100644
--- a/misc/glogg/glogg.SlackBuild
+++ b/misc/glogg/glogg.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=glogg
-VERSION=${VERSION:-1.0.2}
+VERSION=${VERSION:-1.1.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -69,7 +69,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-qmake
+qmake-qt5
make
make install INSTALL_ROOT=$PKG/usr
diff --git a/misc/glogg/glogg.info b/misc/glogg/glogg.info
index 61587350f7..fb8c11dd71 100644
--- a/misc/glogg/glogg.info
+++ b/misc/glogg/glogg.info
@@ -1,10 +1,10 @@
PRGNAM="glogg"
-VERSION="1.0.2"
+VERSION="1.1.4"
HOMEPAGE="http://glogg.bonnefon.org/"
-DOWNLOAD="http://glogg.bonnefon.org/files/glogg-1.0.2.tar.gz"
-MD5SUM="d6d9bb70ed50a38c5fa9114d71b52d3d"
+DOWNLOAD="http://glogg.bonnefon.org/files/glogg-1.1.4.tar.gz"
+MD5SUM="065d292411df490dcb3c6abae35ed608"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="qt5"
MAINTAINER="Miroslaw Turski"
EMAIL="miroslaw.turski@gmail.com"
diff --git a/misc/gourmet/gourmet.SlackBuild b/misc/gourmet/gourmet.SlackBuild
index e9a2f0f93d..0121943095 100644
--- a/misc/gourmet/gourmet.SlackBuild
+++ b/misc/gourmet/gourmet.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=gourmet
VERSION=${VERSION:-0.17.4}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -69,6 +69,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Patch to replace removed tostring() with tobytes()
+patch -p1 < $CWD/tostring-to-tobytes.patch
+
python setup.py install --root=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
diff --git a/misc/gourmet/gourmet.info b/misc/gourmet/gourmet.info
index 16bbef1a65..64f0f25902 100644
--- a/misc/gourmet/gourmet.info
+++ b/misc/gourmet/gourmet.info
@@ -5,6 +5,6 @@ DOWNLOAD="https://github.com/thinkle/gourmet/archive/0.17.4.tar.gz"
MD5SUM="937334364abc3093709a604c1d473e9f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="SQLAlchemy python-distutils-extra reportlab pygtkspell gst0-python python-elib.intl"
+REQUIRES="SQLAlchemy lxml python-distutils-extra reportlab pygtkspell gst0-python python-elib.intl pypoppler"
MAINTAINER="Erwin van Zanten"
EMAIL="e.van.zanten.evz@gmail.com"
diff --git a/misc/gourmet/slack-desc b/misc/gourmet/slack-desc
index 16eb4722a4..ae51c1b38c 100644
--- a/misc/gourmet/slack-desc
+++ b/misc/gourmet/slack-desc
@@ -6,7 +6,7 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-gourmet: gourmet (A Recipe organizer for Linux)
+gourmet: Gourmet (a recipe organizer for Linux)
gourmet:
gourmet: Gourmet Recipe Manager is a recipe-organizer that allows you
gourmet: to collect, search, organize, and browse your recipes.
diff --git a/misc/gourmet/tostring-to-tobytes.patch b/misc/gourmet/tostring-to-tobytes.patch
new file mode 100644
index 0000000000..e42c59403d
--- /dev/null
+++ b/misc/gourmet/tostring-to-tobytes.patch
@@ -0,0 +1,26 @@
+diff --git a/gourmet/gtk_extras/ratingWidget.py b/gourmet/gtk_extras/ratingWidget.py
+index 0e01735..efa6463 100644
+--- a/gourmet/gtk_extras/ratingWidget.py
++++ b/gourmet/gtk_extras/ratingWidget.py
+@@ -135,7 +135,7 @@ class StarGenerator:
+ if is_rgba: rowstride = 4
+ else: rowstride = 3
+ pb=gtk.gdk.pixbuf_new_from_data(
+- image.tostring(),
++ image.tobytes(),
+ gtk.gdk.COLORSPACE_RGB,
+ is_rgba,
+ 8,
+diff --git a/gourmet/plugins/browse_recipes/icon_helpers.py b/gourmet/plugins/browse_recipes/icon_helpers.py
+index 61c772c..2e7b08b 100644
+--- a/gourmet/plugins/browse_recipes/icon_helpers.py
++++ b/gourmet/plugins/browse_recipes/icon_helpers.py
+@@ -38,7 +38,7 @@ def get_pixbuf_from_image (image):
+ if is_rgba: rowstride = 4
+ else: rowstride = 3
+ pb=gtk.gdk.pixbuf_new_from_data(
+- image.tostring(),
++ image.tobytes(),
+ gtk.gdk.COLORSPACE_RGB,
+ is_rgba,
+ 8,
diff --git a/misc/ibus-unikey/ibus-unikey.SlackBuild b/misc/ibus-unikey/ibus-unikey.SlackBuild
index 3e2c7cc047..26ac340db0 100644
--- a/misc/ibus-unikey/ibus-unikey.SlackBuild
+++ b/misc/ibus-unikey/ibus-unikey.SlackBuild
@@ -60,7 +60,7 @@ patch -p1 -i $CWD/gcc-6.diff
./autogen.sh
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-error=narrowing" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/misc/krename/krename.SlackBuild b/misc/krename/krename.SlackBuild
index f084711cd4..4e67905635 100644
--- a/misc/krename/krename.SlackBuild
+++ b/misc/krename/krename.SlackBuild
@@ -71,6 +71,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Fix for gcc >= 6.x
+patch -p1 < $CWD/null.patch
+
KDEPREF=$(kde4-config --prefix)
cmake \
diff --git a/misc/krename/null.patch b/misc/krename/null.patch
new file mode 100644
index 0000000000..991ebbea1c
--- /dev/null
+++ b/misc/krename/null.patch
@@ -0,0 +1,12 @@
+diff -Naur krename-r247.orig/src/batchrenamer.cpp krename-r247/src/batchrenamer.cpp
+--- krename-r247.orig/src/batchrenamer.cpp 2013-11-24 22:46:05.000000000 +0100
++++ krename-r247/src/batchrenamer.cpp 2017-06-20 14:42:57.330437870 +0200
+@@ -402,7 +402,7 @@
+ break;
+ case eRenameMode_Link:
+ // In case of link delete created file
+- job = KIO::file_delete( dstUrl, false );
++ job = KIO::file_delete( dstUrl, NULL );
+ break;
+ case eRenameMode_Copy: // no undo possible
+ // TODO: Maybe we should delete the created files
diff --git a/misc/stardict-tools/stardict-tools.SlackBuild b/misc/stardict-tools/stardict-tools.SlackBuild
index 7a681ee867..5466bff3f4 100644
--- a/misc/stardict-tools/stardict-tools.SlackBuild
+++ b/misc/stardict-tools/stardict-tools.SlackBuild
@@ -52,6 +52,9 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
patch -p0 < $CWD/stardict-tools.patch
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -Wno-error=narrowing -fpermissive" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/misc/xca/xca.SlackBuild b/misc/xca/xca.SlackBuild
index 15387ae802..8d6f02ac35 100644
--- a/misc/xca/xca.SlackBuild
+++ b/misc/xca/xca.SlackBuild
@@ -69,6 +69,10 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Hack to avoid building the html docs, broken with the newer linuxdoc-tools
+sed -i '/case "$DOCTOOL" in/i \
+DOCTOOL=true' configure
+
sed -i \
-e 's/LIBS="\${LIBS} \${OPENSSL_LIBS}\${QT_LIBS}"/LIBS="\${LIBS} \${OPENSSL_LIBS} \${QT_LIBS}"/' \
configure
diff --git a/misc/yapet/gcc6.patch b/misc/yapet/gcc6.patch
new file mode 100644
index 0000000000..a57e0c93c1
--- /dev/null
+++ b/misc/yapet/gcc6.patch
@@ -0,0 +1,11 @@
+--- yapet-1.0/yapet/cfg.h 2014-02-23 10:18:41.000000000 -0700
++++ yapet-1.0/yapet/cfg.h 2016-04-14 07:06:49.665672169 -0700
+@@ -163,7 +163,7 @@
+ locked = false;
+ }
+
+- void is_locked() const {
++ bool is_locked() const {
+ return locked;
+ }
+
diff --git a/misc/yapet/yapet.SlackBuild b/misc/yapet/yapet.SlackBuild
index 25630ffe46..91af2b8d91 100644
--- a/misc/yapet/yapet.SlackBuild
+++ b/misc/yapet/yapet.SlackBuild
@@ -69,6 +69,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# From upstream
+patch -p1 < $CWD/gcc6.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/misc/zinnia/zinnia-fixes-gcc6-compile.patch b/misc/zinnia/zinnia-fixes-gcc6-compile.patch
new file mode 100644
index 0000000000..848f306edb
--- /dev/null
+++ b/misc/zinnia/zinnia-fixes-gcc6-compile.patch
@@ -0,0 +1,22 @@
+Index: zinnia-0.06/trainer.cpp
+===================================================================
+--- zinnia-0.06.orig/trainer.cpp
++++ zinnia-0.06/trainer.cpp
+@@ -93,7 +93,7 @@ class TrainerImpl: public Trainer {
+
+ public:
+ bool add(const Character &character) {
+- const std::string y = character.value();
++ std::string y = character.value();
+ CHECK_FALSE(!y.empty()) << "input character is empty";
+ Features features;
+ CHECK_FALSE(features.read(character)) << "cannot read character: " << y;
+@@ -103,7 +103,7 @@ class TrainerImpl: public Trainer {
+ if (!fn) {
+ return false;
+ }
+- x_.push_back(std::make_pair<std::string, FeatureNode *>(y, fn));
++ x_.push_back(std::make_pair(y, fn));
+ return true;
+ }
+
diff --git a/misc/zinnia/zinnia.SlackBuild b/misc/zinnia/zinnia.SlackBuild
index efd04acd51..62b3c033e4 100644
--- a/misc/zinnia/zinnia.SlackBuild
+++ b/misc/zinnia/zinnia.SlackBuild
@@ -70,6 +70,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Thanks to fedora for this patch
+patch -p1 < $CWD/zinnia-fixes-gcc6-compile.patch
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \