From 4e6f8a1442d04a4dd9066c4bda0a3c06cb4af5d3 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 4 May 2019 02:42:09 +1000 Subject: gnu: calibre: Update to 3.41.3. * gnu/packages/ebook.scm (calibre): Update to 3.41.3. [inputs]: Replace python2-cssutils by python2-css-parser. [snippet]: Modify. * gnu/packages/patches/calibre-use-packaged-feedparser.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove patch. Signed-off-by: Danny Milosavljevic --- gnu/local.mk | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index a0f40d13ae..d7d1a3fed6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -690,7 +690,6 @@ dist_patch_DATA = \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ - %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ -- cgit v1.2.3 From 15871b40872b9534a9dc3af9fda163601a360a51 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sun, 5 May 2019 14:04:02 +0200 Subject: gnu: calibre: Remove unrar test. * gnu/packages/patches/calibre-remove-test-unrar.patch: New file. * gnu/packages/ebook.scm (calibre)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Danny Milosavljevic --- gnu/local.mk | 1 + gnu/packages/ebook.scm | 3 ++- .../patches/calibre-remove-test-unrar.patch | 28 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/calibre-remove-test-unrar.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d7d1a3fed6..d5b7a2c5e5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -690,6 +690,7 @@ dist_patch_DATA = \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ + %D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index b26eacac52..79fa99cf4a 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -96,7 +96,8 @@ '(begin (delete-file "src/odf/thumbnail.py") #t)) - (patches (search-patches "calibre-no-updates-dialog.patch")))) + (patches (search-patches "calibre-no-updates-dialog.patch" + "calibre-remove-test-unrar.patch")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/patches/calibre-remove-test-unrar.patch b/gnu/packages/patches/calibre-remove-test-unrar.patch new file mode 100644 index 0000000000..4e5572d1a6 --- /dev/null +++ b/gnu/packages/patches/calibre-remove-test-unrar.patch @@ -0,0 +1,28 @@ +Unrar contains security vulnerabilities and has thus been removed from Guix. +From a16f97b02bd8afd0ec05c471e156f631f2cc6eec Mon Sep 17 00:00:00 2001 +From: Brendan Tildesley +Date: Tue, 26 Mar 2019 22:17:03 +1100 +Subject: [PATCH] Remove test_unrar. + +--- + src/calibre/test_build.py | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py +index d67afd20a6..709132ef17 100644 +--- a/src/calibre/test_build.py ++++ b/src/calibre/test_build.py +@@ -220,10 +220,6 @@ class BuildTest(unittest.TestCase): + from calibre.gui2.win_file_dialogs import test + test() + +- def test_unrar(self): +- from calibre.utils.unrar import test_basic +- test_basic() +- + @unittest.skipUnless(iswindows, 'WPD is windows only') + def test_wpd(self): + wpd = plugins['wpd'][0] +-- +2.21.0 + -- cgit v1.2.3 From f89f5abada5dce72a6b40b2310bc9b5b97a6f1a9 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 4 May 2019 02:42:21 +1000 Subject: gnu: calibre: Disable bs4 test. * gnu/packages/patches/calibre-remove-test-bs4.patch: New file. * gnu/packages/ebook.scm (calibre)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Danny Milosavljevic --- gnu/local.mk | 1 + gnu/packages/ebook.scm | 1 + gnu/packages/patches/calibre-remove-test-bs4.patch | 34 ++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 gnu/packages/patches/calibre-remove-test-bs4.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d5b7a2c5e5..9e31868281 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -690,6 +690,7 @@ dist_patch_DATA = \ %D%/packages/patches/boost-fix-icu-build.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ + %D%/packages/patches/calibre-remove-test-bs4.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 964fdd7b75..b5f8283996 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -97,6 +97,7 @@ (delete-file "src/odf/thumbnail.py") #t)) (patches (search-patches "calibre-no-updates-dialog.patch" + "calibre-remove-test-bs4.patch" ; TODO: fix test. "calibre-remove-test-unrar.patch")))) (build-system python-build-system) (native-inputs diff --git a/gnu/packages/patches/calibre-remove-test-bs4.patch b/gnu/packages/patches/calibre-remove-test-bs4.patch new file mode 100644 index 0000000000..77dd45d329 --- /dev/null +++ b/gnu/packages/patches/calibre-remove-test-bs4.patch @@ -0,0 +1,34 @@ +In my efforts to fix all Calibre tests, this test would always complain about +backports.functools_lru_cache not existing even after I packaged and added +python2-soupsieve as an input and confirmed it was in the +PYTHONPATH. Currently Calibre does not actually use it for anything other than +testing it's there, so I assume they will start using it in future Calibre +versions. + +From 2738dd42caebe55326c76922a12ba8740bdb22e7 Mon Sep 17 00:00:00 2001 +From: Brendan Tildesley +Date: Sat, 27 Apr 2019 00:42:39 +1000 +Subject: [PATCH] Remove test_bs4 + +--- + src/calibre/test_build.py | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py +index 73f1172e8c..07bdffd3e5 100644 +--- a/src/calibre/test_build.py ++++ b/src/calibre/test_build.py +@@ -73,10 +73,6 @@ class BuildTest(unittest.TestCase): + from html5_parser import parse + parse('

xxx') + +- def test_bs4(self): +- import soupsieve, bs4 +- del soupsieve, bs4 +- + def test_zeroconf(self): + if ispy3: + import zeroconf as z, ifaddr +-- +2.21.0 + -- cgit v1.2.3 From cbe399e7367eb2957026618689708b7d25500920 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Sat, 4 May 2019 02:42:23 +1000 Subject: gnu: calibre: Disable sqlite test. * gnu/packages/patches/calibre-remove-test-sqlite.patch: New file. * gnu/packages/ebook.scm (calibre)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Danny Milosavljevic --- gnu/local.mk | 1 + gnu/packages/ebook.scm | 1 + .../patches/calibre-remove-test-sqlite.patch | 29 ++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gnu/packages/patches/calibre-remove-test-sqlite.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 9e31868281..d6f52ae87e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -691,6 +691,7 @@ dist_patch_DATA = \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-bs4.patch \ + %D%/packages/patches/calibre-remove-test-sqlite.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/casync-renameat2-declaration.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index cf5a351314..242a2a2f46 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -98,6 +98,7 @@ #t)) (patches (search-patches "calibre-no-updates-dialog.patch" "calibre-remove-test-bs4.patch" ; TODO: fix test. + "calibre-remove-test-sqlite.patch" ; TODO: fix test. "calibre-remove-test-unrar.patch")))) (build-system python-build-system) (native-inputs diff --git a/gnu/packages/patches/calibre-remove-test-sqlite.patch b/gnu/packages/patches/calibre-remove-test-sqlite.patch new file mode 100644 index 0000000000..7bdd90874d --- /dev/null +++ b/gnu/packages/patches/calibre-remove-test-sqlite.patch @@ -0,0 +1,29 @@ +From a92e26359bd07743ab105819ed0b619e27e14017 Mon Sep 17 00:00:00 2001 +From: Brendan Tildesley +Date: Sat, 27 Apr 2019 03:30:53 +1000 +Subject: [PATCH] Disable test_sqlite. + +--- + src/calibre/test_build.py | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py +index 07bdffd3e5..740588c95b 100644 +--- a/src/calibre/test_build.py ++++ b/src/calibre/test_build.py +@@ -162,12 +162,6 @@ class BuildTest(unittest.TestCase): + au(x, 'strftime') + self.assertEqual(unicode_type(time.strftime(fmt.replace('%e', '%#d'), t)), x) + +- def test_sqlite(self): +- import sqlite3 +- conn = sqlite3.connect(':memory:') +- from calibre.library.sqlite import load_c_extensions +- self.assertTrue(load_c_extensions(conn, True), 'Failed to load sqlite extension') +- + def test_apsw(self): + import apsw + conn = apsw.Connection(':memory:') +-- +2.21.0 + -- cgit v1.2.3 From bdfc327639dd613f47fd21f7f809b2ea75b46d5f Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Sun, 5 May 2019 14:32:57 +0000 Subject: gnu: gcc: Add 9.1.0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gcc.scm (gcc-9): New variable. * gnu/packages/commencement.scm (gcc-toolchain-9): New variable. * gnu/packages/patches/gcc-9-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the patch. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/commencement.scm | 3 + gnu/packages/gcc.scm | 14 +++ .../patches/gcc-9-strmov-store-file-names.patch | 114 +++++++++++++++++++++ 4 files changed, 132 insertions(+) create mode 100644 gnu/packages/patches/gcc-9-strmov-store-file-names.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d6f52ae87e..1e544d5fb7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -816,6 +816,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ + %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ %D%/packages/patches/gd-CVE-2018-1000222.patch \ %D%/packages/patches/gd-CVE-2019-6977.patch \ diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index b07630a54d..a8ec677cee 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1085,4 +1085,7 @@ and binaries, plus debugging symbols in the @code{debug} output), and Binutils." (define-public gcc-toolchain-8 (make-gcc-toolchain gcc-8)) +(define-public gcc-toolchain-9 + (make-gcc-toolchain gcc-9)) + ;;; commencement.scm ends here diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index b9a9583410..eefce2737b 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -519,6 +519,20 @@ It also includes runtime support libraries for these languages."))) (patches (search-patches "gcc-8-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))))) +(define-public gcc-9 + (package + (inherit gcc-8) + (version "9.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "1817nc2bqdc251k0lpc51cimna7v68xjrnvqzvc50q3ax4s6i9kr")) + (patches (search-patches "gcc-9-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition ;; accordingly. diff --git a/gnu/packages/patches/gcc-9-strmov-store-file-names.patch b/gnu/packages/patches/gcc-9-strmov-store-file-names.patch new file mode 100644 index 0000000000..6705e19534 --- /dev/null +++ b/gnu/packages/patches/gcc-9-strmov-store-file-names.patch @@ -0,0 +1,114 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See +and . + +diff --git a/gcc/builtins.c b/gcc/builtins.c +index d37d73fc4a0..dac33d9d29a 100644 +--- a/gcc/builtins.c ++++ b/gcc/builtins.c +@@ -3282,6 +3282,58 @@ determine_block_size (tree len, rtx len_rtx, + GET_MODE_MASK (GET_MODE (len_rtx))); + } + ++extern void debug_tree (tree); ++ ++/* Return true if STR contains the string "/gnu/store". */ ++ ++bool ++store_reference_p (tree str) ++{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ { ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See . */ ++ str = DECL_INITIAL (str); ++ if (str == NULL_TREE) ++ return false; ++ } ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Try to verify that the sizes and lengths of the arguments to a string + manipulation function given by EXP are within valid bounds and that + the operation does not lead to buffer overflow or read past the end. +@@ -3839,6 +3891,13 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, + unsigned HOST_WIDE_INT max_size; + unsigned HOST_WIDE_INT probable_max_size; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ . */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; +diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c +index f30818042ee..56b592f9335 100644 +--- a/gcc/gimple-fold.c ++++ b/gcc/gimple-fold.c +@@ -656,6 +656,8 @@ var_decl_component_p (tree var) + && TREE_CODE (TREE_OPERAND (inner, 0)) == ADDR_EXPR)); + } + ++extern bool store_reference_p (tree); ++ + /* Return TRUE if the SIZE argument, representing the size of an + object, is in a range of values of which exactly zero is valid. */ + +@@ -748,6 +750,9 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, + off0 = build_int_cst (build_pointer_type_for_mode (char_type_node, + ptr_mode, true), 0); + ++ if (store_reference_p (src)) ++ return false; ++ + /* If we can perform the copy efficiently with first doing all loads + and then all stores inline it that way. Currently efficiently + means that we can load all the memory into a single integer -- cgit v1.2.3 From 83b0a7f41bccb7b46f1d443e80a22c61a3ff92bc Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Sun, 5 May 2019 14:33:46 +0000 Subject: gnu: cross-base: Apply gcc 8 patch to gcc >= 8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cross-base.scm (cross-gcc): Apply gcc 8 patch to gcc >= 8. * gnu/packages/patches/gcc-8-cross-environment-variables.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the patch. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/cross-base.scm | 7 ++- .../gcc-8-cross-environment-variables.patch | 67 ++++++++++++++++++++++ 3 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/gcc-8-cross-environment-variables.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1e544d5fb7..d67a2a5151 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -815,6 +815,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ + %D%/packages/patches/gcc-8-cross-environment-variables.patch \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index bb3d6d916a..25caacb723 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -205,9 +205,10 @@ target that libc." (patches (append (origin-patches (package-source xgcc)) - (cons (if (version>=? (package-version xgcc) "6.0") - (search-patch "gcc-6-cross-environment-variables.patch") - (search-patch "gcc-cross-environment-variables.patch")) + (cons (cond + ((version>=? (package-version xgcc) "8.0") (search-patch "gcc-8-cross-environment-variables.patch")) + ((version>=? (package-version xgcc) "6.0") (search-patch "gcc-6-cross-environment-variables.patch")) + (else (search-patch "gcc-cross-environment-variables.patch"))) (cross-gcc-patches target)))) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/patches/gcc-8-cross-environment-variables.patch b/gnu/packages/patches/gcc-8-cross-environment-variables.patch new file mode 100644 index 0000000000..0ebf5705c9 --- /dev/null +++ b/gnu/packages/patches/gcc-8-cross-environment-variables.patch @@ -0,0 +1,67 @@ +Search path environment variables for cross-compilers. See the discussion +at . + +Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed +at . + +diff --git a/gcc/gcc.c b/gcc/gcc.c +index a716f708259..dc7862f413a 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -4342,7 +4342,7 @@ process_command (unsigned int decoded_options_count, + } + + temp = env.get (LIBRARY_PATH_ENV); +- if (temp && *cross_compile == '0') ++ if (temp) + { + const char *startp, *endp; + char *nstore = (char *) alloca (strlen (temp) + 3); +diff --git a/gcc/incpath.c b/gcc/incpath.c +index b11c6a57939..a66a94a04e5 100644 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -472,8 +472,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot, + int stdinc, int cxx_stdinc, int verbose) + { + static const char *const lang_env_vars[] = +- { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", +- "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" }; ++ { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH", ++ "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" }; + cpp_options *cpp_opts = cpp_get_options (pfile); + size_t idx = (cpp_opts->objc ? 2: 0); + +@@ -484,7 +484,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot, + + /* CPATH and language-dependent environment variables may add to the + include chain. */ +- add_env_var_paths ("CPATH", INC_BRACKET); ++ add_env_var_paths ("CROSS_CPATH", INC_BRACKET); + add_env_var_paths (lang_env_vars[idx], INC_SYSTEM); + + target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc); +diff --git a/gcc/system.h b/gcc/system.h +index 4abc321c71d..d6186476024 100644 +--- a/gcc/system.h ++++ b/gcc/system.h +@@ -1209,4 +1209,6 @@ helper_const_non_const_cast (const char *p) + void qsort_chk (void *, size_t, size_t, int (*)(const void *, const void *)); + #endif + ++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH" ++ + #endif /* ! GCC_SYSTEM_H */ +diff --git a/gcc/tlink.c b/gcc/tlink.c +index ec20bd2fa0f..cd17bdce004 100644 +--- a/gcc/tlink.c ++++ b/gcc/tlink.c +@@ -456,7 +456,7 @@ recompile_files (void) + file *f; + + putenv (xstrdup ("COMPILER_PATH=")); +- putenv (xstrdup ("LIBRARY_PATH=")); ++ putenv (xstrdup (LIBRARY_PATH_ENV "=")); + + while ((f = file_pop ()) != NULL) + { -- cgit v1.2.3 From 0e293f75f1e41876a54f87c131d4a37408b70f56 Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Sun, 5 May 2019 14:35:13 +0000 Subject: gnu: gcc@9: Fix limits.h include for cross builds. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows us to supply gcc-9 as an optional argument to cross-gcc, successfully constructing gcc-9-based cross-compilers. * gnu/packages/gcc.scm (gcc-9)[source](patches): Add "gcc-9-asan-fix-limits-include.patch". * gnu/packages/patches/gcc-9-asan-fix-limits-include.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the patch. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 1 + gnu/packages/patches/gcc-9-asan-fix-limits-include.patch | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 gnu/packages/patches/gcc-9-asan-fix-limits-include.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d67a2a5151..eabf07e557 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -817,6 +817,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ %D%/packages/patches/gcc-8-cross-environment-variables.patch \ %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ + %D%/packages/patches/gcc-9-asan-fix-limits-include.patch \ %D%/packages/patches/gcc-9-strmov-store-file-names.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ %D%/packages/patches/gd-CVE-2018-1000222.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index eefce2737b..50c58c1828 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -531,6 +531,7 @@ It also includes runtime support libraries for these languages."))) (base32 "1817nc2bqdc251k0lpc51cimna7v68xjrnvqzvc50q3ax4s6i9kr")) (patches (search-patches "gcc-9-strmov-store-file-names.patch" + "gcc-9-asan-fix-limits-include.patch" "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update diff --git a/gnu/packages/patches/gcc-9-asan-fix-limits-include.patch b/gnu/packages/patches/gcc-9-asan-fix-limits-include.patch new file mode 100644 index 0000000000..2f5ce7c697 --- /dev/null +++ b/gnu/packages/patches/gcc-9-asan-fix-limits-include.patch @@ -0,0 +1,13 @@ +diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc +index d92d0596b7c..7926536a0c3 100644 +--- a/libsanitizer/asan/asan_linux.cc ++++ b/libsanitizer/asan/asan_linux.cc +@@ -30,7 +30,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include -- cgit v1.2.3 From 6426a8fb6c350793939d894962e108f489568cb9 Mon Sep 17 00:00:00 2001 From: Diego Nicola Barbato Date: Sun, 28 Apr 2019 14:48:47 +0200 Subject: gnu: slim: Allow customisation of Xorg display. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously SLiM could only start on display :0.0. This change makes it possible to run multiple instances of SLiM at the same time. * gnu/packages/patches/slim-display.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/display-managers.scm (slim): Use it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/display-managers.scm | 3 +- gnu/packages/patches/slim-display.patch | 75 +++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/slim-display.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index eabf07e557..3d3b29b135 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1271,6 +1271,7 @@ dist_patch_DATA = \ %D%/packages/patches/slim-sigusr1.patch \ %D%/packages/patches/slim-reset.patch \ %D%/packages/patches/slim-login.patch \ + %D%/packages/patches/slim-display.patch \ %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 15e7971b4f..29d8ae4eb9 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -240,7 +240,8 @@ GTK+, lets you select a desktop session and log in to it.") "slim-reset.patch" "slim-login.patch" "slim-session.patch" - "slim-sigusr1.patch")))) + "slim-sigusr1.patch" + "slim-display.patch")))) (build-system cmake-build-system) (inputs `(("linux-pam" ,linux-pam) ("libpng" ,libpng) diff --git a/gnu/packages/patches/slim-display.patch b/gnu/packages/patches/slim-display.patch new file mode 100644 index 0000000000..f68604a94b --- /dev/null +++ b/gnu/packages/patches/slim-display.patch @@ -0,0 +1,75 @@ +Add "display_name" configuration option and use its value instead of +the hard coded one. + +Patch by Diego N. Barbato + +--- a/app.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ b/app.cpp 2019-04-27 13:48:23.479133531 +0200 +@@ -190,7 +190,13 @@ + } + + void App::Run() { +- DisplayName = DISPLAY; ++ /* Read configuration */ ++ cfg = new Cfg; ++ char *cfgfile = getenv("SLIM_CFGFILE"); ++ if (!cfgfile) cfgfile = CFGFILE; ++ cfg->readConf(cfgfile); ++ ++ DisplayName = cfg->getOption("display_name").c_str(); + + #ifdef XNEST_DEBUG + char* p = getenv("DISPLAY"); +@@ -200,11 +206,7 @@ + } + #endif + +- /* Read configuration and theme */ +- cfg = new Cfg; +- char *cfgfile = getenv("SLIM_CFGFILE"); +- if (!cfgfile) cfgfile = CFGFILE; +- cfg->readConf(cfgfile); ++ /* Read theme */ + string themebase = ""; + string themefile = ""; + string themedir = ""; +@@ -911,9 +913,7 @@ + static const int MAX_XSERVER_ARGS = 256; + static char* server[MAX_XSERVER_ARGS+2] = { NULL }; + server[0] = (char *)cfg->getOption("default_xserver").c_str(); +- string argOption = cfg->getOption("xserver_arguments"); +- /* Add mandatory -xauth option */ +- argOption = argOption + " -auth " + cfg->getOption("authfile"); ++ string argOption = cfg->getOption("display_name") + " " + cfg->getOption("xserver_arguments") + " -auth " + cfg->getOption("authfile"); + char* args = new char[argOption.length()+2]; /* NULL plus vt */ + strcpy(args, argOption.c_str()); + +@@ -1233,7 +1233,7 @@ + authfile = cfg->getOption("authfile"); + remove(authfile.c_str()); + putenv(StrConcat("XAUTHORITY=", authfile.c_str())); +- Util::add_mcookie(mcookie, ":0", cfg->getOption("xauth_path"), ++ Util::add_mcookie(mcookie, cfg->getOption("display_name").c_str(), cfg->getOption("xauth_path"), + authfile); + } + +--- a/cfg.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ b/cfg.cpp 2019-04-27 13:49:40.511773743 +0200 +@@ -31,6 +31,7 @@ + /* Configuration options */ + options.insert(option("default_path","/bin:/usr/bin:/usr/local/bin")); + options.insert(option("default_xserver","/usr/bin/X")); ++ options.insert(option("display_name",":0.0")); + options.insert(option("xserver_arguments","")); + options.insert(option("numlock","")); + options.insert(option("daemon","")); +--- a/switchuser.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ b/switchuser.cpp 2019-04-27 13:50:19.380096651 +0200 +@@ -54,6 +54,6 @@ + string home = string(Pw->pw_dir); + string authfile = home + "/.Xauthority"; + remove(authfile.c_str()); +- Util::add_mcookie(mcookie, ":0", cfg->getOption("xauth_path"), ++ Util::add_mcookie(mcookie, displayName.c_str(), cfg->getOption("xauth_path"), + authfile); + } -- cgit v1.2.3 From 3ec29587b550b6c3590edcb651fa8f7688558d50 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 8 May 2019 19:43:05 +0300 Subject: gnu: efl: Update to 1.22.2. * gnu/packages/enlightenment.scm (efl): Update to 1.22.2. [propagated-inputs]: Move libsndfile, pulseaudio ... [inputs]: ... to here. [source]: Remove patch. * gnu/packages/patches/efl-mesa-compat.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/enlightenment.scm | 15 +++++++-------- gnu/packages/patches/efl-mesa-compat.patch | 21 --------------------- 3 files changed, 7 insertions(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/efl-mesa-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3d3b29b135..3f97397c4a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -745,7 +745,6 @@ dist_patch_DATA = \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ - %D%/packages/patches/efl-mesa-compat.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/einstein-build.patch \ diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 790be1a59e..a70193c8d4 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2015 Daniel Pimentel -;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2017 ng0 ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Timo Eisenmann @@ -65,18 +65,17 @@ (define-public efl (package (name "efl") - (version "1.21.1") + (version "1.22.2") (source (origin (method url-fetch) (uri (string-append "https://download.enlightenment.org/rel/libs/efl/efl-" version ".tar.xz")) - (patches (search-patches "efl-mesa-compat.patch")) (sha256 (base32 - "0a5907h896pvpix7a6idc2fspzy6d78xrzf84k8y9fyvnd14nxs4")))) - (outputs '("out" ; 49 MB - "include")) ; 17 MB + "1l0wdgzxqm2y919277b1p9d37xzg808zwxxaw0nn44arh8gqk68n")))) + (outputs '("out" ; 53 MB + "include")) ; 21 MB (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -91,6 +90,7 @@ ("libjpeg" ,libjpeg) ("libraw" ,libraw) ("librsvg" ,librsvg) + ("libsndfile" ,libsndfile) ("libspectre" ,libspectre) ("libtiff" ,libtiff) ("libwebp" ,libwebp) @@ -113,6 +113,7 @@ ("openjpeg" ,openjpeg-1) ("poppler" ,poppler) ("printproto" ,printproto) + ("pulseaudio" ,pulseaudio) ("wayland-protocols" ,wayland-protocols) ("xinput" ,xinput) ("xpr" ,xpr) @@ -131,11 +132,9 @@ ("luajit" ,luajit) ; elua.pc, evas.pc, evas-cxx.pc ("libinput" ,libinput-minimal) ; elput.pc ("libpng" ,libpng) ; evas.pc, evas-cxx.pc - ("libsndfile" ,libsndfile) ; ecore-audio.pc, ecore-audio-cxx.pc ("libxkbcommon" ,libxkbcommon) ; ecore-wl2.pc, elementary.pc, elput.pc ("mesa" ,mesa) ; ecore-drm2.pc ("openssl" ,openssl) ; ecore-con.pc, eet.pc, eet-cxx.pc, emile.pc - ("pulseaudio" ,pulseaudio) ; ecore-audio.pc, ecore-audio-cxx.pc ("util-linux" ,util-linux) ; mount: eeze.pc ("wayland" ,wayland) ; ecore-wl2.pc, elementary.pc ("zlib" ,zlib))) ; eet.pc, eet-cxx.pc, emile.pc diff --git a/gnu/packages/patches/efl-mesa-compat.patch b/gnu/packages/patches/efl-mesa-compat.patch deleted file mode 100644 index 6fe7b38428..0000000000 --- a/gnu/packages/patches/efl-mesa-compat.patch +++ /dev/null @@ -1,21 +0,0 @@ -Fix build on 32-bit architectures with Mesa 18.3. Patch taken from upstream: - -https://git.enlightenment.org/core/efl.git/commit/?id=0d2b624f1e24240a1c4e651aa1cfe9a8dd10a573 - -diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h -index b6b642400f..4f67b1695f 100644 ---- a/src/lib/evas/Evas_GL.h -+++ b/src/lib/evas/Evas_GL.h -@@ -4272,9 +4272,11 @@ typedef signed int GLfixed; // Changed khronos_int32_t - - #ifndef GL_ES_VERSION_2_0 - /* GL types for handling large vertex buffer objects */ --#include -+# ifndef GL_VERSION_1_5 -+# include - typedef ptrdiff_t GLintptr; // Changed khronos_intptr_t - typedef ptrdiff_t GLsizeiptr; // Changed khronos_ssize_t -+# endif - #endif - - /* Some definitions from GLES 3.0. -- cgit v1.2.3 From d13f3a033e42b4a14d581390b8fa36cd1db7d023 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 6 Dec 2018 12:22:34 +0100 Subject: gnu: gnome-tweak-tool: Update to 3.28.1. Fixes . * gnu/packages/gnome.scm (gnome-tweak-tool): Deprecate and rename... (gnome-tweaks): ...to this. Update to 3.28.1. [build-system]: Use meson-build-system. [arguments]: Adjust configure flags; pass glib-or-gtk? flag; remove custom phases that are now provided by the meson-build-system; add phases "wrap" and "wrap-gi-typelib". [native-inputs]: Remove meson-for-build and ninja. [home-page]: Update. [description]: Use "Tweaks" instead of "Tweak Tool". * gnu/packages/patches/gnome-tweak-tool-search-paths.patch: Rename file... * gnu/packages/patches/gnome-tweaks-search-paths.patch: ...to this. * gnu/local.mk (dist_patch_DATA): Update patch file name. --- gnu/local.mk | 2 +- gnu/packages/gnome.scm | 66 ++++++++++------------ .../patches/gnome-tweak-tool-search-paths.patch | 52 ----------------- .../patches/gnome-tweaks-search-paths.patch | 52 +++++++++++++++++ 4 files changed, 83 insertions(+), 89 deletions(-) delete mode 100644 gnu/packages/patches/gnome-tweak-tool-search-paths.patch create mode 100644 gnu/packages/patches/gnome-tweaks-search-paths.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3f97397c4a..133293aad3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -862,7 +862,7 @@ dist_patch_DATA = \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnome-shell-theme.patch \ - %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ + %D%/packages/patches/gnome-tweaks-search-paths.patch \ %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7c40a39f01..e1d2a65ccb 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -6777,51 +6777,41 @@ fit the GNOME desktop.") existing databases over the internet.") (license license:gpl3+))) -(define-public gnome-tweak-tool +(define-public gnome-tweaks (package - (name "gnome-tweak-tool") - (version "3.26.4") + (name "gnome-tweaks") + (version "3.28.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/gnome-tweak-tool/" + (uri (string-append "mirror://gnome/sources/gnome-tweaks/" (version-major+minor version) "/" - "gnome-tweak-tool-" version ".tar.xz")) - (patches (list - (search-patch "gnome-tweak-tool-search-paths.patch"))) + "gnome-tweaks-" version ".tar.xz")) + (patches + (list (search-patch "gnome-tweaks-search-paths.patch"))) (sha256 (base32 - "1pq5a0kzh1sz7s7ax5c7p6212k9d51nk5bfvjfyqn99cs928187x")))) - (build-system glib-or-gtk-build-system) + "1p5xydr0haz4389h6dvvbna6i1mipdzvmlfksnv0jqfvfs9sy6fp")))) + (build-system meson-build-system) (arguments - `(#:configure-flags '("--localstatedir=/tmp" - "--sysconfdir=/tmp") + `(#:glib-or-gtk? #t + #:configure-flags '("-Dlocalstatedir=/tmp" + "-Dsysconfdir=/tmp") #:imported-modules ((guix build python-build-system) - ,@%glib-or-gtk-build-system-modules) - #:phases (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key outputs #:allow-other-keys) - (invoke "meson" "build" - "--prefix" (assoc-ref outputs "out")))) - (replace 'check - (lambda _ (invoke "ninja" "-C" "build" "test"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "ninja" "-C" "build" "install"))) - (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) - (wrap-program (string-append out "/bin/gnome-tweak-tool") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t)) - (add-after 'install 'wrap - (@@ (guix build python-build-system) wrap))))) + ,@%meson-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap + (@@ (guix build python-build-system) wrap)) + (add-after 'wrap 'wrap-gi-typelib + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/gnome-tweaks") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t))))) (native-inputs `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache ("intltool" ,intltool) - ("meson" ,meson-for-build) - ("ninja" ,ninja) ("pkg-config" ,pkg-config))) (inputs `(("gnome-desktop" ,gnome-desktop) @@ -6834,14 +6824,18 @@ existing databases over the internet.") ("python" ,python) ("python-pygobject" ,python-pygobject))) (synopsis "Customize advanced GNOME 3 options") - (home-page "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool") + (home-page "https://wiki.gnome.org/Apps/Tweaks") (description - "GNOME Tweak Tool allows adjusting advanced configuration settings in + "GNOME Tweaks allows adjusting advanced configuration settings in GNOME 3. This includes things like the fonts used in user interface elements, alternative user interface themes, changes in window management behavior, GNOME Shell appearance and extension, etc.") (license license:gpl3+))) +;; This package has been renamed by upstream. +(define-public gnome-tweak-tool + (deprecated-package "gnome-tweak-tool" gnome-tweaks)) + (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") diff --git a/gnu/packages/patches/gnome-tweak-tool-search-paths.patch b/gnu/packages/patches/gnome-tweak-tool-search-paths.patch deleted file mode 100644 index 027c61b3af..0000000000 --- a/gnu/packages/patches/gnome-tweak-tool-search-paths.patch +++ /dev/null @@ -1,52 +0,0 @@ -Gnome-tweak-tool does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it -assumes that schemas are installed in one global directory -(GSETTINGS_SCHEMA_DIR/gsettingsschemadir). - -Guix/GuixSD uses a different directory for every gir package and has -packages pick-up files using XDG_DATA_DIRS. - -Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537 -janneke@gnu.org - ---- gnome-tweak-tool-3.18.1.orig/gtweak/gsettings.py 2015-04-08 15:21:32.000000000 +0200 -+++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py 2016-04-03 11:26:38.658482704 +0200 -@@ -16,7 +16,8 @@ - # along with gnome-tweak-tool. If not, see . - - import logging --import os.path -+import os -+import sys - import xml.dom.minidom - import gettext - -@@ -31,6 +32,13 @@ - class GSettingsMissingError(Exception): - pass - -+def file_from_path(path, file_name): -+ for dir in path: -+ f = os.path.join(dir, file_name) -+ if os.path.exists(f): -+ return f -+ return None -+ - class _GSettingsSchema: - def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): - if not schema_dir: -@@ -38,9 +46,14 @@ - if not schema_filename: - schema_filename = schema_name + ".gschema.xml" - -+ schema_prefix = os.path.join('glib-2.0', 'schemas') - schema_path = os.path.join(schema_dir, schema_filename) - if not os.path.exists(schema_path): -- logging.critical("Could not find schema %s" % schema_path) -+ schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename) -+ if not (schema_path and os.path.exists(schema_path)): -+ schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename)) -+ if not (schema_path and os.path.exists(schema_path)): -+ logging.critical("Could not find schema %s" % schema_filename) - assert(False) - - self._schema_name = schema_name diff --git a/gnu/packages/patches/gnome-tweaks-search-paths.patch b/gnu/packages/patches/gnome-tweaks-search-paths.patch new file mode 100644 index 0000000000..e7524fa675 --- /dev/null +++ b/gnu/packages/patches/gnome-tweaks-search-paths.patch @@ -0,0 +1,52 @@ +Gnome-tweaks does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it +assumes that schemas are installed in one global directory +(GSETTINGS_SCHEMA_DIR/gsettingsschemadir). + +Guix/GuixSD uses a different directory for every gir package and has +packages pick-up files using XDG_DATA_DIRS. + +Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537 +janneke@gnu.org + +--- gnome-tweak-3.18.1.orig/gtweak/gsettings.py 2015-04-08 15:21:32.000000000 +0200 ++++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py 2016-04-03 11:26:38.658482704 +0200 +@@ -16,7 +16,8 @@ + # along with gnome-tweak-tool. If not, see . + + import logging +-import os.path ++import os ++import sys + import xml.dom.minidom + import gettext + +@@ -31,6 +32,13 @@ + class GSettingsMissingError(Exception): + pass + ++def file_from_path(path, file_name): ++ for dir in path: ++ f = os.path.join(dir, file_name) ++ if os.path.exists(f): ++ return f ++ return None ++ + class _GSettingsSchema: + def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): + if not schema_dir: +@@ -38,9 +46,14 @@ + if not schema_filename: + schema_filename = schema_name + ".gschema.xml" + ++ schema_prefix = os.path.join('glib-2.0', 'schemas') + schema_path = os.path.join(schema_dir, schema_filename) + if not os.path.exists(schema_path): +- logging.critical("Could not find schema %s" % schema_path) ++ schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename) ++ if not (schema_path and os.path.exists(schema_path)): ++ schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename)) ++ if not (schema_path and os.path.exists(schema_path)): ++ logging.critical("Could not find schema %s" % schema_filename) + assert(False) + + self._schema_name = schema_name -- cgit v1.2.3 From 76269f6bc4200ef79aa80a8a6160ae269c2a36c9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 13 May 2019 23:30:51 +0200 Subject: installer: Use 'glibc-supported-locales'. The list of locales supported by glibc is now built from source. * gnu/installer/locale.scm (locale-string->locale): Add optional 'codeset' parameter and honor it. (supported-locales->locales): Rewrite to 'read' from SUPPORTED-LOCALES. * gnu/installer.scm (compute-locale-step): Pass the result of 'glibc-supported-locales' instead of the "aux-files/SUPPORTED" file. * gnu/installer/aux-files/SUPPORTED: Remove. * gnu/local.mk (dist_installer_DATA): Remove it. --- gnu/installer.scm | 3 +- gnu/installer/aux-files/SUPPORTED | 484 -------------------------------------- gnu/installer/locale.scm | 24 +- gnu/local.mk | 3 +- 4 files changed, 13 insertions(+), 501 deletions(-) delete mode 100644 gnu/installer/aux-files/SUPPORTED (limited to 'gnu/local.mk') diff --git a/gnu/installer.scm b/gnu/installer.scm index fe2841397e..3dd76707bf 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages package-management) #:use-module (gnu packages xorg) + #:use-module (gnu system locale) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:export (installer-program)) @@ -118,7 +119,7 @@ been performed at build time." (string-append #$file "/" #$name ".go"))) (let* ((supported-locales #~(supported-locales->locales - #$(local-file "installer/aux-files/SUPPORTED"))) + #+(glibc-supported-locales))) (iso-codes #~(string-append #$iso-codes "/share/iso-codes/json/")) (iso639-3 #~(string-append #$iso-codes "iso_639-3.json")) (iso639-5 #~(string-append #$iso-codes "iso_639-5.json")) diff --git a/gnu/installer/aux-files/SUPPORTED b/gnu/installer/aux-files/SUPPORTED deleted file mode 100644 index 24aae1e089..0000000000 --- a/gnu/installer/aux-files/SUPPORTED +++ /dev/null @@ -1,484 +0,0 @@ -aa_DJ.UTF-8 UTF-8 -aa_DJ ISO-8859-1 -aa_ER UTF-8 -aa_ER@saaho UTF-8 -aa_ET UTF-8 -af_ZA.UTF-8 UTF-8 -af_ZA ISO-8859-1 -agr_PE UTF-8 -ak_GH UTF-8 -am_ET UTF-8 -an_ES.UTF-8 UTF-8 -an_ES ISO-8859-15 -anp_IN UTF-8 -ar_AE.UTF-8 UTF-8 -ar_AE ISO-8859-6 -ar_BH.UTF-8 UTF-8 -ar_BH ISO-8859-6 -ar_DZ.UTF-8 UTF-8 -ar_DZ ISO-8859-6 -ar_EG.UTF-8 UTF-8 -ar_EG ISO-8859-6 -ar_IN UTF-8 -ar_IQ.UTF-8 UTF-8 -ar_IQ ISO-8859-6 -ar_JO.UTF-8 UTF-8 -ar_JO ISO-8859-6 -ar_KW.UTF-8 UTF-8 -ar_KW ISO-8859-6 -ar_LB.UTF-8 UTF-8 -ar_LB ISO-8859-6 -ar_LY.UTF-8 UTF-8 -ar_LY ISO-8859-6 -ar_MA.UTF-8 UTF-8 -ar_MA ISO-8859-6 -ar_OM.UTF-8 UTF-8 -ar_OM ISO-8859-6 -ar_QA.UTF-8 UTF-8 -ar_QA ISO-8859-6 -ar_SA.UTF-8 UTF-8 -ar_SA ISO-8859-6 -ar_SD.UTF-8 UTF-8 -ar_SD ISO-8859-6 -ar_SS UTF-8 -ar_SY.UTF-8 UTF-8 -ar_SY ISO-8859-6 -ar_TN.UTF-8 UTF-8 -ar_TN ISO-8859-6 -ar_YE.UTF-8 UTF-8 -ar_YE ISO-8859-6 -ayc_PE UTF-8 -az_AZ UTF-8 -az_IR UTF-8 -as_IN UTF-8 -ast_ES.UTF-8 UTF-8 -ast_ES ISO-8859-15 -be_BY.UTF-8 UTF-8 -be_BY CP1251 -be_BY@latin UTF-8 -bem_ZM UTF-8 -ber_DZ UTF-8 -ber_MA UTF-8 -bg_BG.UTF-8 UTF-8 -bg_BG CP1251 -bhb_IN.UTF-8 UTF-8 -bho_IN UTF-8 -bho_NP UTF-8 -bi_VU UTF-8 -bn_BD UTF-8 -bn_IN UTF-8 -bo_CN UTF-8 -bo_IN UTF-8 -br_FR.UTF-8 UTF-8 -br_FR ISO-8859-1 -br_FR@euro ISO-8859-15 -brx_IN UTF-8 -bs_BA.UTF-8 UTF-8 -bs_BA ISO-8859-2 -byn_ER UTF-8 -ca_AD.UTF-8 UTF-8 -ca_AD ISO-8859-15 -ca_ES.UTF-8 UTF-8 -ca_ES ISO-8859-1 -ca_ES@euro ISO-8859-15 -ca_ES@valencia UTF-8 -ca_FR.UTF-8 UTF-8 -ca_FR ISO-8859-15 -ca_IT.UTF-8 UTF-8 -ca_IT ISO-8859-15 -ce_RU UTF-8 -chr_US UTF-8 -cmn_TW UTF-8 -crh_UA UTF-8 -cs_CZ.UTF-8 UTF-8 -cs_CZ ISO-8859-2 -csb_PL UTF-8 -cv_RU UTF-8 -cy_GB.UTF-8 UTF-8 -cy_GB ISO-8859-14 -da_DK.UTF-8 UTF-8 -da_DK ISO-8859-1 -de_AT.UTF-8 UTF-8 -de_AT ISO-8859-1 -de_AT@euro ISO-8859-15 -de_BE.UTF-8 UTF-8 -de_BE ISO-8859-1 -de_BE@euro ISO-8859-15 -de_CH.UTF-8 UTF-8 -de_CH ISO-8859-1 -de_DE.UTF-8 UTF-8 -de_DE ISO-8859-1 -de_DE@euro ISO-8859-15 -de_IT.UTF-8 UTF-8 -de_IT ISO-8859-1 -de_LI.UTF-8 UTF-8 -de_LU.UTF-8 UTF-8 -de_LU ISO-8859-1 -de_LU@euro ISO-8859-15 -doi_IN UTF-8 -dv_MV UTF-8 -dz_BT UTF-8 -el_GR.UTF-8 UTF-8 -el_GR ISO-8859-7 -el_GR@euro ISO-8859-7 -el_CY.UTF-8 UTF-8 -el_CY ISO-8859-7 -en_AG UTF-8 -en_AU.UTF-8 UTF-8 -en_AU ISO-8859-1 -en_BW.UTF-8 UTF-8 -en_BW ISO-8859-1 -en_CA.UTF-8 UTF-8 -en_CA ISO-8859-1 -en_DK.UTF-8 UTF-8 -en_DK ISO-8859-1 -en_GB.UTF-8 UTF-8 -en_GB ISO-8859-1 -en_HK.UTF-8 UTF-8 -en_HK ISO-8859-1 -en_IE.UTF-8 UTF-8 -en_IE ISO-8859-1 -en_IE@euro ISO-8859-15 -en_IL UTF-8 -en_IN UTF-8 -en_NG UTF-8 -en_NZ.UTF-8 UTF-8 -en_NZ ISO-8859-1 -en_PH.UTF-8 UTF-8 -en_PH ISO-8859-1 -en_SC.UTF-8 UTF-8 -en_SG.UTF-8 UTF-8 -en_SG ISO-8859-1 -en_US.UTF-8 UTF-8 -en_US ISO-8859-1 -en_ZA.UTF-8 UTF-8 -en_ZA ISO-8859-1 -en_ZM UTF-8 -en_ZW.UTF-8 UTF-8 -en_ZW ISO-8859-1 -eo UTF-8 -es_AR.UTF-8 UTF-8 -es_AR ISO-8859-1 -es_BO.UTF-8 UTF-8 -es_BO ISO-8859-1 -es_CL.UTF-8 UTF-8 -es_CL ISO-8859-1 -es_CO.UTF-8 UTF-8 -es_CO ISO-8859-1 -es_CR.UTF-8 UTF-8 -es_CR ISO-8859-1 -es_CU UTF-8 -es_DO.UTF-8 UTF-8 -es_DO ISO-8859-1 -es_EC.UTF-8 UTF-8 -es_EC ISO-8859-1 -es_ES.UTF-8 UTF-8 -es_ES ISO-8859-1 -es_ES@euro ISO-8859-15 -es_GT.UTF-8 UTF-8 -es_GT ISO-8859-1 -es_HN.UTF-8 UTF-8 -es_HN ISO-8859-1 -es_MX.UTF-8 UTF-8 -es_MX ISO-8859-1 -es_NI.UTF-8 UTF-8 -es_NI ISO-8859-1 -es_PA.UTF-8 UTF-8 -es_PA ISO-8859-1 -es_PE.UTF-8 UTF-8 -es_PE ISO-8859-1 -es_PR.UTF-8 UTF-8 -es_PR ISO-8859-1 -es_PY.UTF-8 UTF-8 -es_PY ISO-8859-1 -es_SV.UTF-8 UTF-8 -es_SV ISO-8859-1 -es_US.UTF-8 UTF-8 -es_US ISO-8859-1 -es_UY.UTF-8 UTF-8 -es_UY ISO-8859-1 -es_VE.UTF-8 UTF-8 -es_VE ISO-8859-1 -et_EE.UTF-8 UTF-8 -et_EE ISO-8859-1 -et_EE.ISO-8859-15 ISO-8859-15 -eu_ES.UTF-8 UTF-8 -eu_ES ISO-8859-1 -eu_ES@euro ISO-8859-15 -fa_IR UTF-8 -ff_SN UTF-8 -fi_FI.UTF-8 UTF-8 -fi_FI ISO-8859-1 -fi_FI@euro ISO-8859-15 -fil_PH UTF-8 -fo_FO.UTF-8 UTF-8 -fo_FO ISO-8859-1 -fr_BE.UTF-8 UTF-8 -fr_BE ISO-8859-1 -fr_BE@euro ISO-8859-15 -fr_CA.UTF-8 UTF-8 -fr_CA ISO-8859-1 -fr_CH.UTF-8 UTF-8 -fr_CH ISO-8859-1 -fr_FR.UTF-8 UTF-8 -fr_FR ISO-8859-1 -fr_FR@euro ISO-8859-15 -fr_LU.UTF-8 UTF-8 -fr_LU ISO-8859-1 -fr_LU@euro ISO-8859-15 -fur_IT UTF-8 -fy_NL UTF-8 -fy_DE UTF-8 -ga_IE.UTF-8 UTF-8 -ga_IE ISO-8859-1 -ga_IE@euro ISO-8859-15 -gd_GB.UTF-8 UTF-8 -gd_GB ISO-8859-15 -gez_ER UTF-8 -gez_ER@abegede UTF-8 -gez_ET UTF-8 -gez_ET@abegede UTF-8 -gl_ES.UTF-8 UTF-8 -gl_ES ISO-8859-1 -gl_ES@euro ISO-8859-15 -gu_IN UTF-8 -gv_GB.UTF-8 UTF-8 -gv_GB ISO-8859-1 -ha_NG UTF-8 -hak_TW UTF-8 -he_IL.UTF-8 UTF-8 -he_IL ISO-8859-8 -hi_IN UTF-8 -hif_FJ UTF-8 -hne_IN UTF-8 -hr_HR.UTF-8 UTF-8 -hr_HR ISO-8859-2 -hsb_DE ISO-8859-2 -hsb_DE.UTF-8 UTF-8 -ht_HT UTF-8 -hu_HU.UTF-8 UTF-8 -hu_HU ISO-8859-2 -hy_AM UTF-8 -hy_AM.ARMSCII-8 ARMSCII-8 -ia_FR UTF-8 -id_ID.UTF-8 UTF-8 -id_ID ISO-8859-1 -ig_NG UTF-8 -ik_CA UTF-8 -is_IS.UTF-8 UTF-8 -is_IS ISO-8859-1 -it_CH.UTF-8 UTF-8 -it_CH ISO-8859-1 -it_IT.UTF-8 UTF-8 -it_IT ISO-8859-1 -it_IT@euro ISO-8859-15 -iu_CA UTF-8 -ja_JP.EUC-JP EUC-JP -ja_JP.UTF-8 UTF-8 -ka_GE.UTF-8 UTF-8 -ka_GE GEORGIAN-PS -kab_DZ UTF-8 -kk_KZ.UTF-8 UTF-8 -kk_KZ PT154 -kl_GL.UTF-8 UTF-8 -kl_GL ISO-8859-1 -km_KH UTF-8 -kn_IN UTF-8 -ko_KR.EUC-KR EUC-KR -ko_KR.UTF-8 UTF-8 -kok_IN UTF-8 -ks_IN UTF-8 -ks_IN@devanagari UTF-8 -ku_TR.UTF-8 UTF-8 -ku_TR ISO-8859-9 -kw_GB.UTF-8 UTF-8 -kw_GB ISO-8859-1 -ky_KG UTF-8 -lb_LU UTF-8 -lg_UG.UTF-8 UTF-8 -lg_UG ISO-8859-10 -li_BE UTF-8 -li_NL UTF-8 -lij_IT UTF-8 -ln_CD UTF-8 -lo_LA UTF-8 -lt_LT.UTF-8 UTF-8 -lt_LT ISO-8859-13 -lv_LV.UTF-8 UTF-8 -lv_LV ISO-8859-13 -lzh_TW UTF-8 -mag_IN UTF-8 -mai_IN UTF-8 -mai_NP UTF-8 -mfe_MU UTF-8 -mg_MG.UTF-8 UTF-8 -mg_MG ISO-8859-15 -mhr_RU UTF-8 -mi_NZ.UTF-8 UTF-8 -mi_NZ ISO-8859-13 -miq_NI UTF-8 -mjw_IN UTF-8 -mk_MK.UTF-8 UTF-8 -mk_MK ISO-8859-5 -ml_IN UTF-8 -mn_MN UTF-8 -mni_IN UTF-8 -mr_IN UTF-8 -ms_MY.UTF-8 UTF-8 -ms_MY ISO-8859-1 -mt_MT.UTF-8 UTF-8 -mt_MT ISO-8859-3 -my_MM UTF-8 -nan_TW UTF-8 -nan_TW@latin UTF-8 -nb_NO.UTF-8 UTF-8 -nb_NO ISO-8859-1 -nds_DE UTF-8 -nds_NL UTF-8 -ne_NP UTF-8 -nhn_MX UTF-8 -niu_NU UTF-8 -niu_NZ UTF-8 -nl_AW UTF-8 -nl_BE.UTF-8 UTF-8 -nl_BE ISO-8859-1 -nl_BE@euro ISO-8859-15 -nl_NL.UTF-8 UTF-8 -nl_NL ISO-8859-1 -nl_NL@euro ISO-8859-15 -nn_NO.UTF-8 UTF-8 -nn_NO ISO-8859-1 -nr_ZA UTF-8 -nso_ZA UTF-8 -oc_FR.UTF-8 UTF-8 -oc_FR ISO-8859-1 -om_ET UTF-8 -om_KE.UTF-8 UTF-8 -om_KE ISO-8859-1 -or_IN UTF-8 -os_RU UTF-8 -pa_IN UTF-8 -pa_PK UTF-8 -pap_AW UTF-8 -pap_CW UTF-8 -pl_PL.UTF-8 UTF-8 -pl_PL ISO-8859-2 -ps_AF UTF-8 -pt_BR.UTF-8 UTF-8 -pt_BR ISO-8859-1 -pt_PT.UTF-8 UTF-8 -pt_PT ISO-8859-1 -pt_PT@euro ISO-8859-15 -quz_PE UTF-8 -raj_IN UTF-8 -ro_RO.UTF-8 UTF-8 -ro_RO ISO-8859-2 -ru_RU.KOI8-R KOI8-R -ru_RU.UTF-8 UTF-8 -ru_RU ISO-8859-5 -ru_UA.UTF-8 UTF-8 -ru_UA KOI8-U -rw_RW UTF-8 -sa_IN UTF-8 -sat_IN UTF-8 -sc_IT UTF-8 -sd_IN UTF-8 -sd_IN@devanagari UTF-8 -se_NO UTF-8 -sgs_LT UTF-8 -shn_MM UTF-8 -shs_CA UTF-8 -si_LK UTF-8 -sid_ET UTF-8 -sk_SK.UTF-8 UTF-8 -sk_SK ISO-8859-2 -sl_SI.UTF-8 UTF-8 -sl_SI ISO-8859-2 -sm_WS UTF-8 -so_DJ.UTF-8 UTF-8 -so_DJ ISO-8859-1 -so_ET UTF-8 -so_KE.UTF-8 UTF-8 -so_KE ISO-8859-1 -so_SO.UTF-8 UTF-8 -so_SO ISO-8859-1 -sq_AL.UTF-8 UTF-8 -sq_AL ISO-8859-1 -sq_MK UTF-8 -sr_ME UTF-8 -sr_RS UTF-8 -sr_RS@latin UTF-8 -ss_ZA UTF-8 -st_ZA.UTF-8 UTF-8 -st_ZA ISO-8859-1 -sv_FI.UTF-8 UTF-8 -sv_FI ISO-8859-1 -sv_FI@euro ISO-8859-15 -sv_SE.UTF-8 UTF-8 -sv_SE ISO-8859-1 -sw_KE UTF-8 -sw_TZ UTF-8 -szl_PL UTF-8 -ta_IN UTF-8 -ta_LK UTF-8 -tcy_IN.UTF-8 UTF-8 -te_IN UTF-8 -tg_TJ.UTF-8 UTF-8 -tg_TJ KOI8-T -th_TH.UTF-8 UTF-8 -th_TH TIS-620 -the_NP UTF-8 -ti_ER UTF-8 -ti_ET UTF-8 -tig_ER UTF-8 -tk_TM UTF-8 -tl_PH.UTF-8 UTF-8 -tl_PH ISO-8859-1 -tn_ZA UTF-8 -to_TO UTF-8 -tpi_PG UTF-8 -tr_CY.UTF-8 UTF-8 -tr_CY ISO-8859-9 -tr_TR.UTF-8 UTF-8 -tr_TR ISO-8859-9 -ts_ZA UTF-8 -tt_RU UTF-8 -tt_RU@iqtelif UTF-8 -ug_CN UTF-8 -uk_UA.UTF-8 UTF-8 -uk_UA KOI8-U -unm_US UTF-8 -ur_IN UTF-8 -ur_PK UTF-8 -uz_UZ.UTF-8 UTF-8 -uz_UZ ISO-8859-1 -uz_UZ@cyrillic UTF-8 -ve_ZA UTF-8 -vi_VN UTF-8 -wa_BE ISO-8859-1 -wa_BE@euro ISO-8859-15 -wa_BE.UTF-8 UTF-8 -wae_CH UTF-8 -wal_ET UTF-8 -wo_SN UTF-8 -xh_ZA.UTF-8 UTF-8 -xh_ZA ISO-8859-1 -yi_US.UTF-8 UTF-8 -yi_US CP1255 -yo_NG UTF-8 -yue_HK UTF-8 -yuw_PG UTF-8 -zh_CN.GB18030 GB18030 -zh_CN.GBK GBK -zh_CN.UTF-8 UTF-8 -zh_CN GB2312 -zh_HK.UTF-8 UTF-8 -zh_HK BIG5-HKSCS -zh_SG.UTF-8 UTF-8 -zh_SG.GBK GBK -zh_SG GB2312 -zh_TW.EUC-TW EUC-TW -zh_TW.UTF-8 UTF-8 -zh_TW BIG5 -zu_ZA.UTF-8 UTF-8 -zu_ZA ISO-8859-1 diff --git a/gnu/installer/locale.scm b/gnu/installer/locale.scm index 284062a6e7..2ee5eecd96 100644 --- a/gnu/installer/locale.scm +++ b/gnu/installer/locale.scm @@ -62,12 +62,13 @@ (define (locale-modifier assoc) (assoc-ref assoc 'modifier)) -(define (locale-string->locale string) - "Return the locale association list built from the parsing of STRING." +(define* (locale-string->locale string #:optional codeset) + "Return the locale association list built from the parsing of STRING and, +optionally, CODESET." (let ((matches (string-match locale-regexp string))) `((language . ,(match:substring matches 1)) (territory . ,(match:substring matches 3)) - (codeset . ,(match:substring matches 5)) + (codeset . ,(or codeset (match:substring matches 5))) (modifier . ,(match:substring matches 7))))) (define (normalize-codeset codeset) @@ -107,17 +108,12 @@ '()))))) (define (supported-locales->locales supported-locales) - "Parse the SUPPORTED-LOCALES file from the glibc and return the matching -list of LOCALE association lists." - (call-with-input-file supported-locales - (lambda (port) - (let ((lines (read-lines port))) - (map (lambda (line) - (match (string-split line #\ ) - ((locale-string codeset) - (let ((line-locale (locale-string->locale locale-string))) - (assoc-set! line-locale 'codeset codeset))))) - lines))))) + "Given SUPPORTED-LOCALES, a file produced by 'glibc-supported-locales', +return a list of locales where each locale is an alist." + (map (match-lambda + ((locale . codeset) + (locale-string->locale locale codeset))) + (call-with-input-file supported-locales read))) ;;; diff --git a/gnu/local.mk b/gnu/local.mk index 133293aad3..1b0298ec6f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -629,8 +629,7 @@ endif installerdir = $(guilemoduledir)/%D%/installer dist_installer_DATA = \ - %D%/installer/aux-files/logo.txt \ - %D%/installer/aux-files/SUPPORTED + %D%/installer/aux-files/logo.txt # Modules that do not need to be compiled. MODULES_NOT_COMPILED += \ -- cgit v1.2.3 From 3617d4f913b2ab53420d3f696126d5c2bd20ea2a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 14 May 2019 21:02:23 +0200 Subject: gnu: ocaml-base64: Update to 3.2.0. * gnu/packages/ocaml.scm (ocaml-base64): Update to 3.2.0. [origin]: Use git-fetch. (ocaml-piqilib)[origin]: Add a patch to fix building with new versions of ocaml-base64. * gnu/packages/patches/ocaml-piqilib-Update-base64.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/ocaml.scm | 34 +++++++--------- .../patches/ocaml-piqilib-Update-base64.patch | 46 ++++++++++++++++++++++ 3 files changed, 61 insertions(+), 20 deletions(-) create mode 100644 gnu/packages/patches/ocaml-piqilib-Update-base64.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 1b0298ec6f..fb97fe7bee 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1114,6 +1114,7 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \ %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \ %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \ + %D%/packages/patches/ocaml-piqilib-Update-base64.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ca7c3455fb..d4df52edc6 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2170,29 +2170,21 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).") (define-public ocaml-base64 (package (name "ocaml-base64") - (version "2.1.2") + (version "3.2.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mirage/ocaml-base64/" - "releases/download/v" version "/base64-" - version ".tbz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mirage/ocaml-base64") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1p45sawchmrkr22gkmydjc4ary23pisp58zsnb7iq7d82nxs1lfq")))) - (build-system ocaml-build-system) - (arguments - `(#:build-flags (list "build" "--tests" "true") - #:phases - (modify-phases %standard-phases - (delete 'configure)))) + "1ilw3zj0w6cq7i4pvr8m2kv5l5f2y9aldmv72drlwwns013b1gwy")))) + (build-system dune-build-system) (native-inputs - `(("topkg" ,ocaml-topkg) - ("ocamlbuild" ,ocamlbuild) - ("opam" ,opam) - ("rresult" ,ocaml-rresult) - ("bos" ,ocaml-bos) - ("alcotest" ,ocaml-alcotest))) + `(("ocaml-alcotest" ,ocaml-alcotest) + ("ocaml-bos" ,ocaml-bos) + ("ocaml-rresult" ,ocaml-rresult))) (home-page "https://github.com/mirage/ocaml-base64") (synopsis "Base64 encoding for OCaml") (description "Base64 is a group of similar binary-to-text encoding schemes @@ -2732,7 +2724,9 @@ Format module of the OCaml standard library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0lyqllmfsxmwlg7qidy92kvxi9n39lvachmydcyi81f8p07ykd2d")))) + (base32 "0lyqllmfsxmwlg7qidy92kvxi9n39lvachmydcyi81f8p07ykd2d")) + (patches + (search-patches "ocaml-piqilib-Update-base64.patch")))) (build-system ocaml-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/ocaml-piqilib-Update-base64.patch b/gnu/packages/patches/ocaml-piqilib-Update-base64.patch new file mode 100644 index 0000000000..ec2c02d93e --- /dev/null +++ b/gnu/packages/patches/ocaml-piqilib-Update-base64.patch @@ -0,0 +1,46 @@ +From 98abdbff3d5316a75f27d6a76fe09317d56f2a38 Mon Sep 17 00:00:00 2001 +From: Vincent Bernardoff +Date: Sun, 10 Feb 2019 14:47:07 +0100 +Subject: [PATCH] Fix compilation with newer base64 versions + +--- + opam | 2 +- + piqilib/piqi_base64.ml | 9 ++++----- + 2 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/opam b/opam +index 3a9128e..bb5a53f 100644 +--- a/opam ++++ b/opam +@@ -26,6 +26,6 @@ depends: [ + "easy-format" + "ulex" + "xmlm" +- "base64" {>="2.0.0"} ++ "base64" {>="3.1.0"} + ] + dev-repo: "git://github.com/alavrik/piqi" +diff --git a/piqilib/piqi_base64.ml b/piqilib/piqi_base64.ml +index c5a6ae7..a98346e 100644 +--- a/piqilib/piqi_base64.ml ++++ b/piqilib/piqi_base64.ml +@@ -18,12 +18,11 @@ + (* TODO: add more base64 validation; the base64 library doesn't do any + * validation *) + let decode x = +- try +- B64.decode x +- with _ -> +- invalid_arg "Piqi_base64.decode" ++ match Base64.decode x with ++ | Error _ -> invalid_arg "Piqi_base64.decode" ++ | Ok v -> v + + + let encode x = +- B64.encode x ++ Base64.encode_exn x + +-- +2.21.0 + -- cgit v1.2.3 From c72c10053dfdf76a148725fc3ff6a67c4144b778 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 16 May 2019 18:19:38 +0200 Subject: gnu: bind: Update to 9.14.2. * gnu/packages/dns.scm (isc-bind): Update to 9.14.2. [source]: Remove patch. [arguments]: Run only fuzz tests. * gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/dns.scm | 12 +++--- .../bind-fix-unused-pk11-ecc-constants.patch | 43 ---------------------- 3 files changed, 7 insertions(+), 49 deletions(-) delete mode 100644 gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index fb97fe7bee..e76e387e42 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -682,7 +682,6 @@ dist_patch_DATA = \ %D%/packages/patches/beets-python-3.7-fix.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/biber-fix-encoding-write.patch \ - %D%/packages/patches/bind-fix-unused-pk11-ecc-constants.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index ec10254c97..291139ef1b 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -108,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.12.4-P1") + (version "9.14.2") (source (origin (method url-fetch) (uri (string-append @@ -116,9 +116,7 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.gz")) (sha256 (base32 - "1if7zc5gzrfd28csc63v9bjwrc0rgvm1x9yx058946hc5gp5lyp2")) - (patches - (search-patches "bind-fix-unused-pk11-ecc-constants.patch")))) + "033zqajnj5ys45g899132xkhh9f0hsh76ffv7302wl166xbjfh0f")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs @@ -163,7 +161,11 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; (system "bin/tests/system/ifconfig.sh up"))) (replace 'check (lambda _ - (invoke "make" "force-test")))))) + ;; XXX Even ‘make force-test’ tries to create network interfaces + ;; and fails. The only working target is the (trivial) fuzz test. + (with-directory-excursion "fuzz" + (invoke "make" "check")) + #t))))) (synopsis "An implementation of the Domain Name System") (description "BIND is an implementation of the @dfn{Domain Name System} (DNS) protocols for the Internet. It is a reference implementation of those diff --git a/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch b/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch deleted file mode 100644 index ab7cc83684..0000000000 --- a/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Tobias Geerinckx-Rice -Date: Thu, 25 Apr 2019 04:36:52 +0200 -Subject: [PATCH] gnu: bind: Fix unused PKCS#11 ECC constants. - -Without this patch, the build fails: - - pkcs11-keygen.c: In function ‘main’: - pkcs11-keygen.c:424:32: error: ‘pk11_ecc_prime256v1’ undeclared (first use in this function) - public_template[4].pValue = pk11_ecc_prime256v1; - ^ - pkcs11-keygen.c:424:32: note: each undeclared identifier is reported only once for each function it appears in - pkcs11-keygen.c:428:32: error: ‘pk11_ecc_secp384r1’ undeclared (first use in this function) - public_template[4].pValue = pk11_ecc_secp384r1; - ^ - make[2]: *** [Makefile:217: pkcs11-keygen.o] Error 1 - -Fix copied verbatim from upstream[0]. - -[0]: https://gitlab.isc.org/isc-projects/bind9/issues/935 - ---- ---- orig-bind-9.11.6/bin/pkcs11/pkcs11-keygen.c 2019-02-27 15:28:15.000000000 -0800 -+++ bind-9.11.6/bin/pkcs11/pkcs11-keygen.c 2019-03-11 09:20:50.955257469 -0700 -@@ -403,6 +403,10 @@ - public_template[RSA_PUBLIC_EXPONENT].ulValueLen = expsize; - break; - case key_ecc: -+#if !defined(HAVE_PKCS11_ECDSA) -+ fprintf(stderr, "prime256v1 and secp3841r1 is not supported\n"); -+ usage(); -+#else - op_type = OP_EC; - if (bits == 0) - bits = 256; -@@ -429,7 +433,7 @@ - public_template[4].ulValueLen = - sizeof(pk11_ecc_secp384r1); - } -- -+#endif - break; - case key_ecx: - #if !defined(CKM_EDDSA_KEY_PAIR_GEN) -- cgit v1.2.3 From 08eafef8650922681bad10d9f5a3f92ff91616b6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 14 May 2019 18:38:23 -0400 Subject: gnu: Borg: Fix a hang in the test suite. * gnu/packages/patches/borg-fix-hard-link-preloading.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/backup.scm (borg)[source]: Use it. --- gnu/local.mk | 1 + gnu/packages/backup.scm | 1 + .../patches/borg-fix-hard-link-preloading.patch | 157 +++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 gnu/packages/patches/borg-fix-hard-link-preloading.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index e76e387e42..ac55e1dd28 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -686,6 +686,7 @@ dist_patch_DATA = \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/boost-fix-icu-build.patch \ + %D%/packages/patches/borg-fix-hard-link-preloading.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-bs4.patch \ diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 97c7499c1c..b15c15ad46 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -519,6 +519,7 @@ detection, and lossless compression.") (sha256 (base32 "0x95nhv4h34m8cxycbwc4xdz350saaxlgh727b23bgn4ci7gh3vx")) + (patches (search-patches "borg-fix-hard-link-preloading.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/borg-fix-hard-link-preloading.patch b/gnu/packages/patches/borg-fix-hard-link-preloading.patch new file mode 100644 index 0000000000..92a4e22674 --- /dev/null +++ b/gnu/packages/patches/borg-fix-hard-link-preloading.patch @@ -0,0 +1,157 @@ +Fix a bug that would cause the test suite to hang: + +https://github.com/borgbackup/borg/issues/4350 + +Patch copied from upstream source repository: + +https://github.com/borgbackup/borg/commit/18242ab9e2f26c450b8507aa1d5eceadab8ad027 + +From 18242ab9e2f26c450b8507aa1d5eceadab8ad027 Mon Sep 17 00:00:00 2001 +From: Thomas Waldmann +Date: Thu, 2 May 2019 21:02:26 +0200 +Subject: [PATCH] preload chunks for hardlink slaves w/o preloaded master, + fixes #4350 + +also split the hardlink extraction test into 2 tests. + +(cherry picked from commit f33f318d816505161d1449a02ddfdeb97d6fe80a) +--- + src/borg/archive.py | 42 +++++++++++++++++++++++++++++----- + src/borg/archiver.py | 5 ++-- + src/borg/testsuite/archiver.py | 20 +++++++++------- + 3 files changed, 51 insertions(+), 16 deletions(-) + +diff --git a/src/borg/archive.py b/src/borg/archive.py +index adc1f42c..0793672a 100644 +--- a/src/borg/archive.py ++++ b/src/borg/archive.py +@@ -192,7 +192,7 @@ def __init__(self, repository, key): + self.repository = repository + self.key = key + +- def unpack_many(self, ids, filter=None, preload=False): ++ def unpack_many(self, ids, filter=None, partial_extract=False, preload=False, hardlink_masters=None): + """ + Return iterator of items. + +@@ -209,12 +209,40 @@ def unpack_many(self, ids, filter=None, preload=False): + for item in items: + if 'chunks' in item: + item.chunks = [ChunkListEntry(*e) for e in item.chunks] ++ ++ def preload(chunks): ++ self.repository.preload([c.id for c in chunks]) ++ + if filter: + items = [item for item in items if filter(item)] ++ + if preload: +- for item in items: +- if 'chunks' in item: +- self.repository.preload([c.id for c in item.chunks]) ++ if filter and partial_extract: ++ # if we do only a partial extraction, it gets a bit ++ # complicated with computing the preload items: if a hardlink master item is not ++ # selected (== not extracted), we will still need to preload its chunks if a ++ # corresponding hardlink slave is selected (== is extracted). ++ # due to a side effect of the filter() call, we now have hardlink_masters dict populated. ++ masters_preloaded = set() ++ for item in items: ++ if 'chunks' in item: # regular file, maybe a hardlink master ++ preload(item.chunks) ++ # if this is a hardlink master, remember that we already preloaded it: ++ if 'source' not in item and hardlinkable(item.mode) and item.get('hardlink_master', True): ++ masters_preloaded.add(item.path) ++ elif 'source' in item and hardlinkable(item.mode): # hardlink slave ++ source = item.source ++ if source not in masters_preloaded: ++ # we only need to preload *once* (for the 1st selected slave) ++ chunks, _ = hardlink_masters[source] ++ preload(chunks) ++ masters_preloaded.add(source) ++ else: ++ # easy: we do not have a filter, thus all items are selected, thus we need to preload all chunks. ++ for item in items: ++ if 'chunks' in item: ++ preload(item.chunks) ++ + for item in items: + yield item + +@@ -433,8 +461,10 @@ def item_filter(self, item, filter=None): + return False + return filter(item) if filter else True + +- def iter_items(self, filter=None, preload=False): +- for item in self.pipeline.unpack_many(self.metadata.items, preload=preload, ++ def iter_items(self, filter=None, partial_extract=False, preload=False, hardlink_masters=None): ++ assert not (filter and partial_extract and preload) or hardlink_masters is not None ++ for item in self.pipeline.unpack_many(self.metadata.items, partial_extract=partial_extract, ++ preload=preload, hardlink_masters=hardlink_masters, + filter=lambda item: self.item_filter(item, filter)): + yield item + +diff --git a/src/borg/archiver.py b/src/borg/archiver.py +index 957959d6..dcc20455 100644 +--- a/src/borg/archiver.py ++++ b/src/borg/archiver.py +@@ -755,7 +755,8 @@ def peek_and_store_hardlink_masters(item, matched): + else: + pi = None + +- for item in archive.iter_items(filter, preload=True): ++ for item in archive.iter_items(filter, partial_extract=partial_extract, ++ preload=True, hardlink_masters=hardlink_masters): + orig_path = item.path + if strip_components: + item.path = os.sep.join(orig_path.split(os.sep)[strip_components:]) +@@ -997,7 +998,7 @@ def item_to_tarinfo(item, original_path): + return None, stream + return tarinfo, stream + +- for item in archive.iter_items(filter, preload=True): ++ for item in archive.iter_items(filter, preload=True, hardlink_masters=hardlink_masters): + orig_path = item.path + if strip_components: + item.path = os.sep.join(orig_path.split(os.sep)[strip_components:]) +diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py +index c35ad800..935b3d79 100644 +--- a/src/borg/testsuite/archiver.py ++++ b/src/borg/testsuite/archiver.py +@@ -823,7 +823,18 @@ def test_mount_hardlinks(self): + assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456' + + @requires_hardlinks +- def test_extract_hardlinks(self): ++ def test_extract_hardlinks1(self): ++ self._extract_hardlinks_setup() ++ with changedir('output'): ++ self.cmd('extract', self.repository_location + '::test') ++ assert os.stat('input/source').st_nlink == 4 ++ assert os.stat('input/abba').st_nlink == 4 ++ assert os.stat('input/dir1/hardlink').st_nlink == 4 ++ assert os.stat('input/dir1/subdir/hardlink').st_nlink == 4 ++ assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456' ++ ++ @requires_hardlinks ++ def test_extract_hardlinks2(self): + self._extract_hardlinks_setup() + with changedir('output'): + self.cmd('extract', self.repository_location + '::test', '--strip-components', '2') +@@ -839,13 +850,6 @@ def test_extract_hardlinks(self): + assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456' + assert os.stat('input/dir1/aaaa').st_nlink == 2 + assert os.stat('input/dir1/source2').st_nlink == 2 +- with changedir('output'): +- self.cmd('extract', self.repository_location + '::test') +- assert os.stat('input/source').st_nlink == 4 +- assert os.stat('input/abba').st_nlink == 4 +- assert os.stat('input/dir1/hardlink').st_nlink == 4 +- assert os.stat('input/dir1/subdir/hardlink').st_nlink == 4 +- assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456' + + def test_extract_include_exclude(self): + self.cmd('init', '--encryption=repokey', self.repository_location) +-- +2.21.0 + -- cgit v1.2.3 From 1d86b05618a063378d7ffc89a9b4c33dd65a760c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 18 May 2019 17:49:05 +0200 Subject: vm: Create installation media with MBR and HFS only, no GPT. * gnu/build/vm.scm (make-iso9660-image): Accept XORRISO, GRUB-MKRESCUE-ENVIRONMENT. * gnu/system/vm.scm (iso9660-image): Pass XORRISO; accept GRUB-MKRESCUE-ENVIRONMENT. (system-disk-image): Pass GRUB-MKRESCUE-ENVIRONMENT. * gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch: New file. * gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch: New file. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/cdrom.scm (xorriso)[source]: Add patches. [arguments]<#:phases>[install-frontends]: Add phase. --- gnu/build/vm.scm | 18 +++- gnu/local.mk | 4 +- gnu/packages/cdrom.scm | 14 ++- .../patches/xorriso-no-mbr-in-inner-efi.patch | 47 +++++++++ .../xorriso-no-partition-table-in-inner-efi.patch | 107 +++++++++++++++++++++ gnu/system/vm.scm | 11 ++- 6 files changed, 194 insertions(+), 7 deletions(-) create mode 100644 gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch create mode 100644 gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch (limited to 'gnu/local.mk') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index ac99d6b1a3..a5d9fefa62 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -423,7 +423,8 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." ;; Graft the configuration file onto the image. (string-append "boot/grub/grub.cfg=" config-file)))) -(define* (make-iso9660-image grub config-file os-drv target +(define* (make-iso9660-image xorriso grub-mkrescue-environment + grub config-file os-drv target #:key (volume-id "Guix_image") (volume-uuid #f) register-closures? (closures '())) "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as @@ -431,6 +432,9 @@ GRUB configuration and OS-DRV as the stuff in it." (define grub-mkrescue (string-append grub "/bin/grub-mkrescue")) + (define grub-mkrescue-sed.sh + (string-append xorriso "/bin/grub-mkrescue-sed.sh")) + (define target-store (string-append "/tmp/root" (%store-directory))) @@ -483,9 +487,19 @@ GRUB configuration and OS-DRV as the stuff in it." #x77777777) 16)) + (setenv "MKRESCUE_SED_MODE" "original") + (setenv "MKRESCUE_SED_XORRISO" (string-append xorriso + "/bin/xorriso")) + (setenv "MKRESCUE_SED_IN_EFI_NO_PT" "yes") + (for-each (match-lambda + ((name . value) (setenv name value))) + grub-mkrescue-environment) + (let ((pipe (apply open-pipe* OPEN_WRITE - grub-mkrescue "-o" target + grub-mkrescue + (string-append "--xorriso=" grub-mkrescue-sed.sh) + "-o" target (string-append "boot/grub/grub.cfg=" config-file) "etc=/tmp/root/etc" "var=/tmp/root/var" diff --git a/gnu/local.mk b/gnu/local.mk index ac55e1dd28..694bbfd367 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1372,7 +1372,9 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-session-fix-xflock4.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ - %D%/packages/patches/xinetd-CVE-2013-4342.patch + %D%/packages/patches/xinetd-CVE-2013-4342.patch \ + %D%/packages/patches/xorriso-no-partition-table-in-inner-efi.patch \ + %D%/packages/patches/xorriso-no-mbr-in-inner-efi.patch MISC_DISTRO_FILES = \ %D%/packages/ld-wrapper.in diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 2bd5745ad3..8d9778176f 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -162,8 +162,20 @@ libcdio.") version ".tar.gz")) (sha256 (base32 - "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9")))) + "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9")) + (patches + (search-patches "xorriso-no-partition-table-in-inner-efi.patch" + "xorriso-no-mbr-in-inner-efi.patch")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-frontends + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "frontend/grub-mkrescue-sed.sh" out-bin) + #t)))))) (inputs `(("acl" ,acl) ("readline" ,readline) diff --git a/gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch b/gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch new file mode 100644 index 0000000000..a43889d2c6 --- /dev/null +++ b/gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch @@ -0,0 +1,47 @@ +https://dev.lovelyhq.com/libburnia/libisoburn/commit/1eb51f44dadb8b6c5f87533ca357186cdc1ac625 +diff --git a/frontend/grub-mkrescue-sed.sh b/frontend/grub-mkrescue-sed.sh +index b3948c99..dcd9d696 100755 +--- a/frontend/grub-mkrescue-sed.sh ++++ b/frontend/grub-mkrescue-sed.sh +@@ -120,6 +120,7 @@ fi + # "yes" overwrites the MBR partition table area in the EFI boot image by zeros. + # Some EFI implementations get stuck when seeing in the EFI partition a + # partition table entry which begins at LBA 0. ++# "extra" not only zeros the partition table but also the MBR signature. + efi_zero_inner_pt=no + if test -n "$MKRESCUE_SED_IN_EFI_NO_PT" + then +@@ -192,24 +193,31 @@ then + find "$dir" + fi + +-if test "$efi_zero_inner_pt" = yes ++if test "$efi_zero_inner_pt" = yes -o "$efi_zero_inner_pt" = extra + then + did_dd=0 + if test -e "$dir"/efi.img + then ++ # Look for 0x55 0xAA in bytes 510 and 511 + magic=$(dd bs=1 skip=510 count=2 if="$dir"/efi.img 2>/dev/null | \ + od -c | head -1 | awk '{print $2 " " $3}') + if test "$magic" = "U 252" + then ++ echo "Performing actions for MKRESCUE_SED_IN_EFI_NO_PT=$efi_zero_inner_pt" >&2 + dd if=/dev/zero bs=1 seek=446 count=64 conv=notrunc of="$dir"/efi.img + did_dd=1 ++ if test "$efi_zero_inner_pt" = extra ++ then ++ dd if=/dev/zero bs=1 seek=510 count=2 conv=notrunc of="$dir"/efi.img ++ fi ++ echo >&2 + fi + fi + if test "$did_dd" = 0 + then + echo >&2 + echo "$0 : NOTE : No EFI image found or no MBR signature in it." >&2 +- echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=yes" >&2 ++ echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=$efi_zero_inner_pt" >&2 + echo >&2 + fi + fi diff --git a/gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch b/gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch new file mode 100644 index 0000000000..a719ca1f89 --- /dev/null +++ b/gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch @@ -0,0 +1,107 @@ +https://dev.lovelyhq.com/libburnia/libisoburn/commit/3a2a3ba737a06162c22ace0ae09d33ba97aa2673 +diff --git a/frontend/grub-mkrescue-sed.sh b/frontend/grub-mkrescue-sed.sh +index d772ff22..b3948c99 100755 +--- a/frontend/grub-mkrescue-sed.sh ++++ b/frontend/grub-mkrescue-sed.sh +@@ -1,6 +1,6 @@ + #!/bin/sh + +-# Copyright (C) 2015 - 2016 ++# Copyright (C) 2015 - 2019 + # Thomas Schmitt , libburnia-project.org + # Provided under BSD license: Use, modify, and distribute as you like. + +@@ -117,6 +117,15 @@ fi + # command line.) + # Each argument must be a single word. No whitespace. No quotation marks. + ++# "yes" overwrites the MBR partition table area in the EFI boot image by zeros. ++# Some EFI implementations get stuck when seeing in the EFI partition a ++# partition table entry which begins at LBA 0. ++efi_zero_inner_pt=no ++if test -n "$MKRESCUE_SED_IN_EFI_NO_PT" ++then ++ efi_zero_inner_pt="$MKRESCUE_SED_IN_EFI_NO_PT" ++fi ++ + + # + # Do the work +@@ -183,12 +192,48 @@ then + find "$dir" + fi + ++if test "$efi_zero_inner_pt" = yes ++then ++ did_dd=0 ++ if test -e "$dir"/efi.img ++ then ++ magic=$(dd bs=1 skip=510 count=2 if="$dir"/efi.img 2>/dev/null | \ ++ od -c | head -1 | awk '{print $2 " " $3}') ++ if test "$magic" = "U 252" ++ then ++ dd if=/dev/zero bs=1 seek=446 count=64 conv=notrunc of="$dir"/efi.img ++ did_dd=1 ++ fi ++ fi ++ if test "$did_dd" = 0 ++ then ++ echo >&2 ++ echo "$0 : NOTE : No EFI image found or no MBR signature in it." >&2 ++ echo "$0 : NOTE : Will not obey MKRESCUE_SED_IN_EFI_NO_PT=yes" >&2 ++ echo >&2 ++ fi ++fi ++ + efi_tmp_name= ++if test x"$mode" = xmjg \ ++ -o x"$mode" = xmbr_only \ ++ -o x"$mode" = xgpt_appended \ ++ -o x"$mode" = xmbr_hfs ++then ++ # Move EFI partition image file out of the "$dir" tree, i.e. out of the ISO ++ efi_tmp_name=grub-mkrescue-sed-efi-img.$$ ++ if test -e "$dir"/efi.img ++ then ++ mv "$dir"/efi.img /tmp/$efi_tmp_name ++ elif test -e /tmp/$efi_tmp_name ++ then ++ rm /tmp/$efi_tmp_name ++ fi ++fi ++ + if test x"$mode" = xmjg + then + # Exchange arguments for the experimental GRUB2 mjg layout +- efi_tmp_name=grub-mkrescue-sed-efi-img.$$ +- mv "$dir"/efi.img /tmp/$efi_tmp_name + x=$(echo " $*" | sed \ + -e "s/-efi-boot-part --efi-boot-image/-no-pad -append_partition $partno 0xef \/tmp\/$efi_tmp_name/" \ + -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_${partno}:all:: -no-emul-boot -isohybrid-gpt-basdat/" \ +@@ -207,8 +252,6 @@ then + elif test x"$mode" = xmbr_only + then + # Exchange arguments for no-HFS MBR-only layout +- efi_tmp_name=grub-mkrescue-sed-efi-img.$$ +- mv "$dir"/efi.img /tmp/$efi_tmp_name + x=$(echo " $*" | sed \ + -e "s/-efi-boot-part --efi-boot-image/$iso_mbr_part_type -no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name/" \ + -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \ +@@ -228,8 +271,6 @@ then + elif test x"$mode" = xmbr_hfs + then + # Exchange arguments for MBR and HFS+ layout +- efi_tmp_name=grub-mkrescue-sed-efi-img.$$ +- mv "$dir"/efi.img /tmp/$efi_tmp_name + x=$(echo " $*" | sed \ + -e "s/-efi-boot-part --efi-boot-image/$iso_mbr_part_type -no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name/" \ + -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \ +@@ -247,8 +288,6 @@ then + elif test x"$mode" = xgpt_appended + then + # Exchange arguments for no-HFS MBR-only layout +- efi_tmp_name=grub-mkrescue-sed-efi-img.$$ +- mv "$dir"/efi.img /tmp/$efi_tmp_name + x=$(echo " $*" | sed \ + -e "s/-efi-boot-part --efi-boot-image/-no-pad -append_partition 2 0xef \/tmp\/$efi_tmp_name -appended_part_as_gpt -partition_offset 16/" \ + -e "s/--efi-boot efi\.img/-eltorito-alt-boot -e --interval:appended_partition_2:all:: -no-emul-boot/" \ diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index aa37896498..0d4ed63eec 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -266,7 +266,8 @@ made available under the /xchg CIFS share." bootcfg-drv bootloader (register-closures? (has-guix-service-type? os)) - (inputs '())) + (inputs '()) + (grub-mkrescue-environment '())) "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." @@ -313,7 +314,9 @@ INPUTS is a list of inputs (as for packages)." inputs))) (set-path-environment-variable "PATH" '("bin" "sbin") inputs) - (make-iso9660-image #$(bootloader-package bootloader) + (make-iso9660-image #$xorriso + '#$grub-mkrescue-environment + #$(bootloader-package bootloader) #$bootcfg-drv #$os "/xchg/guixsd.iso" @@ -704,7 +707,9 @@ to USB sticks meant to be read-only." #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) #:inputs `(("system" ,os) - ("bootcfg" ,bootcfg))) + ("bootcfg" ,bootcfg)) + #:grub-mkrescue-environment + '(("MKRESCUE_SED_MODE" . "mbr_hfs"))) (qemu-image #:name name #:os os #:bootcfg-drv bootcfg -- cgit v1.2.3 From 0f469c172e41345e2097df4239b96ee627402397 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 20 May 2019 04:58:06 +0200 Subject: gnu: xf86-video-voodoo: Ship patch locally. The ORIGIN patch has been modified in place, probably *wild guessing sounds* by a server-side cgit update. * gnu/packages/xorg.scm (xf86-video-voodoo)[source]: Use SEARCH-PATCHES. * gnu/packages/patches/xf86-video-voodoo-pcitag.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../patches/xf86-video-voodoo-pcitag.patch | 34 ++++++++++++++++++++++ gnu/packages/xorg.scm | 9 +----- 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 gnu/packages/patches/xf86-video-voodoo-pcitag.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 694bbfd367..c2f2ce2d40 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1368,6 +1368,7 @@ dist_patch_DATA = \ %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \ %D%/packages/patches/xf86-video-sis-xorg-compat.patch \ %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ + %D%/packages/patches/xf86-video-voodoo-pcitag.patch \ %D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-session-fix-xflock4.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ diff --git a/gnu/packages/patches/xf86-video-voodoo-pcitag.patch b/gnu/packages/patches/xf86-video-voodoo-pcitag.patch new file mode 100644 index 0000000000..5cadef3928 --- /dev/null +++ b/gnu/packages/patches/xf86-video-voodoo-pcitag.patch @@ -0,0 +1,34 @@ +From: Tobias Geerinckx-Rice +Date: Mon, 20 May 2019 04:52:33 +0200 +Subject: [PATCH] gnu: xf86-video-voodoo: Don't use PCITAG. + +Copied verbatim from upstream repository[0]. + +[0]: https://cgit.freedesktop.org/xorg/driver/-xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593 + +From 9172ae566a0e85313fc80ab62b4455393eefe593 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Mon, 22 Sep 2014 10:56:02 +1000 +Subject: don't use PCITAG in struct anymore + +--- + src/voodoo.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/voodoo.h b/src/voodoo.h +index bfed497..c3eb64e 100644 +--- a/src/voodoo.h ++++ b/src/voodoo.h +@@ -23,7 +23,9 @@ typedef struct { + + Bool Voodoo2; /* Set if Voodoo2 */ + pciVideoPtr PciInfo; /* PCI data */ ++#ifndef XSERVER_LIBPCIACCESS + PCITAG PciTag; ++#endif + CARD32 PhysBase; + + CARD32 Width; /* Current width */ +-- +cgit v1.0 + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 5d8b3498e6..68f72bea98 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3488,14 +3488,7 @@ X server.") (base32 "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly")) (patches - (list (origin - (method url-fetch) - (uri "https://cgit.freedesktop.org/xorg/driver/\ -xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593") - (sha256 - (base32 - "0rndmxf5b8j3hjnhrwrnzsq5024fli134fj1mprhkcrvax2zq8db")) - (file-name "xf86-video-voodoo-pcitag.patch")))))) + (search-patches "xf86-video-voodoo-pcitag.patch")))) (build-system gnu-build-system) (inputs `(("xorgproto" ,xorgproto) ("xorg-server" ,xorg-server))) -- cgit v1.2.3 From 758ffc234d45eeebd4e98773a16b36ba2f31f124 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 20 May 2019 23:13:26 +0200 Subject: gnu: Add OpenZWave. * gnu/packages/zwave.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/zwave.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 gnu/packages/zwave.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c2f2ce2d40..558e6812b9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -494,6 +494,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/xorg.scm \ %D%/packages/xfce.scm \ %D%/packages/zile.scm \ + %D%/packages/zwave.scm \ \ %D%/services.scm \ %D%/services/admin.scm \ diff --git a/gnu/packages/zwave.scm b/gnu/packages/zwave.scm new file mode 100644 index 0000000000..43d1747332 --- /dev/null +++ b/gnu/packages/zwave.scm @@ -0,0 +1,84 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages zwave) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages base) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages xml)) + +(define-public open-zwave + (package + (name "open-zwave") + (version "1.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenZWave/open-zwave/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Set RUNPATH on the 'MinOZW' executable. + (substitute* "cpp/examples/MinOZW/Makefile" + (("\\$\\(LDFLAGS\\)") + "$(LDFLAGS) -Wl,-rpath=$(PREFIX)/lib")) + + ;; Delete the bundled TinyXML. + (delete-file-recursively "cpp/tinyxml") + (substitute* "cpp/build/Makefile" + (("LIBS \\+= -ludev") + "LIBS += -ludev -ltinyxml ")) + #t)))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (delete 'configure)) ;no 'configure' script + + #:make-flags (list "BUILD=debug" + (string-append "PREFIX=" + (assoc-ref %outputs "out")) + (string-append "pkgconfigdir=" + (assoc-ref %outputs "out") + "/lib/pkgconfig")) + + ;; "make check" and "make fulltest" are only concerned with checking + ;; the device XML database and it's not entirely clear what to get from + ;; them. + #:tests? #f)) + (native-inputs `(("which" ,which) + ("perl" ,perl) ;for tests + ("perl-xml-simple" ,perl-xml-simple))) + (inputs `(("tinyxml" ,tinyxml) + ("eudev" ,eudev))) + (home-page "http://www.openzwave.net/") + (synopsis "Access Z-Wave devices from C++ programs") + (description + "OpenZWave (or OZW) is a C++ library that interfaces with selected Z-Wave +PC controllers. It allows developers to create applications that manipulate +and respond to devices on a Z-Wave network, without requiring in-depth +knowledge of the Z-Wave protocol.") + (license license:lgpl3+))) -- cgit v1.2.3 From 8308f0ba9e65daeadcc7e8922377b3d5e9f10e05 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 19 May 2019 16:54:10 +0200 Subject: gnu: webkitgtk: Update to 2.24.2 [security fixes]. This fixes CVE-2019-8595, CVE-2019-8607, and CVE-2019-8615. * gnu/packages/patches/webkitgtk-sse2.patch: Delete file. * gnu/packages/patches/webkitgtk-sans-gstreamer-gl.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/webkit.scm (webkitgtk-2.24): Update to 2.24.2. [source](patches): Add the new patch; remove 'webkitgtk-sse2.patch'. --- gnu/local.mk | 2 +- .../patches/webkitgtk-sans-gstreamer-gl.patch | 24 +++ gnu/packages/patches/webkitgtk-sse2.patch | 202 --------------------- gnu/packages/webkit.scm | 6 +- 4 files changed, 28 insertions(+), 206 deletions(-) create mode 100644 gnu/packages/patches/webkitgtk-sans-gstreamer-gl.patch delete mode 100644 gnu/packages/patches/webkitgtk-sse2.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 558e6812b9..cfc16c5ac8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1349,7 +1349,7 @@ dist_patch_DATA = \ %D%/packages/patches/wavpack-CVE-2018-6767.patch \ %D%/packages/patches/wavpack-CVE-2018-7253.patch \ %D%/packages/patches/wavpack-CVE-2018-7254.patch \ - %D%/packages/patches/webkitgtk-sse2.patch \ + %D%/packages/patches/webkitgtk-sans-gstreamer-gl.patch \ %D%/packages/patches/weechat-python.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ diff --git a/gnu/packages/patches/webkitgtk-sans-gstreamer-gl.patch b/gnu/packages/patches/webkitgtk-sans-gstreamer-gl.patch new file mode 100644 index 0000000000..4577c81edb --- /dev/null +++ b/gnu/packages/patches/webkitgtk-sans-gstreamer-gl.patch @@ -0,0 +1,24 @@ +Fix build failure when USE_GSTREAMER_GL=off. See +. + +This patch is taken from the upstream source repository: +. + +diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +index 00a2af6489e..5cb5f7536ac 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +@@ -1000,11 +1000,13 @@ void MediaPlayerPrivateGStreamerBase::updateTextureMapperFlags() + break; + } + ++#if USE(GSTREAMER_GL) + // When the imxvpudecoder is used, the texture sampling of the + // directviv-uploaded texture returns an RGB value, so there's no need to + // convert it. + if (m_videoDecoderPlatform != WebKitGstVideoDecoderPlatform::ImxVPU) + m_textureMapperFlags |= TEXTURE_MAPPER_COLOR_CONVERT_FLAG; ++#endif + } + #endif + diff --git a/gnu/packages/patches/webkitgtk-sse2.patch b/gnu/packages/patches/webkitgtk-sse2.patch deleted file mode 100644 index df70e38919..0000000000 --- a/gnu/packages/patches/webkitgtk-sse2.patch +++ /dev/null @@ -1,202 +0,0 @@ -Fix build on i686. - -This patch is taken from upstream, with ChangeLog entries omitted. - -From 5048338c5f21605441c6833907d1136ac9640b35 Mon Sep 17 00:00:00 2001 -From: "mcatanzaro@igalia.com" - -Date: Wed, 10 Apr 2019 18:27:25 +0000 -Subject: [PATCH] Unreviewed, rolling out r243989. - -Broke i686 builds - -Reverted changeset: - -"[CMake] Detect SSE2 at compile time" -https://bugs.webkit.org/show_bug.cgi?id=196488 -https://trac.webkit.org/changeset/243989 - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@244138 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - CMakeLists.txt | 10 --- - ChangeLog | 12 ++++ - Source/JavaScriptCore/ChangeLog | 12 ++++ - .../assembler/MacroAssemblerX86Common.cpp | 7 ++ - .../assembler/MacroAssemblerX86Common.h | 30 +++++++++ - Source/cmake/FindSSE2.cmake | 65 ------------------- - 6 files changed, 61 insertions(+), 75 deletions(-) - delete mode 100644 Source/cmake/FindSSE2.cmake - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index acd77f4b623..d3e8a23f9ff 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -114,16 +114,6 @@ else () - set(WTF_CPU_UNKNOWN 1) - endif () - --#--------------------------- --# Make sure SSE2 is present. --#--------------------------- --if (WTF_CPU_X86) -- include(FindSSE2) -- if (NOT SSE2_SUPPORT_FOUND) -- message(FATAL_ERROR "SSE2 support is required to compile WebKit") -- endif () --endif () -- - # ----------------------------------------------------------------------------- - # Determine the operating system - # ----------------------------------------------------------------------------- -diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp -index 8c752c0d030..31753589df7 100644 ---- a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp -+++ b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp -@@ -168,6 +168,11 @@ static_assert(PROBE_OFFSETOF_REG(cpu.fprs, X86Registers::xmm15) == PROBE_CPU_XMM - static_assert(sizeof(Probe::State) == PROBE_SIZE, "Probe::State::size's matches ctiMasmProbeTrampoline"); - static_assert((PROBE_EXECUTOR_OFFSET + PTR_SIZE) <= (PROBE_SIZE + OUT_SIZE), "Must have room after ProbeContext to stash the probe handler"); - -+#if CPU(X86) -+// SSE2 is a hard requirement on x86. -+static_assert(isSSE2Present(), "SSE2 support is required in JavaScriptCore"); -+#endif -+ - #undef PROBE_OFFSETOF - - #if CPU(X86) -@@ -787,6 +792,7 @@ void MacroAssemblerX86Common::collectCPUFeatures() - std::call_once(onceKey, [] { - { - CPUID cpuid = getCPUID(0x1); -+ s_sse2CheckState = (cpuid[3] & (1 << 26)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear; - s_sse4_1CheckState = (cpuid[2] & (1 << 19)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear; - s_sse4_2CheckState = (cpuid[2] & (1 << 20)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear; - s_popcntCheckState = (cpuid[2] & (1 << 23)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear; -@@ -803,6 +809,7 @@ void MacroAssemblerX86Common::collectCPUFeatures() - }); - } - -+MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse2CheckState = CPUIDCheckState::NotChecked; - MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse4_1CheckState = CPUIDCheckState::NotChecked; - MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse4_2CheckState = CPUIDCheckState::NotChecked; - MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_avxCheckState = CPUIDCheckState::NotChecked; -diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h -index ff097290ef3..097bcb0bb86 100644 ---- a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h -+++ b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h -@@ -4197,11 +4197,41 @@ private: - } - #endif - -+#if CPU(X86) -+#if OS(MAC_OS_X) -+ -+ // All X86 Macs are guaranteed to support at least SSE2, -+ static bool isSSE2Present() -+ { -+ return true; -+ } -+ -+#else // OS(MAC_OS_X) -+ static bool isSSE2Present() -+ { -+ if (s_sse2CheckState == CPUIDCheckState::NotChecked) -+ collectCPUFeatures(); -+ return s_sse2CheckState == CPUIDCheckState::Set; -+ } -+ -+#endif // OS(MAC_OS_X) -+#elif !defined(NDEBUG) // CPU(X86) -+ -+ // On x86-64 we should never be checking for SSE2 in a non-debug build, -+ // but non debug add this method to keep the asserts above happy. -+ static bool isSSE2Present() -+ { -+ return true; -+ } -+ -+#endif -+ - using CPUID = std::array; - static CPUID getCPUID(unsigned level); - static CPUID getCPUIDEx(unsigned level, unsigned count); - JS_EXPORT_PRIVATE static void collectCPUFeatures(); - -+ JS_EXPORT_PRIVATE static CPUIDCheckState s_sse2CheckState; - JS_EXPORT_PRIVATE static CPUIDCheckState s_sse4_1CheckState; - JS_EXPORT_PRIVATE static CPUIDCheckState s_sse4_2CheckState; - JS_EXPORT_PRIVATE static CPUIDCheckState s_avxCheckState; -diff --git a/Source/cmake/FindSSE2.cmake b/Source/cmake/FindSSE2.cmake -deleted file mode 100644 -index 7a947feadd4..00000000000 ---- a/Source/cmake/FindSSE2.cmake -+++ /dev/null -@@ -1,65 +0,0 @@ --################################# --# Check for the presence of SSE2. --# --# Once done, this will define: --# - SSE2_SUPPORT_FOUND - the system supports (at least) SSE2. --# --# Copyright (c) 2014, Pablo Fernandez Alcantarilla, Jesus Nuevo --# Copyright (c) 2019, Igalia S.L. --# --# Redistribution and use in source and binary forms, with or without modification, --# are permitted provided that the following conditions are met: --# --# * Redistributions of source code must retain the above copyright notice, --# this list of conditions and the following disclaimer. --# --# * Redistributions in binary form must reproduce the above copyright notice, --# this list of conditions and the following disclaimer in the documentation --# and/or other materials provided with the distribution. --# --# * Neither the name of the copyright holders nor the names of its contributors --# may be used to endorse or promote products derived from this software without --# specific prior written permission. --# --# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY --# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES --# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT --# SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, --# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED --# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR --# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN --# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY --# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- --set(SSE2_SUPPORT_FOUND FALSE) -- --macro(CHECK_FOR_SSE2) -- include(CheckCXXSourceRuns) -- -- check_cxx_source_runs(" -- #include -- int main () -- { -- __m128d a, b; -- double vals[2] = {0}; -- a = _mm_loadu_pd (vals); -- b = _mm_add_pd (a,a); -- _mm_storeu_pd (vals,b); -- return(0); -- }" -- HAVE_SSE2_EXTENSIONS) -- -- if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) -- if (HAVE_SSE2_EXTENSIONS) -- set(SSE2_SUPPORT_FOUND TRUE) -- endif () -- elseif (MSVC AND NOT CMAKE_CL_64) -- if (HAVE_SSE2_EXTENSIONS) -- set(SSE2_SUPPORT_FOUND TRUE) -- message(STATUS "Found SSE2 extensions.") -- endif (HAVE_SSE2_EXTENSIONS) -- endif () -- --endmacro(CHECK_FOR_SSE2) -- --CHECK_FOR_SSE2() --- -2.21.0 - diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index ce69d0a7d4..e9b7ab74a7 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -168,15 +168,15 @@ HTML/CSS applications to full-fledged web browsers.") (define-public webkitgtk-2.24 (package/inherit webkitgtk (name "webkitgtk") - (version "2.24.1") + (version "2.24.2") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0v9riwrmwi9wxbb8hlvcbyyxa9zxhcdk6s1xcspalk6asam8xjsk")) - (patches (search-patches "webkitgtk-sse2.patch")))) + "071jnjvjq6wsxx1jh4ql3j53h1nhphs5ga67fa5i9xjvs3qb3701")) + (patches (search-patches "webkitgtk-sans-gstreamer-gl.patch")))) (native-inputs `(("gcc" ,gcc-7) ; webkitgtk-2.22 requires gcc-6 or newer ,@(package-native-inputs webkitgtk))) -- cgit v1.2.3 From 39d655f8cf1448fa28c6157e02c7a41eb23ca66a Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Sat, 18 May 2019 21:51:19 -0700 Subject: gnu: Add squirrel. * gnu/packages/squirrel.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/squirrel.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 gnu/packages/squirrel.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index cfc16c5ac8..f8366e6ce2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -436,6 +436,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/speech.scm \ %D%/packages/spice.scm \ %D%/packages/sqlite.scm \ + %D%/packages/squirrel.scm \ %D%/packages/ssh.scm \ %D%/packages/sssd.scm \ %D%/packages/stalonetray.scm \ diff --git a/gnu/packages/squirrel.scm b/gnu/packages/squirrel.scm new file mode 100644 index 0000000000..1da0ad9fe3 --- /dev/null +++ b/gnu/packages/squirrel.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Li-cheng (Andy) Tai +;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages squirrel) + #:use-module (gnu packages) + #:use-module (gnu packages cmake) + #:use-module (guix build-system cmake) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build utils) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public squirrel + (let ((commit "51137b84e66c4d526809fd8a59f4ba1d38138c76")) + (package + (name "squirrel") + (version "3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/albertodemichelis/squirrel.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0vbiv1q3qcy2vj8y0b9a2ckswl9ld398n3jnxijvwddrjgya5zav")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; no tests + (native-inputs + `(("cmake" ,cmake))) + (home-page "https://squirrel-lang.org/") + (synopsis "High level imperative, object-oriented programming language") + (description + "Squirrel is a high level imperative, object-oriented programming +language, designed to be a light-weight scripting language that fits in the +size, memory bandwidth, and real-time requirements of applications like video +games.") + (license license:expat)))) -- cgit v1.2.3 From 9d0c291e3e6d226cdfd4cebee0a389ad24fa748f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 12 May 2019 22:56:54 +0200 Subject: gnu: Move Sphinx and friends to (gnu packages sphinx). * gnu/packages/python-xyz.scm (python-sphinxcontrib-websupport, python2-sphinxcontrib-websupport, python-sphinx, python2-sphinx, python-sphinx-gallery, python2-sphinx-gallery, python-sphinx-rtd-theme, python2-sphinx-rtd-theme, python-guzzle-sphinx-theme, python2-guzzle-sphinx-theme, python-sphinxcontrib-newsfeed, python-sphinxcontrib-programoutput, python2-sphinxcontrib-programoutput, python-sphinx-repoze-interface, python2-sphinx-repoze-interface, python-sphinx-cloud-sptheme, python2-sphinx-cloud-sptheme, python-sphinx-alabaster-theme, python2-sphinx-alabaster-theme, python-sphinx-me, python-sphinxcontrib-svg2pdfconverter): Move to ... (gnu): * gnu/packages/sphinx.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu/packages/admin.scm, gnu/packages/bioinformatics.scm, gnu/packages/calendar.scm, gnu/packages/cluster.scm, gnu/packages/databases.scm, gnu/packages/dav.scm, gnu/packages/disk.scm, gnu/packages/django.scm, gnu/packages/elf.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emulators.scm, gnu/packages/finance.scm, gnu/packages/image.scm, gnu/packages/libffi.scm, gnu/packages/mail.scm, gnu/packages/mpd.scm, gnu/packages/openstack.scm, gnu/packages/pdf.scm, gnu/packages/python-web.scm, gnu/packages/search.scm, gnu/packages/statistics.scm, gnu/packages/storage.scm, gnu/packages/sync.scm, gnu/packages/terminals.scm, gnu/packages/tls.scm, gnu/packages/web.scm: Adjust module imports. --- gnu/local.mk | 1 + gnu/packages/admin.scm | 1 + gnu/packages/bioinformatics.scm | 1 + gnu/packages/calendar.scm | 1 + gnu/packages/cluster.scm | 2 +- gnu/packages/databases.scm | 1 + gnu/packages/dav.scm | 3 +- gnu/packages/disk.scm | 1 + gnu/packages/django.scm | 1 + gnu/packages/elf.scm | 2 +- gnu/packages/emacs-xyz.scm | 1 + gnu/packages/emulators.scm | 2 +- gnu/packages/finance.scm | 1 + gnu/packages/image.scm | 1 + gnu/packages/libffi.scm | 1 + gnu/packages/mail.scm | 1 + gnu/packages/mpd.scm | 2 +- gnu/packages/openstack.scm | 1 + gnu/packages/pdf.scm | 1 + gnu/packages/python-web.scm | 1 + gnu/packages/python-xyz.scm | 328 +---------------------------------- gnu/packages/search.scm | 1 + gnu/packages/sphinx.scm | 369 ++++++++++++++++++++++++++++++++++++++++ gnu/packages/statistics.scm | 1 + gnu/packages/storage.scm | 1 + gnu/packages/sync.scm | 2 +- gnu/packages/terminals.scm | 1 + gnu/packages/tls.scm | 1 + gnu/packages/web.scm | 9 +- 29 files changed, 402 insertions(+), 337 deletions(-) create mode 100644 gnu/packages/sphinx.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index f8366e6ce2..d0745b0056 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -434,6 +434,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/smalltalk.scm \ %D%/packages/sml.scm \ %D%/packages/speech.scm \ + %D%/packages/sphinx.scm \ %D%/packages/spice.scm \ %D%/packages/sqlite.scm \ %D%/packages/squirrel.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e509cdd3a8..75380be594 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -90,6 +90,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages sphinx) #:use-module (gnu packages terminals) #:use-module (gnu packages texinfo) #:use-module (gnu packages groff) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0a30d0921f..8aba7f1c5f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -110,6 +110,7 @@ #:use-module (gnu packages ruby) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) + #:use-module (gnu packages sphinx) #:use-module (gnu packages statistics) #:use-module (gnu packages swig) #:use-module (gnu packages tbb) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 2969228ee9..af692e59f2 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages time) #:use-module (gnu packages xml) diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index 8d6669cd22..3608d67bed 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm @@ -24,7 +24,7 @@ #:use-module (guix packages) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls)) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index c7acc4281a..8a6e3ab00c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -94,6 +94,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages serialization) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 0bb446bc3c..3b040028a1 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -26,7 +26,8 @@ #:use-module (gnu packages check) #:use-module (gnu packages python) #:use-module (gnu packages python-web) - #:use-module (gnu packages python-xyz)) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx)) (define-public radicale (package diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 3211f8dd20..491f7ce881 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) #:use-module (gnu packages vim) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index c761a1061b..2ef50bd0f7 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages time)) (define-public python-django diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 99f49eb7a7..09be3a75a3 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -34,7 +34,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml)) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 0dc14a4898..beb35c8122 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -125,6 +125,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages password-utils) #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages sphinx) #:use-module (gnu packages xdisorg) #:use-module (gnu packages shells) #:use-module (gnu packages sqlite) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index a237b0ee1a..23e5a976ce 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -65,9 +65,9 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 592e353723..e1a1e8ab6f 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index a86d0e749f..e3956394cc 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages qt) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index f47f7623b4..c1d50ec314 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages ruby) + #:use-module (gnu packages sphinx) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix build-system ruby)) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1f54c34962..114ef32a9d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -106,6 +106,7 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages samba) #:use-module (gnu packages screen) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index a6f6819d3e..f631dbd7c6 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -50,8 +50,8 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages video) #:use-module (gnu packages xiph)) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 2906a574cf..289b845ebc 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -28,6 +28,7 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages ssh) #:use-module (gnu packages time) #:use-module (gnu packages tls) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index c1153cc0b7..5c858510eb 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages sdl) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages xdisorg) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index a163014c47..5d37e171e4 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages tls) #:use-module (gnu packages time) #:use-module (gnu packages web) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index e5f9f39694..7e180bf04b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -125,6 +125,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages search) #:use-module (gnu packages shells) + #:use-module (gnu packages sphinx) #:use-module (gnu packages ssh) #:use-module (gnu packages terminals) #:use-module (gnu packages tex) @@ -2504,174 +2505,6 @@ reStructuredText.") (define-public python2-pygments (package-with-python2 python-pygments)) -(define-public python-sphinxcontrib-websupport - (package - (name "python-sphinxcontrib-websupport") - (version "1.1.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "sphinxcontrib-websupport" version)) - (sha256 - (base32 - "1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x")))) - (build-system python-build-system) - (arguments - ;; FIXME: Tests depend on Sphinx, which depends on this. - `(#:tests? #f)) - (home-page "http://sphinx-doc.org/") - (synopsis "Sphinx API for web applications") - (description "This package provides a Python API to easily integrate -Sphinx documentation into your web application. It provides tools to -integrate Sphinx documents in web templates and to handle searches.") - (license license:bsd-3))) - -(define-public python2-sphinxcontrib-websupport - (package-with-python2 python-sphinxcontrib-websupport)) - -(define-public python-sphinx - (package - (name "python-sphinx") - (version "1.7.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "Sphinx" version)) - (sha256 - (base32 - "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Requires Internet access. - (delete-file "tests/test_build_linkcheck.py") - (substitute* "tests/test_build_latex.py" - (("@pytest.mark.sphinx\\('latex', testroot='images'\\)") - "@pytest.mark.skip()")) - (when (which "python") - ;; XXX: These tests are broken when using Python2: - ;; . - (delete-file "tests/test_api_translator.py") - (delete-file "tests/test_setup_command.py")) - (invoke "make" "test")))))) - (propagated-inputs - `(("python-imagesize" ,python-imagesize) - ("python-sphinx-alabaster-theme" - ,python-sphinx-alabaster-theme) - ("python-babel" ,python-babel) - ("python-snowballstemmer" ,python-snowballstemmer) - ("python-docutils" ,python-docutils) - ("python-jinja2" ,python-jinja2) - ("python-packaging" ,python-packaging) - ("python-pygments" ,python-pygments) - ("python-requests" ,python-requests) - ("python-six" ,python-six) - ("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport))) - (native-inputs - `(("graphviz" ,graphviz) - ("imagemagick" ,imagemagick) ;for "convert" - ("python-html5lib" ,python-html5lib) - ("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("python-pytest" ,python-pytest))) - (home-page "http://sphinx-doc.org/") - (synopsis "Python documentation generator") - (description "Sphinx is a tool that makes it easy to create documentation -for Python projects or other documents consisting of multiple reStructuredText -sources.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-sphinx)))))) - -(define-public python2-sphinx - (let ((base (package-with-python2 (strip-python2-variant python-sphinx)))) - (package - (inherit base) - (native-inputs `(("python2-mock" ,python2-mock) - ("python2-enum34" ,python2-enum34) - ,@(package-native-inputs base))) - (propagated-inputs `(("python2-pytz" ,python2-pytz) - ("python2-typing" ,python2-typing) - ,@(package-propagated-inputs base)))))) - -(define-public python-sphinx-gallery - (package - (name "python-sphinx-gallery") - (version "0.1.13") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/sphinx-gallery/sphinx-gallery" - "/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "03fs99mcb1r7qp0xixqv07vcz98sk21yq19ffdysi0infdcpzfkd")))) - (build-system python-build-system) - (arguments - ;; FIXME: Tests attempt to download , - ;; , and - ;; . - `(#:tests? #f)) - (native-inputs - `(("python-pytest-runner" ,python-pytest-runner))) - (home-page "https://sphinx-gallery.github.io/") - (synopsis "Generate an examples gallery automatically") - (description - "@code{sphinx_gallery} is a Sphinx extension that builds an HTML version -from any set of Python scripts and puts it into an examples gallery.") - (license license:bsd-3))) - -(define-public python2-sphinx-gallery - (package-with-python2 python-sphinx-gallery)) - -(define-public python-sphinx-rtd-theme - (package - (name "python-sphinx-rtd-theme") - (version "0.2.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sphinx_rtd_theme" version)) - (sha256 - (base32 - "05rlhjzdyapr2w74jjs7mrm8hi69qskcr5vya9f9drpsys7lpxrd")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (propagated-inputs - `(("python-sphinx" ,python-sphinx))) - (home-page "https://github.com/snide/sphinx_rtd_theme/") - (synopsis "ReadTheDocs.org theme for Sphinx") - (description "A theme for Sphinx used by ReadTheDocs.org.") - (license license:expat))) - -(define-public python2-sphinx-rtd-theme - (package-with-python2 python-sphinx-rtd-theme)) - -(define-public python-guzzle-sphinx-theme - (package - (name "python-guzzle-sphinx-theme") - (version "0.7.11") - (source - (origin - (method url-fetch) - (uri (pypi-uri "guzzle_sphinx_theme" version)) - (sha256 - (base32 - "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v")))) - (build-system python-build-system) - (propagated-inputs - `(("python-sphinx" ,python-sphinx))) - (home-page "https://github.com/guzzle/guzzle_sphinx_theme") - (synopsis "Sphinx theme used by Guzzle") - (description "This package provides guzzle_sphinx_theme, a theme for the -Sphinx documentation system, used by @uref{http://docs.guzzlephp.org, Guzzle} -and several other projects.") - (license license:expat))) - -(define-public python2-guzzle-sphinx-theme - (package-with-python2 python-guzzle-sphinx-theme)) - (define-public python-bumpversion (package (name "python-bumpversion") @@ -8068,26 +7901,6 @@ files for use with Python.") (home-page "https://github.com/collective/icalendar") (license license:bsd-2))) -(define-public python-sphinxcontrib-newsfeed - (package - (name "python-sphinxcontrib-newsfeed") - (version "0.1.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "sphinxcontrib-newsfeed" version)) - (sha256 - (base32 - "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p")))) - (arguments '(#:tests? #f)) ; No tests. - (build-system python-build-system) - (propagated-inputs - `(("python-sphinx" ,python-sphinx))) - (synopsis "News Feed extension for Sphinx") - (description "Sphinxcontrib-newsfeed is an extension for adding a simple -Blog, News or Announcements section to a Sphinx website.") - (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed") - (license license:bsd-2))) - (define-public python-args (package (name "python-args") @@ -8887,56 +8700,6 @@ programmatically interfacing with your system's $EDITOR.") (define-public python2-editor (package-with-python2 python-editor)) -(define-public python-sphinxcontrib-programoutput - (package - (name "python-sphinxcontrib-programoutput") - (version "0.10") - (source (origin - (method url-fetch) - (uri (pypi-uri "sphinxcontrib-programoutput" version)) - (sha256 - (base32 - "153hhnlbx4688zj9wd64819ps5znc2jlyp5crkgzvn5hxgy99vpx")))) - (build-system python-build-system) - (arguments - ;; FIXME: Many tests are failing and the upstream is gone. - '(#:tests? #f)) - (propagated-inputs - `(("python-sphinx" ,python-sphinx))) - (synopsis "Sphinx extension to include program output") - (description "A Sphinx extension to literally insert the output of arbitrary -commands into documents, helping you to keep your command examples up to date.") - (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput") - (license license:bsd-2))) - -(define-public python2-sphinxcontrib-programoutput - (package-with-python2 python-sphinxcontrib-programoutput)) - -(define-public python-sphinx-repoze-autointerface - (package - (name "python-sphinx-repoze-autointerface") - (version "0.8") - (source (origin - (method url-fetch) - (uri (pypi-uri "repoze.sphinx.autointerface" version)) - (sha256 - (base32 - "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; No tests. - (propagated-inputs - `(("python-sphinx" ,python-sphinx) - ("python-zope-interface" ,python-zope-interface))) - (synopsis "Auto-generate Sphinx API docs from Zope interfaces") - (description "This package defines an extension for the Sphinx documentation -system. The extension allows generation of API documentation by -introspection of @code{zope.interface} instances in code.") - (home-page "https://github.com/repoze/repoze.sphinx.autointerface") - (license license:repoze))) - -(define-public python2-sphinx-repoze-autointerface - (package-with-python2 python-sphinx-repoze-autointerface)) - (define-public python-vobject (package (name "python-vobject") @@ -10926,52 +10689,6 @@ English stemmer.") (define-public python2-snowballstemmer (package-with-python2 python-snowballstemmer)) -(define-public python-sphinx-cloud-sptheme - (package - (name "python-sphinx-cloud-sptheme") - (version "1.8.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "cloud_sptheme" version)) - (sha256 - (base32 - "1dniqb6a39yh786f86c4jn666rwnyi1jvzn4616zhcchb7sfdshd")))) - (build-system python-build-system) - ;; FIXME: The 'pypi' release archive does not contain tests. - (arguments '(#:tests? #f)) - (native-inputs - `(("python-sphinx" ,python-sphinx))) - (home-page "https://bitbucket.org/ecollins/cloud_sptheme") - (synopsis "'Cloud' theme for Sphinx documenter") - (description "This package contains the \"Cloud\" theme for Sphinx and some -related extensions.") - (license license:bsd-3))) - -(define-public python2-sphinx-cloud-sptheme - (package-with-python2 python-sphinx-cloud-sptheme)) - -(define-public python-sphinx-alabaster-theme - (package - (name "python-sphinx-alabaster-theme") - (version "0.7.12") - (source (origin - (method url-fetch) - (uri (pypi-uri "alabaster" version)) - (sha256 - (base32 - "00nwwjj2d2ym4s2kk217x7jkx1hnczc3fvm8yxbqmsp6b0nxfqd6")))) - (build-system python-build-system) - (propagated-inputs - `(("python-pygments" ,python-pygments))) - (home-page "https://alabaster.readthedocs.io/") - (synopsis "Configurable sidebar-enabled Sphinx theme") - (description "Alabaster is a visually (c)lean, responsive, configurable -theme for the Sphinx documentation system. It's the default theme of Sphinx.") - (license license:bsd-3))) - -(define-public python2-sphinx-alabaster-theme - (package-with-python2 python-sphinx-alabaster-theme)) - (define-public python-setproctitle (package (name "python-setproctitle") @@ -12276,30 +11993,6 @@ make common patterns shorter and easier.") (define-public python2-utils (package-with-python2 python-utils)) -(define-public python-sphinx-me - (package - (name "python-sphinx-me") - (version "0.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sphinx-me" version)) - (sha256 - (base32 - "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq")))) - (build-system python-build-system) - (home-page "https://github.com/stephenmcd/sphinx-me") - (synopsis "Create a Sphinx documentation shell") - (description - "Create a Sphinx documentation shell for your project and include the -README file as the documentation index. It handles extracting the required -meta data such as the project name, author and version from your project for -use in your Sphinx docs.") - (license license:bsd-2))) - -(define-public python2-sphinx-me - (package-with-python2 python-sphinx-me)) - (define-public python-diff-match-patch (package (name "python-diff-match-patch") @@ -15678,25 +15371,6 @@ file-based data structures that are @code{mmap}ped into memory so that many processes may share the same data.") (license license:asl2.0))) -(define-public python-sphinxcontrib-svg2pdfconverter - (package - (name "python-sphinxcontrib-svg2pdfconverter") - (version "0.1.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "sphinxcontrib-svg2pdfconverter" version)) - (sha256 - (base32 - "1abvbgkkii13q8nsb10r0gc5lm0p9iq1iwhfhakn5ifn6asa0183")))) - (build-system python-build-system) - (propagated-inputs - `(("python-sphinx" ,python-sphinx))) - (home-page "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter/releases") - (synopsis "Sphinx SVG to PDF converter extension") - (description "A Sphinx extension to convert SVG images to PDF in case the builder does not support -SVG images natively (e.g. LaTeX).") - (license license:bsd-3))) - (define-public python-pylzma (package (name "python-pylzma") diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index fe51900179..9b2876c359 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml)) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm new file mode 100644 index 0000000000..28925a0492 --- /dev/null +++ b/gnu/packages/sphinx.scm @@ -0,0 +1,369 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 David Thompson +;;; Copyright © 2015, 2017 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Leo Famulari +;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke +;;; Copyright © 2017 Danny Milosavljevic +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017 Frederick M. Muriithi +;;; Copyright © 2017 Christopher Allan Webber +;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2019 Efraim Flashner +;;; Copyright © 2019 Nicolas Goaziou +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages sphinx) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages check) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages time)) + +(define-public python-sphinx + (package + (name "python-sphinx") + (version "1.7.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Sphinx" version)) + (sha256 + (base32 + "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Requires Internet access. + (delete-file "tests/test_build_linkcheck.py") + (substitute* "tests/test_build_latex.py" + (("@pytest.mark.sphinx\\('latex', testroot='images'\\)") + "@pytest.mark.skip()")) + (when (which "python") + ;; XXX: These tests are broken when using Python2: + ;; . + (delete-file "tests/test_api_translator.py") + (delete-file "tests/test_setup_command.py")) + (invoke "make" "test")))))) + (propagated-inputs + `(("python-imagesize" ,python-imagesize) + ("python-sphinx-alabaster-theme" + ,python-sphinx-alabaster-theme) + ("python-babel" ,python-babel) + ("python-snowballstemmer" ,python-snowballstemmer) + ("python-docutils" ,python-docutils) + ("python-jinja2" ,python-jinja2) + ("python-packaging" ,python-packaging) + ("python-pygments" ,python-pygments) + ("python-requests" ,python-requests) + ("python-six" ,python-six) + ("python-sphinxcontrib-websupport" ,python-sphinxcontrib-websupport))) + (native-inputs + `(("graphviz" ,graphviz) + ("imagemagick" ,imagemagick) ;for "convert" + ("python-html5lib" ,python-html5lib) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) + (home-page "http://sphinx-doc.org/") + (synopsis "Python documentation generator") + (description "Sphinx is a tool that makes it easy to create documentation +for Python projects or other documents consisting of multiple reStructuredText +sources.") + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-sphinx)))))) + +(define-public python2-sphinx + (let ((base (package-with-python2 (strip-python2-variant python-sphinx)))) + (package + (inherit base) + (native-inputs `(("python2-mock" ,python2-mock) + ("python2-enum34" ,python2-enum34) + ,@(package-native-inputs base))) + (propagated-inputs `(("python2-pytz" ,python2-pytz) + ("python2-typing" ,python2-typing) + ,@(package-propagated-inputs base)))))) + +(define-public python-sphinxcontrib-newsfeed + (package + (name "python-sphinxcontrib-newsfeed") + (version "0.1.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-newsfeed" version)) + (sha256 + (base32 + "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p")))) + (arguments '(#:tests? #f)) ; No tests. + (build-system python-build-system) + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (synopsis "News Feed extension for Sphinx") + (description "Sphinxcontrib-newsfeed is an extension for adding a simple +Blog, News or Announcements section to a Sphinx website.") + (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed") + (license license:bsd-2))) + +(define-public python-sphinxcontrib-programoutput + (package + (name "python-sphinxcontrib-programoutput") + (version "0.10") + (source (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-programoutput" version)) + (sha256 + (base32 + "153hhnlbx4688zj9wd64819ps5znc2jlyp5crkgzvn5hxgy99vpx")))) + (build-system python-build-system) + (arguments + ;; FIXME: Many tests are failing and the upstream is gone. + '(#:tests? #f)) + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (synopsis "Sphinx extension to include program output") + (description "A Sphinx extension to literally insert the output of arbitrary +commands into documents, helping you to keep your command examples up to date.") + (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput") + (license license:bsd-2))) + +(define-public python2-sphinxcontrib-programoutput + (package-with-python2 python-sphinxcontrib-programoutput)) + +(define-public python-sphinxcontrib-svg2pdfconverter + (package + (name "python-sphinxcontrib-svg2pdfconverter") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-svg2pdfconverter" version)) + (sha256 + (base32 + "1abvbgkkii13q8nsb10r0gc5lm0p9iq1iwhfhakn5ifn6asa0183")))) + (build-system python-build-system) + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter/releases") + (synopsis "Sphinx SVG to PDF converter extension") + (description "A Sphinx extension to convert SVG images to PDF in case the builder does not support +SVG images natively (e.g. LaTeX).") + (license license:bsd-3))) + +(define-public python-sphinxcontrib-websupport + (package + (name "python-sphinxcontrib-websupport") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-websupport" version)) + (sha256 + (base32 + "1ff3ix76xi1y6m99qxhaq5161ix9swwzydilvdya07mgbcvpzr4x")))) + (build-system python-build-system) + (arguments + ;; FIXME: Tests depend on Sphinx, which depends on this. + `(#:tests? #f)) + (home-page "http://sphinx-doc.org/") + (synopsis "Sphinx API for web applications") + (description "This package provides a Python API to easily integrate +Sphinx documentation into your web application. It provides tools to +integrate Sphinx documents in web templates and to handle searches.") + (license license:bsd-3))) + +(define-public python2-sphinxcontrib-websupport + (package-with-python2 python-sphinxcontrib-websupport)) + +(define-public python-sphinx-gallery + (package + (name "python-sphinx-gallery") + (version "0.1.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sphinx-gallery/sphinx-gallery" + "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03fs99mcb1r7qp0xixqv07vcz98sk21yq19ffdysi0infdcpzfkd")))) + (build-system python-build-system) + (arguments + ;; FIXME: Tests attempt to download , + ;; , and + ;; . + `(#:tests? #f)) + (native-inputs + `(("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://sphinx-gallery.github.io/") + (synopsis "Generate an examples gallery automatically") + (description + "@code{sphinx_gallery} is a Sphinx extension that builds an HTML version +from any set of Python scripts and puts it into an examples gallery.") + (license license:bsd-3))) + +(define-public python2-sphinx-gallery + (package-with-python2 python-sphinx-gallery)) + +(define-public python-sphinx-me + (package + (name "python-sphinx-me") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinx-me" version)) + (sha256 + (base32 + "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq")))) + (build-system python-build-system) + (home-page "https://github.com/stephenmcd/sphinx-me") + (synopsis "Create a Sphinx documentation shell") + (description + "Create a Sphinx documentation shell for your project and include the +README file as the documentation index. It handles extracting the required +meta data such as the project name, author and version from your project for +use in your Sphinx docs.") + (license license:bsd-2))) + +(define-public python2-sphinx-me + (package-with-python2 python-sphinx-me)) + +(define-public python-sphinx-repoze-autointerface + (package + (name "python-sphinx-repoze-autointerface") + (version "0.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "repoze.sphinx.autointerface" version)) + (sha256 + (base32 + "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (propagated-inputs + `(("python-sphinx" ,python-sphinx) + ("python-zope-interface" ,python-zope-interface))) + (synopsis "Auto-generate Sphinx API docs from Zope interfaces") + (description "This package defines an extension for the Sphinx documentation +system. The extension allows generation of API documentation by +introspection of @code{zope.interface} instances in code.") + (home-page "https://github.com/repoze/repoze.sphinx.autointerface") + (license license:repoze))) + +(define-public python2-sphinx-repoze-autointerface + (package-with-python2 python-sphinx-repoze-autointerface)) + +(define-public python-sphinx-alabaster-theme + (package + (name "python-sphinx-alabaster-theme") + (version "0.7.12") + (source (origin + (method url-fetch) + (uri (pypi-uri "alabaster" version)) + (sha256 + (base32 + "00nwwjj2d2ym4s2kk217x7jkx1hnczc3fvm8yxbqmsp6b0nxfqd6")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pygments" ,python-pygments))) + (home-page "https://alabaster.readthedocs.io/") + (synopsis "Configurable sidebar-enabled Sphinx theme") + (description "Alabaster is a visually (c)lean, responsive, configurable +theme for the Sphinx documentation system. It's the default theme of Sphinx.") + (license license:bsd-3))) + +(define-public python2-sphinx-alabaster-theme + (package-with-python2 python-sphinx-alabaster-theme)) + +(define-public python-sphinx-cloud-sptheme + (package + (name "python-sphinx-cloud-sptheme") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "cloud_sptheme" version)) + (sha256 + (base32 + "1dniqb6a39yh786f86c4jn666rwnyi1jvzn4616zhcchb7sfdshd")))) + (build-system python-build-system) + ;; FIXME: The 'pypi' release archive does not contain tests. + (arguments '(#:tests? #f)) + (native-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://bitbucket.org/ecollins/cloud_sptheme") + (synopsis "'Cloud' theme for Sphinx documenter") + (description "This package contains the \"Cloud\" theme for Sphinx and some +related extensions.") + (license license:bsd-3))) + +(define-public python2-sphinx-cloud-sptheme + (package-with-python2 python-sphinx-cloud-sptheme)) + +(define-public python-guzzle-sphinx-theme + (package + (name "python-guzzle-sphinx-theme") + (version "0.7.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "guzzle_sphinx_theme" version)) + (sha256 + (base32 + "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v")))) + (build-system python-build-system) + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/guzzle/guzzle_sphinx_theme") + (synopsis "Sphinx theme used by Guzzle") + (description "This package provides guzzle_sphinx_theme, a theme for the +Sphinx documentation system, used by @uref{http://docs.guzzlephp.org, Guzzle} +and several other projects.") + (license license:expat))) + +(define-public python2-guzzle-sphinx-theme + (package-with-python2 python-guzzle-sphinx-theme)) + +(define-public python-sphinx-rtd-theme + (package + (name "python-sphinx-rtd-theme") + (version "0.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinx_rtd_theme" version)) + (sha256 + (base32 + "05rlhjzdyapr2w74jjs7mrm8hi69qskcr5vya9f9drpsys7lpxrd")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/snide/sphinx_rtd_theme/") + (synopsis "ReadTheDocs.org theme for Sphinx") + (description "A theme for Sphinx used by ReadTheDocs.org.") + (license license:expat))) + +(define-public python2-sphinx-rtd-theme + (package-with-python2 python-sphinx-rtd-theme)) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 277fb2b334..06f0aa1e75 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -66,6 +66,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) + #:use-module (gnu packages sphinx) #:use-module (gnu packages ssh) #:use-module (gnu packages tcl) #:use-module (gnu packages tex) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 9e7cd10918..503433be10 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -47,6 +47,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml)) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 136ffec9e7..51ed0317bc 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -37,11 +37,11 @@ #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages perl) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages rsync) #:use-module (gnu packages selinux) + #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls)) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 88bc992289..84454b2e0e 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -69,6 +69,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) + #:use-module (gnu packages sphinx) #:use-module (gnu packages ssh) #:use-module (gnu packages textutils) #:use-module (gnu packages xdisorg) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 7642935960..bb82efba5d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages base) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index e5f824d0af..86109ab77a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -74,6 +74,7 @@ #:use-module (gnu packages docbook) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) #:use-module (gnu packages bison) @@ -116,13 +117,13 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages readline) - #:use-module (gnu packages valgrind) - #:use-module (gnu packages xml) - #:use-module (gnu packages curl) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) - #:use-module (gnu packages version-control)) + #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xml)) (define-public httpd (package -- cgit v1.2.3