[PATCH v1] gnu: ghc-basement: fix build for i686

  • Open
  • quality assurance status badge
Details
2 participants
  • Denis 'GNUtoo' Carikli
  • zimoun
Owner
unassigned
Submitted by
Denis 'GNUtoo' Carikli
Severity
normal
D
D
Denis 'GNUtoo' Carikli wrote on 15 Apr 2023 15:59
(address . guix-patches@gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
20230415135921.1266-1-GNUtoo@cyberdimension.org
* gnu/packages/haskell-xyz.scm (ghc-basement):
[source]: Add patch.
* gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA):
---
gnu/local.mk | 1 +
gnu/packages/haskell-xyz.scm | 3 +-
.../ghc-basement-0.0.15-i686-fix.patch | 113 ++++++++++++++++++
3 files changed, 116 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch

Toggle diff (149 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index f0a228f19f..268ce7cc7f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1212,6 +1212,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-bloomfilter-ghc9.2.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
+ %D%/packages/patches/ghc-basement-0.0.15-i686-fix.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f2cc60267b..1dfa627965 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -778,7 +778,8 @@ (define-public ghc-basement
(uri (hackage-uri "basement" version))
(sha256
(base32
- "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn"))))
+ "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn"))
+ (patches (search-patches "ghc-basement-0.0.15-i686-fix.patch"))))
(build-system haskell-build-system)
(properties '((upstream-name . "basement")))
(home-page "https://github.com/haskell-foundation/foundation#readme")
diff --git a/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch b/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch
new file mode 100644
index 0000000000..129af90eac
--- /dev/null
+++ b/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch
@@ -0,0 +1,113 @@
+Description: Fix build on i686.
+ Note that this patch hasn't been applied upstream yet.
+ The patch author intends to add it to Fedora 38:
+ "I am going to try to apply this for Fedora 38.".
+Origin: https://github.com/haskell-foundation/foundation/issues/565#issuecomment-1433140571
+Bug: https://github.com/haskell-foundation/foundation/issues/565
+Author: Jens Petersen (juhp)
+---
+diff -up basement-0.0.15/Basement/Bits.hs~ basement-0.0.15/Basement/Bits.hs
+--- basement-0.0.15/Basement/Bits.hs~ 2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Bits.hs 2023-02-16 18:50:32.947378064 +0800
+@@ -54,7 +54,7 @@ import GHC.Int
+ import Basement.Compat.Primitive
+
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+
+ -- | operation over finite bits
+diff -up basement-0.0.15/Basement/Numerical/Additive.hs~ basement-0.0.15/Basement/Numerical/Additive.hs
+--- basement-0.0.15/Basement/Numerical/Additive.hs~ 2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Numerical/Additive.hs 2023-02-16 18:52:14.547975419 +0800
+@@ -29,7 +29,7 @@ import qualified Basement.Types.Word128
+ import qualified Basement.Types.Word256 as Word256
+
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+
+ -- | Represent class of things that can be added together,
+diff -up basement-0.0.15/Basement/Numerical/Conversion.hs~ basement-0.0.15/Basement/Numerical/Conversion.hs
+--- basement-0.0.15/Basement/Numerical/Conversion.hs~ 2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Numerical/Conversion.hs 2023-02-16 18:28:38.844400110 +0800
+@@ -25,7 +25,7 @@ import GHC.Word
+ import Basement.Compat.Primitive
+
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+
+ intToInt64 :: Int -> Int64
+@@ -114,7 +114,7 @@
+ #endif
+ #else
+ word64ToWord32s :: Word64 -> Word32x2
+-word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
++word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (word64ToWord# (uncheckedShiftRL64# w64 32#)))) (W32# (wordToWord32# (word64ToWord# w64)))
+ #endif
+
+ wordToChar :: Word -> Char
+diff -up basement-0.0.15/Basement/PrimType.hs~ basement-0.0.15/Basement/PrimType.hs
+--- basement-0.0.15/Basement/PrimType.hs~ 2022-03-03 10:51:42.000000000 +0800
++++ basement-0.0.15/Basement/PrimType.hs 2023-02-16 18:52:13.884971521 +0800
+@@ -54,7 +54,7 @@ import Basement.Nat
+ import qualified Prelude (quot)
+
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+
+ #ifdef FOUNDATION_BOUNDS_CHECK
+diff -up basement-0.0.15/Basement/Types/OffsetSize.hs~ basement-0.0.15/Basement/Types/OffsetSize.hs
+--- basement-0.0.15/Basement/Types/OffsetSize.hs~ 2019-09-02 11:58:08.000000000 +0800
++++ basement-0.0.15/Basement/Types/OffsetSize.hs 2023-02-16 18:49:45.703100306 +0800
+@@ -69,7 +69,7 @@ import Data.List (foldl')
+ import qualified Prelude
+
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+
+ -- | File size in bytes
+@@ -225,7 +225,7 @@
+
+ csizeOfSize :: CountOf Word8 -> CSize
+ #if WORD_SIZE_IN_BITS < 64
+-csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
++csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
+@@ -238,7 +238,7 @@
+
+ csizeOfOffset :: Offset8 -> CSize
+ #if WORD_SIZE_IN_BITS < 64
+-csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
++csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
+@@ -250,7 +250,7 @@
+ sizeOfCSSize :: CSsize -> CountOf Word8
+ sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
+ #if WORD_SIZE_IN_BITS < 64
+-sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
++sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
+@@ -261,7 +261,7 @@
+
+ sizeOfCSize :: CSize -> CountOf Word8
+ #if WORD_SIZE_IN_BITS < 64
+-sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
++sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))

base-commit: a4e9842a70775a54bbe1369881b739e7ea9a6432
--
2.39.1
D
D
Denis 'GNUtoo' Carikli wrote on 10 May 2023 19:34
[PATCH v1] gnu: fakeroot: Update to 1.31.
(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
20230510173418.7220-1-GNUtoo@cyberdimension.org
* gnu/packages/linux.scm (fakeroot): Update to 1.31.
---
gnu/packages/linux.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ea64e9d241..aa3705c643 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -8986,7 +8986,7 @@ (define-public genext2fs
(define-public fakeroot
(package
(name "fakeroot")
- (version "1.30.1")
+ (version "1.31")
(source
(origin
;; There are no tags in the repository, so take this snapshot.
@@ -8995,7 +8995,7 @@ (define-public fakeroot
"fakeroot/fakeroot_" version ".orig.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0xba5gfh7ygv6na8n1ckqd2jnpdr9q88qan385qxp85c47sb3srj"))
+ (base32 "0br0gvvribfs2kpkhwr51lsinhl6l36334wx1cbwfmhww50nv233"))
(modules '((guix build utils)
(ice-9 ftw)))
(snippet

base-commit: e0c35d1578c10a8fe27c8372f3a8bb5dd88b01b8
--
2.39.2
Z
Z
zimoun wrote on 16 May 2023 16:13
Re: bug#62861: [PATCH v1] gnu: ghc-basement: fix build for i686
(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)(address . 62861@debbugs.gnu.org)
86r0rg5pqp.fsf@gmail.com
Hi Denis,

This submission #62861 [1] contains two patches. Are they part of the
same series?



On Sat, 15 Apr 2023 at 15:59, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> wrote:
Toggle quote (11 lines)
> * gnu/packages/haskell-xyz.scm (ghc-basement):
> [source]: Add patch.
> * gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch: New file.
> * gnu/local.mk (dist_patch_DATA):
> ---
> gnu/local.mk | 1 +
> gnu/packages/haskell-xyz.scm | 3 +-
> .../ghc-basement-0.0.15-i686-fix.patch | 113 ++++++++++++++++++
> 3 files changed, 116 insertions(+), 1 deletion(-)
> create mode 100644 gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch

Well, is this already part of some Haskell updates?


On Wed, 10 May 2023 at 19:34, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> wrote:
Toggle quote (5 lines)
> * gnu/packages/linux.scm (fakeroot): Update to 1.31.
> ---
> gnu/packages/linux.scm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

I have not tried it yet but LGTM at first.


Cheers,
simon
D
D
Denis 'GNUtoo' Carikli wrote on 18 May 2023 01:14
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 62861@debbugs.gnu.org)
20230518011432.13350aae@primary_laptop
On Tue, 16 May 2023 16:13:02 +0200
zimoun <zimon.toutoune@gmail.com> wrote:

Toggle quote (1 lines)
> Hi Denis,
Hi,

Toggle quote (2 lines)
> This submission #62861 [1] contains two patches. Are they part of the
> same series?
Ah my bad. Sorry about that.

I don't remember why they were together in the same serie. Maybe it's a
mistake as I probably intended to add 2 Haskell related patches in
the same serie instead.

Toggle quote (18 lines)
>
>
> On Sat, 15 Apr 2023 at 15:59, Denis 'GNUtoo' Carikli
> <GNUtoo@cyberdimension.org> wrote:
> > * gnu/packages/haskell-xyz.scm (ghc-basement):
> > [source]: Add patch.
> > * gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch: New file.
> > * gnu/local.mk (dist_patch_DATA):
> > ---
> > gnu/local.mk | 1 +
> > gnu/packages/haskell-xyz.scm | 3 +-
> > .../ghc-basement-0.0.15-i686-fix.patch | 113
> > ++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-)
> > create mode 100644
> > gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch
>
> Well, is this already part of some Haskell updates?
I didn't see that patch or something similar somewhere else but I could
also have missed it. I only looked in the bugreport system. I also
based my patches on top of master.

Does the Haskell team has special rules? Like do I need to rebase my
patches on specific branches in the future?

If the development is done there, it could be a good idea to formalize
that (if it's not already formalized) as it would help making sure not
to duplicate work, or at least lower the burden on the reviewers as
duplicated work would not be sent for review. Linux does that for
some subsystems.

Denis.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmRlX9gACgkQX138wUF3
4mPVVw/+LUuIx56TWWByJ/IOmo/3J7gDoMcyR0ofmDLlM9Aw/b2VrLedTaTxGTmt
UzWllLwFdPhM9Q+q4lHo2/h+l6UkObukq6CyNrguNKDCU/q/abprh8qtq4WaK0qw
tcUD5x0EtTKT7eFDVx0TJi8StHA34AvploHSfxGXj/c5A1An1d5h7Makqluyr7pn
OsPQlFZNPgfoO9fYjojEXxd4xLfcRpoRD6OCV9aq1521Y2nxFlz+FYgKtWRJZfl9
5R722ndralMTGbjZ8RVXMDoNNlm5lNGUHoJwjCCW0dGULQ5/fKKnADMeFYytkCMh
Vr9lD9BQq/A7PHt6TTKq1YUBdv0/3F/breVuRfA2611TI5yyoUuFzN1ogIWQniUf
JmHLGn9IpxgruXjYYGYGO9ZpyZls9czLHpPyskPQxpMnPbLrIzaj8qJnr8Fx+NfL
ixJ89w1DrA8IDSIZ18stnAn3gShhU+yRnW5w85wU4iCvCPZ7Ek3gp2SJx5j/yp4Z
BgH1VzETjoUkdbagvjjyl1uZCWanMa0Pn7X2OHZHguprA/I+UNIibAzXbqj5aOxu
jAP+kRPkOxC8oh6/yOwtIcduwMP5onMiT3hs9BVlx7JS+804kySeSF+4WTeqGM3+
Tyr+rtHiDuu5DJKnTE2fXCpqdjlZqzfCWw8sQSF8+XjbT0EaL50=
=54lG
-----END PGP SIGNATURE-----


?