diff options
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/at-spi2-core-meson-compat.patch | 18 | ||||
-rw-r--r-- | gnu/packages/patches/blender-2.79-newer-ffmpeg.patch | 80 | ||||
-rw-r--r-- | gnu/packages/patches/blender-2.79-python-3.7-fix.patch | 43 | ||||
-rw-r--r-- | gnu/packages/patches/cracklib-CVE-2016-6318.patch | 95 | ||||
-rw-r--r-- | gnu/packages/patches/cracklib-fix-buffer-overflow.patch | 39 | ||||
-rw-r--r-- | gnu/packages/patches/dropbear-CVE-2018-15599.patch | 240 | ||||
-rw-r--r-- | gnu/packages/patches/elixir-path-length.patch | 15 | ||||
-rw-r--r-- | gnu/packages/patches/knot-include-system-lmdb-header.patch | 34 | ||||
-rw-r--r-- | gnu/packages/patches/libextractor-CVE-2018-20430.patch | 60 | ||||
-rw-r--r-- | gnu/packages/patches/libextractor-CVE-2018-20431.patch | 53 | ||||
-rw-r--r-- | gnu/packages/patches/libgit2-avoid-python.patch | 322 | ||||
-rw-r--r-- | gnu/packages/patches/libgit2-oom-test.patch | 62 | ||||
-rw-r--r-- | gnu/packages/patches/python-flint-includes.patch | 131 | ||||
-rw-r--r-- | gnu/packages/patches/totem-meson-compat.patch | 14 |
14 files changed, 657 insertions, 549 deletions
diff --git a/gnu/packages/patches/at-spi2-core-meson-compat.patch b/gnu/packages/patches/at-spi2-core-meson-compat.patch new file mode 100644 index 0000000000..168a31b4ed --- /dev/null +++ b/gnu/packages/patches/at-spi2-core-meson-compat.patch @@ -0,0 +1,18 @@ +Fix build with Meson 0.50.0 and above. + +Taken from upstream repository: +https://gitlab.gnome.org/GNOME/at-spi2-core/commit/44a812ea51223d82f21a098a2d45fcc5c329ce7a + +diff --git a/atspi/meson.build b/atspi/meson.build +index b7a9357df1c4857dffa2ec123cd3073e67a07fea..2a6915d76202dabf923b50e6a8b85cbb83cb43d0 100644 +--- a/atspi/meson.build ++++ b/atspi/meson.build +@@ -57,7 +57,7 @@ atspi_headers = [ + + atspi_includedir = join_paths(get_option('prefix'), get_option('includedir'), 'at-spi-2.0', 'atspi') + +-install_headers(atspi_headers, subdir: atspi_includedir) ++install_headers(atspi_headers, install_dir: atspi_includedir) + + atspi_enums = gnome.mkenums('atspi-enum-types', + sources: [ 'atspi-constants.h', 'atspi-types.h' ], diff --git a/gnu/packages/patches/blender-2.79-newer-ffmpeg.patch b/gnu/packages/patches/blender-2.79-newer-ffmpeg.patch new file mode 100644 index 0000000000..363489bc70 --- /dev/null +++ b/gnu/packages/patches/blender-2.79-newer-ffmpeg.patch @@ -0,0 +1,80 @@ +https://sources.debian.org/data/main/b/blender/2.79.b+dfsg0-4/debian/patches/0008-fix_building_with_latest_versions_of_FFmpeg.patch + +From: Bastien Montagne <montagne29@wanadoo.fr> +Date: Tue, 8 May 2018 16:00:52 +0200 +Subject: fix_building_with_latest_versions_of_FFmpeg + +Some years-old deprecated stuff has now been removed. + +Correct solution is probably to use valid defines etc. in own code, but +this is more FFMEPG maintainer task (since it also may change how old +FFMPEG we do support...). +--- + intern/ffmpeg/ffmpeg_compat.h | 39 ++++++++++++++++++++++++++ + source/blender/blenkernel/intern/writeffmpeg.c | 3 +- + 2 files changed, 41 insertions(+), 1 deletion(-) + +diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h +index 9c06c8a..f7f437c 100644 +--- a/intern/ffmpeg/ffmpeg_compat.h ++++ b/intern/ffmpeg/ffmpeg_compat.h +@@ -109,6 +109,45 @@ int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt) + + #endif + ++/* XXX TODO Probably fix to correct modern flags in code? Not sure how old FFMPEG we want to support though, ++ * so for now this will do. */ ++ ++#ifndef FF_MIN_BUFFER_SIZE ++# ifdef AV_INPUT_BUFFER_MIN_SIZE ++# define FF_MIN_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE ++# endif ++#endif ++ ++#ifndef FF_INPUT_BUFFER_PADDING_SIZE ++# ifdef AV_INPUT_BUFFER_PADDING_SIZE ++# define FF_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++# ifdef AV_CODEC_FLAG_GLOBAL_HEADER ++# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++# ifdef AV_CODEC_FLAG_GLOBAL_HEADER ++# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_INTERLACED_DCT ++# ifdef AV_CODEC_FLAG_INTERLACED_DCT ++# define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_INTERLACED_ME ++# ifdef AV_CODEC_FLAG_INTERLACED_ME ++# define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME ++# endif ++#endif ++ + /* FFmpeg upstream 1.0 is the first who added AV_ prefix. */ + #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 59, 100) + # define AV_CODEC_ID_NONE CODEC_ID_NONE +diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c +index a19e414..04d508a 100644 +--- a/source/blender/blenkernel/intern/writeffmpeg.c ++++ b/source/blender/blenkernel/intern/writeffmpeg.c +@@ -605,7 +605,8 @@ static AVStream *alloc_video_stream(FFMpegContext *context, RenderData *rd, int + c->rc_buffer_aggressivity = 1.0; + #endif + +- c->me_method = ME_EPZS; ++ /* Deprecated and not doing anything since July 2015, deleted in recent ffmpeg */ ++ //c->me_method = ME_EPZS; + + codec = avcodec_find_encoder(c->codec_id); + if (!codec) diff --git a/gnu/packages/patches/blender-2.79-python-3.7-fix.patch b/gnu/packages/patches/blender-2.79-python-3.7-fix.patch new file mode 100644 index 0000000000..fd1d8ba437 --- /dev/null +++ b/gnu/packages/patches/blender-2.79-python-3.7-fix.patch @@ -0,0 +1,43 @@ +Copied from https://git.blender.org/gitweb/gitweb.cgi/blender.git/patch/1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f +Fixes <https://bugs.gnu.org/33608>. + +From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001 +From: Campbell Barton <ideasman42@gmail.com> +Date: Thu, 12 Jul 2018 08:28:06 +0200 +Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7 + +In Python3.7 this now raises an error. +--- + source/blender/python/intern/bpy_rna.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c +index 9052b6f580a..80b0aa7a51b 100644 +--- a/source/blender/python/intern/bpy_rna.c ++++ b/source/blender/python/intern/bpy_rna.c +@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + if (!(flag & PROP_REGISTER)) + continue; + ++ /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also in the macro below. */ + identifier = RNA_property_identifier(prop); + item = PyObject_GetAttrString(py_class, identifier); + + if (item == NULL) { ++ PyErr_Clear(); + /* Sneaky workaround to use the class name as the bl_idname */ + + #define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \ +@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + } \ + Py_DECREF(item); \ + } \ ++ else { \ ++ PyErr_Clear(); \ ++ } \ + } /* intentionally allow else here */ + + if (false) {} /* needed for macro */ +-- +2.20.1 + diff --git a/gnu/packages/patches/cracklib-CVE-2016-6318.patch b/gnu/packages/patches/cracklib-CVE-2016-6318.patch deleted file mode 100644 index 4806ecaae9..0000000000 --- a/gnu/packages/patches/cracklib-CVE-2016-6318.patch +++ /dev/null @@ -1,95 +0,0 @@ -Fix CVE-2016-6318. - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6318 - -Patch copied from Red Hat: - -https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-6318 -https://bugzilla.redhat.com/attachment.cgi?id=1188599&action=diff - -It is not safe to pass words longer than STRINGSIZE further to cracklib -so the longbuffer cannot be longer than STRINGSIZE. -diff -up cracklib-2.9.0/lib/fascist.c.longgecos cracklib-2.9.0/lib/fascist.c ---- cracklib-2.9.0/lib/fascist.c.longgecos 2014-02-06 16:03:59.000000000 +0100 -+++ cracklib-2.9.0/lib/fascist.c 2016-08-08 12:05:40.279235815 +0200 -@@ -515,7 +515,7 @@ FascistGecosUser(char *password, const c - char gbuffer[STRINGSIZE]; - char tbuffer[STRINGSIZE]; - char *uwords[STRINGSIZE]; -- char longbuffer[STRINGSIZE * 2]; -+ char longbuffer[STRINGSIZE]; - - if (gecos == NULL) - gecos = ""; -@@ -596,38 +596,47 @@ FascistGecosUser(char *password, const c - { - for (i = 0; i < j; i++) - { -- strcpy(longbuffer, uwords[i]); -- strcat(longbuffer, uwords[j]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE) - { -- return _("it is derived from your password entry"); -- } -- -- strcpy(longbuffer, uwords[j]); -- strcat(longbuffer, uwords[i]); -+ strcpy(longbuffer, uwords[i]); -+ strcat(longbuffer, uwords[j]); - -- if (GTry(longbuffer, password)) -- { -- return _("it's derived from your password entry"); -+ if (GTry(longbuffer, password)) -+ { -+ return _("it is derived from your password entry"); -+ } -+ -+ strcpy(longbuffer, uwords[j]); -+ strcat(longbuffer, uwords[i]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it's derived from your password entry"); -+ } - } - -- longbuffer[0] = uwords[i][0]; -- longbuffer[1] = '\0'; -- strcat(longbuffer, uwords[j]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[j]) < STRINGSIZE - 1) - { -- return _("it is derivable from your password entry"); -+ longbuffer[0] = uwords[i][0]; -+ longbuffer[1] = '\0'; -+ strcat(longbuffer, uwords[j]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it is derivable from your password entry"); -+ } - } - -- longbuffer[0] = uwords[j][0]; -- longbuffer[1] = '\0'; -- strcat(longbuffer, uwords[i]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[i]) < STRINGSIZE - 1) - { -- return _("it's derivable from your password entry"); -+ longbuffer[0] = uwords[j][0]; -+ longbuffer[1] = '\0'; -+ strcat(longbuffer, uwords[i]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it's derivable from your password entry"); -+ } - } - } - } diff --git a/gnu/packages/patches/cracklib-fix-buffer-overflow.patch b/gnu/packages/patches/cracklib-fix-buffer-overflow.patch deleted file mode 100644 index b1c990f282..0000000000 --- a/gnu/packages/patches/cracklib-fix-buffer-overflow.patch +++ /dev/null @@ -1,39 +0,0 @@ -Fix buffer overflow processing long words in Mangle(). - -Patch adpated from upstream commit, omitting changes to 'NEWS': - -https://github.com/cracklib/cracklib/commit/33d7fa4585247cd2247a1ffa032ad245836c6edb - -From 33d7fa4585247cd2247a1ffa032ad245836c6edb Mon Sep 17 00:00:00 2001 -From: Jan Dittberner <jan@dittberner.info> -Date: Thu, 25 Aug 2016 17:17:53 +0200 -Subject: [PATCH] Fix a buffer overflow processing long words - -A buffer overflow processing long words has been discovered. This commit -applies the patch from -https://build.opensuse.org/package/view_file/Base:System/cracklib/0004-overflow-processing-long-words.patch -by Howard Guo. - -See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835386 and -http://www.openwall.com/lists/oss-security/2016/08/23/8 ---- - src/NEWS | 1 + - src/lib/rules.c | 5 ++--- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/lib/rules.c b/src/lib/rules.c -index d193cc0..3a2aa46 100644 ---- a/lib/rules.c -+++ b/lib/rules.c -@@ -434,9 +434,8 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - { - int limit; - register char *ptr; -- static char area[STRINGSIZE]; -- char area2[STRINGSIZE]; -- area[0] = '\0'; -+ static char area[STRINGSIZE * 2] = {0}; -+ char area2[STRINGSIZE * 2] = {0}; - strcpy(area, input); - - for (ptr = control; *ptr; ptr++) diff --git a/gnu/packages/patches/dropbear-CVE-2018-15599.patch b/gnu/packages/patches/dropbear-CVE-2018-15599.patch deleted file mode 100644 index a474552cd2..0000000000 --- a/gnu/packages/patches/dropbear-CVE-2018-15599.patch +++ /dev/null @@ -1,240 +0,0 @@ -Fix CVE-2018-15599: - -http://lists.ucc.gu.uwa.edu.au/pipermail/dropbear/2018q3/002108.html -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15599 - -Patch copied from upstream source repository: - -https://github.com/mkj/dropbear/commit/52adbb34c32d3e2e1bcdb941e20a6f81138b8248 - -From 52adbb34c32d3e2e1bcdb941e20a6f81138b8248 Mon Sep 17 00:00:00 2001 -From: Matt Johnston <matt@ucc.asn.au> -Date: Thu, 23 Aug 2018 23:43:12 +0800 -Subject: [PATCH] Wait to fail invalid usernames - ---- - auth.h | 6 +++--- - svr-auth.c | 19 +++++-------------- - svr-authpam.c | 26 ++++++++++++++++++++++---- - svr-authpasswd.c | 27 ++++++++++++++------------- - svr-authpubkey.c | 11 ++++++++++- - 5 files changed, 54 insertions(+), 35 deletions(-) - -diff --git a/auth.h b/auth.h -index da498f5b..98f54683 100644 ---- a/auth.h -+++ b/auth.h -@@ -37,9 +37,9 @@ void recv_msg_userauth_request(void); - void send_msg_userauth_failure(int partial, int incrfail); - void send_msg_userauth_success(void); - void send_msg_userauth_banner(const buffer *msg); --void svr_auth_password(void); --void svr_auth_pubkey(void); --void svr_auth_pam(void); -+void svr_auth_password(int valid_user); -+void svr_auth_pubkey(int valid_user); -+void svr_auth_pam(int valid_user); - - #if DROPBEAR_SVR_PUBKEY_OPTIONS_BUILT - int svr_pubkey_allows_agentfwd(void); -diff --git a/svr-auth.c b/svr-auth.c -index c19c0901..edde86bc 100644 ---- a/svr-auth.c -+++ b/svr-auth.c -@@ -149,10 +149,8 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PASSWORD_LEN && - strncmp(methodname, AUTH_METHOD_PASSWORD, - AUTH_METHOD_PASSWORD_LEN) == 0) { -- if (valid_user) { -- svr_auth_password(); -- goto out; -- } -+ svr_auth_password(valid_user); -+ goto out; - } - } - #endif -@@ -164,10 +162,8 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PASSWORD_LEN && - strncmp(methodname, AUTH_METHOD_PASSWORD, - AUTH_METHOD_PASSWORD_LEN) == 0) { -- if (valid_user) { -- svr_auth_pam(); -- goto out; -- } -+ svr_auth_pam(valid_user); -+ goto out; - } - } - #endif -@@ -177,12 +173,7 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PUBKEY_LEN && - strncmp(methodname, AUTH_METHOD_PUBKEY, - AUTH_METHOD_PUBKEY_LEN) == 0) { -- if (valid_user) { -- svr_auth_pubkey(); -- } else { -- /* pubkey has no failure delay */ -- send_msg_userauth_failure(0, 0); -- } -+ svr_auth_pubkey(valid_user); - goto out; - } - #endif -diff --git a/svr-authpam.c b/svr-authpam.c -index 05e4f3e5..d201bc96 100644 ---- a/svr-authpam.c -+++ b/svr-authpam.c -@@ -178,13 +178,14 @@ pamConvFunc(int num_msg, - * Keyboard interactive would be a lot nicer, but since PAM is synchronous, it - * gets very messy trying to send the interactive challenges, and read the - * interactive responses, over the network. */ --void svr_auth_pam() { -+void svr_auth_pam(int valid_user) { - - struct UserDataS userData = {NULL, NULL}; - struct pam_conv pamConv = { - pamConvFunc, - &userData /* submitted to pamvConvFunc as appdata_ptr */ - }; -+ const char* printable_user = NULL; - - pam_handle_t* pamHandlep = NULL; - -@@ -204,12 +205,23 @@ void svr_auth_pam() { - - password = buf_getstring(ses.payload, &passwordlen); - -+ /* We run the PAM conversation regardless of whether the username is valid -+ in case the conversation function has an inherent delay. -+ Use ses.authstate.username rather than ses.authstate.pw_name. -+ After PAM succeeds we then check the valid_user flag too */ -+ - /* used to pass data to the PAM conversation function - don't bother with - * strdup() etc since these are touched only by our own conversation - * function (above) which takes care of it */ -- userData.user = ses.authstate.pw_name; -+ userData.user = ses.authstate.username; - userData.passwd = password; - -+ if (ses.authstate.pw_name) { -+ printable_user = ses.authstate.pw_name; -+ } else { -+ printable_user = "<invalid username>"; -+ } -+ - /* Init pam */ - if ((rc = pam_start("sshd", NULL, &pamConv, &pamHandlep)) != PAM_SUCCESS) { - dropbear_log(LOG_WARNING, "pam_start() failed, rc=%d, %s", -@@ -242,7 +254,7 @@ void svr_auth_pam() { - rc, pam_strerror(pamHandlep, rc)); - dropbear_log(LOG_WARNING, - "Bad PAM password attempt for '%s' from %s", -- ses.authstate.pw_name, -+ printable_user, - svr_ses.addrstring); - send_msg_userauth_failure(0, 1); - goto cleanup; -@@ -253,12 +265,18 @@ void svr_auth_pam() { - rc, pam_strerror(pamHandlep, rc)); - dropbear_log(LOG_WARNING, - "Bad PAM password attempt for '%s' from %s", -- ses.authstate.pw_name, -+ printable_user, - svr_ses.addrstring); - send_msg_userauth_failure(0, 1); - goto cleanup; - } - -+ if (!valid_user) { -+ /* PAM auth succeeded but the username isn't allowed in for another reason -+ (checkusername() failed) */ -+ send_msg_userauth_failure(0, 1); -+ } -+ - /* successful authentication */ - dropbear_log(LOG_NOTICE, "PAM password auth succeeded for '%s' from %s", - ses.authstate.pw_name, -diff --git a/svr-authpasswd.c b/svr-authpasswd.c -index bdee2aa1..69c7d8af 100644 ---- a/svr-authpasswd.c -+++ b/svr-authpasswd.c -@@ -48,22 +48,14 @@ static int constant_time_strcmp(const char* a, const char* b) { - - /* Process a password auth request, sending success or failure messages as - * appropriate */ --void svr_auth_password() { -+void svr_auth_password(int valid_user) { - - char * passwdcrypt = NULL; /* the crypt from /etc/passwd or /etc/shadow */ - char * testcrypt = NULL; /* crypt generated from the user's password sent */ -- char * password; -+ char * password = NULL; - unsigned int passwordlen; -- - unsigned int changepw; - -- passwdcrypt = ses.authstate.pw_passwd; -- --#ifdef DEBUG_HACKCRYPT -- /* debugging crypt for non-root testing with shadows */ -- passwdcrypt = DEBUG_HACKCRYPT; --#endif -- - /* check if client wants to change password */ - changepw = buf_getbool(ses.payload); - if (changepw) { -@@ -73,12 +65,21 @@ void svr_auth_password() { - } - - password = buf_getstring(ses.payload, &passwordlen); -- -- /* the first bytes of passwdcrypt are the salt */ -- testcrypt = crypt(password, passwdcrypt); -+ if (valid_user) { -+ /* the first bytes of passwdcrypt are the salt */ -+ passwdcrypt = ses.authstate.pw_passwd; -+ testcrypt = crypt(password, passwdcrypt); -+ } - m_burn(password, passwordlen); - m_free(password); - -+ /* After we have got the payload contents we can exit if the username -+ is invalid. Invalid users have already been logged. */ -+ if (!valid_user) { -+ send_msg_userauth_failure(0, 1); -+ return; -+ } -+ - if (testcrypt == NULL) { - /* crypt() with an invalid salt like "!!" */ - dropbear_log(LOG_WARNING, "User account '%s' is locked", -diff --git a/svr-authpubkey.c b/svr-authpubkey.c -index aa6087c9..ff481c87 100644 ---- a/svr-authpubkey.c -+++ b/svr-authpubkey.c -@@ -79,7 +79,7 @@ static int checkfileperm(char * filename); - - /* process a pubkey auth request, sending success or failure message as - * appropriate */ --void svr_auth_pubkey() { -+void svr_auth_pubkey(int valid_user) { - - unsigned char testkey; /* whether we're just checking if a key is usable */ - char* algo = NULL; /* pubkey algo */ -@@ -102,6 +102,15 @@ void svr_auth_pubkey() { - keybloblen = buf_getint(ses.payload); - keyblob = buf_getptr(ses.payload, keybloblen); - -+ if (!valid_user) { -+ /* Return failure once we have read the contents of the packet -+ required to validate a public key. -+ Avoids blind user enumeration though it isn't possible to prevent -+ testing for user existence if the public key is known */ -+ send_msg_userauth_failure(0, 0); -+ goto out; -+ } -+ - /* check if the key is valid */ - if (checkpubkey(algo, algolen, keyblob, keybloblen) == DROPBEAR_FAILURE) { - send_msg_userauth_failure(0, 0); diff --git a/gnu/packages/patches/elixir-path-length.patch b/gnu/packages/patches/elixir-path-length.patch new file mode 100644 index 0000000000..aa8bf38829 --- /dev/null +++ b/gnu/packages/patches/elixir-path-length.patch @@ -0,0 +1,15 @@ +In the package definition the call to the command 'git' is substituted with +the full path to the git executable. This change causes the mix formatting tool +to complain that the line is too long. This workaround reformats the file +after the substitution is made. + +--- a/Makefile ++++ b/Makefile +@@ -213,6 +213,7 @@ + TEST_ERLS = $(addprefix $(TEST_EBIN)/, $(addsuffix .beam, $(basename $(notdir $(wildcard $(TEST_ERL)/*.erl))))) + + test_formatted: compile ++ bin/elixir bin/mix format lib/mix/lib/mix/scm/git.ex + bin/elixir bin/mix format --check-formatted + + test_erlang: compile $(TEST_ERLS) diff --git a/gnu/packages/patches/knot-include-system-lmdb-header.patch b/gnu/packages/patches/knot-include-system-lmdb-header.patch new file mode 100644 index 0000000000..5c5c0beabc --- /dev/null +++ b/gnu/packages/patches/knot-include-system-lmdb-header.patch @@ -0,0 +1,34 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Wed, 20 Mar 2019 00:08:00 +0100 +Subject: [PATCH] gnu: knot: Include system <lmdb.h>. + +Copied verbatim from Knot master[0]. + +[0]: https://gitlab.labs.nic.cz/knot/knot-dns/commit/b557430cffbb1c6b30617a394b02acc514e7e536 + +From b557430cffbb1c6b30617a394b02acc514e7e536 Mon Sep 17 00:00:00 2001 +From: Daniel Salzman <daniel.salzman@nic.cz> +Date: Wed, 6 Mar 2019 17:35:44 +0100 +Subject: [PATCH] journal: include proper header <lmdb.h> + +fixes #638 +--- + src/knot/journal/knot_lmdb.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h +index 35a88845c..b1d09cbb4 100644 +--- a/src/knot/journal/knot_lmdb.h ++++ b/src/knot/journal/knot_lmdb.h +@@ -16,7 +16,7 @@ + + #pragma once + +-#include "contrib/lmdb/lmdb.h" ++#include <lmdb.h> + + #include <stdbool.h> + #include <stdlib.h> +-- +2.18.1 + diff --git a/gnu/packages/patches/libextractor-CVE-2018-20430.patch b/gnu/packages/patches/libextractor-CVE-2018-20430.patch deleted file mode 100644 index 570cd7c006..0000000000 --- a/gnu/packages/patches/libextractor-CVE-2018-20430.patch +++ /dev/null @@ -1,60 +0,0 @@ -Fix CVE-2018-20430: - -https://gnunet.org/bugs/view.php?id=5493 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20430 -https://security-tracker.debian.org/tracker/CVE-2018-20430 - -Patch copied from upstream source repository: - -https://gnunet.org/git/libextractor.git/commit/?id=b405d707b36e0654900cba78e89f49779efea110 - -From b405d707b36e0654900cba78e89f49779efea110 Mon Sep 17 00:00:00 2001 -From: Christian Grothoff <christian@grothoff.org> -Date: Thu, 20 Dec 2018 22:47:53 +0100 -Subject: [PATCH] fix #5493 (out of bounds read) - ---- - src/common/convert.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/common/convert.c b/src/common/convert.c -index c0edf21..2be2108 100644 ---- a/src/common/convert.c -+++ b/src/common/convert.c -@@ -36,8 +36,8 @@ - * string is returned. - */ - char * --EXTRACTOR_common_convert_to_utf8 (const char *input, -- size_t len, -+EXTRACTOR_common_convert_to_utf8 (const char *input, -+ size_t len, - const char *charset) - { - #if HAVE_ICONV -@@ -52,7 +52,7 @@ EXTRACTOR_common_convert_to_utf8 (const char *input, - i = input; - cd = iconv_open ("UTF-8", charset); - if (cd == (iconv_t) - 1) -- return strdup (i); -+ return strndup (i, len); - if (len > 1024 * 1024) - { - iconv_close (cd); -@@ -67,11 +67,11 @@ EXTRACTOR_common_convert_to_utf8 (const char *input, - } - itmp = tmp; - finSize = tmpSize; -- if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == SIZE_MAX) -+ if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == ((size_t) -1)) - { - iconv_close (cd); - free (tmp); -- return strdup (i); -+ return strndup (i, len); - } - ret = malloc (tmpSize - finSize + 1); - if (ret == NULL) --- -2.20.1 - diff --git a/gnu/packages/patches/libextractor-CVE-2018-20431.patch b/gnu/packages/patches/libextractor-CVE-2018-20431.patch deleted file mode 100644 index 855c5ba64b..0000000000 --- a/gnu/packages/patches/libextractor-CVE-2018-20431.patch +++ /dev/null @@ -1,53 +0,0 @@ -Fix CVE-2018-20431: - -https://gnunet.org/bugs/view.php?id=5494 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20431 -https://security-tracker.debian.org/tracker/CVE-2018-20431 - -Patch copied from upstream source repository: - -https://gnunet.org/git/libextractor.git/commit/?id=489c4a540bb2c4744471441425b8932b97a153e7 - -To apply the patch to libextractor 1.8 release tarball, -hunk #1 which patches ChangeLog is removed. - -From 489c4a540bb2c4744471441425b8932b97a153e7 Mon Sep 17 00:00:00 2001 -From: Christian Grothoff <christian@grothoff.org> -Date: Thu, 20 Dec 2018 23:02:28 +0100 -Subject: [PATCH] fix #5494 - ---- - ChangeLog | 3 ++- - src/plugins/ole2_extractor.c | 9 +++++++-- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/src/plugins/ole2_extractor.c b/src/plugins/ole2_extractor.c -index 53fa1b9..a48b726 100644 ---- a/src/plugins/ole2_extractor.c -+++ b/src/plugins/ole2_extractor.c -@@ -173,7 +173,7 @@ struct ProcContext - EXTRACTOR_MetaDataProcessor proc; - - /** -- * Closure for 'proc'. -+ * Closure for @e proc. - */ - void *proc_cls; - -@@ -213,7 +213,12 @@ process_metadata (gpointer key, - - if (G_VALUE_TYPE(gval) == G_TYPE_STRING) - { -- contents = strdup (g_value_get_string (gval)); -+ const char *gvals; -+ -+ gvals = g_value_get_string (gval); -+ if (NULL == gvals) -+ return; -+ contents = strdup (gvals); - } - else - { --- -2.20.1 - diff --git a/gnu/packages/patches/libgit2-avoid-python.patch b/gnu/packages/patches/libgit2-avoid-python.patch new file mode 100644 index 0000000000..b2e5141563 --- /dev/null +++ b/gnu/packages/patches/libgit2-avoid-python.patch @@ -0,0 +1,322 @@ +This provides a Guile reimplementation of clar's "generate.py". +It makes it possible for us to remove Python from libgit2's build-time +dependencies. +libgit2 is used in order to fetch a lot of sources for guix packages. +Both Python2 and Python3 builds acted up in the past. +Hence this patch which makes the number of libgit2 dependencies very +small. +The reimplementation tries to keep as close as possible to the original +in both structure and runtime effect. Some things are thus overly +convoluted just to make them the same as in the original. + +Both implementations basically do: + +grep -r 'test_.*__.*' . > clar.suite + +It is important that the directory traversal order of the original and +the reimplementation stay the same. + +diff -ruN orig/libgit2-0.27.7/tests/CMakeLists.txt libgit2-0.27.7/tests/CMakeLists.txt +--- orig/libgit2-0.27.7/tests/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 ++++ libgit2-0.27.7/tests/CMakeLists.txt 2019-03-04 11:13:06.640118979 +0100 +@@ -1,10 +1,3 @@ +-FIND_PACKAGE(PythonInterp) +- +-IF(NOT PYTHONINTERP_FOUND) +- MESSAGE(FATAL_ERROR "Could not find a python interpeter, which is needed to build the tests. " +- "Make sure python is available, or pass -DBUILD_CLAR=OFF to skip building the tests") +-ENDIF() +- + SET(CLAR_FIXTURES "${CMAKE_CURRENT_SOURCE_DIR}/resources/") + SET(CLAR_PATH "${CMAKE_CURRENT_SOURCE_DIR}") + ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\") +@@ -21,7 +14,7 @@ + + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/clar.suite +- COMMAND ${PYTHON_EXECUTABLE} generate.py -o "${CMAKE_CURRENT_BINARY_DIR}" -f -xonline -xstress -xperf . ++ COMMAND guile generate.scm -o "${CMAKE_CURRENT_BINARY_DIR}" -f -x online -x stress -x perf . + DEPENDS ${SRC_TEST} + WORKING_DIRECTORY ${CLAR_PATH} + ) +diff -ruN orig/libgit2-0.27.7/tests/generate.scm libgit2-0.27.7/tests/generate.scm +--- orig/libgit2-0.27.7/tests/generate.scm 1970-01-01 01:00:00.000000000 +0100 ++++ libgit2-0.27.7/tests/generate.scm 2019-03-04 12:18:00.688040975 +0100 +@@ -0,0 +1,277 @@ ++;; -*- geiser-scheme-implementation: guile -*- ++ ++;;; Implementation: Danny Milosavljevic <dannym@scratchpost.org> ++;;; Based on: Implementation in Python by Vicent Marti. ++;;; License: ISC, like the original generate.py in clar. ++ ++(use-modules (ice-9 ftw)) ++(use-modules (ice-9 regex)) ++(use-modules (ice-9 getopt-long)) ++(use-modules (ice-9 rdelim)) ++(use-modules (ice-9 match)) ++(use-modules (ice-9 textual-ports)) ++(use-modules (srfi srfi-1)) ++ ++(define (render-callback cb) ++ (if cb ++ (string-append " { \"" (assoc-ref cb "short-name") "\", &" ++ (assoc-ref cb "symbol") " }") ++ " { NULL, NULL }")) ++ ++(define (replace needle replacement haystack) ++ "Replace all occurences of NEEDLE in HAYSTACK by REPLACEMENT. ++NEEDLE is a regular expression." ++ (regexp-substitute/global #f needle haystack 'pre replacement 'post)) ++ ++(define (skip-comments* text) ++ (call-with-input-string ++ text ++ (lambda (port) ++ (let loop ((result '()) ++ (section #f)) ++ (define (consume-char) ++ (cons (read-char port) result)) ++ (define (skip-char) ++ (read-char port) ++ result) ++ (match section ++ (#f ++ (match (peek-char port) ++ (#\/ (loop (consume-char) 'almost-in-block-comment)) ++ (#\" (loop (consume-char) 'in-string-literal)) ++ (#\' (loop (consume-char) 'in-character-literal)) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) section)))) ++ ('almost-in-block-comment ++ (match (peek-char port) ++ (#\* (loop (consume-char) 'in-block-comment)) ++ (#\/ (loop (consume-char) 'in-line-comment)) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) #f)))) ++ ('in-line-comment ++ (match (peek-char port) ++ (#\newline (loop (consume-char) #f)) ++ ((? eof-object?) result) ++ (_ (loop (skip-char) section)))) ++ ('in-block-comment ++ (match (peek-char port) ++ (#\* (loop (skip-char) 'almost-out-of-block-comment)) ++ ((? eof-object?) result) ++ (_ (loop (skip-char) section)))) ++ ('almost-out-of-block-comment ++ (match (peek-char port) ++ (#\/ (loop (cons (read-char port) (cons #\* result)) #f)) ++ (#\* (loop (skip-char) 'almost-out-of-block-comment)) ++ ((? eof-object?) result) ++ (_ (loop (skip-char) 'in-block-comment)))) ++ ('in-string-literal ++ (match (peek-char port) ++ (#\\ (loop (consume-char) 'in-string-literal-escape)) ++ (#\" (loop (consume-char) #f)) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) section)))) ++ ('in-string-literal-escape ++ (match (peek-char port) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) 'in-string-literal)))) ++ ('in-character-literal ++ (match (peek-char port) ++ (#\\ (loop (consume-char) 'in-character-literal-escape)) ++ (#\' (loop (consume-char) #f)) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) section)))) ++ ('in-character-literal-escape ++ (match (peek-char port) ++ ((? eof-object?) result) ++ (_ (loop (consume-char) 'in-character-literal))))))))) ++ ++(define (skip-comments text) ++ (list->string (reverse (skip-comments* text)))) ++ ++(define (maybe-only items) ++ (match items ++ ((a) a) ++ (_ #f))) ++ ++(define (Module name path excludes) ++ (let* ((clean-name (replace "_" "::" name)) ++ (enabled (not (any (lambda (exclude) ++ (string-prefix? exclude clean-name)) ++ excludes)))) ++ (define (parse contents) ++ (define (cons-match match prev) ++ (cons ++ `(("declaration" . ,(match:substring match 1)) ++ ("symbol" . ,(match:substring match 2)) ++ ("short-name" . ,(match:substring match 3))) ++ prev)) ++ (let* ((contents (skip-comments contents)) ++ (entries (fold-matches (make-regexp ++ (string-append "^(void\\s+(test_" ++ name ++ "__(\\w+))\\s*\\(\\s*void\\s*\\))\\s*\\{") ++ regexp/newline) ++ contents ++ '() ++ cons-match)) ++ (entries (reverse entries)) ++ (callbacks (filter (lambda (entry) ++ (match (assoc-ref entry "short-name") ++ ("initialize" #f) ++ ("cleanup" #f) ++ (_ #t))) ++ entries))) ++ (if (> (length callbacks) 0) ++ `(("name" . ,name) ++ ("enabled" . ,(if enabled "1" "0")) ++ ("clean-name" . ,clean-name) ++ ("initialize" . ,(maybe-only (filter-map (lambda (entry) ++ (match (assoc-ref entry "short-name") ++ ("initialize" entry) ++ (_ #f))) ++ entries))) ++ ("cleanup" . ,(maybe-only (filter-map (lambda (entry) ++ (match (assoc-ref entry "short-name") ++ ("cleanup" entry) ++ (_ #f))) ++ entries))) ++ ("callbacks" . ,callbacks)) ++ #f))) ++ ++ (define (refresh path) ++ (and (file-exists? path) ++ (parse (call-with-input-file path get-string-all)))) ++ (refresh path))) ++ ++(define (generate-TestSuite path output excludes) ++ (define (load) ++ (define enter? (const #t)) ++ (define (leaf file stat result) ++ (let* ((module-root (string-drop (dirname file) ++ (string-length path))) ++ (module-root (filter-map (match-lambda ++ ("" #f) ++ (a a)) ++ (string-split module-root #\/)))) ++ (define (make-module path) ++ (let* ((name (string-join (append module-root (list (string-drop-right (basename path) (string-length ".c")))) "_")) ++ (name (replace "-" "_" name))) ++ (Module name path excludes))) ++ (if (string-suffix? ".c" file) ++ (let ((module (make-module file))) ++ (if module ++ (cons module result) ++ result)) ++ result))) ++ (define (down dir stat result) ++ result) ++ (define (up file state result) ++ result) ++ (define skip (const #f)) ++ (file-system-fold enter? leaf down up skip error '() path)) ++ ++ (define (CallbacksTemplate module) ++ (string-append "static const struct clar_func _clar_cb_" ++ (assoc-ref module "name") "[] = {\n" ++ (string-join (map render-callback ++ (assoc-ref module "callbacks")) ++ ",\n") ++ "\n};\n")) ++ ++ (define (DeclarationTemplate module) ++ (string-append (string-join (map (lambda (cb) ++ (string-append "extern " ++ (assoc-ref cb "declaration") ++ ";")) ++ (assoc-ref module "callbacks")) ++ "\n") ++ "\n" ++ (if (assoc-ref module "initialize") ++ (string-append "extern " (assoc-ref (assoc-ref module "initialize") "declaration") ";\n") ++ "") ++ (if (assoc-ref module "cleanup") ++ (string-append "extern " (assoc-ref (assoc-ref module "cleanup") "declaration") ";\n") ++ ""))) ++ ++ (define (InfoTemplate module) ++ (string-append " ++ { ++ \"" (assoc-ref module "clean-name") "\", ++ " (render-callback (assoc-ref module "initialize")) ", ++ " (render-callback (assoc-ref module "cleanup")) ", ++ _clar_cb_" (assoc-ref module "name") ", " ++ (number->string (length (assoc-ref module "callbacks"))) ++ ", " (assoc-ref module "enabled") " ++ }")) ++ ++ (define (Write data) ++ (define (name< module-a module-b) ++ (string<? (assoc-ref module-a "name") ++ (assoc-ref module-b "name"))) ++ (define modules (sort (load) name<)) ++ ++ (define (suite-count) ++ (length modules)) ++ ++ (define (callback-count) ++ (fold + 0 (map (lambda (entry) ++ (length (assoc-ref entry "callbacks"))) ++ modules))) ++ ++ (define (display-x value) ++ (display value data)) ++ ++ (for-each (compose display-x DeclarationTemplate) modules) ++ (for-each (compose display-x CallbacksTemplate) modules) ++ ++ (display-x "static struct clar_suite _clar_suites[] = {") ++ (display-x (string-join (map InfoTemplate modules) ",")) ++ (display-x "\n};\n") ++ ++ (let ((suite-count-str (number->string (suite-count))) ++ (callback-count-str (number->string (callback-count)))) ++ (display-x "static const size_t _clar_suite_count = ") ++ (display-x suite-count-str) ++ (display-x ";\n") ++ ++ (display-x "static const size_t _clar_callback_count = ") ++ (display-x callback-count-str) ++ (display-x ";\n") ++ ++ (display (string-append "Written `clar.suite` (" ++ callback-count-str ++ " tests in " ++ suite-count-str ++ " suites)")) ++ (newline)) ++ #t) ++ ++ (call-with-output-file (string-append output "/clar.suite") Write)) ++ ++;;; main ++ ++(define (main) ++ (define option-spec ++ '((force (single-char #\f) (value #f)) ++ (exclude (single-char #\x) (value #t)) ++ (output (single-char #\o) (value #t)) ++ (help (single-char #\h) (value #f)))) ++ ++ (define options (getopt-long (command-line) option-spec #:stop-at-first-non-option #t)) ++ (define args (reverse (option-ref options '() '()))) ++ (when (> (length args) 1) ++ (display "More than one path given\n") ++ (exit 1)) ++ ++ (if (< (length args) 1) ++ (set! args '("."))) ++ ++ (let* ((path (car args)) ++ (output (option-ref options 'output path)) ++ (excluded (filter-map (match-lambda ++ (('exclude . value) value) ++ (_ #f)) ++ options))) ++ (generate-TestSuite path output excluded))) ++ ++(main) diff --git a/gnu/packages/patches/libgit2-oom-test.patch b/gnu/packages/patches/libgit2-oom-test.patch deleted file mode 100644 index 9667d1c0da..0000000000 --- a/gnu/packages/patches/libgit2-oom-test.patch +++ /dev/null @@ -1,62 +0,0 @@ -Fix a test failure on 32-bit platforms as reported -at <https://github.com/libgit2/libgit2/issues/4868>. - -From 415a8ae9c9b6ac18f0524b6af8e58408b426457d Mon Sep 17 00:00:00 2001 -From: Edward Thomson <ethomson@edwardthomson.com> -Date: Thu, 13 Sep 2018 13:27:07 +0100 -Subject: [PATCH] tests: don't run buf::oom on 32-bit systems - -On a 32-bit Linux systems, the value large enough to make malloc -guarantee a failure is also large enough that valgrind considers it -"fishy". Skip this test on those systems entirely. ---- - tests/buf/oom.c | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - -diff --git a/tests/buf/oom.c b/tests/buf/oom.c -index 2741a8ddf2..ec3bad9979 100644 ---- a/tests/buf/oom.c -+++ b/tests/buf/oom.c -@@ -11,12 +11,8 @@ - */ - #if defined(GIT_ARCH_64) && defined(__linux__) - # define TOOBIG 0x0fffffffffffffff --#elif defined(__linux__) --# define TOOBIG 0x0fffffff - #elif defined(GIT_ARCH_64) - # define TOOBIG 0xffffffffffffff00 --#else --# define TOOBIG 0xffffff00 - #endif - - /** -@@ -25,13 +21,18 @@ - * will fail. And because the git_buf_grow() wrapper always - * sets mark_oom, the code in git_buf_try_grow() will free - * the internal buffer and set it to git_buf__oom. -- * -+ * - * We initialized the internal buffer to (the static variable) - * git_buf__initbuf. The purpose of this test is to make sure - * that we don't try to free the static buffer. -+ * -+ * Skip this test entirely on 32-bit platforms; a buffer large enough -+ * to guarantee malloc failures is so large that valgrind considers -+ * it likely to be an error. - */ - void test_buf_oom__grow(void) - { -+#ifdef GIT_ARCH_64 - git_buf buf = GIT_BUF_INIT; - - git_buf_clear(&buf); -@@ -40,6 +41,9 @@ void test_buf_oom__grow(void) - cl_assert(git_buf_oom(&buf)); - - git_buf_free(&buf); -+#else -+ cl_skip(); -+#endif - } - - void test_buf_oom__grow_by(void) diff --git a/gnu/packages/patches/python-flint-includes.patch b/gnu/packages/patches/python-flint-includes.patch new file mode 100644 index 0000000000..c0cfe94a04 --- /dev/null +++ b/gnu/packages/patches/python-flint-includes.patch @@ -0,0 +1,131 @@ +The following patch, authored by Andreas Enge, looks for the flint include +files in the correct subdirectory. + +diff -u -r python-flint-old/src/flint.pxd python-flint-new/src/flint.pxd +--- python-flint-old/src/flint.pxd 2019-03-19 10:26:11.055748626 +0100 ++++ python-flint-new/src/flint.pxd 2019-03-19 10:35:23.269341203 +0100 +@@ -27,7 +27,7 @@ + + ctypedef long fmpz_struct + +-cdef extern from "flint.h": ++cdef extern from "flint/flint.h": + ctypedef void * flint_rand_t + void flint_randinit(flint_rand_t state) + void flint_randclear(flint_rand_t state) +@@ -35,7 +35,7 @@ + long flint_get_num_threads() + void flint_cleanup() + +-cdef extern from "nmod_vec.h": ++cdef extern from "flint/nmod_vec.h": + ctypedef struct nmod_t: + mp_limb_t n + mp_limb_t ninv +@@ -47,7 +47,7 @@ + mp_limb_t nmod_mul(mp_limb_t a, mp_limb_t b, nmod_t mod) + mp_limb_t nmod_div(mp_limb_t a, mp_limb_t b, nmod_t mod) + +-cdef extern from "nmod_poly.h": ++cdef extern from "flint/nmod_poly.h": + ctypedef struct nmod_poly_struct: + mp_ptr coeffs + long alloc +@@ -129,7 +129,7 @@ + void nmod_poly_factor_init(nmod_poly_factor_t fac) + void nmod_poly_factor_clear(nmod_poly_factor_t fac) + +-cdef extern from "nmod_mat.h": ++cdef extern from "flint/nmod_mat.h": + ctypedef struct nmod_mat_struct: + mp_limb_t * entries + long r +@@ -178,7 +178,7 @@ + long nmod_mat_rref(nmod_mat_t A) + long nmod_mat_nullspace(nmod_mat_t X, nmod_mat_t A) + +-cdef extern from "fmpz.h": ++cdef extern from "flint/fmpz.h": + ctypedef fmpz_struct fmpz_t[1] + int COEFF_IS_MPZ(fmpz_struct v) + void fmpz_init(fmpz_t op) +@@ -268,7 +268,7 @@ + void fmpz_rfac_uiui(fmpz_t r, ulong x, ulong n) + void fmpz_primorial(fmpz_t res, ulong n) + +-cdef extern from "fmpz_factor.h": ++cdef extern from "flint/fmpz_factor.h": + ctypedef struct fmpz_factor_struct: + int sign + fmpz_struct * p +@@ -280,7 +280,7 @@ + void fmpz_factor_clear(fmpz_factor_t factor) + void fmpz_factor(fmpz_factor_t factor, fmpz_t n) + +-cdef extern from "fmpz_poly.h": ++cdef extern from "flint/fmpz_poly.h": + ctypedef struct fmpz_poly_struct: + fmpz_struct * coeffs + long alloc +@@ -390,14 +390,14 @@ + void fmpz_poly_cos_minpoly(fmpz_poly_t, ulong) + void fmpz_poly_swinnerton_dyer(fmpz_poly_t, ulong) + +-cdef extern from "fmpz_poly_factor.h": ++cdef extern from "flint/fmpz_poly_factor.h": + void fmpz_poly_factor_init(fmpz_poly_factor_t fac) + void fmpz_poly_factor_clear(fmpz_poly_factor_t fac) + void fmpz_poly_factor_zassenhaus(fmpz_poly_factor_t fac, fmpz_poly_t G) + void fmpz_poly_factor(fmpz_poly_factor_t fac, fmpz_poly_t G) + void fmpz_poly_factor_squarefree(fmpz_poly_factor_t fac, fmpz_poly_t G) + +-cdef extern from "fmpz_mat.h": ++cdef extern from "flint/fmpz_mat.h": + ctypedef struct fmpz_mat_struct: + fmpz_struct * entries + long r +@@ -448,7 +448,7 @@ + void fmpz_mat_snf(fmpz_mat_t S, const fmpz_mat_t A) + int fmpz_mat_is_in_snf(const fmpz_mat_t A) + +-cdef extern from "fmpz_lll.h": ++cdef extern from "flint/fmpz_lll.h": + ctypedef struct fmpz_lll_struct: + double delta + double eta +@@ -461,7 +461,7 @@ + void fmpz_lll(fmpz_mat_t B, fmpz_mat_t U, const fmpz_lll_t fl) + + +-cdef extern from "fmpq.h": ++cdef extern from "flint/fmpq.h": + ctypedef struct fmpq_struct: + fmpz_struct num + fmpz_struct den +@@ -506,7 +506,7 @@ + void fmpq_next_signed_minimal(fmpq_t res, fmpq_t x) + void fmpq_harmonic_ui(fmpq_t res, ulong n) + +-cdef extern from "fmpq_poly.h": ++cdef extern from "flint/fmpq_poly.h": + ctypedef struct fmpq_poly_struct: + fmpz_struct * coeffs + fmpz_t den +@@ -620,7 +620,7 @@ + void fmpq_poly_compose_series(fmpq_poly_t res, fmpq_poly_t poly1, fmpq_poly_t poly2, long n) + void fmpq_poly_revert_series(fmpq_poly_t res, fmpq_poly_t poly1, long n) + +-cdef extern from "fmpq_mat.h": ++cdef extern from "flint/fmpq_mat.h": + ctypedef struct fmpq_mat_struct: + fmpq_struct * entries + long r +@@ -672,7 +672,7 @@ + long fmpq_mat_rref(fmpq_mat_t B, fmpq_mat_t A) + void fmpq_mat_transpose(fmpq_mat_t B, fmpq_mat_t A) + +-cdef extern from "arith.h": ++cdef extern from "flint/arith.h": + void arith_number_of_partitions(fmpz_t res, ulong n) + int arith_moebius_mu(fmpz_t n) + void arith_divisor_sigma(fmpz_t v, fmpz_t n, ulong k) diff --git a/gnu/packages/patches/totem-meson-compat.patch b/gnu/packages/patches/totem-meson-compat.patch new file mode 100644 index 0000000000..8557908dd0 --- /dev/null +++ b/gnu/packages/patches/totem-meson-compat.patch @@ -0,0 +1,14 @@ +Fix an error that occurs with Meson 0.50.0 and later: +"ERROR: Subdir keyword must not be an absolute path". + +--- a/src/meson.build 2019-03-15 00:10:26.882293850 +0100 ++++ b/src/meson.build 2019-03-15 00:10:54.312197229 +0100 +@@ -82,7 +82,7 @@ + + install_headers( + headers, +- subdir: join_paths(totem_includedir, totem_api_path) ++ install_dir: join_paths(totem_includedir, totem_api_path) + ) + + libtotem_player_sources = files( |