haskellPackages.password: use crypton, disable scrypt on non-x86 (#351305)

This commit is contained in:
maralorn
2024-11-02 10:46:26 +01:00
committed by GitHub
4 changed files with 50 additions and 5 deletions
@@ -830,8 +830,6 @@ supported-platforms:
midi-alsa: [ platforms.linux ] # alsa-core only supported on linux
midisurface: [ platforms.linux ] # alsa-core only supported on linux
OrderedBits: [ platforms.x86 ] # lacks implementations for non-x86: https://github.com/choener/OrderedBits/blob/401cbbe933b1635aa33e8e9b29a4a570b0a8f044/lib/Data/Bits/Ordered.hs#L316
password: [ platforms.x86 ] # uses scrypt, which requries x86
password-instances: [ platforms.x86 ] # uses scrypt, which requries x86
reactivity: [ platforms.windows ]
reflex-libtelnet: [ platforms.linux ] # pkgs.libtelnet only supports linux
scat: [ platforms.x86 ] # uses scrypt, which requries x86
@@ -113,6 +113,35 @@ self: super: builtins.intersectAttrs super {
'' + drv.preCheck or "";
}) super.agda2lagda;
# - Disable scrypt support since the library used only works on x86 due to SSE2:
# https://github.com/informatikr/scrypt/issues/8
# - Use crypton as the encryption backend. That override becomes obsolete with
# 3.1.* since cabal2nix picks crypton by default then.
password =
let
scryptSupported = pkgs.stdenv.hostPlatform.isx86;
in
lib.pipe
(super.password.override ({
cryptonite = self.crypton;
} // lib.optionalAttrs (!scryptSupported) {
scrypt = null;
}))
([
(enableCabalFlag "crypton")
(disableCabalFlag "cryptonite")
# https://github.com/cdepillabout/password/pull/84
(appendPatch ./patches/password-3.0.4.0-scrypt-conditional.patch)
(overrideCabal (drv: {
# patch doesn't apply otherwise because of revisions
prePatch = drv.prePatch or "" + ''
${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
'';
}))
] ++ lib.optionals (!scryptSupported) [
(disableCabalFlag "scrypt")
]);
audacity = enableCabalFlag "buildExamples" (overrideCabal (drv: {
executableHaskellDepends = [self.optparse-applicative self.soxlib];
-3
View File
@@ -234457,7 +234457,6 @@ self: {
];
description = "Hashing and checking of passwords";
license = lib.licenses.bsd3;
platforms = lib.platforms.x86;
maintainers = [ lib.maintainers.cdepillabout ];
}) {};
@@ -234483,7 +234482,6 @@ self: {
];
description = "Hashing and checking of passwords";
license = lib.licenses.bsd3;
platforms = lib.platforms.x86;
hydraPlatforms = lib.platforms.none;
maintainers = [ lib.maintainers.cdepillabout ];
}) {};
@@ -234509,7 +234507,6 @@ self: {
];
description = "typeclass instances for password package";
license = lib.licenses.bsd3;
platforms = lib.platforms.x86;
maintainers = [ lib.maintainers.cdepillabout ];
}) {};
@@ -0,0 +1,21 @@
diff --git a/password/password.cabal b/password/password.cabal
index 506457e..8fa978b 100644
--- a/password.cabal
+++ b/password.cabal
@@ -186,6 +186,8 @@ test-suite password-tasty
other-modules:
Scrypt
Data.Password.Scrypt
+ build-depends:
+ scrypt
ghc-options:
-threaded -O2 -rtsopts -with-rtsopts=-N
build-depends:
@@ -195,7 +197,6 @@ test-suite password-tasty
, bytestring
, memory
, quickcheck-instances
- , scrypt
, tasty
, tasty-hunit
, tasty-quickcheck