Merge branch 'mesa-updates'
Change-Id: I31c26c11dd3a7838a1f70ceb250e54a1574eb580master
commit
79765b40fd
|
@ -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 \
|
||||
|
|
|
@ -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?
|
||||
(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.
|
||||
(invoke "make" "-C" "tests" "test"))))
|
||||
(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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)")
|
||||
|
|
|
@ -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)))
|
|
@ -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
|
|
@ -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 =
|
|
@ -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"
|
||||
|
|
@ -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
|
||||
|
|
@ -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,11 +175,11 @@
|
|||
(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"
|
||||
;; 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
|
||||
|
@ -197,21 +195,11 @@
|
|||
"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
|
||||
"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
|
||||
|
@ -219,56 +207,19 @@
|
|||
"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")))
|
||||
'())
|
||||
"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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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
|
||||
|
|
Reference in New Issue