diff options
-rw-r--r-- | gnu/local.mk | 5 | ||||
-rw-r--r-- | gnu/packages/curl.scm | 64 | ||||
-rw-r--r-- | gnu/packages/gl.scm | 14 | ||||
-rw-r--r-- | gnu/packages/graphics.scm | 4 | ||||
-rw-r--r-- | gnu/packages/haskell-xyz.scm | 58 | ||||
-rw-r--r-- | gnu/packages/patches/ghc-basement-fix-32bit.patch | 177 | ||||
-rw-r--r-- | gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch | 303 | ||||
-rw-r--r-- | gnu/packages/patches/ghc-memory-fix-32bit.patch | 40 | ||||
-rw-r--r-- | gnu/packages/patches/ghc-persistent-fix-32bit.patch | 25 | ||||
-rw-r--r-- | gnu/packages/patches/php-fix-streams-copy-length.patch | 52 | ||||
-rw-r--r-- | gnu/packages/php.scm | 190 | ||||
-rw-r--r-- | gnu/packages/qt.scm | 5 | ||||
-rw-r--r-- | gnu/packages/sdl.scm | 17 | ||||
-rw-r--r-- | gnu/packages/tls.scm | 4 | ||||
-rw-r--r-- | gnu/packages/web.scm | 18 | ||||
-rw-r--r-- | gnu/packages/xdisorg.scm | 35 | ||||
-rw-r--r-- | gnu/packages/xorg.scm | 44 |
17 files changed, 417 insertions, 638 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 023cd4b17f..a8142bb0f2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1271,9 +1271,11 @@ dist_patch_DATA = \ %D%/packages/patches/ghc-9.2-grep-warnings.patch \ %D%/packages/patches/ghc-testsuite-dlopen-pie.patch \ %D%/packages/patches/ghc-testsuite-grep-compat.patch \ - %D%/packages/patches/ghc-bloomfilter-ghc9.2.patch \ + %D%/packages/patches/ghc-basement-fix-32bit.patch \ %D%/packages/patches/ghc-bytestring-handle-ghc9.patch \ %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \ + %D%/packages/patches/ghc-memory-fix-32bit.patch \ + %D%/packages/patches/ghc-persistent-fix-32bit.patch \ %D%/packages/patches/ghostscript-CVE-2023-36664.patch \ %D%/packages/patches/ghostscript-CVE-2023-36664-fixup.patch \ %D%/packages/patches/ghostscript-leptonica-hurd.patch \ @@ -1748,7 +1750,6 @@ dist_patch_DATA = \ %D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/password-store-tree-compat.patch \ %D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch \ - %D%/packages/patches/php-fix-streams-copy-length.patch \ %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \ %D%/packages/patches/pocketfft-cpp-prefer-preprocessor-if.patch \ %D%/packages/patches/pokerth-boost.patch \ diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index 9f06f35495..d94a0178af 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -64,15 +65,14 @@ (define-public curl (package (name "curl") - (version "7.85.0") - (replacement curl/fixed) + (version "8.4.0") (source (origin (method url-fetch) (uri (string-append "https://curl.se/download/curl-" version ".tar.xz")) (sha256 (base32 - "1rjbn0h5rddclhvxb8p5gddxszcrpbf5cw1whx6wnj4s9dnlmdc8")) + "0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn")) (patches (search-patches "curl-use-ssl-cert-env.patch")))) (build-system gnu-build-system) (outputs '("out" @@ -118,15 +118,28 @@ (rename-file (string-append #$output "/share/man/man3") (string-append #$output:doc "/share/man/man3")))) (replace 'check - (lambda* (#:key tests? #:allow-other-keys) + (lambda* (#:key tests? parallel-tests? make-flags #:allow-other-keys) (substitute* "tests/runtests.pl" (("/bin/sh") (which "sh"))) - (when tests? - ;; The top-level "make check" does "make -C tests quiet-test", which - ;; is too quiet. Use the "test" target instead, which is more - ;; verbose. - (invoke "make" "-C" "tests" "test")))) + (let* ((job-count (string-append + "-j" + (if parallel-tests? + (number->string (parallel-job-count)) + "1"))) + (arguments `("-C" "tests" "test" + ,@make-flags + ,(if #$(or (system-hurd?) + (target-arm32?) + (target-aarch64?)) + ;; protocol FAIL + (string-append "TFLAGS=\"~1474 " + job-count "\"") + (string-append "TFLAGS=" job-count))))) + ;; The top-level "make check" does "make -C tests quiet-test", which + ;; is too quiet. Use the "test" target instead, which is more + ;; verbose. + (apply invoke "make" arguments))))) #$@(if (system-hurd?) #~((add-after 'unpack 'skip-tests (lambda _ @@ -155,39 +168,6 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define curl/fixed - (let ((%version "8.4.0")) - (package - (inherit curl) - (version "8.4.0a") ; add lowercase 'a' for grafting - (source (origin - (method url-fetch) - (uri (string-append "https://curl.se/download/curl-" - %version ".tar.xz")) - (sha256 - (base32 - "0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn")) - (patches (search-patches "curl-use-ssl-cert-env.patch")))) - (arguments - (if (system-hurd?) - (substitute-keyword-arguments (package-arguments curl) - ((#:phases phases '%standard-phases) - #~(modify-phases #$phases - ;; We cannot simply set #:make-flags because they are - ;; ignored by curl's custom check phase. - (replace 'check - (lambda* (#:key tests? make-flags #:allow-other-keys) - (substitute* "tests/runtests.pl" - (("/bin/sh") (which "sh"))) - ;; See comment in curl about check/test. - (let ((arguments `("-C" "tests" "test" - ,@make-flags - ;; protocol FAIL - "TFLAGS=~1474"))) - (when tests? - (apply invoke "make" arguments)))))))) - (package-arguments curl)))))) - (define-public curl-ssh (package/inherit curl (arguments diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 6472158abc..c02a6f0a84 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -267,7 +267,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "23.1.4") + (version "23.2.1") (source (origin (method url-fetch) @@ -277,7 +277,7 @@ also known as DXTn or DXTC) for Mesa.") "mesa-" version ".tar.xz"))) (sha256 (base32 - "0n89l7lvawh85hq2a7g5pp5v017s03qs3n4hbbff6rs8p5zs2qbj")))) + "1k61pgw0vcjrlb4299q98cy7iqmk2r7jmb5ika91z01dzhb0dpk4")))) (build-system meson-build-system) (propagated-inputs ;; The following are in the Requires.private field of gl.pc. @@ -754,10 +754,14 @@ OpenGL graphics API.") #~(modify-phases %standard-phases (add-before 'configure 'patch-paths (lambda* (#:key inputs #:allow-other-keys) - (let ((mesa (dirname (search-input-file inputs "lib/libGL.so")))) + (let ((mesa-lib + (lambda (file) + (search-input-file inputs (string-append "lib/" file))))) (substitute* (find-files "." "\\.[ch]$") - (("libGL.so.1") (string-append mesa "/libGL.so.1")) - (("libEGL.so.1") (string-append mesa "/libEGL.so.1"))))))))) + (("libGL.so.1") (mesa-lib "libGL.so.1")) + (("libEGL.so.1") (mesa-lib "libEGL.so.1")) + (("libGLESv1_CM.so.1") (mesa-lib "libGLESv1_CM.so.1")) + (("libGLESv2.so.2") (mesa-lib "libGLESv2.so.2"))))))))) (build-system meson-build-system) (native-inputs (list pkg-config python)) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 00e273b853..9e2efaa7fb 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -2204,6 +2204,10 @@ Cflags: -I${includedir}~%" #$output #$version))))) "_" "_" "_" "Codec_partialAnim" "_" "_" "_" "Codec_InvalidImages" "_" "_" "_" "Codec_GifInterlacedTruncated" + ;; This test started failing possibly after mesa + ;; being updated to 23.2.1 and possibly only on some + ;; hardware. + "_" "_" "_" "SkRuntimeBlender_GPU" "_" "_" "_" "SkText_UnicodeText_Flags" "_" "_" "_" "SkParagraph_FontStyle" "_" "_" "_" "flight_animated_image" diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index e34acca909..5d9e5757a0 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -781,7 +781,8 @@ than @code{base-compat}, which has no dependencies.") (uri (hackage-uri "basement" version)) (sha256 (base32 - "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn")))) + "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn")) + (patches (search-patches "ghc-basement-fix-32bit.patch")))) (build-system haskell-build-system) (properties '((upstream-name . "basement"))) (home-page "https://github.com/haskell-foundation/foundation#readme") @@ -1062,31 +1063,26 @@ library for Haskell.") (define-public ghc-bloomfilter (package (name "ghc-bloomfilter") - (version "2.0.1.0") + (version "2.0.1.2") (source (origin (method url-fetch) (uri (hackage-uri "bloomfilter" version)) (sha256 (base32 - "03vrmncg1c10a2wcg5skq30m1yiknn7nwxz2gblyyfaxglshspkc")) - (patches (search-patches "ghc-bloomfilter-ghc9.2.patch")))) + "0klb26ldkw32axv3927w489j71r2rc9pangsvznqjbljib9970hp")) + (snippet + #~(begin (use-modules (guix build utils)) + ;; https://github.com/bos/bloomfilter/issues/7 + (substitute* "Data/BloomFilter/Easy.hs" + ((" in if roundedBits <= 0 \\|\\| maxbitstoolarge roundedBits") + " in if roundedBits <= 0")))))) (build-system haskell-build-system) (properties '((upstream-name . "bloomfilter"))) (native-inputs (list ghc-quickcheck ghc-random ghc-test-framework ghc-test-framework-quickcheck2)) - (arguments - `(#:cabal-revision ("2" - "1hi6hwvhv7lxqv0l6hv2854g1rvc52zcmr3ldvnaan1l1b666867") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'update-constraints - (lambda _ - (substitute* "bloomfilter.cabal" - (("\\b(base)\\s+[^,]+" all dep) - dep))))))) - (home-page "https://github.com/bos/bloomfilter") + (home-page "https://github.com/haskell-pkg-janitors/bloomfilter") (synopsis "Pure and impure Bloom filter implementations") (description "This package provides both mutable and immutable Bloom filter data types, along with a family of hash functions and an easy-to-use @@ -7080,7 +7076,8 @@ speed, flexibility, and quality of parse errors.") (uri (hackage-uri "memory" version)) (sha256 (base32 - "0yl3ivvn7i9wbx910b7bzj9c3g0jjjk91j05wj74qb5zx2yyf9rk")))) + "0yl3ivvn7i9wbx910b7bzj9c3g0jjjk91j05wj74qb5zx2yyf9rk")) + (patches (search-patches "ghc-memory-fix-32bit.patch")))) (build-system haskell-build-system) (properties '((upstream-name . "memory"))) (inputs (list ghc-basement)) @@ -8512,7 +8509,12 @@ code. It was designed for use in @code{Pandoc}.") '(begin ;; Fix test case. (substitute* "test/writer.ms" - (("\\\\\\[u2212\\]") "-")))))) + (("\\\\\\[u2212\\]") "-")) + (substitute* "test/Tests/Old.hs" + ;; There is no indication why these tests are failing on + ;; i686-linux. + ((".*fb2WriterTest' \"images.*") "") + ((".*fb2WriterTest' \"testsuite.*") "")))))) (build-system haskell-build-system) (properties '((upstream-name . "pandoc"))) (inputs (list ghc-glob @@ -8608,6 +8610,17 @@ provided for those who need a drop-in replacement for Markdown.pl.") #:configure-flags #~(list "-fembed_data_files") #:phases #~(modify-phases %standard-phases + (add-after 'install 'install-more + (lambda _ + (let ((bash (string-append #$output "/etc/bash_completion.d/pandoc")) + (man1 (string-append #$output "/share/man/man1"))) + (mkdir-p (dirname bash)) + (with-output-to-file bash + (lambda _ + (invoke (string-append #$output "/bin/pandoc") + "--bash-completion"))) + (mkdir-p man1) + (install-file "man/pandoc.1" man1)))) (add-after 'register 'remove-libraries (lambda* (#:key outputs #:allow-other-keys) (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib"))))) @@ -8919,7 +8932,8 @@ numbers") (uri (hackage-uri "persistent" version)) (sha256 (base32 - "0z69yvk0rd29dp5qdhi4p587b891y90azrzzpa3g10cxp3gyywvm")))) + "0z69yvk0rd29dp5qdhi4p587b891y90azrzzpa3g10cxp3gyywvm")) + (patches (search-patches "ghc-persistent-fix-32bit.patch")))) (build-system haskell-build-system) (properties '((upstream-name . "persistent"))) (inputs (list ghc-conduit @@ -16006,10 +16020,12 @@ benchmarks](https://hackage.haskell.org/package/random-bytestring-0.1.3.2/src/be ghc-tasty-hunit ghc-tasty-quickcheck)) (arguments - `(#:cabal-revision ("2" - "0cz3zzz9k490w9nfn4hpgdw4zx4w70fwqrwsfx8svcwqssqibqw3"))) + `(#:cabal-revision ("4" + "1lc32d5nxk0ry1pfn3ss55hi4cv6qj5nkkdn3j4y3lrdwyv7kbw2") + #:tests? ,(not (or (%current-target-system) + (target-x86-32?))))) (home-page "https://github.com/emilypi/base64") - (synopsis "A modern RFC 4648-compliant Base64 library") + (synopsis "Modern RFC 4648-compliant Base64 library") (description "RFC 4648-compliant Base64 with an eye towards performance and modernity (additional support for RFC 7049 standards)") diff --git a/gnu/packages/patches/ghc-basement-fix-32bit.patch b/gnu/packages/patches/ghc-basement-fix-32bit.patch new file mode 100644 index 0000000000..7407b2ef75 --- /dev/null +++ b/gnu/packages/patches/ghc-basement-fix-32bit.patch @@ -0,0 +1,177 @@ +https://github.com/haskell-foundation/foundation/pull/573 +https://github.com/haskell-foundation/foundation/commit/38be2c93acb6f459d24ed6c626981c35ccf44095.patch + +Changes made: +Changed '904' to '902' to use the fix with GHC-9.2. + +diff --git a/Basement/Bits.hs b/Basement/Bits.hs +index 7eeea0f..b1e9afd 100644 +--- a/Basement/Bits.hs ++++ b/Basement/Bits.hs +@@ -54,8 +54,12 @@ import GHC.Int + import Basement.Compat.Primitive + + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++import GHC.Exts ++#else + import GHC.IntWord64 + #endif ++#endif + + -- | operation over finite bits + class FiniteBitsOps bits where +diff --git a/Basement/Numerical/Additive.hs b/Basement/Numerical/Additive.hs +index d0dfb97..79b7033 100644 +--- a/Basement/Numerical/Additive.hs ++++ b/Basement/Numerical/Additive.hs +@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128 + import qualified Basement.Types.Word256 as Word256 + + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++import GHC.Exts ++#else + import GHC.IntWord64 + #endif ++#endif + + -- | Represent class of things that can be added together, + -- contains a neutral element and is commutative. +diff --git a/Basement/Numerical/Conversion.hs b/Basement/Numerical/Conversion.hs +index db502c0..abb6d93 100644 +--- a/Basement/Numerical/Conversion.hs ++++ b/Basement/Numerical/Conversion.hs +@@ -26,8 +26,12 @@ import GHC.Word + import Basement.Compat.Primitive + + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++import GHC.Exts ++#else + import GHC.IntWord64 + #endif ++#endif + + intToInt64 :: Int -> Int64 + #if WORD_SIZE_IN_BITS == 64 +@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i) + #endif + + #if WORD_SIZE_IN_BITS == 64 ++#if __GLASGOW_HASKELL__ >= 904 ++word64ToWord# :: Word64# -> Word# ++word64ToWord# i = word64ToWord# i ++#else + word64ToWord# :: Word# -> Word# + word64ToWord# i = i ++#endif + {-# INLINE word64ToWord# #-} + #endif + ++#if WORD_SIZE_IN_BITS < 64 ++word64ToWord32# :: Word64# -> Word32# ++word64ToWord32# i = wordToWord32# (word64ToWord# i) ++{-# INLINE word64ToWord32# #-} ++#endif ++ + -- | 2 Word32s + data Word32x2 = Word32x2 {-# UNPACK #-} !Word32 + {-# UNPACK #-} !Word32 +@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G + word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64)) + #endif + #else ++#if __GLASGOW_HASKELL__ >= 902 ++word64ToWord32s :: Word64 -> Word32x2 ++word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64)) ++#else + word64ToWord32s :: Word64 -> Word32x2 + word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64)) + #endif ++#endif + + wordToChar :: Word -> Char + wordToChar (W# word) = C# (chr# (word2Int# word)) +diff --git a/Basement/PrimType.hs b/Basement/PrimType.hs +index f8ca292..b8fbaf7 100644 +--- a/Basement/PrimType.hs ++++ b/Basement/PrimType.hs +@@ -54,7 +54,11 @@ import Basement.Nat + import qualified Prelude (quot) + + #if WORD_SIZE_IN_BITS < 64 +-import GHC.IntWord64 ++#if __GLASGOW_HASKELL__ >= 902 ++import GHC.Exts ++#else ++import GHC.IntWord64 ++#endif + #endif + + #ifdef FOUNDATION_BOUNDS_CHECK +diff --git a/Basement/Types/OffsetSize.hs b/Basement/Types/OffsetSize.hs +index cd94492..b2903ba 100644 +--- a/Basement/Types/OffsetSize.hs ++++ b/Basement/Types/OffsetSize.hs +@@ -70,8 +70,12 @@ import Data.List (foldl') + import qualified Prelude + + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++import GHC.Exts ++#else + import GHC.IntWord64 + #endif ++#endif + + -- | File size in bytes + newtype FileSize = FileSize Word64 +@@ -225,7 +229,11 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme + + csizeOfSize :: CountOf Word8 -> CSize + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz))) ++#else + csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz)) ++#endif + #else + #if __GLASGOW_HASKELL__ >= 904 + csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz))) +@@ -238,7 +246,11 @@ csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz)) + + csizeOfOffset :: Offset8 -> CSize + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz))) ++#else + csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz)) ++#endif + #else + #if __GLASGOW_HASKELL__ >= 904 + csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz))) +@@ -250,7 +262,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz)) + sizeOfCSSize :: CSsize -> CountOf Word8 + sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1" + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz)) ++#else + sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz) ++#endif + #else + #if __GLASGOW_HASKELL__ >= 904 + sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz)) +@@ -261,7 +277,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz) + + sizeOfCSize :: CSize -> CountOf Word8 + #if WORD_SIZE_IN_BITS < 64 ++#if __GLASGOW_HASKELL__ >= 902 ++sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz))) ++#else + sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz)) ++#endif + #else + #if __GLASGOW_HASKELL__ >= 904 + sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz))) diff --git a/gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch b/gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch deleted file mode 100644 index 97caf2cc9b..0000000000 --- a/gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch +++ /dev/null @@ -1,303 +0,0 @@ -Taken from https://github.com/bos/bloomfilter/pull/20 - -From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001 -From: Simon Jakobi <simon.jakobi@gmail.com> -Date: Fri, 12 Nov 2021 01:37:36 +0100 -Subject: [PATCH] Fix build with GHC 9.2 - -The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}` -introduced in base-4.5. - -Fixes #19. ---- - Data/BloomFilter.hs | 16 +++++------ - Data/BloomFilter/Hash.hs | 15 +++++----- - Data/BloomFilter/Mutable.hs | 20 +++++++------- - Data/BloomFilter/Util.hs | 55 ++++++------------------------------- - bloomfilter.cabal | 2 +- - 5 files changed, 34 insertions(+), 74 deletions(-) - -diff --git a/Data/BloomFilter.hs b/Data/BloomFilter.hs -index 2210cef..6b47c21 100644 ---- a/Data/BloomFilter.hs -+++ b/Data/BloomFilter.hs -@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..)) - import Data.Array.Base (unsafeAt) - import qualified Data.Array.Base as ST - import Data.Array.Unboxed (UArray) --import Data.Bits ((.&.)) --import Data.BloomFilter.Util (FastShift(..), (:*)(..)) -+import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR) -+import Data.BloomFilter.Util ((:*)(..)) - import qualified Data.BloomFilter.Mutable as MB - import qualified Data.BloomFilter.Mutable.Internal as MB - import Data.BloomFilter.Mutable.Internal (Hash, MBloom) -@@ -98,7 +98,7 @@ data Bloom a = B { - } - - instance Show (Bloom a) where -- show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } " -+ show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } " - - instance NFData (Bloom a) where - rnf !_ = () -@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt) - -- | Given a filter's mask and a hash value, compute an offset into - -- a word array and a bit offset within that word. - hashIdx :: Int -> Word32 -> (Int :* Int) --hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask) -+hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask) - where hashMask = 31 -- bitsInHash - 1 - y = fromIntegral x .&. mask - -@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt - -- /still/ some possibility that @True@ will be returned. - elem :: a -> Bloom a -> Bool - elem elt ub = all test (hashesU ub elt) -- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0 -+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0 - - modify :: (forall s. (MBloom s a -> ST s z)) -- ^ mutation function (result is discarded) - -> Bloom a -@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts - -- is /still/ some possibility that @True@ will be returned. - notElem :: a -> Bloom a -> Bool - notElem elt ub = any test (hashesU ub elt) -- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0 -+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0 - - -- | Return the size of an immutable Bloom filter, in bits. - length :: Bloom a -> Int --length = shiftL 1 . shift -+length = unsafeShiftL 1 . shift - - -- | Build an immutable Bloom filter from a seed value. The seeding - -- function populates the filter as follows. -@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert - logPower2 :: Int -> Int - logPower2 k = go 0 k - where go j 1 = j -- go j n = go (j+1) (n `shiftR` 1) -+ go j n = go (j+1) (n `unsafeShiftR` 1) - - -- $overview - -- -diff --git a/Data/BloomFilter/Hash.hs b/Data/BloomFilter/Hash.hs -index 132a3a4..d071fd4 100644 ---- a/Data/BloomFilter/Hash.hs -+++ b/Data/BloomFilter/Hash.hs -@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash - ) where - - import Control.Monad (foldM) --import Data.Bits ((.&.), (.|.), xor) --import Data.BloomFilter.Util (FastShift(..)) -+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor) - import Data.List (unfoldr) - import Data.Int (Int8, Int16, Int32, Int64) - import Data.Word (Word8, Word16, Word32, Word64) -@@ -91,11 +90,11 @@ class Hashable a where - -> Word64 -- ^ salt - -> IO Word64 - hashIO64 v salt = do -- let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound -+ let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound - s2 = fromIntegral salt - h1 <- hashIO32 v s1 - h2 <- hashIO32 v s2 -- return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2 -+ return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2 - - -- | Compute a 32-bit hash. - hash32 :: Hashable a => a -> Word32 -@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute - cheapHashes k v = go 0 - where go i | i == j = [] - | otherwise = hash : go (i + 1) -- where !hash = h1 + (h2 `shiftR` i) -- h1 = fromIntegral (h `shiftR` 32) -+ where !hash = h1 + (h2 `unsafeShiftR` i) -+ h1 = fromIntegral (h `unsafeShiftR` 32) - h2 = fromIntegral h - h = hashSalt64 0x9150a946c4a8966e v - j = fromIntegral k -@@ -163,7 +162,7 @@ instance Hashable Integer where - (salt `xor` 0x3ece731e) - | otherwise = hashIO32 (unfoldr go k) salt - where go 0 = Nothing -- go i = Just (fromIntegral i :: Word32, i `shiftR` 32) -+ go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32) - - instance Hashable Bool where - hashIO32 = hashOne32 -@@ -224,7 +223,7 @@ instance Hashable Word64 where - -- | A fast unchecked shift. Nasty, but otherwise GHC 6.8.2 does a - -- test and branch on every shift. - div4 :: CSize -> CSize --div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2) -+div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2) - - alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32 - alignedHash ptr bytes salt -diff --git a/Data/BloomFilter/Mutable.hs b/Data/BloomFilter/Mutable.hs -index edff1fc..0bb5cc9 100644 ---- a/Data/BloomFilter/Mutable.hs -+++ b/Data/BloomFilter/Mutable.hs -@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable - import Control.Monad (liftM, forM_) - import Control.Monad.ST (ST) - import Data.Array.Base (unsafeRead, unsafeWrite) --import Data.Bits ((.&.), (.|.)) -+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR) - import Data.BloomFilter.Array (newArray) --import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo) -+import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo) - import Data.Word (Word32) - import Data.BloomFilter.Mutable.Internal - -@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes - | numBits > maxHash = maxHash - | isPowerOfTwo numBits = numBits - | otherwise = nextPowerOfTwo numBits -- numElems = max 2 (twoBits `shiftR` logBitsInHash) -- numBytes = numElems `shiftL` logBytesInHash -- trueBits = numElems `shiftL` logBitsInHash -+ numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash) -+ numBytes = numElems `unsafeShiftL` logBytesInHash -+ trueBits = numElems `unsafeShiftL` logBitsInHash - shft = logPower2 trueBits - msk = trueBits - 1 - isPowerOfTwo n = n .&. (n - 1) == 0 -@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash)) - -- | Given a filter's mask and a hash value, compute an offset into - -- a word array and a bit offset within that word. - hashIdx :: Int -> Word32 -> (Int :* Int) --hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask) -+hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask) - where hashMask = 31 -- bitsInHash - 1 - y = fromIntegral x .&. msk - -@@ -125,7 +125,7 @@ insert mb elt = do - let mu = bitArray mb - forM_ (hashesM mb elt) $ \(word :* bit) -> do - old <- unsafeRead mu word -- unsafeWrite mu word (old .|. (1 `shiftL` bit)) -+ unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit)) - - -- | Query a mutable Bloom filter for membership. If the value is - -- present, return @True@. If the value is not present, there is -@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt) - where mu = bitArray mb - loop ((word :* bit):wbs) = do - i <- unsafeRead mu word -- if i .&. (1 `shiftL` bit) == 0 -+ if i .&. (1 `unsafeShiftL` bit) == 0 - then return False - else loop wbs - loop _ = return True -@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt) - - -- | Return the size of a mutable Bloom filter, in bits. - length :: MBloom s a -> Int --length = shiftL 1 . shift -+length = unsafeShiftL 1 . shift - - - -- | Slow, crummy way of computing the integer log of an integer known -@@ -153,7 +153,7 @@ length = shiftL 1 . shift - logPower2 :: Int -> Int - logPower2 k = go 0 k - where go j 1 = j -- go j n = go (j+1) (n `shiftR` 1) -+ go j n = go (j+1) (n `unsafeShiftR` 1) - - -- $overview - -- -diff --git a/Data/BloomFilter/Util.hs b/Data/BloomFilter/Util.hs -index 7f695dc..6ade6e5 100644 ---- a/Data/BloomFilter/Util.hs -+++ b/Data/BloomFilter/Util.hs -@@ -2,15 +2,11 @@ - - module Data.BloomFilter.Util - ( -- FastShift(..) -- , nextPowerOfTwo -+ nextPowerOfTwo - , (:*)(..) - ) where - --import Data.Bits ((.|.)) --import qualified Data.Bits as Bits --import GHC.Base --import GHC.Word -+import Data.Bits ((.|.), unsafeShiftR) - - -- | A strict pair type. - data a :* b = !a :* !b -@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int - {-# INLINE nextPowerOfTwo #-} - nextPowerOfTwo n = - let a = n - 1 -- b = a .|. (a `shiftR` 1) -- c = b .|. (b `shiftR` 2) -- d = c .|. (c `shiftR` 4) -- e = d .|. (d `shiftR` 8) -- f = e .|. (e `shiftR` 16) -- g = f .|. (f `shiftR` 32) -- in case we're on a 64-bit host -+ b = a .|. (a `unsafeShiftR` 1) -+ c = b .|. (b `unsafeShiftR` 2) -+ d = c .|. (c `unsafeShiftR` 4) -+ e = d .|. (d `unsafeShiftR` 8) -+ f = e .|. (e `unsafeShiftR` 16) -+ g = f .|. (f `unsafeShiftR` 32) -- in case we're on a 64-bit host - !h = g + 1 - in h -- ---- | This is a workaround for poor optimisation in GHC 6.8.2. It ---- fails to notice constant-width shifts, and adds a test and branch ---- to every shift. This imposes about a 10% performance hit. --class FastShift a where -- shiftL :: a -> Int -> a -- shiftR :: a -> Int -> a -- --instance FastShift Word32 where -- {-# INLINE shiftL #-} -- shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#) -- -- {-# INLINE shiftR #-} -- shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#) -- --instance FastShift Word64 where -- {-# INLINE shiftL #-} -- shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#) -- -- {-# INLINE shiftR #-} -- shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#) -- --instance FastShift Int where -- {-# INLINE shiftL #-} -- shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#) -- -- {-# INLINE shiftR #-} -- shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#) -- --instance FastShift Integer where -- {-# INLINE shiftL #-} -- shiftL = Bits.shiftL -- -- {-# INLINE shiftR #-} -- shiftR = Bits.shiftR -diff --git a/bloomfilter.cabal b/bloomfilter.cabal -index 821a5d7..c621f7f 100644 ---- a/bloomfilter.cabal -+++ b/bloomfilter.cabal -@@ -18,7 +18,7 @@ extra-source-files: README.markdown cbits/lookup3.c cbits/lookup3.h - library - build-depends: - array, -- base >= 4.4 && < 5, -+ base >= 4.5 && < 5, - bytestring >= 0.9, - deepseq - exposed-modules: Data.BloomFilter diff --git a/gnu/packages/patches/ghc-memory-fix-32bit.patch b/gnu/packages/patches/ghc-memory-fix-32bit.patch new file mode 100644 index 0000000000..cb81b42521 --- /dev/null +++ b/gnu/packages/patches/ghc-memory-fix-32bit.patch @@ -0,0 +1,40 @@ +https://github.com/vincenthz/hs-memory/commit/2738929ce15b4c8704bbbac24a08539b5d4bf30e.patch +https://github.com/vincenthz/hs-memory/pull/99 +Adjusted so the '904' becomes '902' + +From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001 +From: sternenseemann <sternenseemann@systemli.org> +Date: Mon, 14 Aug 2023 10:51:30 +0200 +Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4 + +Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on +i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use +the ready made solution. + +Closes #98, as it should be the better solution. +--- + Data/Memory/Internal/CompatPrim64.hs | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs +index b9eef8a..a134c88 100644 +--- a/Data/Memory/Internal/CompatPrim64.hs ++++ b/Data/Memory/Internal/CompatPrim64.hs +@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64# + w64# w _ _ = w + + #elif WORD_SIZE_IN_BITS == 32 ++#if __GLASGOW_HASKELL__ < 902 + import GHC.IntWord64 + import GHC.Prim (Word#) + +@@ -158,6 +159,9 @@ timesWord64# a b = + let !ai = word64ToInt64# a + !bi = word64ToInt64# b + in int64ToWord64# (timesInt64# ai bi) ++#else ++import GHC.Prim ++#endif + + w64# :: Word# -> Word# -> Word# -> Word64# + w64# _ hw lw = diff --git a/gnu/packages/patches/ghc-persistent-fix-32bit.patch b/gnu/packages/patches/ghc-persistent-fix-32bit.patch new file mode 100644 index 0000000000..d0aace2445 --- /dev/null +++ b/gnu/packages/patches/ghc-persistent-fix-32bit.patch @@ -0,0 +1,25 @@ +https://sources.debian.org/data/main/h/haskell-persistent/2.13.3.5-2/debian/patches/fix-tests-32-bit +Inspired by: https://github.com/yesodweb/persistent/pull/1429 + +--- a/test/Database/Persist/THSpec.hs ++++ b/test/Database/Persist/THSpec.hs +@@ -25,6 +25,7 @@ module Database.Persist.THSpec where + + import Control.Applicative (Const(..)) + import Data.Aeson (decode, encode) ++import Data.Bits (bitSizeMaybe) + import Data.ByteString.Lazy.Char8 () + import Data.Coerce + import Data.Functor.Identity (Identity(..)) +@@ -237,7 +238,10 @@ spec = describe "THSpec" $ do + it "should have usual haskell name" $ do + fieldHaskell `shouldBe` FieldNameHS "Id" + it "should have correct underlying sql type" $ do +- fieldSqlType `shouldBe` SqlInt64 ++ fieldSqlType `shouldBe` ++ if bitSizeMaybe (0 :: Int) <= Just 32 ++ then SqlInt32 ++ else SqlInt64 + it "should have correct haskell type" $ do + fieldType `shouldBe` FTTypeCon Nothing "Int" + diff --git a/gnu/packages/patches/php-fix-streams-copy-length.patch b/gnu/packages/patches/php-fix-streams-copy-length.patch deleted file mode 100644 index d68f658071..0000000000 --- a/gnu/packages/patches/php-fix-streams-copy-length.patch +++ /dev/null @@ -1,52 +0,0 @@ -From cddcc10becb013ae498ea9c2836792f407b61678 Mon Sep 17 00:00:00 2001 -From: Julien Lepiller <julien@lepiller.eu> -Date: Tue, 7 Feb 2023 22:55:59 +0100 -Subject: [PATCH] Fix file corruption when using copy_file_range. - -This patch is adapted from https://github.com/php/php-src/pull/10440. ---- - main/streams/streams.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/main/streams/streams.c b/main/streams/streams.c -index 20029fc7..68dc76c5 100644 ---- a/main/streams/streams.c -+++ b/main/streams/streams.c -@@ -1634,8 +1634,21 @@ PHPAPI zend_result _php_stream_copy_to_stream_ex(php_stream *src, php_stream *de - char *p; - - do { -- size_t chunk_size = (maxlen == 0 || maxlen > PHP_STREAM_MMAP_MAX) ? PHP_STREAM_MMAP_MAX : maxlen; -- size_t mapped; -+ /* We must not modify maxlen here, because otherwise the file copy fallback below can fail */ -+ size_t chunk_size, must_read, mapped; -+ if (maxlen == 0) { -+ /* Unlimited read */ -+ must_read = chunk_size = PHP_STREAM_MMAP_MAX; -+ } else { -+ must_read = maxlen - haveread; -+ if (must_read >= PHP_STREAM_MMAP_MAX) { -+ chunk_size = PHP_STREAM_MMAP_MAX; -+ } else { -+ /* In case the length we still have to read from the file could be smaller than the file size, -+ * chunk_size must not get bigger the size we're trying to read. */ -+ chunk_size = must_read; -+ } -+ } - - p = php_stream_mmap_range(src, php_stream_tell(src), chunk_size, PHP_STREAM_MAP_MODE_SHARED_READONLY, &mapped); - -@@ -1667,8 +1680,8 @@ PHPAPI zend_result _php_stream_copy_to_stream_ex(php_stream *src, php_stream *de - return SUCCESS; - } - if (maxlen != 0) { -- maxlen -= mapped; -- if (maxlen == 0) { -+ must_read -= mapped; -+ if (must_read == 0) { - return SUCCESS; - } - } --- -2.38.1 - diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index cb6b4e7047..d5e471f8f5 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2021, 2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Timo Wilken <guix@twilken.net> ;;; ;;; This file is part of GNU Guix. @@ -62,7 +62,7 @@ (define-public php (package (name "php") - (version "8.2.2") + (version "8.2.13") (home-page "https://www.php.net/") (source (origin (method url-fetch) @@ -70,9 +70,7 @@ "php-" version ".tar.xz")) (sha256 (base32 - "0czflx9ikxymjfgnzaifjx9kc30ww2x4063075hcifjjwqwami5x")) - (patches - (search-patches "php-fix-streams-copy-length.patch")) + "0js5bm8r3kngsgmxhyr681vrpl4gib3318k8428pigqp06hvna96")) (modules '((guix build utils))) (snippet '(with-directory-excursion "ext" @@ -177,98 +175,51 @@ (substitute* "ext/standard/tests/streams/bug60602.phpt" (("'ls'") (string-append "'" (which "ls") "'"))) - ,@(if (target-arm32?) - ;; Drop tests known to fail on armhf. - '((for-each delete-file - (list - "ext/calendar/tests/unixtojd_error1.phpt" - "ext/opcache/tests/preload_006.phpt" - "ext/opcache/tests/preload_011.phpt" - ;; arm can be a lot slower, so a time-related test fails - "ext/fileinfo/tests/cve-2014-3538-nojit.phpt" - "ext/pcntl/tests/pcntl_unshare_01.phpt" - "ext/pcre/tests/bug76514.phpt" - "ext/pcre/tests/preg_match_error3.phpt" - "ext/pcre/tests/cache_limit.phpt" - "ext/sockets/tests/socket_getopt.phpt" - "ext/sockets/tests/socket_sendrecvmsg_error.phpt" - "ext/standard/tests/general_functions/var_export-locale.phpt" - "ext/standard/tests/general_functions/var_export_basic1.phpt" - "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt" - "ext/intl/tests/timezone_getOffset_error.phpt" - "sapi/cli/tests/cli_process_title_unix.phpt" - "sapi/cli/tests/upload_2G.phpt" - "Zend/tests/concat_003.phpt"))) - '()) - - ,@(if (target-x86-32?) - ;; Drop tests known to fail on i686. - '((for-each delete-file - (list - "ext/dba/tests/dba_gdbm.phpt"))) - '()) - - ,@(if (target-ppc64le?) - ;; Drop tests known to fail on powerpc64le. - '((for-each delete-file - (list - ;; phpdbg watchpoints don't work. - ;; Bug tracked upstream at: - ;; https://bugs.php.net/bug.php?id=81408 - "sapi/phpdbg/tests/watch_001.phpt" - "sapi/phpdbg/tests/watch_003.phpt" - "sapi/phpdbg/tests/watch_004.phpt" - "sapi/phpdbg/tests/watch_005.phpt" - "sapi/phpdbg/tests/watch_006.phpt"))) - '()) - - ,@(if (target-riscv64?) - ;; Drop tests known to fail on riscv64. - '((for-each delete-file - (list "sapi/cli/tests/upload_2G.phpt"))) - '()) + ;; Drop tests known to fail on different architectures: + (for-each delete-file + ,(cond + ((target-arm32?) + `(list "ext/calendar/tests/unixtojd_error1.phpt" + "ext/opcache/tests/preload_006.phpt" + "ext/opcache/tests/preload_011.phpt" + ;; arm can be a lot slower, so a time-related test fails + "ext/fileinfo/tests/cve-2014-3538-nojit.phpt" + "ext/pcntl/tests/pcntl_unshare_01.phpt" + "ext/pcre/tests/bug76514.phpt" + "ext/pcre/tests/preg_match_error3.phpt" + "ext/pcre/tests/cache_limit.phpt" + "ext/sockets/tests/socket_getopt.phpt" + "ext/sockets/tests/socket_sendrecvmsg_error.phpt" + "ext/standard/tests/general_functions/var_export-locale.phpt" + "ext/standard/tests/general_functions/var_export_basic1.phpt" + "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt" + "ext/intl/tests/timezone_getOffset_error.phpt" + "sapi/cli/tests/cli_process_title_unix.phpt" + "Zend/tests/concat_003.phpt")) + ((target-x86-32?) + `(list "ext/dba/tests/dba_gdbm.phpt")) + ((target-ppc64le?) + `(list + ;; phpdbg watchpoints don't work. + ;; Bug tracked upstream at: + ;; https://bugs.php.net/bug.php?id=81408 + "sapi/phpdbg/tests/watch_001.phpt" + "sapi/phpdbg/tests/watch_003.phpt" + "sapi/phpdbg/tests/watch_004.phpt" + "sapi/phpdbg/tests/watch_005.phpt" + "sapi/phpdbg/tests/watch_006.phpt")) + (else `'()))) ;; Drop tests that are known to fail. (for-each delete-file '("ext/posix/tests/posix_getgrgid.phpt" ; Requires /etc/group. "ext/posix/tests/posix_getgrnam_basic.phpt" ; Requires /etc/group. "ext/sockets/tests/bug63000.phpt" ; Fails to detect OS. - "ext/sockets/tests/socket_shutdown.phpt" ; Requires DNS. - "ext/sockets/tests/socket_send.phpt" ; Likewise. - "ext/sockets/tests/mcast_ipv4_recv.phpt" ; Requires multicast. - ;; These needs /etc/services. - "ext/standard/tests/general_functions/getservbyname_basic.phpt" - "ext/standard/tests/general_functions/getservbyport_basic.phpt" - "ext/standard/tests/general_functions/getservbyport_variation1.phpt" - ;; And /etc/protocols. - "ext/standard/tests/network/getprotobyname_basic.phpt" - "ext/standard/tests/network/getprotobynumber_basic.phpt" - ;; And exotic locales. + ;; These need exotic locales. "ext/standard/tests/strings/setlocale_basic1.phpt" "ext/standard/tests/strings/setlocale_basic2.phpt" "ext/standard/tests/strings/setlocale_basic3.phpt" "ext/standard/tests/strings/setlocale_variation1.phpt" - ;; This failing test is skipped on PHP's Travis CI as it is - ;; supposedly inaccurate. - "ext/standard/tests/file/disk_free_space_basic.phpt" - ;; The following test erroneously expect the link - ;; count of a sub-directory to increase compared to - ;; its parent. - "ext/standard/tests/file/lstat_stat_variation8.phpt" - ;; This tests whether microseconds ‘differ enough’ and - ;; fails inconsistently on ‘fast’ machines. - "ext/date/tests/bug73837.phpt" - - ;; XXX: These gd tests fails. Likely because our version - ;; is different from the (patched) bundled one. - ;; Here, gd quits immediately after "fatal libpng error"; while the - ;; test expects it to additionally return a "setjmp" error and warning. - "ext/gd/tests/bug39780_extern.phpt" - "ext/gd/tests/libgd00086_extern.phpt" - ;; Extra newline in gd-png output. - "ext/gd/tests/bug45799.phpt" - ;; Test expects generic "gd warning" but gets the actual function name. - "ext/gd/tests/createfromwbmp2_extern.phpt" ;; This bug should have been fixed in gd 2.2.2. ;; Is it a regression? "ext/gd/tests/bug65148.phpt" @@ -291,47 +242,15 @@ "ext/gd/tests/xpm2gd.phpt" "ext/gd/tests/xpm2jpg.phpt" "ext/gd/tests/xpm2png.phpt" - ;; Whitespace difference, probably caused by a very - ;; long store path - "ext/gd/tests/bug77479.phpt" - ;; Expected invalid XBM but got EOF before image was - ;; complete. It's a warning in both cases and test - ;; result is the same. - "ext/gd/tests/bug77973.phpt" - ;; Test expects uninitialized value to be false, but - ;; instead gets "resource(5) of type (gd)". - "ext/gd/tests/bug79067.phpt" - ;; The following test fails with "The image size - ;; differs: expected 114x115, got 117x117". - "ext/gd/tests/bug79068.phpt" ;; AVIF support disabled "ext/gd/tests/avif_decode_encode.phpt" ;; Typo in expected outputs "ext/gd/tests/bug72339.phpt" - "ext/gd/tests/bug77272.phpt" - "ext/gd/tests/bug66356.phpt" ;; AVIF support disabled "ext/gd/tests/imagecreatefromstring_avif.phpt" - ;; XXX: These iconv tests have the expected outcome, - ;; but with different error messages. - ;; Expects "illegal character", instead gets "unknown error (84)". - "ext/iconv/tests/bug52211.phpt" - "ext/iconv/tests/bug60494.phpt" - ;; Expects "wrong charset", gets unknown error (22). - "ext/iconv/tests/iconv_strlen_error2.phpt" - "ext/iconv/tests/iconv_substr_error2.phpt" - ;; Expects conversion error, gets "error condition Termsig=11". - "ext/iconv/tests/iconv_strpos_error2.phpt" - "ext/iconv/tests/iconv_strrpos_error2.phpt" - ;; Expects "invalid multibyte sequence" but got - ;; "unknown error". - "ext/iconv/tests/bug76249.phpt" - ;; XXX: These test failures appear legitimate, needs investigation. ;; open_basedir() restriction failure. - "ext/curl/tests/bug61948-unix.phpt" - ;; Same error reason but error code slightly different "ext/curl/tests/curl_setopt_ssl.phpt" ;; Fail because there is no "root" in the build container's @@ -340,11 +259,6 @@ "sapi/fpm/tests/bug68591-conf-test-listen-group.phpt" "sapi/fpm/tests/bug68591-conf-test-listen-owner.phpt" - ;; Wrong error name - "ext/dba/tests/dba_gdbm_creation_matrix.phpt" - ;; Expects a false boolean, gets empty array from glob(). - "ext/standard/tests/file/bug41655_1.phpt" - "ext/standard/tests/file/glob_variation5.phpt" ;; The test expects an Array, but instead get the contents(?). "ext/gd/tests/bug43073.phpt" ;; imagettftext() returns wrong coordinates. @@ -357,26 +271,12 @@ "ext/gd/tests/bug53504.phpt" ;; Wrong image size after scaling an image. "ext/gd/tests/bug73272.phpt" - ;; Expects iconv to detect illegal characters, instead gets - ;; "unknown error (84)" and heap corruption(!). - "ext/iconv/tests/bug48147.phpt" - ;; Expects illegal character ".", gets "=?utf-8?Q?." - "ext/iconv/tests/bug51250.phpt" - ;; iconv throws "buffer length exceeded" on some string checks. - "ext/iconv/tests/iconv_mime_encode.phpt" - ;; file_get_contents(): iconv stream filter - ;; ("ISO-8859-1"=>"UTF-8") unknown error. - "ext/standard/tests/file/bug43008.phpt" - ;; Table data not created in sqlite(?). - "ext/pdo_sqlite/tests/bug_42589.phpt" - ;; Expects an Array with 3 preg_matches; gets 0. - "ext/pcre/tests/bug79846.phpt" - ;; Expects an empty Array; gets one with " " in it. - "ext/pcre/tests/bug80118.phpt" - ;; Renicing a process fails in the build environment. - "ext/standard/tests/general_functions/proc_nice_basic.phpt" - ;; Can fail on fast machines? - "Zend/tests/bug74093.phpt")) + ;; PCRE with/without JIT gives different result + "ext/pcre/tests/gh11374.phpt" + "ext/pcre/tests/gh11956.phpt" + + ;; This test fails on most architectures. + "sapi/cli/tests/upload_2G.phpt")) ;; Accomodate two extra openssl errors flanking the expected one: ;; random number generator:RAND_{load,write}_file:Cannot open file @@ -413,7 +313,7 @@ ("libzip" ,libzip) ("oniguruma" ,oniguruma) ("openldap" ,openldap) - ("openssl" ,openssl-1.1) + ("openssl" ,openssl) ("pcre" ,pcre2) ("postgresql" ,postgresql) ("readline" ,readline) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 12785c811f..7ec4526492 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -406,7 +406,10 @@ system, and the core design of Django is reused in Grantlee.") libxfixes libxi libxinerama - libxkbcommon + ;; Use libxkbcommon-1.5 as 1.6.0 removed keysyms referenced in the + ;; qtbase source. + ;; TODO: Check if libxkbcommon can be used on next update. + libxkbcommon-1.5 libxml2 libxrandr libxrender diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index a4ee654097..3a4aafcaa7 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Evgeny Pisemsky <evgeny@pisemsky.com> +;;; Copyright © 2023 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,6 +61,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages gl) + #:use-module (gnu packages vulkan) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) @@ -116,7 +118,7 @@ joystick, and graphics hardware.") (package (inherit sdl) (name "sdl2") - (version "2.26.2") + (version "2.28.5") (source (origin (method url-fetch) (uri @@ -124,7 +126,7 @@ joystick, and graphics hardware.") version ".tar.gz")) (sha256 (base32 - "1q4r1camsr17mnpv00d6h3qy93b481rp68r6fbxbszq3vv1rplwm")))) + "1r36cspzv6h8abiqbbkrgm17g975p9wiziir2xabj3721dyv6b1k")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) @@ -133,11 +135,13 @@ joystick, and graphics hardware.") #$flags)) ((#:make-flags flags ''()) #~(cons* - ;; SDL dlopens libudev, so make sure it is in rpath. This overrides - ;; the LDFLAG set in sdl’s configure-flags, which isn’t necessary - ;; as sdl2 includes Mesa by default. + ;; SDL dlopens libudev and libvulkan, so make sure they are in + ;; rpath. This overrides the LDFLAG set in sdl’s configure-flags, + ;; which isn’t necessary as sdl2 includes Mesa by default. (string-append "LDFLAGS=-Wl,-rpath," - #$(this-package-input "eudev") "/lib") + #$(this-package-input "eudev") "/lib" + ",-rpath," + #$(this-package-input "vulkan-loader") "/lib") #$flags)))) (inputs ;; SDL2 needs to be built with ibus support otherwise some systems @@ -151,6 +155,7 @@ joystick, and graphics hardware.") ibus-minimal libxkbcommon libxcursor ;enables X11 cursor support + vulkan-loader wayland wayland-protocols))) (license license:bsd-3))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 6a0aaf7f14..75e6370c72 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -991,7 +991,7 @@ number generator") (name "mbedtls-apache") ;; XXX Check whether ‘-Wformat-signedness’ still breaks mbedtls-for-hiawatha ;; when updating. - (version "2.28.0") + (version "2.28.5") (source (origin (method git-fetch) @@ -1000,7 +1000,7 @@ number generator") (commit (string-append "mbedtls-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0s37dsi29v7146fi9k4frvx5rz2snxdm6c3rwq2fvnca2r80hfjl")))) + (base32 "1jlkvvyigpjvv404b8vmx68f1v6g1h2zr6rd78dhc0xgqi018phs")))) (build-system cmake-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 7498f22664..4a4252138b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -8022,8 +8022,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (define-public nghttp2 (package (name "nghttp2") - (version "1.49.0") - (replacement nghttp2-1.57) + (version "1.58.0") (source (origin (method url-fetch) @@ -8032,7 +8031,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") "nghttp2-" version ".tar.xz")) (sha256 (base32 - "0vm692c7q2wc4xxz8c41nr8jps2fkwf51xp8fb233cghpf9d9kxh")))) + "1q4ps8acr7nyia7mf2z11m0yh3fn1imhyv855j3xjbx91l2a6s2a")))) (build-system gnu-build-system) (outputs (list "out" "lib")) ; only libnghttp2 @@ -8134,19 +8133,6 @@ compressed JSON header blocks. (("print \\(ver >= '3\\.8'\\)") "print (tuple(map(int, ver.split('.'))) >= (3,8))"))))))))))) -(define-public nghttp2-1.57 - (package - (inherit nghttp2) - (version "1.57.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/nghttp2/nghttp2/" - "releases/download/v" version "/" - "nghttp2-" version ".tar.xz")) - (sha256 - (base32 - "0n598w7w8rqdqiay2fad3a11253hibakan5c4vjkpx09648v044j")))))) - (define-public hpcguix-web (package (name "hpcguix-web") diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 8de2ed3816..ede2d73627 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -510,14 +510,14 @@ avoiding password prompts when X11 forwarding has already been setup.") (define-public libxkbcommon (package (name "libxkbcommon") - (version "1.4.1") + (version "1.6.0") (source (origin (method url-fetch) (uri (string-append "https://xkbcommon.org/download/libxkbcommon-" version ".tar.xz")) (sha256 (base32 - "0fbb2dyjvf71p42y2jmwdcylsvj03w52f5rb23c2d00rwahhfg4l")))) + "0awwz5pg9x5bj0d7dpg4a7bd4gl6k55mlpxwb12534fkrpn19p0f")))) (build-system meson-build-system) (inputs (list libx11 @@ -554,6 +554,19 @@ X11 (yet).") "See 'COPYING' in the distribution.")) (properties '((cpe-name . "xkbcommon"))))) +(define-public libxkbcommon-1.5 + (package + (inherit libxkbcommon) + (version "1.5.0") + (source (origin + (inherit (package-source libxkbcommon)) + (method url-fetch) + (uri (string-append "https://xkbcommon.org/download/libxkbcommon-" + version ".tar.xz")) + (sha256 + (base32 + "05z08rpa464x8myjxddhix7jp9jcmakd7xrybx4hz8dwpg2123sn")))))) + (define-public libfakekey (package (name "libfakekey") @@ -688,7 +701,7 @@ following the mouse.") (define-public pixman (package (name "pixman") - (version "0.40.0") + (version "0.42.2") (source (origin (method url-fetch) @@ -697,7 +710,7 @@ following the mouse.") "https://www.cairographics.org/releases/pixman-" version ".tar.gz")) (sha256 - (base32 "1z13n96m7x91j25qq9wlkxsbq04wfwjhw66ir17frna06zn0s83d")) + (base32 "0pk298iqxqr64vk3z6nhjwr6vjg1971zfrjkqy5r9zd2mppq057a")) (patches (search-patches "pixman-CVE-2016-5296.patch")))) @@ -722,7 +735,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.114") + (version "2.4.117") (source (origin (method url-fetch) (uri (string-append @@ -730,7 +743,7 @@ rasterisation.") version ".tar.xz")) (sha256 (base32 - "09nhk3jx3qzggl5vyii3yh4zm0npjqsbxhzvxrg2xla77a2cyj9h")))) + "0ar4c4ikcbm1s4sg09ld406izq5s1yk7b2n0mmvql77bwdlqv252")))) (build-system meson-build-system) (arguments (list #:configure-flags @@ -744,6 +757,16 @@ rasterisation.") (_ ''())) #:phases #~(modify-phases %standard-phases + ;; A typo in a previous upstream commit disabled building + ;; libdrm_intel by default on supported platforms. This was + ;; fixed by the following change in upstream commit + ;; 8a933c778a0eb36526bf3fc8a289e25add9ff8b0. + ;; TODO: Remove on next update of libdrm. + (add-after 'unpack 'build-intel-by-default + (lambda _ + (substitute* "meson.build" + (("system\\(\\)\\.startswith") + "cpu_family().startswith")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7d46558746..62000946e1 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1432,18 +1432,17 @@ treat it as part of their software base when porting.") (define-public libxpm (package (name "libxpm") - (version "3.5.13") - (replacement libxpm/fixed) + (version "3.5.17") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/lib/libXpm-" version - ".tar.bz2")) + ".tar.xz")) (sha256 (base32 - "09dc6nwlb2122h02vl64k9x56mxnyqz2gwpga0abfv4bb1bxmlcw")))) + "0hvf49qy55gwldpwpw7ihcmn5i2iinpjh2rbha63hzcy060izcv4")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) @@ -1457,21 +1456,6 @@ treat it as part of their software base when porting.") (description "XPM (X Pixmap) image file format library.") (license license:x11))) -(define-public libxpm/fixed - (package - (inherit libxpm) - (version "3.5.17") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/lib/libXpm-" - version - ".tar.xz")) - (sha256 - (base32 - "0hvf49qy55gwldpwpw7ihcmn5i2iinpjh2rbha63hzcy060izcv4")))))) - (define-public libxres (package (name "libxres") @@ -5332,16 +5316,15 @@ Wayland.") (define-public libx11 (package (name "libx11") - (version "1.8.1") - (replacement libx11-fixed) ;security fixes + (version "1.8.7") (source (origin (method url-fetch) - (uri (string-append "https://xorg.freedesktop.org/archive/" - "/individual/lib/libX11-" version ".tar.xz")) + (uri (string-append "mirror://xorg/individual/lib/libX11-" + version ".tar.xz")) (sha256 (base32 - "1xyry8i7zqmlkvpbyyqwi18rrdw6ycczlvfp63rh2570pfhimi0v")))) + "1vlrgrdibp4lr84wgmsdy1ihzaai8bvvqc68npi1m19wir36gwh5")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of man pages + XML @@ -5363,19 +5346,6 @@ Wayland.") (description "Xorg Core X11 protocol client library.") (license license:x11))) -(define-public libx11-fixed - (package - (inherit libx11) - (version "1.8.7") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/lib/libX11-" - version ".tar.xz")) - (sha256 - (base32 - "1vlrgrdibp4lr84wgmsdy1ihzaai8bvvqc68npi1m19wir36gwh5")))))) - ;; packages of height 5 in the propagated-inputs tree (define-public libxcursor |