diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index dca8f9b9676..6afb908b723 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3591,6 +3591,12 @@ githubId = 606000; name = "Gabriel Adomnicai"; }; + Gabriel439 = { + email = "Gabriel439@gmail.com"; + github = "Gabriel439"; + githubId = 1313787; + name = "Gabriel Gonzalez"; + }; gal_bolle = { email = "florent.becker@ens-lyon.org"; github = "FlorentBecker"; diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs index 3772b230f86..fd6430d43c9 100755 --- a/maintainers/scripts/haskell/hydra-report.hs +++ b/maintainers/scripts/haskell/hydra-report.hs @@ -17,6 +17,7 @@ Because step 1) is quite expensive and takes roughly ~5 minutes the result is ca {-# LANGUAGE BlockArguments #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiWayIf #-} @@ -36,8 +37,6 @@ import Data.Aeson ( encodeFile, ) import Data.Foldable (Foldable (toList), foldl') -import Data.Function ((&)) -import Data.Functor ((<&>)) import Data.List.NonEmpty (NonEmpty, nonEmpty) import qualified Data.List.NonEmpty as NonEmpty import Data.Map.Strict (Map) @@ -71,7 +70,6 @@ import System.Directory (XdgDirectory (XdgCache), getXdgDirectory) import System.Environment (getArgs) import System.Process (readProcess) import Prelude hiding (id) -import qualified Prelude newtype JobsetEvals = JobsetEvals { evals :: Seq Eval @@ -132,30 +130,117 @@ getBuildReports = runReq defaultHttpConfig do hydraEvalCommand :: FilePath hydraEvalCommand = "hydra-eval-jobs" + hydraEvalParams :: [String] hydraEvalParams = ["-I", ".", "pkgs/top-level/release-haskell.nix"] + handlesCommand :: FilePath handlesCommand = "nix-instantiate" + handlesParams :: [String] handlesParams = ["--eval", "--strict", "--json", "-"] + handlesExpression :: String handlesExpression = "with import ./. {}; with lib; zipAttrsWith (_: builtins.head) (mapAttrsToList (_: v: if v ? github then { \"${v.email}\" = v.github; } else {}) (import maintainers/maintainer-list.nix))" -newtype Maintainers = Maintainers {maintainers :: Maybe Text} deriving (Generic, ToJSON, FromJSON) +-- | This newtype is used to parse a Hydra job output from @hydra-eval-jobs@. +-- The only field we are interested in is @maintainers@, which is why this +-- is just a newtype. +-- +-- Note that there are occassionally jobs that don't have a maintainers +-- field, which is why this has to be @Maybe Text@. +newtype Maintainers = Maintainers { maintainers :: Maybe Text } + deriving stock (Generic, Show) + deriving anyclass (FromJSON, ToJSON) +-- | This is a 'Map' from Hydra job name to maintainer email addresses. +-- +-- It has values similar to the following: +-- +-- @@ +-- fromList +-- [ ("arion.aarch64-linux", Maintainers (Just "robert@example.com")) +-- , ("bench.x86_64-linux", Maintainers (Just "")) +-- , ("conduit.x86_64-linux", Maintainers (Just "snoy@man.com, web@ber.com")) +-- , ("lens.x86_64-darwin", Maintainers (Just "ek@category.com")) +-- ] +-- @@ +-- +-- Note that Hydra jobs without maintainers will have an empty string for the +-- maintainer list. type HydraJobs = Map Text Maintainers + +-- | Map of email addresses to GitHub handles. +-- This is built from the file @../../maintainer-list.nix@. +-- +-- It has values similar to the following: +-- +-- @@ +-- fromList +-- [ ("robert@example.com", "rob22") +-- , ("ek@category.com", "edkm") +-- ] +-- @@ +type EmailToGitHubHandles = Map Text Text + +-- | Map of Hydra jobs to maintainer GitHub handles. +-- +-- It has values similar to the following: +-- +-- @@ +-- fromList +-- [ ("arion.aarch64-linux", ["rob22"]) +-- , ("conduit.x86_64-darwin", ["snoyb", "webber"]) +-- ] +-- @@ type MaintainerMap = Map Text (NonEmpty Text) +-- | Generate a mapping of Hydra job names to maintainer GitHub handles. getMaintainerMap :: IO MaintainerMap getMaintainerMap = do - hydraJobs :: HydraJobs <- get hydraEvalCommand hydraEvalParams "" "Failed to decode hydra-eval-jobs output: " - handlesMap :: Map Text Text <- get handlesCommand handlesParams handlesExpression "Failed to decode nix output for lookup of github handles: " - pure $ hydraJobs & Map.mapMaybe (nonEmpty . mapMaybe (`Map.lookup` handlesMap) . Text.splitOn ", " . fromMaybe "" . maintainers) - where - get c p i e = readProcess c p i <&> \x -> either (error . (<> " Raw:'" <> take 1000 x <> "'") . (e <>)) Prelude.id . eitherDecodeStrict' . encodeUtf8 . Text.pack $ x + hydraJobs :: HydraJobs <- + readJSONProcess hydraEvalCommand hydraEvalParams "" "Failed to decode hydra-eval-jobs output: " + handlesMap :: EmailToGitHubHandles <- + readJSONProcess handlesCommand handlesParams handlesExpression "Failed to decode nix output for lookup of github handles: " + pure $ Map.mapMaybe (splitMaintainersToGitHubHandles handlesMap) hydraJobs + where + -- Split a comma-spearated string of Maintainers into a NonEmpty list of + -- GitHub handles. + splitMaintainersToGitHubHandles + :: EmailToGitHubHandles -> Maintainers -> Maybe (NonEmpty Text) + splitMaintainersToGitHubHandles handlesMap (Maintainers maint) = + nonEmpty . mapMaybe (`Map.lookup` handlesMap) . Text.splitOn ", " $ fromMaybe "" maint + +-- | Run a process that produces JSON on stdout and and decode the JSON to a +-- data type. +-- +-- If the JSON-decoding fails, throw the JSON-decoding error. +readJSONProcess + :: FromJSON a + => FilePath -- ^ Filename of executable. + -> [String] -- ^ Arguments + -> String -- ^ stdin to pass to the process + -> String -- ^ String to prefix to JSON-decode error. + -> IO a +readJSONProcess exe args input err = do + output <- readProcess exe args input + let eitherDecodedOutput = eitherDecodeStrict' . encodeUtf8 . Text.pack $ output + case eitherDecodedOutput of + Left decodeErr -> error $ err <> decodeErr <> "\nRaw: '" <> take 1000 output <> "'" + Right decodedOutput -> pure decodedOutput -- BuildStates are sorted by subjective importance/concerningness -data BuildState = Failed | DependencyFailed | OutputLimitExceeded | Unknown (Maybe Int) | TimedOut | Canceled | HydraFailure | Unfinished | Success deriving (Show, Eq, Ord) +data BuildState + = Failed + | DependencyFailed + | OutputLimitExceeded + | Unknown (Maybe Int) + | TimedOut + | Canceled + | HydraFailure + | Unfinished + | Success + deriving stock (Show, Eq, Ord) icon :: BuildState -> Text icon = \case @@ -243,7 +328,7 @@ printJob evalId name (Table mapping, maintainers) = printSingleRow set = "- [ ] " <> printState set <> " " <> makeJobSearchLink set (makePkgName set) <> " " <> maintainers makePkgName set = (if Text.null set then "" else set <> ".") <> name printState set = Text.intercalate " " $ map (\pf -> maybe "" (label pf) $ Map.lookup (set, pf) mapping) platforms - makeJobSearchLink set linkLabel= makeSearchLink evalId linkLabel (makePkgName set <> ".") -- Append '.' to the search query to prevent e.g. "hspec." matching "hspec-golden.x86_64-linux" + makeJobSearchLink set linkLabel= makeSearchLink evalId linkLabel (makePkgName set) sets = toList $ Set.fromList (fst <$> Map.keys mapping) platforms = toList $ Set.fromList (snd <$> Map.keys mapping) label pf (BuildResult s i) = "[[" <> platformIcon pf <> icon s <> "]](https://hydra.nixos.org/build/" <> showT i <> ")" diff --git a/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml index 43f69b923d1..63d1d52b01b 100644 --- a/nixos/doc/manual/installation/installing-from-other-distro.xml +++ b/nixos/doc/manual/installation/installing-from-other-distro.xml @@ -84,12 +84,12 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable You'll need nixos-generate-config and - nixos-install and we'll throw in some man pages and - nixos-enter just in case you want to chroot into your - NixOS partition. They are installed by default on NixOS, but you don't have + nixos-install, but this also makes some man pages + and nixos-enter available, just in case you want to chroot into your + NixOS partition. NixOS installs these by default, but you don't have NixOS yet.. -$ nix-env -f '<nixpkgs/nixos>' --arg configuration {} -iA config.system.build.{nixos-generate-config,nixos-install,nixos-enter,manual.manpages} + $ nix-env -f '<nixpkgs>' -iA nixos-install-tools diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 890f61136ba..ef5ac960108 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -112,6 +112,19 @@ it is deprecated. + + + Libreswan has been updated + to version 4.4. The package now includes example configurations and manual + pages by default. The NixOS module has been changed to use the upstream + systemd units and write the configuration in the /etc/ipsec.d/ + directory. In addition, two new options have been added to + specify connection policies + () + and disable send/receive redirects + (). + + diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index eee6c5f423d..e33e860d883 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -233,14 +233,15 @@ in { { User = "${cfg.user}"; ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf"; - ExecStartPre = pkgs.writeShellScript "mpd-start-pre" '' + ExecStartPre = pkgs.writeShellScript "mpd-start-pre" ('' set -euo pipefail install -m 600 ${mpdConf} /run/mpd/mpd.conf - ${optionalString (cfg.credentials != []) - "${pkgs.replace}/bin/replace-literal -fe ${ - concatStringsSep " -a " (imap0 (i: c: "\"{{password-${toString i}}}\" \"$(cat ${c.passwordFile})\"") cfg.credentials) - } /run/mpd/mpd.conf"} - ''; + '' + optionalString (cfg.credentials != []) + (concatStringsSep "\n" + (imap0 + (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'') + cfg.credentials)) + ); RuntimeDirectory = "mpd"; Type = "notify"; LimitRTPRIO = 50; diff --git a/nixos/modules/services/audio/mpdscribble.nix b/nixos/modules/services/audio/mpdscribble.nix index 642d8743935..1368543ae1a 100644 --- a/nixos/modules/services/audio/mpdscribble.nix +++ b/nixos/modules/services/audio/mpdscribble.nix @@ -59,7 +59,7 @@ let replaceSecret = secretFile: placeholder: targetFile: optionalString (secretFile != null) '' - ${pkgs.replace}/bin/replace-literal -ef ${placeholder} "$(cat ${secretFile})" ${targetFile}''; + ${pkgs.replace-secret}/bin/replace-secret '${placeholder}' '${secretFile}' '${targetFile}' ''; preStart = pkgs.writeShellScript "mpdscribble-pre-start" '' cp -f "${cfgTemplate}" "${cfgFile}" diff --git a/nixos/modules/services/desktops/flatpak.nix b/nixos/modules/services/desktops/flatpak.nix index 20007a421b0..7da92cc9f26 100644 --- a/nixos/modules/services/desktops/flatpak.nix +++ b/nixos/modules/services/desktops/flatpak.nix @@ -15,18 +15,6 @@ in { options = { services.flatpak = { enable = mkEnableOption "flatpak"; - - guiPackages = mkOption { - internal = true; - type = types.listOf types.package; - default = []; - example = literalExample "[ pkgs.gnome.gnome-software ]"; - description = '' - Packages that provide an interface for flatpak - (like gnome-software) that will be automatically available - to all users when flatpak is enabled. - ''; - }; }; }; @@ -40,7 +28,7 @@ in { } ]; - environment.systemPackages = [ pkgs.flatpak ] ++ cfg.guiPackages; + environment.systemPackages = [ pkgs.flatpak ]; services.dbus.packages = [ pkgs.flatpak ]; diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index 8153754af0f..253d87537cf 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -952,7 +952,7 @@ in { path = with pkgs; [ jq openssl - replace + replace-secret git ]; serviceConfig = { @@ -994,8 +994,7 @@ in { ${optionalString cfg.smtp.enable '' install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb ${optionalString (cfg.smtp.passwordFile != null) '' - smtp_password=$(<'${cfg.smtp.passwordFile}') - replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb' + replace-secret '@smtpPassword@' '${cfg.smtp.passwordFile}' '${cfg.statePath}/config/initializers/smtp_settings.rb' ''} ''} diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix index 8e3fa60206c..290b5af1d60 100644 --- a/nixos/modules/services/misc/matrix-synapse.nix +++ b/nixos/modules/services/misc/matrix-synapse.nix @@ -86,7 +86,9 @@ account_threepid_delegates: ${optionalString (cfg.account_threepid_delegates.email != null) "email: ${cfg.account_threepid_delegates.email}"} ${optionalString (cfg.account_threepid_delegates.msisdn != null) "msisdn: ${cfg.account_threepid_delegates.msisdn}"} -room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types} +room_prejoin_state: + disable_default_event_types: ${boolToString cfg.room_prejoin_state.disable_default_event_types} + additional_event_types: ${builtins.toJSON cfg.room_prejoin_state.additional_event_types} ${optionalString (cfg.macaroon_secret_key != null) '' macaroon_secret_key: "${cfg.macaroon_secret_key}" ''} @@ -577,11 +579,28 @@ in { Delegate SMS sending to this local process (https://localhost:8090) ''; }; - room_invite_state_types = mkOption { + room_prejoin_state.additional_event_types = mkOption { + default = []; type = types.listOf types.str; - default = ["m.room.join_rules" "m.room.canonical_alias" "m.room.avatar" "m.room.name"]; description = '' - A list of event types that will be included in the room_invite_state + Additional events to share with users who received an invite. + ''; + }; + room_prejoin_state.disable_default_event_types = mkOption { + default = false; + type = types.bool; + description = '' + Whether to disable the default state-event types for users invited to a room. + These are: + + + m.room.join_rules + m.room.canonical_alias + m.room.avatar + m.room.encryption + m.room.name + m.room.create + ''; }; macaroon_secret_key = mkOption { @@ -728,6 +747,12 @@ in { '') (mkRemovedOptionModule [ "services" "matrix-synapse" "web_client" ] "") + (mkRemovedOptionModule [ "services" "matrix-synapse" "room_invite_state_types" ] '' + You may add additional event types via + `services.matrix-synapse.room_prejoin_state.additional_event_types` and + disable the default events via + `services.matrix-synapse.room_prejoin_state.disable_default_event_types`. + '') ]; meta.doc = ./matrix-synapse.xml; diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix index 86e306ab404..4ebde6f9b10 100644 --- a/nixos/modules/services/monitoring/grafana.nix +++ b/nixos/modules/services/monitoring/grafana.nix @@ -42,6 +42,9 @@ let AUTH_ANONYMOUS_ENABLED = boolToString cfg.auth.anonymous.enable; AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name; AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role; + AUTH_GOOGLE_ENABLED = boolToString cfg.auth.google.enable; + AUTH_GOOGLE_ALLOW_SIGN_UP = boolToString cfg.auth.google.allowSignUp; + AUTH_GOOGLE_CLIENT_ID = cfg.auth.google.clientId; ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable; @@ -528,23 +531,46 @@ in { }; }; - auth.anonymous = { - enable = mkOption { - description = "Whether to allow anonymous access."; - default = false; - type = types.bool; + auth = { + anonymous = { + enable = mkOption { + description = "Whether to allow anonymous access."; + default = false; + type = types.bool; + }; + org_name = mkOption { + description = "Which organization to allow anonymous access to."; + default = "Main Org."; + type = types.str; + }; + org_role = mkOption { + description = "Which role anonymous users have in the organization."; + default = "Viewer"; + type = types.str; + }; }; - org_name = mkOption { - description = "Which organization to allow anonymous access to."; - default = "Main Org."; - type = types.str; + google = { + enable = mkOption { + description = "Whether to allow Google OAuth2."; + default = false; + type = types.bool; + }; + allowSignUp = mkOption { + description = "Whether to allow sign up with Google OAuth2."; + default = false; + type = types.bool; + }; + clientId = mkOption { + description = "Google OAuth2 client ID."; + default = ""; + type = types.str; + }; + clientSecretFile = mkOption { + description = "Google OAuth2 client secret."; + default = null; + type = types.nullOr types.path; + }; }; - org_role = mkOption { - description = "Which role anonymous users have in the organization."; - default = "Viewer"; - type = types.str; - }; - }; analytics.reporting = { @@ -609,6 +635,9 @@ in { QT_QPA_PLATFORM = "offscreen"; } // mapAttrs' (n: v: nameValuePair "GF_${n}" (toString v)) envOptions; script = '' + ${optionalString (cfg.auth.google.clientSecretFile != null) '' + export GF_AUTH_GOOGLE_CLIENT_SECRET="$(cat ${escapeShellArg cfg.auth.google.clientSecretFile})" + ''} ${optionalString (cfg.database.passwordFile != null) '' export GF_DATABASE_PASSWORD="$(cat ${escapeShellArg cfg.database.passwordFile})" ''} diff --git a/nixos/modules/services/networking/libreswan.nix b/nixos/modules/services/networking/libreswan.nix index 81bc4e1cf95..1f0423ac3d8 100644 --- a/nixos/modules/services/networking/libreswan.nix +++ b/nixos/modules/services/networking/libreswan.nix @@ -9,21 +9,22 @@ let libexec = "${pkgs.libreswan}/libexec/ipsec"; ipsec = "${pkgs.libreswan}/sbin/ipsec"; - trim = chars: str: let - nonchars = filter (x : !(elem x.value chars)) - (imap0 (i: v: {ind = i; value = v;}) (stringToCharacters str)); - in - if length nonchars == 0 then "" - else substring (head nonchars).ind (add 1 (sub (last nonchars).ind (head nonchars).ind)) str; + trim = chars: str: + let + nonchars = filter (x : !(elem x.value chars)) + (imap0 (i: v: {ind = i; value = v;}) (stringToCharacters str)); + in + if length nonchars == 0 then "" + else substring (head nonchars).ind (add 1 (sub (last nonchars).ind (head nonchars).ind)) str; indent = str: concatStrings (concatMap (s: [" " (trim [" " "\t"] s) "\n"]) (splitString "\n" str)); configText = indent (toString cfg.configSetup); connectionText = concatStrings (mapAttrsToList (n: v: '' conn ${n} ${indent v} - '') cfg.connections); - configFile = pkgs.writeText "ipsec.conf" + + configFile = pkgs.writeText "ipsec-nixos.conf" '' config setup ${configText} @@ -31,6 +32,11 @@ let ${connectionText} ''; + policyFiles = mapAttrs' (name: text: + { name = "ipsec.d/policies/${name}"; + value.source = pkgs.writeText "ipsec-policy-${name}" text; + }) cfg.policies; + in { @@ -41,41 +47,71 @@ in services.libreswan = { - enable = mkEnableOption "libreswan ipsec service"; + enable = mkEnableOption "Libreswan IPsec service"; configSetup = mkOption { type = types.lines; default = '' protostack=netkey - nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10 ''; example = '' secretsfile=/root/ipsec.secrets protostack=netkey - nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10 ''; - description = "Options to go in the 'config setup' section of the libreswan ipsec configuration"; + description = "Options to go in the 'config setup' section of the Libreswan IPsec configuration"; }; connections = mkOption { type = types.attrsOf types.lines; default = {}; - example = { - myconnection = '' - auto=add - left=%defaultroute - leftid=@user + example = literalExample '' + { myconnection = ''' + auto=add + left=%defaultroute + leftid=@user - right=my.vpn.com + right=my.vpn.com - ikev2=no - ikelifetime=8h - ''; - }; - description = "A set of connections to define for the libreswan ipsec service"; + ikev2=no + ikelifetime=8h + '''; + } + ''; + description = "A set of connections to define for the Libreswan IPsec service"; }; + + policies = mkOption { + type = types.attrsOf types.lines; + default = {}; + example = literalExample '' + { private-or-clear = ''' + # Attempt opportunistic IPsec for the entire Internet + 0.0.0.0/0 + ::/0 + '''; + } + ''; + description = '' + A set of policies to apply to the IPsec connections. + + + The policy name must match the one of connection it needs to apply to. + + ''; + }; + + disableRedirects = mkOption { + type = types.bool; + default = true; + description = '' + Whether to disable send and accept redirects for all nework interfaces. + See the Libreswan + FAQ page for why this is recommended. + ''; + }; + }; }; @@ -85,43 +121,38 @@ in config = mkIf cfg.enable { + # Install package, systemd units, etc. environment.systemPackages = [ pkgs.libreswan pkgs.iproute2 ]; + systemd.packages = [ pkgs.libreswan ]; + systemd.tmpfiles.packages = [ pkgs.libreswan ]; + + # Install configuration files + environment.etc = { + "ipsec.secrets".source = "${pkgs.libreswan}/etc/ipsec.secrets"; + "ipsec.conf".source = "${pkgs.libreswan}/etc/ipsec.conf"; + "ipsec.d/01-nixos.conf".source = configFile; + } // policyFiles; + + # Create NSS database directory + systemd.tmpfiles.rules = [ "d /var/lib/ipsec/nss 755 root root -" ]; systemd.services.ipsec = { description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec"; - path = [ - "${pkgs.libreswan}" - "${pkgs.iproute2}" - "${pkgs.procps}" - "${pkgs.nssTools}" - "${pkgs.iptables}" - "${pkgs.nettools}" - ]; - - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - Type = "simple"; - Restart = "always"; - EnvironmentFile = "-${pkgs.libreswan}/etc/sysconfig/pluto"; - ExecStartPre = [ - "${libexec}/addconn --config ${configFile} --checkconfig" - "${libexec}/_stackmanager start" - "${ipsec} --checknss" - "${ipsec} --checknflog" - ]; - ExecStart = "${libexec}/pluto --config ${configFile} --nofork \$PLUTO_OPTIONS"; - ExecStop = "${libexec}/whack --shutdown"; - ExecStopPost = [ - "${pkgs.iproute2}/bin/ip xfrm policy flush" - "${pkgs.iproute2}/bin/ip xfrm state flush" - "${ipsec} --stopnflog" - ]; - ExecReload = "${libexec}/whack --listen"; - }; - + restartTriggers = [ configFile ] ++ mapAttrsToList (n: v: v.source) policyFiles; + path = with pkgs; [ + libreswan + iproute2 + procps + nssTools + iptables + nettools + ]; + preStart = optionalString cfg.disableRedirects '' + # Disable send/receive redirects + echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects + echo 0 | tee /proc/sys/net/ipv{4,6}/conf/*/accept_redirects + ''; }; }; diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index 00b58d50257..0e2e182ffe9 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -661,7 +661,7 @@ in ]; path = cfg.package.runtimeDeps ++ [ postgresqlPackage - pkgs.replace + pkgs.replace-secret cfg.package.rake ]; environment = cfg.package.runtimeEnv // { @@ -688,10 +688,7 @@ in mkSecretReplacement = file: lib.optionalString (file != null) '' - ( - password=$(<'${file}') - replace-literal -fe '${file}' "$password" /run/discourse/config/discourse.conf - ) + replace-secret '${file}' '${file}' /run/discourse/config/discourse.conf ''; in '' set -o errexit -o pipefail -o nounset -o errtrace @@ -713,11 +710,12 @@ in cfg.siteSettings "/run/discourse/config/nixos_site_settings.json" } - install -T -m 0400 -o discourse ${discourseConf} /run/discourse/config/discourse.conf + install -T -m 0600 -o discourse ${discourseConf} /run/discourse/config/discourse.conf ${mkSecretReplacement cfg.database.passwordFile} ${mkSecretReplacement cfg.mail.outgoing.passwordFile} ${mkSecretReplacement cfg.redis.passwordFile} ${mkSecretReplacement cfg.secretKeyBaseFile} + chmod 0400 /run/discourse/config/discourse.conf ) discourse-rake db:migrate >>/var/log/discourse/db_migration.log diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix index 5b578cd8c4a..e2e6df41dfa 100644 --- a/nixos/modules/services/web-apps/keycloak.nix +++ b/nixos/modules/services/web-apps/keycloak.nix @@ -633,6 +633,9 @@ in after = databaseServices; bindsTo = databaseServices; wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ + replace-secret + ]; environment = { JBOSS_LOG_DIR = "/var/log/keycloak"; JBOSS_BASE_DIR = "/run/keycloak"; @@ -653,8 +656,7 @@ in install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml - db_password="$(/tmp/msg &") + alice.sleep(1) + alice.succeed(f"echo '{msg}' | nc -uw 0 bob 1234") + bob.succeed(f"grep '{msg}' /tmp/msg") + + + def eavesdrop(): + """ + Starts eavesdropping on Alice and Bob + """ + match = "src host alice and dst host bob" + eve.execute(f"tcpdump -i br0 -c 1 -Avv {match} >/tmp/log &") + + + start_all() + + with subtest("Network is up"): + alice.wait_until_succeeds("ping -c1 bob") + + with subtest("Eve can eavesdrop cleartext traffic"): + eavesdrop() + alice_to_bob("I secretly love turnip") + eve.sleep(1) + eve.succeed("grep turnip /tmp/log") + + with subtest("Libreswan is ready"): + alice.wait_for_unit("ipsec") + bob.wait_for_unit("ipsec") + alice.succeed("ipsec verify 1>&2") + + with subtest("Alice and Bob can start the tunnel"): + alice.execute("ipsec auto --start tunnel &") + bob.succeed("ipsec auto --start tunnel") + # apparently this is needed to "wake" the tunnel + bob.execute("ping -c1 alice") + + with subtest("Eve no longer can eavesdrop"): + eavesdrop() + alice_to_bob("Just kidding, I actually like rhubarb") + eve.sleep(1) + eve.fail("grep rhubarb /tmp/log") + ''; +}) diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix index 710110c8172..a053dda46a3 100644 --- a/pkgs/applications/audio/gnome-podcasts/default.nix +++ b/pkgs/applications/audio/gnome-podcasts/default.nix @@ -8,7 +8,6 @@ , python3 , pkg-config , glib -, cmake , libhandy , gtk3 , appstream-glib @@ -53,7 +52,6 @@ stdenv.mkDerivation rec { buildInputs = [ appstream-glib - cmake desktop-file-utils glib gtk3 diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix index 2f5e6ac0104..585f01290bb 100644 --- a/pkgs/applications/blockchains/trezor-suite/default.nix +++ b/pkgs/applications/blockchains/trezor-suite/default.nix @@ -8,7 +8,7 @@ let pname = "trezor-suite"; - version = "21.4.1"; + version = "21.5.1"; name = "${pname}-${version}"; suffix = { @@ -18,9 +18,10 @@ let src = fetchurl { url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage"; - sha256 = { - aarch64-linux = "51ea8a5210f008d13a729ac42085563b5e8b971b17ed766f84d69d76dcb2db0c"; - x86_64-linux = "9219168a504356152b3b807e1e7282e21952461d277596c6b82ddfe81ac2419c"; + # sha512 hashes are obtained from latest-linux-arm64.yml and latest-linux.yml + sha512 = { + aarch64-linux = "sha512-nqwfonWySc+wBSJjC8BW9vm+v5zHbKqbbrTTRmoZdEYBJg2SthMtTULNLVpXaX9NHxr6guZnOWdBlzVk2dQkfQ=="; + x86_64-linux = "sha512-tfvdNXsjMe8YXJwTuujz4tKTdfsCuR/9VECF8EkcRP95YM7vuDV8dumru1jKtdiv0gaS1GT3SPEeAfmczY5jGg=="; }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }; diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix index 15d8096e549..0c5a0fe6e3d 100644 --- a/pkgs/applications/graphics/krita/default.nix +++ b/pkgs/applications/graphics/krita/default.nix @@ -1,7 +1,7 @@ { mkDerivation, lib, stdenv, makeWrapper, fetchurl, cmake, extra-cmake-modules , karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons , kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem -, kio, kcrash +, kio, kcrash, breeze-icons , boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib , openjpeg, opencolorio, vc, poppler, curl, ilmbase , qtmultimedia, qtx11extras, quazip @@ -21,7 +21,7 @@ mkDerivation rec { buildInputs = [ karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons - ki18n kitemmodels kitemviews kwindowsystem kio kcrash + ki18n kitemmodels kitemviews kwindowsystem kio kcrash breeze-icons boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib openjpeg opencolorio poppler curl ilmbase qtmultimedia qtx11extras quazip diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix index b379a04a51d..07dc364fe0b 100644 --- a/pkgs/applications/misc/megasync/default.nix +++ b/pkgs/applications/misc/megasync/default.nix @@ -7,7 +7,7 @@ , curl , doxygen , fetchFromGitHub -, ffmpeg + #, ffmpeg , libmediainfo , libraw , libsodium @@ -52,7 +52,8 @@ mkDerivation rec { c-ares cryptopp curl - ffmpeg + # temporarily disable until patched for ffmpeg 4.4 + #ffmpeg libmediainfo libraw libsodium @@ -94,7 +95,8 @@ mkDerivation rec { "--with-cares" "--with-cryptopp" "--with-curl" - "--with-ffmpeg" + # temporarily disable until patched for ffmpeg 4.4 + #"--with-ffmpeg" "--without-freeimage" # unreferenced even when found "--without-readline" "--without-termcap" diff --git a/pkgs/applications/misc/spacenav-cube-example/default.nix b/pkgs/applications/misc/spacenav-cube-example/default.nix index 1221db1ad96..697d13c8c0e 100644 --- a/pkgs/applications/misc/spacenav-cube-example/default.nix +++ b/pkgs/applications/misc/spacenav-cube-example/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { buildInputs = [ libX11 mesa_glu libspnav ]; - configureFlags = [ "--disable-debug" ]; + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; installPhase = '' runHook preInstall diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix index f31744102ba..f68018702fd 100644 --- a/pkgs/applications/networking/cluster/argo/default.nix +++ b/pkgs/applications/networking/cluster/argo/default.nix @@ -19,13 +19,13 @@ let in buildGoModule rec { pname = "argo"; - version = "3.0.3"; + version = "3.0.4"; src = fetchFromGitHub { owner = "argoproj"; repo = "argo"; rev = "v${version}"; - sha256 = "sha256-6w0FwVmzICsjWH7lE2ZnIhictNFTpo8pQ2Wvsyn925A="; + sha256 = "sha256-zswX6nt7AxxTMznbY4Rk0A8j2PpSNht+gbTMbDr2yuY="; }; vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg="; diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix index 295e6f3679b..d99bb5d5bb1 100644 --- a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix +++ b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix @@ -12,13 +12,13 @@ mkDerivation rec { pname = "kdeltachat"; - version = "unstable-2021-05-16"; + version = "unstable-2021-05-18"; src = fetchFromSourcehut { owner = "~link2xt"; repo = "kdeltachat"; - rev = "670960e18a7e9a1d994f26af27a12c73a7413c9a"; - sha256 = "1k065pvz1p2wm1rvw4nlcmknc4z10ya4qfch5kz77bbhkf9vfw2l"; + rev = "837336dc93b66912d48a3b7a2e8c1991b4d3650f"; + sha256 = "17ms6dcfdz0y24285fqpmgvw391bxrkagsiiy4g5cyp8gfppkgaj"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/sniffers/etherape/default.nix b/pkgs/applications/networking/sniffers/etherape/default.nix index 1e3f2635f47..db54231ecf2 100644 --- a/pkgs/applications/networking/sniffers/etherape/default.nix +++ b/pkgs/applications/networking/sniffers/etherape/default.nix @@ -2,10 +2,10 @@ popt, itstool, libxml2 }: stdenv.mkDerivation rec { - name = "etherape-0.9.19"; + name = "etherape-0.9.20"; src = fetchurl { url = "mirror://sourceforge/etherape/${name}.tar.gz"; - sha256 = "0w63vg2q6if3wvy2md66in8b6cdw9q40hny5xy6yrxky58l4kmg7"; + sha256 = "sha256-9UsQtWOXB1yYofGS4rMIF+ISWBsJKd0DBOFfqOr1n5Y="; }; nativeBuildInputs = [ itstool pkg-config (lib.getBin libxml2) ]; diff --git a/pkgs/applications/science/math/bcal/default.nix b/pkgs/applications/science/math/bcal/default.nix index 8cbf90a7187..1494b532487 100644 --- a/pkgs/applications/science/math/bcal/default.nix +++ b/pkgs/applications/science/math/bcal/default.nix @@ -1,6 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, python3Packages, readline, bc }: - -with lib; +{ lib +, stdenv +, fetchFromGitHub +, readline +, bc +, python3Packages +}: stdenv.mkDerivation rec { pname = "bcal"; @@ -13,23 +17,21 @@ stdenv.mkDerivation rec { sha256 = "4vR5rcbNkoEdSRNoMH9qMHP3iWFxejkVfXNiYfwbo/A="; }; - nativeBuildInputs = [ python3Packages.pytest ]; - buildInputs = [ readline ]; + installFlags = [ "PREFIX=$(out)" ]; + doCheck = true; - checkInputs = [ bc ]; - checkPhase = '' - python3 -m pytest test.py - ''; - installFlags = [ "DESTDIR=$(out)" "PREFIX=" ]; + checkInputs = [ bc python3Packages.pytestCheckHook ]; - meta = { + pytestFlagsArray = [ "test.py" ]; + + meta = with lib; { description = "Storage conversion and expression calculator"; homepage = "https://github.com/jarun/bcal"; license = licenses.gpl3Only; - platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ]; + platforms = platforms.unix; maintainers = with maintainers; [ jfrankenau ]; }; } diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix index a99cbbbe0df..fc1a2e0abf8 100644 --- a/pkgs/applications/science/math/pari/default.nix +++ b/pkgs/applications/science/math/pari/default.nix @@ -12,14 +12,23 @@ assert withThread -> libpthreadstubs != null; stdenv.mkDerivation rec { pname = "pari"; - version = "2.11.4"; + version = "2.13.1"; src = fetchurl { - # Versions with current majorMinor values are at http://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz - url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-v8iPxPc1L0hA5uNSxy8DacvqikVAOxg0piafNwmXCxw="; + urls = [ + "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz" + # old versions are at the url below + "https://pari.math.u-bordeaux.fr/pub/pari/OLD/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz" + ]; + sha256 = "sha256-gez31wzNquIwFlz/Ynyc4uwpe48i+fQHQiedhfht/LE="; }; + patches = [ + # rebased version of 3edb98db78, see + # https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2284 + ./rnfdisc.patch + ]; + buildInputs = [ gmp readline diff --git a/pkgs/applications/science/math/pari/rnfdisc.patch b/pkgs/applications/science/math/pari/rnfdisc.patch new file mode 100644 index 00000000000..6acac96481d --- /dev/null +++ b/pkgs/applications/science/math/pari/rnfdisc.patch @@ -0,0 +1,51 @@ +commit 0d8a3ac970291c62b56104172418b3f2ca30927c +Author: Bill Allombert +Date: Sun Mar 28 13:27:24 2021 +0200 + + rnfdisc_factored: remove spurious Q_primpart [#2284] + +diff --git a/src/basemath/base2.c b/src/basemath/base2.c +index 7e7d0db9d..c461826f4 100644 +--- a/src/basemath/base2.c ++++ b/src/basemath/base2.c +@@ -3582,7 +3582,7 @@ rnfdisc_factored(GEN nf, GEN pol, GEN *pd) + + nf = checknf(nf); + pol = rnfdisc_get_T(nf, pol, &lim); +- disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, Q_primpart(pol))); ++ disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, pol)); + pol = nfX_to_monic(nf, pol, NULL); + fa = idealfactor_partial(nf, disc, lim); + P = gel(fa,1); l = lg(P); +diff --git a/src/test/32/rnf b/src/test/32/rnf +index 1e743f415..c016dce00 100644 +--- a/src/test/32/rnf ++++ b/src/test/32/rnf +@@ -853,9 +853,10 @@ error("inconsistent dimensions in idealtwoelt.") + 0 + 0 + 1 +-[[7361, 3786, 318, 5823; 0, 1, 0, 0; 0, 0, 1, 0; 0, 0, 0, 1], [-3, 6, -2, 0] +-~] +-[2, -1] ++[[433, 322, 318, 1318/17; 0, 1, 0, 12/17; 0, 0, 1, 5/17; 0, 0, 0, 1/17], [25 ++/17, -12/17, 12/17, 16/17]~] ++[1, -1] ++[[12, 0, 0, 0; 0, 12, 4, 0; 0, 0, 4, 0; 0, 0, 0, 4], [6, 5, -1, 2]~] + *** at top-level: rnfdedekind(nf,P,pr2,1) + *** ^----------------------- + *** rnfdedekind: sorry, Dedekind in the difficult case is not yet implemented. +diff --git a/src/test/in/rnf b/src/test/in/rnf +index 7851ae291..318d5349e 100644 +--- a/src/test/in/rnf ++++ b/src/test/in/rnf +@@ -212,6 +212,9 @@ k = nfinit(y^4 + 10*y^2 + 17); + rnfdisc(k, x^2 - x + 1/Mod(y,k.pol)) + rnfdisc(k, x^2 - x + 1/2) + ++k = nfinit(y^4 - 10*y^2 + 1); ++rnfdisc(k,x^2-(y^3/2+y^2-5*y/2+1)) ++ + \\ ERRORS, keep at end of file + rnfdedekind(nf, P, pr2, 1) + rnfdedekind(nf, P) diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index ecbda8f239a..36715764d09 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -78,6 +78,18 @@ stdenv.mkDerivation rec { # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests ./patches/ignore-cmp-deprecation.patch + + # https://trac.sagemath.org/ticket/30801. this patch has + # positive_review but has not been merged upstream yet, so we + # don't use fetchSageDiff because it returns a file that contains + # each commit as a separate patch instead of a single diff, and + # some commits from the pari update branch are already in 9.3.rc5 + # (auto-resolvable merge conflicts). + (fetchpatch { + name = "pari-2.13.1.patch"; + url = "https://github.com/sagemath/sagetrac-mirror/compare/d6c5cd9be78cc448ee4c54bac93385b1244a234c...10a4531721d2700fd717e2b3a1364508ffd971c3.diff"; + sha256 = "sha256-zMjRMEReoiTvmt+vvV0Ij1jtyLSLwSXBEVXqgvmq1D4="; + }) ]; patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches; diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix index fa8b5acc9b2..4b2ec37b49c 100644 --- a/pkgs/applications/version-management/git-and-tools/gh/default.nix +++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "gh"; - version = "1.10.0"; + version = "1.10.1"; src = fetchFromGitHub { owner = "cli"; repo = "cli"; rev = "v${version}"; - sha256 = "sha256-nQc10uTb7yQoH9rlMQiexttdAnnPRGaHCrzZNqkZcIc="; + sha256 = "sha256-ESwgG1sMkR44KpO7k5HNR3gPBgOqIADpS6fSOqqNn2Q="; }; vendorSha256 = "sha256-A7Bo0HQ5Z2SXY32jWCYgwvvInD3xYLSXvipzeaQTDiM="; diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix index de3d944bacb..2a6d2a20c44 100644 --- a/pkgs/applications/virtualization/podman-compose/default.nix +++ b/pkgs/applications/virtualization/podman-compose/default.nix @@ -1,12 +1,19 @@ -{ lib, buildPythonApplication, fetchPypi, pyyaml }: +{ lib, buildPythonApplication, fetchFromGitHub, pyyaml }: buildPythonApplication rec { - version = "0.1.5"; + version = "0.2.0pre-2021-05-18"; pname = "podman-compose"; - src = fetchPypi { - inherit pname version; - sha256 = "1sgbc889zq127qhxa9frhswa1mid19fs5qnyzfihx648y5i968pv"; + # "This project is still under development." -- README.md + # + # As of May 2021, the latest release (0.1.5) has fewer than half of all + # commits. This project seems to have no release management, so the last + # commit is the best one until proven otherwise. + src = fetchFromGitHub { + repo = "podman-compose"; + owner = "containers"; + rev = "62d2024feecf312e9591cc145f49cee9c70ab4fe"; + sha256 = "17992imkvi6129wvajsp0iz5iicfmh53i20qy2mzz17kcz30r2pp"; }; propagatedBuildInputs = [ pyyaml ]; diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix index 1f720d58f51..795971a7492 100644 --- a/pkgs/applications/virtualization/runc/default.nix +++ b/pkgs/applications/virtualization/runc/default.nix @@ -16,13 +16,13 @@ buildGoPackage rec { pname = "runc"; - version = "1.0.0-rc94"; + version = "1.0.0-rc95"; src = fetchFromGitHub { owner = "opencontainers"; repo = "runc"; rev = "v${version}"; - sha256 = "sha256-53P48jNSfC6ELpZNI30yAf7kofUsrJpNY96u0UT+ITg="; + sha256 = "sha256-q4sXcvJO9gyo7m0vlaMrwh7ZZHYa58FJy3GatWndS6M="; }; goPackagePath = "github.com/opencontainers/runc"; diff --git a/pkgs/build-support/replace-secret/replace-secret.nix b/pkgs/build-support/replace-secret/replace-secret.nix new file mode 100644 index 00000000000..e04d1aed5f7 --- /dev/null +++ b/pkgs/build-support/replace-secret/replace-secret.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, python3 }: + +stdenv.mkDerivation { + name = "replace-secret"; + buildInputs = [ python3 ]; + phases = [ "installPhase" "checkPhase" ]; + installPhase = '' + install -D ${./replace-secret.py} $out/bin/replace-secret + patchShebangs $out + ''; + doCheck = true; + checkPhase = '' + install -m 0600 ${./test/input_file} long_test + $out/bin/replace-secret "replace this" ${./test/passwd} long_test + $out/bin/replace-secret "and this" ${./test/rsa} long_test + diff ${./test/expected_long_output} long_test + + install -m 0600 ${./test/input_file} short_test + $out/bin/replace-secret "replace this" <(echo "a") short_test + $out/bin/replace-secret "and this" <(echo "b") short_test + diff ${./test/expected_short_output} short_test + ''; + meta = with lib; { + platforms = platforms.all; + maintainers = with maintainers; [ talyz ]; + license = licenses.mit; + description = "Replace a string in one file with a secret from a second file"; + longDescription = '' + Replace a string in one file with a secret from a second file. + + Since the secret is read from a file, it won't be leaked through + '/proc//cmdline', unlike when 'sed' or 'replace' is used. + ''; + }; +} diff --git a/pkgs/build-support/replace-secret/replace-secret.py b/pkgs/build-support/replace-secret/replace-secret.py new file mode 100755 index 00000000000..30ff41d491b --- /dev/null +++ b/pkgs/build-support/replace-secret/replace-secret.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +import argparse +from argparse import RawDescriptionHelpFormatter + +description = """ +Replace a string in one file with a secret from a second file. + +Since the secret is read from a file, it won't be leaked through +'/proc//cmdline', unlike when 'sed' or 'replace' is used. +""" + +parser = argparse.ArgumentParser( + description=description, + formatter_class=RawDescriptionHelpFormatter +) +parser.add_argument("string_to_replace", help="the string to replace") +parser.add_argument("secret_file", help="the file containing the secret") +parser.add_argument("file", help="the file to perform the replacement on") +args = parser.parse_args() + +with open(args.secret_file) as sf, open(args.file, 'r+') as f: + old = f.read() + secret = sf.read().strip("\n") + new_content = old.replace(args.string_to_replace, secret) + f.seek(0) + f.write(new_content) + f.truncate() diff --git a/pkgs/build-support/replace-secret/test/expected_long_output b/pkgs/build-support/replace-secret/test/expected_long_output new file mode 100644 index 00000000000..37bd66b905f --- /dev/null +++ b/pkgs/build-support/replace-secret/test/expected_long_output @@ -0,0 +1,30 @@ +beginning +middle $6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0 not this +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+ +0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60 +yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb +5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0 +T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO +xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6 +6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m +16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo +harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4 +/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg +GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW +t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe +eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc +PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy +6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw +hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C +Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW +NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW +IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot +v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa +kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E +AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH +5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl +ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J +cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af +-----END RSA PRIVATE KEY----- +end diff --git a/pkgs/build-support/replace-secret/test/expected_short_output b/pkgs/build-support/replace-secret/test/expected_short_output new file mode 100644 index 00000000000..3c81b2e2f99 --- /dev/null +++ b/pkgs/build-support/replace-secret/test/expected_short_output @@ -0,0 +1,4 @@ +beginning +middle a not this +b +end diff --git a/pkgs/build-support/replace-secret/test/input_file b/pkgs/build-support/replace-secret/test/input_file new file mode 100644 index 00000000000..1e7eadfaab2 --- /dev/null +++ b/pkgs/build-support/replace-secret/test/input_file @@ -0,0 +1,4 @@ +beginning +middle replace this not this +and this +end diff --git a/pkgs/build-support/replace-secret/test/passwd b/pkgs/build-support/replace-secret/test/passwd new file mode 100644 index 00000000000..68f266226e4 --- /dev/null +++ b/pkgs/build-support/replace-secret/test/passwd @@ -0,0 +1 @@ +$6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0 diff --git a/pkgs/build-support/replace-secret/test/rsa b/pkgs/build-support/replace-secret/test/rsa new file mode 100644 index 00000000000..138cc99ed22 --- /dev/null +++ b/pkgs/build-support/replace-secret/test/rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+ +0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60 +yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb +5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0 +T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO +xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6 +6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m +16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo +harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4 +/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg +GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW +t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe +eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc +PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy +6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw +hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C +Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW +NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW +IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot +v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa +kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E +AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH +5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl +ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J +cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af +-----END RSA PRIVATE KEY----- diff --git a/pkgs/build-support/trivial-builders/test.nix b/pkgs/build-support/trivial-builders/test.nix index 0902a537222..204fb54fca3 100644 --- a/pkgs/build-support/trivial-builders/test.nix +++ b/pkgs/build-support/trivial-builders/test.nix @@ -1,5 +1,27 @@ -{ lib, nixosTest, path, writeText, hello, figlet, stdenvNoCC }: +{ lib, nixosTest, pkgs, writeText, hello, figlet, stdenvNoCC }: +# -------------------------------------------------------------------------- # +# +# trivial-builders test +# +# -------------------------------------------------------------------------- # +# +# This file can be run independently (quick): +# +# $ pkgs/build-support/trivial-builders/test.sh +# +# or in the build sandbox with a ~20s VM overhead +# +# $ nix-build -A tests.trivial-builders +# +# -------------------------------------------------------------------------- # + +let + invokeSamples = file: + lib.concatStringsSep " " ( + lib.attrValues (import file { inherit pkgs; }) + ); +in nixosTest { name = "nixpkgs-trivial-builders"; nodes.machine = { ... }: { @@ -10,11 +32,22 @@ nixosTest { environment.etc."pre-built-paths".source = writeText "pre-built-paths" ( builtins.toJSON [hello figlet stdenvNoCC] ); + environment.variables = { + SAMPLE = invokeSamples ./test/sample.nix; + REFERENCES = invokeSamples ./test/invoke-writeReferencesToFile.nix; + DIRECT_REFS = invokeSamples ./test/invoke-writeDirectReferencesToFile.nix; + }; }; testScript = '' machine.succeed(""" - cd ${lib.cleanSource path} - ./pkgs/build-support/trivial-builders/test.sh 2>/dev/console + ${./test.sh} 2>/dev/console """) ''; + meta = { + license = lib.licenses.mit; # nixpkgs license + maintainers = with lib.maintainers; [ + roberth + ]; + description = "Run the Nixpkgs trivial builders tests"; + }; } diff --git a/pkgs/build-support/trivial-builders/test.sh b/pkgs/build-support/trivial-builders/test.sh index 3e21b000815..b7c4726a9be 100755 --- a/pkgs/build-support/trivial-builders/test.sh +++ b/pkgs/build-support/trivial-builders/test.sh @@ -25,33 +25,32 @@ set -euo pipefail cd "$(dirname ${BASH_SOURCE[0]})" # nixpkgs root -testDirectReferences() { - expr="$1" +if [[ -z ${SAMPLE:-} ]]; then + sample=( `nix-build test/sample.nix` ) + directRefs=( `nix-build test/invoke-writeDirectReferencesToFile.nix` ) + references=( `nix-build test/invoke-writeReferencesToFile.nix` ) +else + # Injected by Nix (to avoid evaluating in a derivation) + # turn them into arrays + sample=($SAMPLE) + directRefs=($DIRECT_REFS) + references=($REFERENCES) +fi + +echo >&2 Testing direct references... +for i in "${!sample[@]}"; do + echo >&2 Checking '#'$i ${sample[$i]} ${directRefs[$i]} diff -U3 \ - <(sort <$(nix-build --no-out-link --expr "with import ../../.. {}; writeDirectReferencesToFile ($expr)")) \ - <(nix-store -q --references $(nix-build --no-out-link --expr "with import ../../.. {}; ($expr)") | sort) -} + <(sort <${directRefs[$i]}) \ + <(nix-store -q --references ${sample[$i]} | sort) +done -testDirectReferences 'hello' -testDirectReferences 'figlet' -testDirectReferences 'writeText "hi" "hello"' -testDirectReferences 'writeText "hi" "hello ${hello}"' -testDirectReferences 'writeText "hi" "hello ${hello} ${figlet}"' - - - -testClosure() { - expr="$1" +echo >&2 Testing closure... +for i in "${!sample[@]}"; do + echo >&2 Checking '#'$i ${sample[$i]} ${references[$i]} diff -U3 \ - <(sort <$(nix-build --no-out-link --expr "with import ../../.. {}; writeReferencesToFile ($expr)")) \ - <(nix-store -q --requisites $(nix-build --no-out-link --expr "with import ../../.. {}; ($expr)") | sort) -} - -testClosure 'hello' -testClosure 'figlet' -testClosure 'writeText "hi" "hello"' -testClosure 'writeText "hi" "hello ${hello}"' -testClosure 'writeText "hi" "hello ${hello} ${figlet}"' - + <(sort <${references[$i]}) \ + <(nix-store -q --requisites ${sample[$i]} | sort) +done echo 'OK!' diff --git a/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix b/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix new file mode 100644 index 00000000000..ead3f7a2f57 --- /dev/null +++ b/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix @@ -0,0 +1,4 @@ +{ pkgs ? import ../../../.. { config = {}; overlays = []; } }: +pkgs.lib.mapAttrs + (k: v: pkgs.writeDirectReferencesToFile v) + (import ./sample.nix { inherit pkgs; }) diff --git a/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix b/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix new file mode 100644 index 00000000000..99c6c2f7dcc --- /dev/null +++ b/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix @@ -0,0 +1,4 @@ +{ pkgs ? import ../../../.. { config = {}; overlays = []; } }: +pkgs.lib.mapAttrs + (k: v: pkgs.writeReferencesToFile v) + (import ./sample.nix { inherit pkgs; }) diff --git a/pkgs/build-support/trivial-builders/test/sample.nix b/pkgs/build-support/trivial-builders/test/sample.nix new file mode 100644 index 00000000000..060be011093 --- /dev/null +++ b/pkgs/build-support/trivial-builders/test/sample.nix @@ -0,0 +1,15 @@ +{ pkgs ? import ../../../.. { config = {}; overlays = []; } }: +let + inherit (pkgs) + figlet + hello + writeText + ; +in +{ + hello = hello; + figlet = figlet; + norefs = writeText "hi" "hello"; + helloRef = writeText "hi" "hello ${hello}"; + helloFigletRef = writeText "hi" "hello ${hello} ${figlet}"; +} diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json index 66830ea017c..43c45c95cd6 100644 --- a/pkgs/data/misc/hackage/pin.json +++ b/pkgs/data/misc/hackage/pin.json @@ -1,6 +1,6 @@ { - "commit": "b963dde27c24394c4be0031039dae4cb6a363aed", - "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/b963dde27c24394c4be0031039dae4cb6a363aed.tar.gz", - "sha256": "1yr9j4ldpi2p2zgdq4mky6y5yh7nilasdmskapbdxp9fxwba2r0x", - "msg": "Update from Hackage at 2021-05-10T22:01:59Z" + "commit": "2295bd36e0d36af6e862dfdb7b0694fba2e7cb58", + "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/2295bd36e0d36af6e862dfdb7b0694fba2e7cb58.tar.gz", + "sha256": "1bzqy6kbw0i1ryg3ia5spg6m62zkc46xhhn0h76pfq7mfmm3fqf8", + "msg": "Update from Hackage at 2021-05-12T11:46:04Z" } diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix index 9c71c787112..2722c4fe20c 100644 --- a/pkgs/data/themes/adwaita-qt/default.nix +++ b/pkgs/data/themes/adwaita-qt/default.nix @@ -1,14 +1,24 @@ -{ mkDerivation, lib, fetchFromGitHub, nix-update-script, cmake, ninja, qtbase, pantheon }: +{ mkDerivation +, stdenv +, lib +, fetchFromGitHub +, nix-update-script +, cmake +, ninja +, qtbase +, qt5 +, xorg +}: mkDerivation rec { pname = "adwaita-qt"; - version = "1.1.4"; + version = "1.3.0"; src = fetchFromGitHub { owner = "FedoraQt"; repo = pname; rev = version; - sha256 = "19s97wm96g3828dp8m85j3lsn1n6h5h2zqk4652hcqcgq6xb6gv5"; + sha256 = "1fkivdiz4al84nhgg1srj33l109j9si63biw3asy339cyyzj28c9"; }; nativeBuildInputs = [ @@ -18,11 +28,14 @@ mkDerivation rec { buildInputs = [ qtbase + qt5.qtx11extras + ] ++ lib.optionals stdenv.isLinux [ + xorg.libxcb ]; postPatch = '' # Fix plugin dir - substituteInPlace style/CMakeLists.txt \ + substituteInPlace src/style/CMakeLists.txt \ --replace "DESTINATION \"\''${QT_PLUGINS_DIR}/styles" "DESTINATION \"$qtPluginPrefix/styles" ''; @@ -37,6 +50,6 @@ mkDerivation rec { homepage = "https://github.com/FedoraQt/adwaita-qt"; license = licenses.gpl2Plus; maintainers = teams.gnome.members ++ (with maintainers; [ ]); - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix b/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix index 302b21f2aef..9ba9ddaf09b 100755 --- a/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix +++ b/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix @@ -2,21 +2,19 @@ stdenv.mkDerivation rec { pname = "gnome-shell-extension-fuzzy-app-search"; - version = "4"; + version = "4.0.1"; src = fetchFromGitLab { owner = "Czarlie"; repo = "gnome-fuzzy-app-search"; - rev = "da9c15d39958d9c3b38df3b616fd40b85aed24e5"; - sha256 = "1r3qha530s97x818znn1wi76f4x9bhlgi7jlxfwjnrwys62cv5fn"; + rev = "v${version}"; + sha256 = "127n3jc5d6cl0yrpjf8acdj76br97knks1wx4f6jcswkx9x47w0a"; }; uuid = "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com"; nativeBuildInputs = [ glib ]; - patches = [ ./fix-desktop-file-paths.patch ]; - makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ]; meta = with lib; { diff --git a/pkgs/desktops/gnome/extensions/fuzzy-app-search/fix-desktop-file-paths.patch b/pkgs/desktops/gnome/extensions/fuzzy-app-search/fix-desktop-file-paths.patch deleted file mode 100755 index 1795f998c9b..00000000000 --- a/pkgs/desktops/gnome/extensions/fuzzy-app-search/fix-desktop-file-paths.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/applicationsUtils.js b/applicationsUtils.js -index 728223b..aa9f291 100644 ---- a/applicationsUtils.js -+++ b/applicationsUtils.js -@@ -44,27 +44,24 @@ var Search = new Lang.Class({ - * @return {Void} - */ - _init: function () { -- let dir = [ -- "/usr/share/applications", -- GLib.get_home_dir() + "/.local/share/applications", -- ]; -- -- // listen object - file/monitor list -- this._listen = dir.map((path) => { -- let file = Gio.File.new_for_path(path); -- let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null); -- -- // refresh on each directory change -- monitor.connect( -- "changed", -- Lang.bind(this, this._handleMonitorChanged) -- ); -- -- return { -- file: file, -- monitor: monitor, -- }; -- }); -+ this._listen = [...new Set(GLib.get_system_data_dirs())] -+ .filter((path) => path.endsWith("/share")) -+ .map((path) => Gio.File.new_for_path(path + "/applications")) -+ .filter((file) => file.query_exists(null)) -+ .map((file) => { -+ let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null); -+ -+ // refresh on each directory change -+ monitor.connect( -+ "changed", -+ Lang.bind(this, this._handleMonitorChanged) -+ ); -+ -+ return { -+ file: file, -+ monitor: monitor, -+ }; -+ }); - this._interval = null; - this._data = {}; - \ No newline at end of file diff --git a/pkgs/development/arduino/platformio/core.nix b/pkgs/development/arduino/platformio/core.nix index 4f6f762bd74..ee8bbeabbfe 100644 --- a/pkgs/development/arduino/platformio/core.nix +++ b/pkgs/development/arduino/platformio/core.nix @@ -135,6 +135,9 @@ in buildPythonApplication rec { postPatch = '' substitute platformio/package/manifest/schema.py platformio/package/manifest/schema.py \ --subst-var-by SPDX_LICENSE_LIST_DATA '${spdx-license-list-data}' + + substituteInPlace setup.py \ + --replace "zeroconf==0.28.*" "zeroconf" ''; meta = with lib; { diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index 74e03550255..a0ca13270a2 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -10,7 +10,9 @@ , # GHC can be built with system libffi or a bundled one. libffi ? null -, enableDwarf ? !stdenv.targetPlatform.isDarwin && + # Libdw.c only supports x86_64, i686 and s390x +, enableDwarf ? stdenv.targetPlatform.isx86 && + !stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isWindows , elfutils # for DWARF support @@ -259,6 +261,8 @@ stdenv.mkDerivation (rec { description = "The Glasgow Haskell Compiler"; maintainers = with lib.maintainers; [ marcweber andres peti ]; inherit (ghc.meta) license platforms; + # ghcHEAD times out on aarch64-linux on Hydra. + hydraPlatforms = builtins.filter (p: p != "aarch64-linux") ghc.meta.platforms; }; dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm); diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix index af4893afe54..57e71f0e00e 100644 --- a/pkgs/development/haskell-modules/configuration-arm.nix +++ b/pkgs/development/haskell-modules/configuration-arm.nix @@ -62,6 +62,30 @@ self: super: { hsemail-ns = dontCheck super.hsemail-ns; openapi3 = dontCheck super.openapi3; strict-writer = dontCheck super.strict-writer; + xml-html-qq = dontCheck super.xml-html-qq; + static = dontCheck super.static; + hhp = dontCheck super.hhp; + groupBy = dontCheck super.groupBy; + greskell = dontCheck super.greskell; + html-validator-cli = dontCheck super.html-validator-cli; + hw-fingertree-strict = dontCheck super.hw-fingertree-strict; + hw-prim = dontCheck super.hw-prim; + hw-packed-vector = dontCheck super.hw-packed-vector; + hw-xml = dontCheck super.hw-xml; + lens-regex = dontCheck super.lens-regex; + meep = dontCheck super.meep; + ranged-list = dontCheck super.ranged-list; + rank2classes = dontCheck super.rank2classes; + schedule = dontCheck super.schedule; + twiml = dontCheck super.twiml; + twitter-conduit = dontCheck super.twitter-conduit; + validationt = dontCheck super.validationt; + vgrep = dontCheck super.vgrep; + vulkan-utils = dontCheck super.vulkan-utils; + yaml-combinators = dontCheck super.yaml-combinators; + yesod-paginator = dontCheck super.yesod-paginator; + grammatical-parsers = dontCheck super.grammatical-parsers; + construct = dontCheck super.construct; # https://github.com/ekmett/half/issues/35 half = dontCheck super.half; diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 473c2a45bfc..693a5b61fbc 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -170,18 +170,39 @@ self: super: { # base bound digit = doJailbreak super.digit; - # 2020-06-05: HACK: does not pass own build suite - `dontCheck` hnix = generateOptparseApplicativeCompletion "hnix" (overrideCabal super.hnix (drv: { + # 2020-06-05: HACK: does not pass own build suite - `dontCheck` doCheck = false; - prePatch = '' - # fix encoding problems when patching - ${pkgs.dos2unix}/bin/dos2unix hnix.cabal - '' + (drv.prePatch or ""); + # 2021-05-12: Revert a few dependency cleanups which depend on release + # that are not in stackage yet: + # * Depend on semialign-indexed for Data.Semialign.Indexed + # (remove when semialign >= 1.2 in stackage) + # * Readd dependencies to text and unordered-containers. + # (remove when relude >= 1.0.0.0 is in stackage, see + # https://github.com/haskell-nix/hnix/issues/933) + libraryHaskellDepends = [ + self.semialign-indexed + ] ++ drv.libraryHaskellDepends; patches = [ - # support ref-tf in hnix 0.12.0.1, can be removed after - # https://github.com/haskell-nix/hnix/pull/918 - ./patches/hnix-ref-tf-0.5-support.patch + # depend on semialign-indexed again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/16fc342a4f2974f855968472252cd9274609f177.patch"; + sha256 = "0gm4gy3jpn4dqnrhnqlsavfpw9c1j1xa8002v54knnlw6vpk9niy"; + revert = true; + }) + # depend on text again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/73057618576e86bb87dfd42f62b855d24bbdf469.patch"; + sha256 = "03cyk96d5ad362i1pnz9bs8ifr84kpv8phnr628gys4j6a0bqwzc"; + revert = true; + }) + # depend on unordered-containers again + (pkgs.fetchpatch { + url = "https://github.com/haskell-nix/hnix/commit/70643481883ed448b51221a030a76026fb5eb731.patch"; + sha256 = "0pqmijfkysjixg3gb4kmrqdif7s2saz8qi6k337jf15i0npzln8d"; + revert = true; + }) ] ++ (drv.patches or []); })); @@ -922,7 +943,16 @@ self: super: { # https://github.com/commercialhaskell/stackage/issues/5795 # This issue can be mitigated with 'dontCheck' which skips the tests and their compilation. dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] (dontCheck super.dhall-json); - dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" super.dhall-nix; + # dhall-nix, dhall-nixpkgs: pull updated cabal files with updated bounds. + # Remove at next hackage update. + dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" (overrideCabal super.dhall-nix { + revision = "2"; + editedCabalFile = "1w90jrkzmbv5nasafkkv0kyfmnqkngldx2lr891113h2mqbbr3wx"; + }); + dhall-nixpkgs = overrideCabal super.dhall-nixpkgs { + revision = "1"; + editedCabalFile = "1y08jxg51sbxx0i7ra45ii2v81plzf4hssmwlrw35l8n5gib1vcg"; + }; dhall-yaml = generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml; # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558 @@ -1378,6 +1408,15 @@ self: super: { # 2021-04-09: test failure # PR pending https://github.com/expipiplus1/update-nix-fetchgit/pull/60 doCheck = false; + + patches = [ + # 2021-05-17 compile with hnix >= 0.13 + # https://github.com/expipiplus1/update-nix-fetchgit/pull/64 + (pkgs.fetchpatch { + url = "https://github.com/expipiplus1/update-nix-fetchgit/commit/bc28c8b26c38093aa950574802012c0cd8447ce8.patch"; + sha256 = "1dwd1jdsrx3ss6ql1bk2ch7ln74mkq6jy9ms8vi8kmf3gbg8l9fg"; + }) + ] ++ (drv.patches or []); })); # Our quickcheck-instances is too old for the newer binary-instances, but @@ -1897,4 +1936,8 @@ EOT network = self.network-bsd; }) "-f-_old_network"; + # 2021-05-14: Testsuite is failing. + # https://github.com/kcsongor/generic-lens/issues/133 + generic-optics = dontCheck super.generic-optics; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index 5419e3f16e3..0aade87acbf 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -1510,7 +1510,6 @@ broken-packages: - generic-lens-labels - generic-lucid-scaffold - generic-maybe - - generic-optics - generic-override-aeson - generic-pretty - genericserialize @@ -1676,6 +1675,7 @@ broken-packages: - grasp - gray-code - greencard + - greenclip - greg-client - gremlin-haskell - Grempa @@ -3037,6 +3037,7 @@ broken-packages: - multext-east-msd - multiaddr - multiarg + - multi-except - multihash - multi-instance - multilinear @@ -5155,6 +5156,7 @@ broken-packages: - yampa-glut - yampa-sdl2 - YampaSynth + - yampa-test - yam-servant - yandex-translate - yaop diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 1fb67026d11..e4760fa54a2 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -85,6 +85,8 @@ default-package-overrides: - ghcide == 1.2.* - hls-plugin-api == 1.1.0.0 - hls-explicit-imports-plugin < 1.0.0.2 + # 2021-05-12: remove once versions >= 5.0.0 is in stackage + - futhark < 0.19.5 extra-packages: - base16-bytestring < 1 # required for cabal-install etc. @@ -115,6 +117,97 @@ extra-packages: - ShellCheck == 0.7.1 # 2021-05-09: haskell-ci 0.12.1 pins this version package-maintainers: + abbradar: + - Agda + bdesham: + - pinboard-notes-backup + cdepillabout: + - password + - password-instances + - pretty-simple + - spago + - termonad + Gabriel439: + - annah + - bench + - break + - dhall-bash + - dhall-docs + - dhall-json + - dhall-lsp-server + - dhall-nix + - dhall-nixpkgs + - dhall-openapi + - dhall-text + - dhall-yaml + - dhall + - dirstream + - errors + - foldl + - index-core + - lens-tutorial + - list-transformer + - managed + - mmorph + - morte + - mvc-updates + - mvc + - nix-derivation + - nix-diff + - optional-args + - optparse-generic + - pipes-bytestring + - pipes-concurrency + - pipes-csv + - pipes-extras + - pipes-group + - pipes-http + - pipes-parse + - pipes-safe + - pipes + - server-generic + - total + - turtle + - typed-spreadsheet + gridaphobe: + - located-base + jb55: + # - bson-lens + - cased + - elm-export-persistent + # - pipes-mongodb + - streaming-wai + kiwi: + - config-schema + - config-value + - glirc + - irc-core + - matterhorn + - mattermost-api + - mattermost-api-qc + - Unique + maralorn: + - arbtt + - cabal-fmt + - generic-optics + - ghcup + - haskell-language-server + - hedgehog + - hmatrix + - iCalendar + - neuron + - optics + - reflex-dom + - releaser + - req + - shake-bench + - shh + - snap + - stm-containers + - streamly + - taskwarrior + pacien: + - ldgallery-compiler peti: - cabal-install - cabal2nix @@ -140,31 +233,14 @@ package-maintainers: - titlecase - xmonad - xmonad-contrib - gridaphobe: - - located-base - jb55: - # - bson-lens - - cased - - elm-export-persistent - # - pipes-mongodb - - streaming-wai - kiwi: - - config-schema - - config-value - - glirc - - irc-core - - matterhorn - - mattermost-api - - mattermost-api-qc - - Unique + poscat: + - hinit psibi: - path-pieces - persistent - persistent-sqlite - persistent-template - shakespeare - abbradar: - - Agda roberth: - arion-compose - hercules-ci-agent @@ -174,22 +250,10 @@ package-maintainers: - hercules-ci-cli - hercules-ci-cnix-expr - hercules-ci-cnix-store - cdepillabout: - - pretty-simple - - spago - terlar: - - nix-diff - maralorn: - - reflex-dom - - cabal-fmt - - shh - - neuron - - releaser - - taskwarrior - - haskell-language-server - - shake-bench - - iCalendar - - stm-containers + rvl: + - taffybar + - arbtt + - lentil sorki: - cayenne-lpp - data-stm32 @@ -200,20 +264,6 @@ package-maintainers: - ttn-client - update-nix-fetchgit - zre - utdemir: - - nix-tree - turion: - - rhine - - rhine-gloss - - essence-of-live-coding - - essence-of-live-coding-gloss - - essence-of-live-coding-pulse - - essence-of-live-coding-quickcheck - - Agda - - dunai - - finite-typelits - - pulse-simple - - simple-affine-space sternenseemann: # also maintain upstream package - spacecookie @@ -229,14 +279,22 @@ package-maintainers: - yarn-lock - yarn2nix - large-hashable - poscat: - - hinit - bdesham: - - pinboard-notes-backup - rvl: - - taffybar - - arbtt - - lentil + terlar: + - nix-diff + turion: + - rhine + - rhine-gloss + - essence-of-live-coding + - essence-of-live-coding-gloss + - essence-of-live-coding-pulse + - essence-of-live-coding-quickcheck + - Agda + - dunai + - finite-typelits + - pulse-simple + - simple-affine-space + utdemir: + - nix-tree unsupported-platforms: Allure: [ x86_64-darwin ] @@ -248,6 +306,7 @@ unsupported-platforms: bdcs-api: [ x86_64-darwin ] bindings-directfb: [ x86_64-darwin ] bindings-sane: [ x86_64-darwin ] + charsetdetect: [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3 cut-the-crap: [ x86_64-darwin ] d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] @@ -255,11 +314,12 @@ unsupported-platforms: dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Euterpea: [ x86_64-darwin ] + follow-file: [ x86_64-darwin ] freenect: [ x86_64-darwin ] FTGL: [ x86_64-darwin ] ghcjs-dom-hello: [ x86_64-darwin ] - gi-dbusmenu: [ x86_64-darwin ] gi-dbusmenugtk3: [ x86_64-darwin ] + gi-dbusmenu: [ x86_64-darwin ] gi-ggit: [ x86_64-darwin ] gi-ibus: [ x86_64-darwin ] gi-ostree: [ x86_64-darwin ] @@ -271,7 +331,9 @@ unsupported-platforms: hcwiid: [ x86_64-darwin ] HFuse: [ x86_64-darwin ] hidapi: [ x86_64-darwin ] + hinotify-bytestring: [ x86_64-darwin ] hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] + honk: [ x86_64-darwin ] hpapi: [ x86_64-darwin ] HSoM: [ x86_64-darwin ] iwlib: [ x86_64-darwin ] @@ -283,16 +345,26 @@ unsupported-platforms: libtelnet: [ x86_64-darwin ] libzfs: [ x86_64-darwin ] linearEqSolver: [ aarch64-linux ] + linux-evdev: [ x86_64-darwin ] + linux-file-extents: [ x86_64-darwin ] + linux-inotify: [ x86_64-darwin ] + linux-mount: [ x86_64-darwin ] + linux-namespaces: [ x86_64-darwin ] lio-fs: [ x86_64-darwin ] logging-facade-journald: [ x86_64-darwin ] midi-alsa: [ x86_64-darwin ] + mpi-hs: [ aarch64-linux, x86_64-darwin ] mpi-hs-binary: [ aarch64-linux, x86_64-darwin ] mpi-hs-cereal: [ aarch64-linux, x86_64-darwin ] mpi-hs-store: [ aarch64-linux, x86_64-darwin ] - mpi-hs: [ aarch64-linux, x86_64-darwin ] mplayer-spot: [ aarch64-linux ] + netlink: [ x86_64-darwin ] oculus: [ x86_64-darwin ] pam: [ x86_64-darwin ] + parport: [ x86_64-darwin ] + password: [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86 + password-instances: [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86 + persist-state: [ aarch64-linux, armv7l-linux ] # https://github.com/minad/persist-state/blob/6fd68c0b8b93dec78218f6d5a1f4fa06ced4e896/src/Data/PersistState.hs#L122-L128 piyo: [ x86_64-darwin ] PortMidi-simple: [ x86_64-darwin ] PortMidi: [ x86_64-darwin ] @@ -305,6 +377,8 @@ unsupported-platforms: rtlsdr: [ x86_64-darwin ] rubberband: [ x86_64-darwin ] sbv: [ aarch64-linux ] + scat: [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86 + scrypt: [ aarch64-linux, armv7l-linux ] # https://github.com/informatikr/scrypt/issues/8 sdl2-mixer: [ x86_64-darwin ] sdl2-ttf: [ x86_64-darwin ] synthesizer-alsa: [ x86_64-darwin ] @@ -312,22 +386,23 @@ unsupported-platforms: termonad: [ x86_64-darwin ] tokyotyrant-haskell: [ x86_64-darwin ] udev: [ x86_64-darwin ] + Unixutils-shadow: [ x86_64-darwin ] verifiable-expressions: [ aarch64-linux ] vrpn: [ x86_64-darwin ] - vulkan-utils: [ x86_64-darwin ] vulkan: [ i686-linux, armv7l-linux, x86_64-darwin ] VulkanMemoryAllocator: [ i686-linux, armv7l-linux, x86_64-darwin ] + vulkan-utils: [ x86_64-darwin ] webkit2gtk3-javascriptcore: [ x86_64-darwin ] Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] + Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] - Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] - Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] + Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] xattr: [ x86_64-darwin ] xgboost-haskell: [ aarch64-linux, armv7l-linux ] XInput: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index e37785a6795..8acd56668d3 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -942,7 +942,6 @@ dont-distribute-packages: - ghcjs-hplay - ghc-mod - ghc-tags-plugin - - ghcup - ghc-vis - ght - gi-cairo-again @@ -3276,6 +3275,7 @@ dont-distribute-packages: - yu-launch - yuuko - zasni-gerna + - Z-Botan - zephyr - zerobin - zeromq3-conduit diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index c5d8b418b51..52f9e94401f 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -485,7 +485,7 @@ self: super: builtins.intersectAttrs super { # Compile manpages (which are in RST and are compiled with Sphinx). futhark = with pkgs; - overrideCabal (addBuildTools super.futhark [makeWrapper python37Packages.sphinx]) + overrideCabal (addBuildTools super.futhark [makeWrapper python3Packages.sphinx]) (_drv: { postBuild = (_drv.postBuild or "") + '' make -C docs man @@ -616,7 +616,7 @@ self: super: builtins.intersectAttrs super { primitive_0_7_1_0 = dontCheck super.primitive_0_7_1_0; cut-the-crap = - let path = pkgs.lib.makeBinPath [ pkgs.ffmpeg_3 pkgs.youtube-dl ]; + let path = pkgs.lib.makeBinPath [ pkgs.ffmpeg pkgs.youtube-dl ]; in overrideCabal (addBuildTool super.cut-the-crap pkgs.makeWrapper) (_drv: { postInstall = '' wrapProgram $out/bin/cut-the-crap \ @@ -747,6 +747,21 @@ self: super: builtins.intersectAttrs super { platforms = pkgs.lib.platforms.x86; }; + # uses x86 intrinsics + blake3 = overrideCabal super.blake3 { + platforms = pkgs.lib.platforms.x86; + }; + + # uses x86 intrinsics, see also https://github.com/NixOS/nixpkgs/issues/122014 + crc32c = overrideCabal super.crc32c { + platforms = pkgs.lib.platforms.x86; + }; + + # uses x86 intrinsics + seqalign = overrideCabal super.seqalign { + platforms = pkgs.lib.platforms.x86; + }; + hls-brittany-plugin = overrideCabal super.hls-brittany-plugin (drv: { testToolDepends = [ pkgs.git ]; preCheck = '' @@ -772,4 +787,20 @@ self: super: builtins.intersectAttrs super { export HOME=$TMPDIR/home ''; }); + + taglib = overrideCabal super.taglib (drv: { + librarySystemDepends = [ + pkgs.zlib + ] ++ (drv.librarySystemDepends or []); + }); + + # uses x86 assembler + inline-asm = overrideCabal super.inline-asm { + platforms = pkgs.lib.platforms.x86; + }; + + # uses x86 assembler in C bits + hw-prim-bits = overrideCabal super.hw-prim-bits { + platforms = pkgs.lib.platforms.x86; + }; } diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index edf0d51783e..c04898da528 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -20313,6 +20313,9 @@ self: { libraryHaskellDepends = [ base unix ]; description = "A simple interface to shadow passwords (aka, shadow.h)"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "Updater" = callPackage @@ -21749,6 +21752,29 @@ self: { hydraPlatforms = lib.platforms.none; }) {inherit (pkgs) readline;}; + "Z-Botan" = callPackage + ({ mkDerivation, base, Cabal, directory, filepath, ghc-prim, hspec + , hspec-discover, HUnit, integer-gmp, QuickCheck + , quickcheck-instances, scientific, stm, time, Z-Data, Z-IO + }: + mkDerivation { + pname = "Z-Botan"; + version = "0.2.0.0"; + sha256 = "0xxi19gfzglp93jxxq7sq9z1ijxa5jys917a156gd4hrcqqhwi63"; + enableSeparateDataOutput = true; + setupHaskellDepends = [ base Cabal directory filepath ]; + libraryHaskellDepends = [ + base ghc-prim integer-gmp scientific stm time Z-Data Z-IO + ]; + libraryToolDepends = [ hspec-discover ]; + testHaskellDepends = [ + base hspec HUnit QuickCheck quickcheck-instances Z-Data Z-IO + ]; + description = "Crypto for Haskell"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "Z-Data" = callPackage ({ mkDerivation, base, bytestring, Cabal, case-insensitive , containers, deepseq, ghc-prim, hashable, hspec, hspec-discover @@ -29519,6 +29545,27 @@ self: { license = lib.licenses.gpl3Only; }) {}; + "amqp-utils_0_6_1_1" = callPackage + ({ mkDerivation, amqp, base, bytestring, connection, containers + , data-default-class, directory, hinotify, magic, network, process + , text, time, tls, unix, utf8-string, x509-system + }: + mkDerivation { + pname = "amqp-utils"; + version = "0.6.1.1"; + sha256 = "1lffc76ybvk73k57qn5m6788m2nkfsqavs7mfs1kaqw38pya940c"; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + amqp base bytestring connection containers data-default-class + directory hinotify magic network process text time tls unix + utf8-string x509-system + ]; + description = "AMQP toolset for the command line"; + license = lib.licenses.gpl3Only; + hydraPlatforms = lib.platforms.none; + }) {}; + "amqp-worker" = callPackage ({ mkDerivation, aeson, amqp, base, bytestring, data-default , exceptions, monad-control, monad-loops, mtl, resource-pool @@ -29990,6 +30037,7 @@ self: { description = "Medium-level language that desugars to Morte"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "annihilator" = callPackage @@ -32045,7 +32093,7 @@ self: { ]; description = "Automatic Rule-Based Time Tracker"; license = lib.licenses.gpl2Only; - maintainers = with lib.maintainers; [ rvl ]; + maintainers = with lib.maintainers; [ maralorn rvl ]; }) {}; "arcgrid" = callPackage @@ -39310,6 +39358,7 @@ self: { ]; description = "Command-line benchmark tool"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "bench-graph" = callPackage @@ -41955,21 +42004,24 @@ self: { }) {}; "bisc" = callPackage - ({ mkDerivation, base, configurator, directory, filepath, mtl - , selda, selda-sqlite, text + ({ mkDerivation, base, bytestring, configurator, data-default + , directory, exceptions, filepath, leveldb-haskell, mtl, selda + , selda-sqlite, snappy, text }: mkDerivation { pname = "bisc"; - version = "0.2.3.0"; - sha256 = "0x03smkfx0qnsxznlp1591gi938f15w057hywfp9497mhvkr7mxg"; + version = "0.3.0.0"; + sha256 = "097b25pp6pi7rq4xhk19g1i5v7v9hyx7ldyq0y3aj1cm50s2356m"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - base configurator directory filepath mtl selda selda-sqlite text + base bytestring configurator data-default directory exceptions + filepath leveldb-haskell mtl selda selda-sqlite text ]; - description = "A small tool that clears qutebrowser cookies"; + executableSystemDepends = [ snappy ]; + description = "A small tool that clears cookies (and more)"; license = lib.licenses.gpl3Only; - }) {}; + }) {inherit (pkgs) snappy;}; "bisect-binary" = callPackage ({ mkDerivation, base, bytestring, directory, filepath, hashable @@ -45238,6 +45290,7 @@ self: { libraryHaskellDepends = [ base mtl transformers ]; description = "Break from a loop"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "breakout" = callPackage @@ -52920,6 +52973,9 @@ self: { libraryHaskellDepends = [ base bytestring ]; description = "Character set detection using Mozilla's Universal Character Set Detector"; license = "LGPL"; + platforms = [ + "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux" + ]; }) {}; "charsetdetect-ae" = callPackage @@ -57399,8 +57455,8 @@ self: { }: mkDerivation { pname = "code-conjure"; - version = "0.2.2"; - sha256 = "1rf9d6mwg965r4bnjxbcw2dzcf4fxqn9hnysxzyqxnyhrr8q4149"; + version = "0.2.4"; + sha256 = "1xb8c791zcbfywz4pcqx5n5iq6a2fh0fl2mzwl6cxapj2y700dbp"; libraryHaskellDepends = [ base express leancheck speculate template-haskell ]; @@ -58047,6 +58103,18 @@ self: { license = lib.licenses.bsd3; }) {}; + "collect-errors_0_1_3_0" = callPackage + ({ mkDerivation, base, containers, deepseq, QuickCheck }: + mkDerivation { + pname = "collect-errors"; + version = "0.1.3.0"; + sha256 = "03gzaqlgivlzlsqrzr8g1ijvi825p9kxzihhrrd06vib34bqswv8"; + libraryHaskellDepends = [ base containers deepseq QuickCheck ]; + description = "Error monad with a Float instance"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "collection-json" = callPackage ({ mkDerivation, aeson, base, bytestring, hspec, hspec-discover , network-arbitrary, network-uri, network-uri-json, QuickCheck @@ -66458,8 +66526,8 @@ self: { }: mkDerivation { pname = "css-easings"; - version = "0.2.0.0"; - sha256 = "0i969cp4j154ddq7x2821p53qh8dnsr7f74rsdi4y9rbbls1fnpv"; + version = "0.2.1.0"; + sha256 = "0mn3h7fqp4bs7rqjzc05k29man8i77dg1avcajdyysf84azklyrw"; libraryHaskellDepends = [ aeson base blaze-markup data-default QuickCheck scientific shakespeare text @@ -66478,8 +66546,8 @@ self: { }: mkDerivation { pname = "css-selectors"; - version = "0.4.0.1"; - sha256 = "0wj16835xcr33kqpwlrqgsain0dv6dl9cxcxncxhp0c0z5bl4ysd"; + version = "0.4.0.2"; + sha256 = "1299xqp1ssxarz2i9wgzcyj4zmjry6cq02jb2a9n0vw61gw6z5g4"; libraryHaskellDepends = [ aeson array base binary blaze-markup bytestring data-default Decimal hashable QuickCheck shakespeare template-haskell text zlib @@ -73263,6 +73331,7 @@ self: { description = "A configuration language guaranteed to terminate"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall" = callPackage @@ -73286,6 +73355,8 @@ self: { pname = "dhall"; version = "1.38.1"; sha256 = "0g70x2crdrkwf41gvwr718am25dmbn9bg4cml9f9va7i1vx5rsgk"; + revision = "1"; + editedCabalFile = "1830jbh5q7g7r4i5n1vhs1h8fj8zzig3l6qr9kbkk00dhhgywv8b"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -73317,6 +73388,7 @@ self: { doCheck = false; description = "A configuration language guaranteed to terminate"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-bash" = callPackage @@ -73340,6 +73412,7 @@ self: { ]; description = "Compile Dhall to Bash"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-check" = callPackage @@ -73372,6 +73445,8 @@ self: { pname = "dhall-docs"; version = "1.0.5"; sha256 = "00s1vhwilnr6hvv56w98kc1md08lw6v80v8a7yhwrmg9qggwdc12"; + revision = "1"; + editedCabalFile = "0y8a02jxz5cap0q4b2106ck4av7haxqlv5vjhm0nmrsq10cl4nss"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -73388,6 +73463,7 @@ self: { description = "Generate HTML docs from a dhall package"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-fly" = callPackage @@ -73451,6 +73527,7 @@ self: { ]; description = "Convert between Dhall and JSON or YAML"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-lex" = callPackage @@ -73499,6 +73576,7 @@ self: { ]; description = "Language Server Protocol (LSP) server for Dhall"; license = lib.licenses.mit; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-nix" = callPackage @@ -73522,6 +73600,7 @@ self: { ]; description = "Dhall to Nix compiler"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-nixpkgs" = callPackage @@ -73543,6 +73622,7 @@ self: { ]; description = "Convert Dhall projects to Nix packages"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-openapi" = callPackage @@ -73567,6 +73647,7 @@ self: { ]; description = "Convert an OpenAPI specification to a Dhall package"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhall-recursive-adt" = callPackage @@ -73605,6 +73686,7 @@ self: { description = "Template text using Dhall"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -73664,6 +73746,7 @@ self: { ]; description = "Convert between Dhall and YAML"; license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dhcp-lease-parser" = callPackage @@ -75649,6 +75732,7 @@ self: { ]; description = "Easily stream directory contents in constant memory"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "dirtree" = callPackage @@ -79489,8 +79573,8 @@ self: { }: mkDerivation { pname = "dual-tree"; - version = "0.2.2.1"; - sha256 = "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx"; + version = "0.2.3.0"; + sha256 = "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg"; libraryHaskellDepends = [ base monoid-extras newtype-generics semigroups ]; @@ -84534,6 +84618,7 @@ self: { ]; description = "Simplified error-handling"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "errors-ext" = callPackage @@ -93100,6 +93185,7 @@ self: { benchmarkHaskellDepends = [ base criterion ]; description = "Composable, streaming, and efficient left folds"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "foldl-exceptions" = callPackage @@ -93320,6 +93406,9 @@ self: { ]; description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files."; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "follower" = callPackage @@ -96755,6 +96844,46 @@ self: { license = lib.licenses.isc; }) {}; + "futhark_0_19_5" = callPackage + ({ mkDerivation, aeson, alex, ansi-terminal, array, base, binary + , blaze-html, bmp, bytestring, bytestring-to-vector, cmark-gfm + , containers, directory, directory-tree, dlist, file-embed + , filepath, free, gitrev, happy, hashable, haskeline + , language-c-quote, mainland-pretty, megaparsec, mtl + , neat-interpolation, parallel, parser-combinators, pcg-random + , process, process-extras, QuickCheck, regex-tdfa, srcloc, tasty + , tasty-hunit, tasty-quickcheck, template-haskell, temporary + , terminal-size, text, time, transformers, unordered-containers + , utf8-string, vector, vector-binary-instances, versions + , zip-archive, zlib + }: + mkDerivation { + pname = "futhark"; + version = "0.19.5"; + sha256 = "1x922g3iq50an8jv75370qr0qslmxnrrqbwr7adca30ljaa7nfvh"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson ansi-terminal array base binary blaze-html bmp bytestring + bytestring-to-vector cmark-gfm containers directory directory-tree + dlist file-embed filepath free gitrev hashable haskeline + language-c-quote mainland-pretty megaparsec mtl neat-interpolation + parallel pcg-random process process-extras regex-tdfa srcloc + template-haskell temporary terminal-size text time transformers + unordered-containers utf8-string vector vector-binary-instances + versions zip-archive zlib + ]; + libraryToolDepends = [ alex happy ]; + executableHaskellDepends = [ base text ]; + testHaskellDepends = [ + base containers megaparsec mtl parser-combinators QuickCheck tasty + tasty-hunit tasty-quickcheck text + ]; + description = "An optimising compiler for a functional, array-oriented language"; + license = lib.licenses.isc; + hydraPlatforms = lib.platforms.none; + }) {}; + "futhask" = callPackage ({ mkDerivation, base, directory, raw-strings-qq, split }: mkDerivation { @@ -98605,8 +98734,7 @@ self: { ]; description = "Generically derive traversals, lenses and prisms"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "generic-optics-lite" = callPackage @@ -101636,6 +101764,8 @@ self: { pname = "ghcide"; version = "1.2.0.2"; sha256 = "0r3n23i4b51bb92q6pch9knj079a26jbz0q70qfpv66154d00wld"; + revision = "1"; + editedCabalFile = "1hv74yx0x6hh506kwg7ygkajkcczfn3l00f8rc4jnr3hkhkm5v85"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -102050,7 +102180,7 @@ self: { }) {}; "ghcup" = callPackage - ({ mkDerivation, aeson, aeson-pretty, ascii-string, async, base + ({ mkDerivation, aeson, aeson-pretty, async, base , base16-bytestring, binary, bytestring, bz2, case-insensitive , casing, concurrent-output, containers, cryptohash-sha256 , generic-arbitrary, generics-sop, haskus-utils-types @@ -102067,15 +102197,13 @@ self: { }: mkDerivation { pname = "ghcup"; - version = "0.1.14.1"; - sha256 = "1lx6ahn4mvjzs3x4qm32sdn1n8w4v7jqj2jslvan008zk664d5l2"; - revision = "1"; - editedCabalFile = "0a9c2ha61mlz9ci652djy4vmmzi4s1g8rwl1a2miymrw5b36zsmq"; + version = "0.1.14.2"; + sha256 = "1k18ira2i2ja4hd65fdxk3ab21xzh4fvd982q2rfjshzkds1a3hv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - aeson ascii-string async base base16-bytestring binary bytestring - bz2 case-insensitive casing concurrent-output containers + aeson async base base16-bytestring binary bytestring bz2 + case-insensitive casing concurrent-output containers cryptohash-sha256 generics-sop haskus-utils-types haskus-utils-variant hpath hpath-directory hpath-filepath hpath-io hpath-posix libarchive lzma-static megaparsec monad-logger mtl @@ -102100,7 +102228,7 @@ self: { ]; description = "ghc toolchain installer"; license = lib.licenses.lgpl3Only; - hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "ghczdecode" = callPackage @@ -110624,24 +110752,29 @@ self: { "greenclip" = callPackage ({ mkDerivation, base, binary, bytestring, directory, exceptions - , hashable, libXau, microlens, microlens-mtl, protolude, text, unix - , vector, wordexp, X11, xcb, xdmcp, xlibsWrapper + , hashable, libXau, microlens, microlens-mtl, protolude, text + , tomland, unix, vector, wordexp, X11, xcb, xdmcp, xlibsWrapper + , xscrnsaver }: mkDerivation { pname = "greenclip"; - version = "3.4.0"; - sha256 = "0763nnh7k4blkamlswnapwxyqfn1l0g6ibpz7k1w2w2asj7a3q98"; + version = "4.1.0"; + sha256 = "1z52ffb3f0iflls3bjlwzpz4w3a904vj67c1zsdyql6j2xpln6n4"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ base binary bytestring directory exceptions hashable microlens - microlens-mtl protolude text unix vector wordexp X11 + microlens-mtl protolude text tomland unix vector wordexp X11 + ]; + executablePkgconfigDepends = [ + libXau xcb xdmcp xlibsWrapper xscrnsaver ]; - executablePkgconfigDepends = [ libXau xcb xdmcp xlibsWrapper ]; description = "Simple clipboard manager to be integrated with rofi"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {inherit (pkgs.xorg) libXau; xcb = null; xdmcp = null; - inherit (pkgs) xlibsWrapper;}; + inherit (pkgs) xlibsWrapper; xscrnsaver = null;}; "greg-client" = callPackage ({ mkDerivation, base, binary, bytestring, clock, hostname, network @@ -113417,6 +113550,26 @@ self: { maintainers = with lib.maintainers; [ peti ]; }) {}; + "hackage-db_2_1_1" = callPackage + ({ mkDerivation, aeson, base, bytestring, Cabal, containers + , directory, exceptions, filepath, tar, time, utf8-string + }: + mkDerivation { + pname = "hackage-db"; + version = "2.1.1"; + sha256 = "16y1iqb3y019hjdsq7q3zx51qy834ky3mw5vszqmzzhflqpicd31"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson base bytestring Cabal containers directory exceptions + filepath tar time utf8-string + ]; + description = "Access cabal-install's Hackage database via Data.Map"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ peti ]; + }) {}; + "hackage-diff" = callPackage ({ mkDerivation, ansi-terminal, async, attoparsec, base, Cabal , cpphs, directory, filepath, haskell-src-exts, HTTP, mtl, process @@ -124293,6 +124446,7 @@ self: { ]; description = "Release with confidence"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "hedgehog-checkers" = callPackage @@ -128048,6 +128202,9 @@ self: { ]; description = "Haskell binding to inotify, using ByteString filepaths"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "hinquire" = callPackage @@ -130103,6 +130260,7 @@ self: { librarySystemDepends = [ openblasCompat ]; description = "Numeric Linear Algebra"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {inherit (pkgs) openblasCompat;}; "hmatrix-backprop" = callPackage @@ -130752,18 +130910,16 @@ self: { , http-types, lens-family, lens-family-core, lens-family-th, logict , megaparsec, monad-control, monadlist, mtl, neat-interpolation , optparse-applicative, parser-combinators, pretty-show - , prettyprinter, process, ref-tf, regex-tdfa, repline, scientific - , semialign, semialign-indexed, serialise, some, split, syb, tasty + , prettyprinter, process, ref-tf, regex-tdfa, relude, repline + , scientific, semialign, serialise, some, split, syb, tasty , tasty-hedgehog, tasty-hunit, tasty-th, template-haskell, text - , these, time, transformers, transformers-base, unix - , unordered-containers, vector, xml + , th-lift-instances, these, time, transformers, transformers-base + , unix, unordered-containers, vector, xml }: mkDerivation { pname = "hnix"; - version = "0.12.0.1"; - sha256 = "013jlmzzr5fcvl0w9rrvhsg8jikg0hbc8z57yzxgz109x7hrnjzc"; - revision = "1"; - editedCabalFile = "136lwfb5hjwdbfik5c5dw1nhsmy8v410czmjn4i242s8jv5wm9yb"; + version = "0.13.0.1"; + sha256 = "1c01ns9h7va6ri568c0hzcdkmr0jdiay5z1vwwva7cv7dlvn6wl7"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -130775,27 +130931,24 @@ self: { lens-family lens-family-core lens-family-th logict megaparsec monad-control monadlist mtl neat-interpolation optparse-applicative parser-combinators pretty-show prettyprinter process ref-tf - regex-tdfa scientific semialign semialign-indexed serialise some - split syb template-haskell text these time transformers + regex-tdfa relude scientific semialign serialise some split syb + template-haskell text th-lift-instances these time transformers transformers-base unix unordered-containers vector xml ]; executableHaskellDepends = [ - aeson base base16-bytestring bytestring comonad containers data-fix - deepseq exceptions filepath free haskeline mtl optparse-applicative - pretty-show prettyprinter ref-tf repline serialise template-haskell - text time transformers unordered-containers + aeson base comonad containers data-fix deepseq exceptions filepath + free haskeline optparse-applicative pretty-show prettyprinter + ref-tf relude repline serialise template-haskell time ]; testHaskellDepends = [ - base base16-bytestring bytestring containers data-fix deepseq Diff - directory exceptions filepath Glob hedgehog megaparsec mtl - neat-interpolation optparse-applicative pretty-show prettyprinter - process serialise split tasty tasty-hedgehog tasty-hunit tasty-th - template-haskell text time transformers unix unordered-containers + base containers data-fix Diff directory exceptions filepath Glob + hedgehog megaparsec neat-interpolation optparse-applicative + pretty-show prettyprinter process relude serialise split tasty + tasty-hedgehog tasty-hunit tasty-th template-haskell time unix ]; benchmarkHaskellDepends = [ - base base16-bytestring bytestring containers criterion data-fix - deepseq exceptions filepath mtl optparse-applicative serialise - template-haskell text time transformers unordered-containers + base criterion data-fix exceptions filepath optparse-applicative + relude serialise template-haskell time ]; description = "Haskell implementation of the Nix language"; license = lib.licenses.bsd3; @@ -131586,6 +131739,9 @@ self: { libraryHaskellDepends = [ base ]; description = "Cross-platform interface to the PC speaker"; license = lib.licenses.asl20; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "hoobuddy" = callPackage @@ -136884,6 +137040,22 @@ self: { license = lib.licenses.mit; }) {}; + "hspec_2_8_1" = callPackage + ({ mkDerivation, base, hspec-core, hspec-discover + , hspec-expectations, QuickCheck + }: + mkDerivation { + pname = "hspec"; + version = "2.8.1"; + sha256 = "1lk7xylld960wld755j1f81zaydxgxq3840np4h6xcp729cf0cq5"; + libraryHaskellDepends = [ + base hspec-core hspec-discover hspec-expectations QuickCheck + ]; + description = "A Testing Framework for Haskell"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "hspec-attoparsec" = callPackage ({ mkDerivation, attoparsec, base, bytestring, hspec , hspec-expectations, text @@ -136966,6 +137138,34 @@ self: { license = lib.licenses.mit; }) {}; + "hspec-core_2_8_1" = callPackage + ({ mkDerivation, ansi-terminal, array, base, call-stack, clock + , deepseq, directory, filepath, hspec-expectations, hspec-meta + , HUnit, process, QuickCheck, quickcheck-io, random, setenv + , silently, stm, temporary, tf-random, transformers + }: + mkDerivation { + pname = "hspec-core"; + version = "2.8.1"; + sha256 = "1yha64zfc226pc4952zqwv229kbl8p5grhl7c6wxn2y948rb688a"; + libraryHaskellDepends = [ + ansi-terminal array base call-stack clock deepseq directory + filepath hspec-expectations HUnit QuickCheck quickcheck-io random + setenv stm tf-random transformers + ]; + testHaskellDepends = [ + ansi-terminal array base call-stack clock deepseq directory + filepath hspec-expectations hspec-meta HUnit process QuickCheck + quickcheck-io random setenv silently stm temporary tf-random + transformers + ]; + testToolDepends = [ hspec-meta ]; + testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'"; + description = "A Testing Framework for Haskell"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "hspec-dirstream" = callPackage ({ mkDerivation, base, dirstream, filepath, hspec, hspec-core , pipes, pipes-safe, system-filepath, text @@ -137003,6 +137203,26 @@ self: { license = lib.licenses.mit; }) {}; + "hspec-discover_2_8_1" = callPackage + ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck + }: + mkDerivation { + pname = "hspec-discover"; + version = "2.8.1"; + sha256 = "05xzxsxpxf7hyg6zdf7mxx6xb79rxrhd3pz3pwj32a0phbjkicdn"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base directory filepath ]; + executableHaskellDepends = [ base directory filepath ]; + testHaskellDepends = [ + base directory filepath hspec-meta QuickCheck + ]; + testToolDepends = [ hspec-meta ]; + description = "Automatically discover and run Hspec tests"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "hspec-expectations" = callPackage ({ mkDerivation, base, call-stack, HUnit, nanospec }: mkDerivation { @@ -146150,6 +146370,7 @@ self: { description = "Indexed Types"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -153160,8 +153381,8 @@ self: { }: mkDerivation { pname = "jvm-binary"; - version = "0.9.0"; - sha256 = "1ks5mbp1anrgm100sf3ycv1prwm3vj1vyag7l0ihs4cr2sqzq3a2"; + version = "0.10.0"; + sha256 = "11c3rhny06zjw8xv830khq1kdjbpzkr7wmzzymld4zcmhfmk9qda"; enableSeparateDataOutput = true; libraryHaskellDepends = [ attoparsec base binary bytestring containers data-binary-ieee754 @@ -160276,6 +160497,7 @@ self: { description = "Tutorial for the lens library"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -163082,6 +163304,9 @@ self: { libraryHaskellDepends = [ base bytestring time unix ]; description = "Bindings to Linux evdev input device interface"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "linux-file-extents" = callPackage @@ -163095,6 +163320,9 @@ self: { libraryHaskellDepends = [ base unix ]; description = "Retrieve file fragmentation information under Linux"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "linux-framebuffer" = callPackage @@ -163118,6 +163346,9 @@ self: { libraryHaskellDepends = [ base bytestring hashable unix ]; description = "Thinner binding to the Linux Kernel's inotify interface"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "linux-kmod" = callPackage @@ -163143,6 +163374,9 @@ self: { libraryHaskellDepends = [ base bytestring ]; description = "Mount and unmount filesystems"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "linux-namespaces" = callPackage @@ -163154,6 +163388,9 @@ self: { libraryHaskellDepends = [ base bytestring unix ]; description = "Work with linux namespaces: create new or enter existing ones"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "linux-perf" = callPackage @@ -163873,6 +164110,7 @@ self: { testHaskellDepends = [ base doctest ]; description = "List monad transformer"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "list-tries" = callPackage @@ -168550,6 +168788,7 @@ self: { libraryHaskellDepends = [ base transformers ]; description = "A monad for managed values"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "manatee" = callPackage @@ -174494,6 +174733,26 @@ self: { license = lib.licenses.bsd3; }) {}; + "mixed-types-num_0_5_1_0" = callPackage + ({ mkDerivation, base, collect-errors, hspec, hspec-smallcheck, mtl + , QuickCheck, smallcheck, template-haskell + }: + mkDerivation { + pname = "mixed-types-num"; + version = "0.5.1.0"; + sha256 = "09dkrx05mlbdvy1334q6zg3ay6k0ydl87naxhg4zr5p51i9p8lsg"; + libraryHaskellDepends = [ + base collect-errors hspec hspec-smallcheck mtl QuickCheck + smallcheck template-haskell + ]; + testHaskellDepends = [ + base collect-errors hspec hspec-smallcheck QuickCheck smallcheck + ]; + description = "Alternative Prelude with numeric and logic expressions typed bottom-up"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "mixpanel-client" = callPackage ({ mkDerivation, aeson, base, base64-bytestring, bytestring, hspec , hspec-discover, http-client, http-client-tls, markdown-unlit @@ -174749,6 +175008,7 @@ self: { description = "Monad morphisms"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "mmorph" = callPackage @@ -174764,6 +175024,7 @@ self: { ]; description = "Monad morphisms"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "mmsyn2" = callPackage @@ -175022,16 +175283,17 @@ self: { "mnist-idx-conduit" = callPackage ({ mkDerivation, base, binary, bytestring, conduit, containers - , exceptions, resourcet, vector + , exceptions, hspec, resourcet, vector }: mkDerivation { pname = "mnist-idx-conduit"; - version = "0.2.0.0"; - sha256 = "1m6xxw59yyf60zp0s3qd2pmsps482qws2vlnfqjz2wgr4rj0cp1x"; + version = "0.3.0.0"; + sha256 = "0vqb4yhb51lykcd66kgh9dn14nf4xfr74hamg72s35aa22lhw932"; libraryHaskellDepends = [ - base binary bytestring conduit containers exceptions resourcet - vector + base binary bytestring conduit containers exceptions hspec + resourcet vector ]; + testHaskellDepends = [ base bytestring conduit hspec vector ]; description = "conduit utilities for MNIST IDX files"; license = lib.licenses.bsd3; }) {}; @@ -178189,6 +178451,7 @@ self: { description = "A bare-bones calculus of constructions"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -179773,6 +180036,21 @@ self: { license = lib.licenses.bsd3; }) {}; + "multi-except" = callPackage + ({ mkDerivation, base, dlist }: + mkDerivation { + pname = "multi-except"; + version = "0.1.0.0"; + sha256 = "0gqmj28anzl596akgkqpgk5cd4b1ic2m6dxzv3hhnvifyxxflli8"; + revision = "1"; + editedCabalFile = "1w1zzsd87qzzad8yqq28hf5amg17i94x9snxvya4pn5raibn24sm"; + libraryHaskellDepends = [ base dlist ]; + description = "Multiple Exceptions"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; + }) {}; + "multi-instance" = callPackage ({ mkDerivation, base, doctest }: mkDerivation { @@ -181072,6 +181350,7 @@ self: { description = "Model-view-controller"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -181085,6 +181364,7 @@ self: { description = "Concurrent and combinable updates"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "mvclient" = callPackage @@ -183488,6 +183768,9 @@ self: { executableHaskellDepends = [ base ]; description = "Netlink communication for Haskell"; license = lib.licenses.bsd3; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "netlist" = callPackage @@ -185792,7 +186075,7 @@ self: { benchmarkHaskellDepends = [ attoparsec base criterion text ]; description = "Parse and render *.drv files"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ sorki ]; + maintainers = with lib.maintainers; [ Gabriel439 sorki ]; }) {}; "nix-diff" = callPackage @@ -185812,7 +186095,7 @@ self: { ]; description = "Explain why two Nix derivations differ"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ terlar ]; + maintainers = with lib.maintainers; [ Gabriel439 terlar ]; }) {}; "nix-eval" = callPackage @@ -191079,6 +191362,7 @@ self: { ]; description = "Optics as an abstract interface"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "optics_0_4" = callPackage @@ -191108,6 +191392,7 @@ self: { description = "Optics as an abstract interface"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "optics-core" = callPackage @@ -191368,6 +191653,7 @@ self: { libraryHaskellDepends = [ base ]; description = "Optional function arguments"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "options" = callPackage @@ -191494,6 +191780,7 @@ self: { ]; description = "Auto-generate a command-line parser for your datatype"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "optparse-helper" = callPackage @@ -191774,11 +192061,11 @@ self: { }: mkDerivation { pname = "ordinal"; - version = "0.4.0.0"; - sha256 = "1k0hpp5p546zlvwsy1d8hypryfwqvqdifmk3cqifw3xsdrqv3d8y"; + version = "0.4.0.3"; + sha256 = "1ar7l68cx9zci7mi6qx7a6ja7vp9axxjczyzxrbnjrvd2k3zxg51"; libraryHaskellDepends = [ - base containers data-default regex template-haskell text time - vector + base containers data-default QuickCheck regex template-haskell text + time vector ]; testHaskellDepends = [ base hspec QuickCheck text ]; testToolDepends = [ hspec-discover ]; @@ -193894,6 +194181,48 @@ self: { license = lib.licenses.bsd3; }) {}; + "pantry_0_5_2" = callPackage + ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal + , casa-client, casa-types, conduit, conduit-extra, containers + , cryptonite, cryptonite-conduit, digest, exceptions, filelock + , generic-deriving, hackage-security, hedgehog, hpack, hspec + , http-client, http-client-tls, http-conduit, http-download + , http-types, memory, mtl, network-uri, path, path-io, persistent + , persistent-sqlite, persistent-template, primitive, QuickCheck + , raw-strings-qq, resourcet, rio, rio-orphans, rio-prettyprint + , tar-conduit, text, text-metrics, time, transformers, unix-compat + , unliftio, unordered-containers, vector, yaml, zip-archive + }: + mkDerivation { + pname = "pantry"; + version = "0.5.2"; + sha256 = "0gg4fzqsh4c41vydrwr12kb8ahj0xy0vy7axwpd9j39dzxwcksnv"; + libraryHaskellDepends = [ + aeson ansi-terminal base bytestring Cabal casa-client casa-types + conduit conduit-extra containers cryptonite cryptonite-conduit + digest filelock generic-deriving hackage-security hpack http-client + http-client-tls http-conduit http-download http-types memory mtl + network-uri path path-io persistent persistent-sqlite + persistent-template primitive resourcet rio rio-orphans + rio-prettyprint tar-conduit text text-metrics time transformers + unix-compat unliftio unordered-containers vector yaml zip-archive + ]; + testHaskellDepends = [ + aeson ansi-terminal base bytestring Cabal casa-client casa-types + conduit conduit-extra containers cryptonite cryptonite-conduit + digest exceptions filelock generic-deriving hackage-security + hedgehog hpack hspec http-client http-client-tls http-conduit + http-download http-types memory mtl network-uri path path-io + persistent persistent-sqlite persistent-template primitive + QuickCheck raw-strings-qq resourcet rio rio-orphans rio-prettyprint + tar-conduit text text-metrics time transformers unix-compat + unliftio unordered-containers vector yaml zip-archive + ]; + description = "Content addressable Haskell package management"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "pantry-tmp" = callPackage ({ mkDerivation, aeson, ansi-terminal, array, base, base-orphans , base64-bytestring, bytestring, Cabal, conduit, conduit-extra @@ -194754,6 +195083,9 @@ self: { libraryHaskellDepends = [ array base ]; description = "Simply interfacing the parallel port on linux"; license = "GPL"; + platforms = [ + "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" + ]; }) {}; "parquet-hs" = callPackage @@ -195640,6 +195972,8 @@ self: { ]; description = "Hashing and checking of passwords"; license = lib.licenses.bsd3; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; + maintainers = with lib.maintainers; [ cdepillabout ]; }) {}; "password-instances" = callPackage @@ -195663,6 +195997,8 @@ self: { ]; description = "typeclass instances for password package"; license = lib.licenses.bsd3; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; + maintainers = with lib.maintainers; [ cdepillabout ]; }) {}; "password-types" = callPackage @@ -197798,6 +198134,7 @@ self: { ]; description = "Serialization library with state and leb128 encoding"; license = lib.licenses.bsd3; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; }) {}; "persist2er" = callPackage @@ -197885,7 +198222,7 @@ self: { maintainers = with lib.maintainers; [ psibi ]; }) {}; - "persistent_2_13_0_0" = callPackage + "persistent_2_13_0_1" = callPackage ({ mkDerivation, aeson, attoparsec, base, base64-bytestring , blaze-html, bytestring, conduit, containers, criterion, deepseq , deepseq-generics, fast-logger, file-embed, hspec, http-api-data @@ -197897,10 +198234,8 @@ self: { }: mkDerivation { pname = "persistent"; - version = "2.13.0.0"; - sha256 = "1addkfiaixk076qkdlhjmx97f8bgfmxwna9dv0h7hfvnq8v35bkf"; - revision = "2"; - editedCabalFile = "12ylw4rzrjlk2m0qfgqx481k0ifhv5i8z0vy70knjrkgx8d9sfvx"; + version = "2.13.0.1"; + sha256 = "0yvipx9y33pr1vz7818w2ylr5zf9bmng8ka70mdb4f563l4ynp96"; libraryHaskellDepends = [ aeson attoparsec base base64-bytestring blaze-html bytestring conduit containers fast-logger http-api-data lift-type monad-logger @@ -200680,6 +201015,7 @@ self: { ]; description = "Compositional pipelines"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-aeson" = callPackage @@ -200845,6 +201181,7 @@ self: { ]; description = "ByteString support for pipes"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-bzip" = callPackage @@ -201013,6 +201350,7 @@ self: { testHaskellDepends = [ async base pipes stm ]; description = "Concurrency for the pipes ecosystem"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-conduit" = callPackage @@ -201075,6 +201413,7 @@ self: { ]; description = "Fast, streaming csv parser"; license = lib.licenses.mit; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-errors" = callPackage @@ -201134,6 +201473,7 @@ self: { ]; description = "Extra utilities for pipes"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-fastx" = callPackage @@ -201217,6 +201557,7 @@ self: { testHaskellDepends = [ base doctest lens-family-core ]; description = "Group streams into substreams"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-http" = callPackage @@ -201234,6 +201575,7 @@ self: { ]; description = "HTTP client with pipes interface"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-illumina" = callPackage @@ -201495,6 +201837,7 @@ self: { libraryHaskellDepends = [ base pipes transformers ]; description = "Parsing infrastructure for the pipes ecosystem"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-postgresql-simple" = callPackage @@ -201617,6 +201960,7 @@ self: { ]; description = "Safety for the pipes ecosystem"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "pipes-shell" = callPackage @@ -202621,6 +202965,25 @@ self: { license = lib.licenses.bsd3; }) {}; + "ploterific" = callPackage + ({ mkDerivation, base, bytestring, cassava, containers, hvega + , hvega-theme, lens, mtl, optparse-generic, text + }: + mkDerivation { + pname = "ploterific"; + version = "0.1.0.1"; + sha256 = "03m0zi7izlv8n5jsisym595sn7cfl2p1mhch086ajyd2g6zlxya7"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring cassava containers hvega hvega-theme lens mtl + optparse-generic text + ]; + executableHaskellDepends = [ base mtl optparse-generic text ]; + description = "Basic plotting of tabular data for the command line"; + license = lib.licenses.gpl3Only; + }) {}; + "plotfont" = callPackage ({ mkDerivation, base, containers, tasty, tasty-hunit }: mkDerivation { @@ -209849,6 +210212,30 @@ self: { license = lib.licenses.asl20; }) {}; + "proto3-wire_1_2_2" = callPackage + ({ mkDerivation, base, bytestring, cereal, containers, deepseq + , doctest, ghc-prim, hashable, parameterized, primitive, QuickCheck + , safe, tasty, tasty-hunit, tasty-quickcheck, text, transformers + , unordered-containers, vector + }: + mkDerivation { + pname = "proto3-wire"; + version = "1.2.2"; + sha256 = "1fdzml0nsbz1bqf3lskvmfn46pgl5rnrc4b7azq8f0csm0v9ah4d"; + libraryHaskellDepends = [ + base bytestring cereal containers deepseq ghc-prim hashable + parameterized primitive QuickCheck safe text transformers + unordered-containers vector + ]; + testHaskellDepends = [ + base bytestring cereal doctest QuickCheck tasty tasty-hunit + tasty-quickcheck text transformers vector + ]; + description = "A low-level implementation of the Protocol Buffers (version 3) wire format"; + license = lib.licenses.asl20; + hydraPlatforms = lib.platforms.none; + }) {}; + "protobuf" = callPackage ({ mkDerivation, base, base-orphans, bytestring, cereal, containers , data-binary-ieee754, deepseq, hex, HUnit, mtl, QuickCheck, tagged @@ -220685,6 +221072,7 @@ self: { doCheck = false; description = "Easy-to-use, type-safe, expandable, high-level HTTP client library"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "req-conduit" = callPackage @@ -226978,6 +227366,7 @@ self: { ]; description = "Generates unique passwords for various websites from a single password"; license = lib.licenses.bsd3; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; }) {}; "scc" = callPackage @@ -228137,6 +228526,7 @@ self: { ]; description = "Stronger password hashing via sequential memory-hard functions"; license = lib.licenses.bsd3; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; }) {}; "scrz" = callPackage @@ -233042,6 +233432,7 @@ self: { description = "Auto-generate a server for your datatype"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; broken = true; }) {}; @@ -239408,6 +239799,7 @@ self: { ]; description = "Top-level package for the Snap Web Framework"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "snap-accept" = callPackage @@ -247555,6 +247947,7 @@ self: { ]; description = "Beautiful Streaming, Concurrent and Reactive Composition"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ maralorn ]; }) {}; "streamly-archive" = callPackage @@ -248228,8 +248621,8 @@ self: { ({ mkDerivation, base, bytestring, text }: mkDerivation { pname = "string-like"; - version = "0.1.0.0"; - sha256 = "1b87532fhv2wn6pnzsaw20lzj5j399smlfn7lai0h0ph2axb2dbi"; + version = "0.1.0.1"; + sha256 = "1sadf4cdxs3ilax99w1yvkfz2v1n77rj9grck4csjbwswxw2d2dn"; libraryHaskellDepends = [ base bytestring text ]; description = "A package that aims to provide a uniform interface to string-like types"; license = lib.licenses.bsd3; @@ -256106,6 +256499,7 @@ self: { platforms = [ "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux" ]; + maintainers = with lib.maintainers; [ cdepillabout ]; }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; vte_291 = pkgs.vte;}; @@ -262275,6 +262669,7 @@ self: { libraryHaskellDepends = [ base void ]; description = "Exhaustive pattern matching using lenses, traversals, and prisms"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "total-alternative" = callPackage @@ -265151,6 +265546,7 @@ self: { benchmarkHaskellDepends = [ base criterion text ]; description = "Shell programming, Haskell-style"; license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "turtle-options" = callPackage @@ -265184,6 +265580,23 @@ self: { license = lib.licenses.bsd3; }) {}; + "twain" = callPackage + ({ mkDerivation, aeson, base, bytestring, case-insensitive, cookie + , either, http-types, text, time, transformers, wai, wai-extra + , warp + }: + mkDerivation { + pname = "twain"; + version = "1.0.0.0"; + sha256 = "0brxvqddnhxs4q5hm9g8fzkznk3xjagivy0glfiqrx24p4k8s9yb"; + libraryHaskellDepends = [ + aeson base bytestring case-insensitive cookie either http-types + text time transformers wai wai-extra warp + ]; + description = "Tiny web application framework for WAI"; + license = lib.licenses.bsd3; + }) {}; + "tweak" = callPackage ({ mkDerivation, base, containers, lens, stm, transformers }: mkDerivation { @@ -266761,6 +267174,7 @@ self: { description = "Typed and composable spreadsheets"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; + maintainers = with lib.maintainers; [ Gabriel439 ]; }) {}; "typed-streams" = callPackage @@ -284540,6 +284954,8 @@ self: { ]; description = "Testing library for Yampa"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "yampa2048" = callPackage @@ -285511,6 +285927,29 @@ self: { license = lib.licenses.mit; }) {}; + "yesod-auth-oauth2_0_6_3_1" = callPackage + ({ mkDerivation, aeson, base, bytestring, cryptonite, errors + , hoauth2, hspec, http-client, http-conduit, http-types, memory + , microlens, mtl, safe-exceptions, text, unliftio, uri-bytestring + , yesod-auth, yesod-core + }: + mkDerivation { + pname = "yesod-auth-oauth2"; + version = "0.6.3.1"; + sha256 = "1q49a99n2h1b06zm0smqqxr9jr487b14cf8xmayvkqr0q1q5xrwa"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson base bytestring cryptonite errors hoauth2 http-client + http-conduit http-types memory microlens mtl safe-exceptions text + unliftio uri-bytestring yesod-auth yesod-core + ]; + testHaskellDepends = [ base hspec uri-bytestring ]; + description = "OAuth 2.0 authentication plugins"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "yesod-auth-pam" = callPackage ({ mkDerivation, base, hamlet, pam, text, yesod-auth, yesod-core , yesod-form @@ -285729,6 +286168,44 @@ self: { license = lib.licenses.mit; }) {}; + "yesod-core_1_6_20" = callPackage + ({ mkDerivation, aeson, async, auto-update, base, blaze-html + , blaze-markup, bytestring, case-insensitive, cereal, clientsession + , conduit, conduit-extra, containers, cookie, deepseq, entropy + , fast-logger, gauge, hspec, hspec-expectations, http-types, HUnit + , memory, monad-logger, mtl, network, parsec, path-pieces + , primitive, random, resourcet, shakespeare, streaming-commons + , template-haskell, text, time, transformers, unix-compat, unliftio + , unordered-containers, vector, wai, wai-extra, wai-logger, warp + , word8 + }: + mkDerivation { + pname = "yesod-core"; + version = "1.6.20"; + sha256 = "1f3imbd22i9vl30760063p308byddwxafpl5hdric2z7vmnxayqy"; + libraryHaskellDepends = [ + aeson auto-update base blaze-html blaze-markup bytestring + case-insensitive cereal clientsession conduit conduit-extra + containers cookie deepseq entropy fast-logger http-types memory + monad-logger mtl parsec path-pieces primitive random resourcet + shakespeare template-haskell text time transformers unix-compat + unliftio unordered-containers vector wai wai-extra wai-logger warp + word8 + ]; + testHaskellDepends = [ + async base bytestring clientsession conduit conduit-extra + containers cookie hspec hspec-expectations http-types HUnit network + path-pieces random resourcet shakespeare streaming-commons + template-haskell text transformers unliftio wai wai-extra warp + ]; + benchmarkHaskellDepends = [ + base blaze-html bytestring gauge shakespeare text + ]; + description = "Creation of type-safe, RESTful web applications"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + }) {}; + "yesod-crud" = callPackage ({ mkDerivation, base, classy-prelude, containers, MissingH , monad-control, persistent, random, safe, stm, uuid, yesod-core diff --git a/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch b/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch deleted file mode 100644 index 5a4d0446e71..00000000000 --- a/pkgs/development/haskell-modules/patches/hnix-ref-tf-0.5-support.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/hnix.cabal hnix-patched/hnix.cabal ---- hnix-0.12.0.1/hnix.cabal 2001-09-09 03:46:40.000000000 +0200 -+++ hnix-patched/hnix.cabal 2021-05-05 12:07:38.388267353 +0200 -@@ -430,7 +430,7 @@ - , parser-combinators >= 1.0.1 && < 1.3 - , prettyprinter >= 1.7.0 && < 1.8 - , process >= 1.6.3 && < 1.7 -- , ref-tf >= 0.4.0 && < 0.5 -+ , ref-tf >= 0.5 - , regex-tdfa >= 1.2.3 && < 1.4 - , scientific >= 0.3.6 && < 0.4 - , semialign >= 1 && < 1.2 -diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/src/Nix/Fresh.hs hnix-patched/src/Nix/Fresh.hs ---- hnix-0.12.0.1/src/Nix/Fresh.hs 2001-09-09 03:46:40.000000000 +0200 -+++ hnix-patched/src/Nix/Fresh.hs 2021-05-05 12:07:45.841267497 +0200 -@@ -65,18 +65,3 @@ - - runFreshIdT :: Functor m => Var m i -> FreshIdT i m a -> m a - runFreshIdT i m = runReaderT (unFreshIdT m) i -- ---- Orphan instance needed by Infer.hs and Lint.hs -- ---- Since there's no forking, it's automatically atomic. --instance MonadAtomicRef (ST s) where -- atomicModifyRef r f = do -- v <- readRef r -- let (a, b) = f v -- writeRef r a -- return b -- atomicModifyRef' r f = do -- v <- readRef r -- let (a, b) = f v -- writeRef r $! a -- return b diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix index aef412468a9..a0c4f5a3e21 100644 --- a/pkgs/development/libraries/gensio/default.nix +++ b/pkgs/development/libraries/gensio/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "gensio"; - version = "2.2.4"; + version = "2.2.5"; src = fetchFromGitHub { owner = "cminyard"; repo = pname; rev = "v${version}"; - sha256 = "sha256-tdMdIudB8zZWXF+Q0YhFo9Q4VHjLJh3rdfQsYhgo2DU="; + sha256 = "sha256-QC07NGgZa++qHyGZY3fjosjJVuRFfc7HYmdGxQHAz4s="; }; passthru = { diff --git a/pkgs/development/libraries/gtk-sharp/3.0.nix b/pkgs/development/libraries/gtk-sharp/3.0.nix index 491656a0c68..6b996244a9f 100644 --- a/pkgs/development/libraries/gtk-sharp/3.0.nix +++ b/pkgs/development/libraries/gtk-sharp/3.0.nix @@ -42,6 +42,12 @@ stdenv.mkDerivation rec { url = "https://github.com/mono/gtk-sharp/commit/401df51bc461de93c1a78b6a7a0d5adc63cf186c.patch"; sha256 = "0hrkcr5a7wkixnyp60v4d6j3arsb63h54rd30lc5ajfjb3p92kcf"; }) + # @see https://github.com/mono/gtk-sharp/pull/263 + (fetchpatch { + name = "disambiguate_Gtk.Range.patch"; + url = "https://github.com/mono/gtk-sharp/commit/a00552ad68ae349e89e440dca21b86dbd6bccd30.patch"; + sha256 = "1ylplr9g9x7ybsgrydsgr6p3g7w6i46yng1hnl3afgn4vj45rag2"; + }) ]; dontStrip = true; diff --git a/pkgs/development/libraries/libspnav/default.nix b/pkgs/development/libraries/libspnav/default.nix index b7136144768..53aad1019b3 100644 --- a/pkgs/development/libraries/libspnav/default.nix +++ b/pkgs/development/libraries/libspnav/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, libX11}: +{ stdenv, lib, fetchFromGitHub, libX11, fixDarwinDylibNames }: stdenv.mkDerivation rec { version = "0.2.3"; @@ -11,6 +11,7 @@ stdenv.mkDerivation rec { sha256 = "098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba"; }; + nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames; buildInputs = [ libX11 ]; configureFlags = [ "--disable-debug"]; diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix index 9813becd145..2f4552ca3f6 100644 --- a/pkgs/development/python-modules/brother/default.nix +++ b/pkgs/development/python-modules/brother/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "brother"; - version = "1.0.1"; + version = "1.0.2"; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "bieniu"; repo = pname; rev = version; - sha256 = "sha256-Cfut6Y4Hln32g4V13xbOo5JdjPv2cH6FCDqvRRyijIA="; + sha256 = "sha256-xs/GIsJUuKKbDotV1BeT/ng86UVkNsH48uHR4i3vqow="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/clickhouse-driver/default.nix b/pkgs/development/python-modules/clickhouse-driver/default.nix index a1addcfc97a..9a4c0f0f92b 100644 --- a/pkgs/development/python-modules/clickhouse-driver/default.nix +++ b/pkgs/development/python-modules/clickhouse-driver/default.nix @@ -1,6 +1,6 @@ { lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub , setuptools , pytz , tzlocal @@ -10,15 +10,20 @@ , freezegun , mock , nose +, pytestCheckHook +, pytest-xdist }: buildPythonPackage rec { pname = "clickhouse-driver"; version = "0.2.0"; - src = fetchPypi { - inherit pname version; - sha256 = "62d37f93872d5a13eb6b0d52bab2b593ed0e14cf9200949aa2d02f9801064c0f"; + # pypi source doesn't contain tests + src = fetchFromGitHub { + owner = "mymarilyn"; + repo = "clickhouse-driver"; + rev = "96b7ba448c63ca2670cc9aa70d4a0e08826fb650"; + sha256 = "sha256-HFKUxJOlBCVlu7Ia8heGpwX6+HdKuwSy92s3v+GKGwE="; }; propagatedBuildInputs = [ @@ -34,9 +39,30 @@ buildPythonPackage rec { freezegun mock nose + pytest-xdist + pytestCheckHook ]; - doCheck = true; + postPatch = '' + substituteInPlace setup.py \ + --replace "lz4<=3.0.1" "lz4<=4" + ''; + + # remove source to prevent pytest testing source instead of the build artifacts + # (the source doesn't contain the extension modules) + preCheck = '' + rm -rf clickhouse_driver + ''; + + # some test in test_buffered_reader.py doesn't seem to return + disabledTestPaths = [ "tests/test_buffered_reader.py" ]; + + pytestFlagsArray = [ "-n" "$NIX_BUILD_CORES" ]; + + # most tests require `clickhouse` + # TODO: enable tests after `clickhouse` unbroken + doCheck = false; + pythonImportsCheck = [ "clickhouse_driver" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix index e2c077162b1..f39393ecff7 100644 --- a/pkgs/development/python-modules/flask-appbuilder/default.nix +++ b/pkgs/development/python-modules/flask-appbuilder/default.nix @@ -1,7 +1,6 @@ { lib , buildPythonPackage , fetchPypi -, nose , apispec , colorama , click @@ -27,15 +26,16 @@ buildPythonPackage rec { pname = "flask-appbuilder"; - version = "3.2.3"; + version = "3.3.0"; src = fetchPypi { pname = "Flask-AppBuilder"; inherit version; - sha256 = "sha256-+ZYrn2LnVORyYsnZtsH3JX+4XbGgAZZ/Eh6O5gUP+y4="; + sha256 = "00dsfv1apl6483wy20aj91f9h5ak2casbx5vcajv2nd3i7c7v8gx"; }; patches = [ + # https://github.com/dpgaspar/Flask-AppBuilder/pull/1610 (fetchpatch { name = "flask_jwt_extended-and-pyjwt-patch"; url = "https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch"; @@ -75,7 +75,7 @@ buildPythonPackage rec { --replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy >=0.22.0, <0.25.0" ''; - # majority of tests require network access or mongo + # Majority of tests require network access or mongo doCheck = false; pythonImportsCheck = [ "flask_appbuilder" ]; diff --git a/pkgs/development/python-modules/karton-asciimagic/default.nix b/pkgs/development/python-modules/karton-asciimagic/default.nix index f62e602896b..087775b2ef7 100644 --- a/pkgs/development/python-modules/karton-asciimagic/default.nix +++ b/pkgs/development/python-modules/karton-asciimagic/default.nix @@ -7,24 +7,19 @@ buildPythonPackage rec { pname = "karton-asciimagic"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "CERT-Polska"; repo = pname; rev = "v${version}"; - sha256 = "0yvd0plpwy5qkd2jljpd6wm6dlj2g8csvj1q2md23vsgx7h7v2vm"; + sha256 = "0d15fhb3y0jpwdfm4y11i6pmfa9szr943cm6slvf0ir31f9nznyz"; }; propagatedBuildInputs = [ karton-core ]; - postPatch = '' - substituteInPlace requirements.txt \ - --replace "karton.core==4.0.5" "karton-core" - ''; - checkPhase = '' runHook preCheck ${python.interpreter} -m unittest discover diff --git a/pkgs/development/python-modules/karton-classifier/default.nix b/pkgs/development/python-modules/karton-classifier/default.nix index a623486f03c..ea9710ecd31 100644 --- a/pkgs/development/python-modules/karton-classifier/default.nix +++ b/pkgs/development/python-modules/karton-classifier/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "karton-classifier"; - version = "1.0.0"; + version = "1.1.0"; src = fetchFromGitHub { owner = "CERT-Polska"; repo = pname; rev = "v${version}"; - sha256 = "05pxv0smrzgmljykc6yx0rx8b85ck7fa09xjkjw0dd7lb6bb19a6"; + sha256 = "0s09mzsw546klnvm59wzj9vdwd2hyzgxvapi20k86q3prs9ncds6"; }; propagatedBuildInputs = [ @@ -27,7 +27,6 @@ buildPythonPackage rec { postPatch = '' substituteInPlace requirements.txt \ --replace "chardet==3.0.4" "chardet" \ - --replace "karton-core==4.0.4" "karton-core" \ --replace "python-magic==0.4.18" "python-magic" ''; diff --git a/pkgs/development/python-modules/karton-config-extractor/default.nix b/pkgs/development/python-modules/karton-config-extractor/default.nix index a82db34d880..71170ac5342 100644 --- a/pkgs/development/python-modules/karton-config-extractor/default.nix +++ b/pkgs/development/python-modules/karton-config-extractor/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "karton-config-extractor"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "CERT-Polska"; repo = pname; rev = "v${version}"; - sha256 = "sha256-vijyqki2x813H2xbmz2JIXlh87J5l6NFoZcOu8xi61o="; + sha256 = "1kq0gbfz9y0n0bcblyrmwv4la3lcf86lf80794sdvyvn49g0brny"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/karton-dashboard/default.nix b/pkgs/development/python-modules/karton-dashboard/default.nix index c82cb895782..3ec455a8ace 100644 --- a/pkgs/development/python-modules/karton-dashboard/default.nix +++ b/pkgs/development/python-modules/karton-dashboard/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "karton-dashboard"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "CERT-Polska"; repo = pname; rev = "v${version}"; - sha256 = "101qmx6nmiim0vrz2ldk973ns498hnxla1xy7nys9kh9wijg4msk"; + sha256 = "0qygv9lkd1jad5b4l0zz6hsi7m8q0fmpwaa6hpp7p9x6ql7gnyl8"; }; propagatedBuildInputs = [ @@ -27,8 +27,7 @@ buildPythonPackage rec { postPatch = '' substituteInPlace requirements.txt \ - --replace "Flask==1.1.1" "Flask" \ - --replace "karton-core==4.1.0" "karton-core" + --replace "Flask==1.1.1" "Flask" ''; # Project has no tests. pythonImportsCheck requires MinIO configuration diff --git a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix index 68b28bffe6f..65bb683be2b 100644 --- a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix +++ b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "karton-mwdb-reporter"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "CERT-Polska"; repo = pname; rev = "v${version}"; - sha256 = "0ks8jrc4v87q6zhwqg40w6xv2wfkzslmnfmsmmkfjj8mak8nk70f"; + sha256 = "0jrn5c83nhcjny4bc879wrsgcr7mbazm51jzdkxmxyqf543cc841"; }; propagatedBuildInputs = [ @@ -23,8 +23,7 @@ buildPythonPackage rec { postPatch = '' substituteInPlace requirements.txt \ - --replace "karton-core==4.0.4" "karton-core" \ - --replace "mwdblib==3.3.1" "mwdblib" + --replace "mwdblib==3.4.0" "mwdblib" ''; # Project has no tests diff --git a/pkgs/development/python-modules/pyflume/default.nix b/pkgs/development/python-modules/pyflume/default.nix index 7c80aab59cd..075297794b2 100644 --- a/pkgs/development/python-modules/pyflume/default.nix +++ b/pkgs/development/python-modules/pyflume/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyflume"; - version = "0.6.4"; + version = "0.7.0"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "ChrisMandich"; repo = "PyFlume"; rev = "v${version}"; - sha256 = "1dm560hh6fl1waiwsq8m31apmvvwhc3y95bfdb7449bs8k96dmxq"; + sha256 = "129sz33a270v120bzl9l98nmvdzn7ns4cf9w2v18lmzlldbyz2vn"; }; prePatch = '' diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix index ec1e4a6c5c5..05411e0d7fb 100644 --- a/pkgs/development/python-modules/pysonos/default.nix +++ b/pkgs/development/python-modules/pysonos/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "pysonos"; - version = "0.0.46"; + version = "0.0.49"; disabled = !isPy3k; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "amelchio"; repo = pname; rev = "v${version}"; - sha256 = "sha256-5vQBSKDgzwdWkyGduq2cWa7Eq5l01gbs236H2Syc/Dc="; + sha256 = "sha256-f8MBf2E7kHzvdt7oBwdJZ91jlU6I5np1FhOmxgxbqYw="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix index d0054f7076a..7387d387dbe 100644 --- a/pkgs/development/python-modules/pythonnet/default.nix +++ b/pkgs/development/python-modules/pythonnet/default.nix @@ -2,8 +2,7 @@ , fetchPypi , fetchNuGet , buildPythonPackage -, python -, pytest +, pytestCheckHook , pycparser , psutil , pkg-config @@ -15,29 +14,36 @@ let - UnmanagedExports127 = fetchNuGet { - baseName = "UnmanagedExports"; - version = "1.2.7"; - sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf"; - outputFiles = [ "*" ]; - }; - - NUnit371 = fetchNuGet { - baseName = "NUnit"; - version = "3.7.1"; - sha256 = "1yc6dwaam4w2ss1193v735nnl79id78yswmpvmjr1w4bgcbdza4l"; - outputFiles = [ "*" ]; - }; + dotnetPkgs = [ + (fetchNuGet { + baseName = "UnmanagedExports"; + version = "1.2.7"; + sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf"; + outputFiles = [ "*" ]; + }) + (fetchNuGet { + baseName = "NUnit"; + version = "3.12.0"; + sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; + outputFiles = [ "*" ]; + }) + (fetchNuGet { + baseName = "System.ValueTuple"; + version = "4.5.0"; + sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; + outputFiles = [ "*" ]; + }) + ]; in buildPythonPackage rec { pname = "pythonnet"; - version = "2.4.0"; + version = "2.5.2"; src = fetchPypi { inherit pname version; - sha256 = "1ach9jic7a9rd3vmc4bphkr9fq01a0qk81f8a7gr9npwzmkqx8x3"; + sha256 = "1qzdc6jd7i9j7p6bcihnr98y005gv1358xqdr1plpbpnl6078a5p"; }; postPatch = '' @@ -50,7 +56,6 @@ buildPythonPackage rec { ''; nativeBuildInputs = [ - pytest pycparser pkg-config @@ -59,13 +64,15 @@ buildPythonPackage rec { mono - NUnit371 - UnmanagedExports127 - ]; + ] ++ dotnetPkgs; buildInputs = [ glib mono + ]; + + checkInputs = [ + pytestCheckHook psutil # needed for memory leak tests ]; @@ -73,22 +80,21 @@ buildPythonPackage rec { rm -rf packages mkdir packages - ln -s ${NUnit371}/lib/dotnet/NUnit/ packages/NUnit.3.7.1 - ln -s ${UnmanagedExports127}/lib/dotnet/NUnit/ packages/UnmanagedExports.1.2.7 + ${builtins.concatStringsSep "\n" ( + builtins.map ( + x: ''ln -s ${x}/lib/dotnet/${x.baseName} ./packages/${x.baseName}.${x.version}'' + ) dotnetPkgs)} # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542 export TERM=xterm ''; - checkPhase = '' - ${python.interpreter} -m pytest - ''; - meta = with lib; { description = ".Net and Mono integration for Python"; homepage = "https://pythonnet.github.io"; license = licenses.mit; + # + badPlatforms = [ "aarch64-linux" ]; maintainers = with maintainers; [ jraygauthier ]; - broken = true; }; } diff --git a/pkgs/development/python-modules/requests-http-signature/default.nix b/pkgs/development/python-modules/requests-http-signature/default.nix index f4b2efbc2ba..7a27055aba2 100644 --- a/pkgs/development/python-modules/requests-http-signature/default.nix +++ b/pkgs/development/python-modules/requests-http-signature/default.nix @@ -1,28 +1,40 @@ { lib , buildPythonPackage , fetchFromGitHub -, requests , cryptography -, python +, requests +, pytestCheckHook }: buildPythonPackage rec { pname = "requests-http-signature"; - version = "0.1.0"; + version = "0.2.0"; # .pem files for tests aren't present on PyPI src = fetchFromGitHub { owner = "pyauth"; repo = pname; rev = "v${version}"; - sha256 = "0y96wsbci296m1rcxx0ybx8r44rdvyb59p1jl27p7rgz7isr3kx1"; + sha256 = "1jsplqrxadjsc86f0kb6dgpblgwplxrpi0ql1a714w8pbbz4z3h7"; }; - propagatedBuildInputs = [ requests cryptography ]; + propagatedBuildInputs = [ + cryptography + requests + ]; - checkPhase = '' - ${python.interpreter} test/test.py - ''; + checkInputs = [ + pytestCheckHook + ]; + + pytestFlagsArray = [ "test/test.py" ]; + + disabledTests = [ + # Test require network access + "test_readme_example" + ]; + + pythonImportsCheck = [ "requests_http_signature" ]; meta = with lib; { description = "A Requests auth module for HTTP Signature"; diff --git a/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix new file mode 100644 index 00000000000..81fa9831256 --- /dev/null +++ b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildPythonPackage +, fetchPypi +, sphinx +, actdiag +, blockdiag +}: + +buildPythonPackage rec { + pname = "sphinxcontrib-actdiag"; + version = "2.0.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-TtuFZOLkig4MULLndDQlrTTx8RiGw34MsjmXoPladMY="; + }; + + propagatedBuildInputs = [ sphinx actdiag blockdiag ]; + + pythonImportsCheck = [ "sphinxcontrib.actdiag" ]; + + meta = with lib; { + description = "Sphinx actdiag extension"; + homepage = "https://github.com/blockdiag/sphinxcontrib-actdiag"; + maintainers = with maintainers; [ davidtwco ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix new file mode 100644 index 00000000000..10963a73a91 --- /dev/null +++ b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildPythonPackage +, fetchPypi +, sphinx +, blockdiag +, nwdiag +}: + +buildPythonPackage rec { + pname = "sphinxcontrib-nwdiag"; + version = "2.0.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-bula1DutRv6NwfZRhciZfLHRZmXu42p+qvbeExN/+Fk="; + }; + + propagatedBuildInputs = [ sphinx blockdiag nwdiag ]; + + pythonImportsCheck = [ "sphinxcontrib.nwdiag" ]; + + meta = with lib; { + description = "Sphinx nwdiag extension"; + homepage = "https://github.com/blockdiag/sphinxcontrib-nwdiag"; + maintainers = with maintainers; [ davidtwco ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix new file mode 100644 index 00000000000..c7407300d31 --- /dev/null +++ b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildPythonPackage +, fetchPypi +, sphinx +, blockdiag +, seqdiag +}: + +buildPythonPackage rec { + pname = "sphinxcontrib-seqdiag"; + version = "2.0.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-THJ1ra/W2X/lQaDjGbL27VMn0lWPJApwgKMrPhL0JY0="; + }; + + propagatedBuildInputs = [ sphinx blockdiag seqdiag ]; + + pythonImportsCheck = [ "sphinxcontrib.seqdiag" ]; + + meta = with lib; { + description = "Sphinx seqdiag extension"; + homepage = "https://github.com/blockdiag/sphinxcontrib-seqdiag"; + maintainers = with maintainers; [ davidtwco ]; + license = licenses.bsd2; + }; +} diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix index 32e4bab5afc..c607d45e170 100644 --- a/pkgs/development/python-modules/stem/default.nix +++ b/pkgs/development/python-modules/stem/default.nix @@ -12,6 +12,8 @@ buildPythonPackage rec { postPatch = '' rm test/unit/installation.py sed -i "/test.unit.installation/d" test/settings.cfg + # https://github.com/torproject/stem/issues/56 + sed -i '/MOCK_VERSION/d' run_tests.py ''; checkInputs = [ mock ]; diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix index 80a503fbb8a..313f121510e 100644 --- a/pkgs/development/python-modules/zeroconf/default.nix +++ b/pkgs/development/python-modules/zeroconf/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "zeroconf"; - version = "0.30.0"; + version = "0.31.0"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "sha256-elpjZq4FpI2wTf1ciILumKE/LQ4fxtCaXxvQo9HRCcc="; + sha256 = "sha256-U6GAJIRxxvgb0f/8vOA+2T19jq8QkFyRIaweqZbRmEQ="; }; propagatedBuildInputs = [ ifaddr ]; diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix index ae23b32b71a..067db74663e 100644 --- a/pkgs/development/r-modules/default.nix +++ b/pkgs/development/r-modules/default.nix @@ -379,6 +379,7 @@ let packagesWithBuildInputs = { # sort -t '=' -k 2 gam = lib.optionals stdenv.isDarwin [ pkgs.libiconv ]; + RcppArmadillo = lib.optionals stdenv.isDarwin [ pkgs.libiconv ]; quantreg = lib.optionals stdenv.isDarwin [ pkgs.libiconv ]; rmutil = lib.optionals stdenv.isDarwin [ pkgs.libiconv ]; robustbase = lib.optionals stdenv.isDarwin [ pkgs.libiconv ]; diff --git a/pkgs/development/tools/analysis/nix-linter/default.nix b/pkgs/development/tools/analysis/nix-linter/default.nix index dea2fd895f1..279a69327fa 100644 --- a/pkgs/development/tools/analysis/nix-linter/default.nix +++ b/pkgs/development/tools/analysis/nix-linter/default.nix @@ -17,6 +17,7 @@ , containers , hnix , bytestring +, fetchpatch }: mkDerivation rec { @@ -36,10 +37,13 @@ mkDerivation rec { executableHaskellDepends = [ streamly mtl path pretty-terminal text base aeson cmdargs containers hnix bytestring path-io ]; testHaskellDepends = [ tasty tasty-hunit tasty-th ]; - # Relax upper bound on hnix https://github.com/Synthetica9/nix-linter/pull/46 - postPatch = '' - substituteInPlace nix-linter.cabal --replace "hnix >=0.8 && < 0.11" "hnix >=0.8" - ''; + patches = [ + # Fix compatibility with hnix≥0.13.0 https://github.com/Synthetica9/nix-linter/pull/51 + (fetchpatch { + url = "https://github.com/Synthetica9/nix-linter/commit/f73acacd8623dc25c9a35f8e04e4ff33cc596af8.patch"; + sha256 = "139fm21hdg3vcw8hv35kxj4awd52bjqbb76mpzx191hzi9plj8qc"; + }) + ]; description = "Linter for Nix(pkgs), based on hnix"; homepage = "https://github.com/Synthetica9/nix-linter"; diff --git a/pkgs/development/tools/luaformatter/default.nix b/pkgs/development/tools/luaformatter/default.nix index ee34886a063..064ef8453d2 100644 --- a/pkgs/development/tools/luaformatter/default.nix +++ b/pkgs/development/tools/luaformatter/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "luaformatter"; - version = "1.3.5"; + version = "1.3.6"; src = fetchFromGitHub { owner = "koihik"; repo = "luaformatter"; rev = version; - sha256 = "sha256-TMo6zRfhVAXVh0tIC0PecaJCKr0ev45jOKm2+reTtS4="; + sha256 = "0440kdab5i0vhlk71sbprdrhg362al8jqpy7w2vdhcz1fpi5cm0b"; fetchSubmodules = true; }; diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix index 39d64cb74c6..eec1576711d 100644 --- a/pkgs/development/tools/misc/texlab/default.nix +++ b/pkgs/development/tools/misc/texlab/default.nix @@ -3,7 +3,9 @@ , rustPlatform , fetchFromGitHub , installShellFiles +, libiconv , Security +, CoreServices }: rustPlatform.buildRustPackage rec { @@ -23,7 +25,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ installShellFiles ]; - buildInputs = lib.optionals stdenv.isDarwin [ Security ]; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security CoreServices ]; postInstall = '' installManPage texlab.1 @@ -32,9 +34,9 @@ rustPlatform.buildRustPackage rec { # links to the generated rlib and doesn't reference the dylib. I # couldn't find any way to prevent building this by passing cargo flags. # See https://gitlab.com/Kanedias/html2md/-/blob/0.2.10/Cargo.toml#L20 - rm "$out/lib/libhtml2md.so" + rm "$out/lib/libhtml2md${stdenv.hostPlatform.extensions.sharedLibrary}" rmdir "$out/lib" - ''; + ''; meta = with lib; { description = "An implementation of the Language Server Protocol for LaTeX"; diff --git a/pkgs/development/tools/ocaml/dune/1.nix b/pkgs/development/tools/ocaml/dune/1.nix index a16b3ab23f2..ad908787911 100644 --- a/pkgs/development/tools/ocaml/dune/1.nix +++ b/pkgs/development/tools/ocaml/dune/1.nix @@ -2,7 +2,7 @@ if !lib.versionAtLeast ocaml.version "4.02" || lib.versionAtLeast ocaml.version "4.12" -then throw "dune is not available for OCaml ${ocaml.version}" +then throw "dune 1 is not available for OCaml ${ocaml.version}" else stdenv.mkDerivation rec { diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix index f1365792fbc..2acc7e5bdf3 100644 --- a/pkgs/development/tools/ocaml/dune/2.nix +++ b/pkgs/development/tools/ocaml/dune/2.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, ocaml, findlib }: if lib.versionOlder ocaml.version "4.08" -then throw "dune is not available for OCaml ${ocaml.version}" +then throw "dune 2 is not available for OCaml ${ocaml.version}" else stdenv.mkDerivation rec { diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix index 97c03fb4574..6bac5a95fcb 100644 --- a/pkgs/development/tools/scenebuilder/default.nix +++ b/pkgs/development/tools/scenebuilder/default.nix @@ -1,7 +1,6 @@ -{ lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }: +{ lib, stdenv, fetchFromGitHub, jdk11, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }: let - # The default one still uses jdk8 (#89731) - gradle = (gradleGen.override (old: { java = jdk; })).gradle_6_8; + gradle = (gradleGen.override (old: { java = jdk11; })).gradle_6_8; pname = "scenebuilder"; version = "15.0.1"; @@ -17,7 +16,7 @@ let name = "${pname}-deps"; inherit src; - nativeBuildInputs = [ jdk perl gradle ]; + nativeBuildInputs = [ jdk11 perl gradle ]; buildPhase = '' export GRADLE_USER_HOME=$(mktemp -d); @@ -77,7 +76,7 @@ let in stdenv.mkDerivation rec { inherit pname src version; - nativeBuildInputs = [ jdk gradle makeWrapper glib wrapGAppsHook ]; + nativeBuildInputs = [ jdk11 gradle makeWrapper glib wrapGAppsHook ]; dontWrapGApps = true; # prevent double wrapping @@ -101,7 +100,7 @@ in stdenv.mkDerivation rec { ''; postFixup = '' - makeWrapper ${jdk}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}" + makeWrapper ${jdk11}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}" ''; desktopItems = [ desktopItem ]; diff --git a/pkgs/development/web/cog/default.nix b/pkgs/development/web/cog/default.nix index ed94b56e695..a08687e70fd 100644 --- a/pkgs/development/web/cog/default.nix +++ b/pkgs/development/web/cog/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "cog"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitHub { owner = "igalia"; repo = "cog"; rev = "v${version}"; - sha256 = "sha256-E6rACj25rdV5dww91PzYEX1r2A9YLNgAVyiYceP1KI8="; + sha256 = "sha256-eF7rvOjZntcMmn622342yqfp4ksZ6R/FFBT36bYCViE="; }; buildInputs = [ diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix index 98fb32d8d6a..80e68003b4e 100644 --- a/pkgs/development/web/deno/default.nix +++ b/pkgs/development/web/deno/default.nix @@ -11,6 +11,7 @@ , CoreServices , Metal , Foundation +, QuartzCore , librusty_v8 ? callPackage ./librusty_v8.nix { } }: @@ -31,7 +32,8 @@ rustPlatform.buildRustPackage rec { buildAndTestSubdir = "cli"; - buildInputs = lib.optionals stdenv.isDarwin [ libiconv libobjc Security CoreServices Metal Foundation ]; + buildInputs = lib.optionals stdenv.isDarwin + [ libiconv libobjc Security CoreServices Metal Foundation QuartzCore ]; # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem # To avoid this we pre-download the file and place it in the locations it will require it in advance diff --git a/pkgs/misc/drivers/spacenavd/default.nix b/pkgs/misc/drivers/spacenavd/default.nix index 734b2229c87..fe6d206c3e9 100644 --- a/pkgs/misc/drivers/spacenavd/default.nix +++ b/pkgs/misc/drivers/spacenavd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, libX11 }: +{ stdenv, lib, fetchFromGitHub, fetchpatch, libX11, IOKit }: stdenv.mkDerivation rec { version = "0.8"; @@ -11,9 +11,20 @@ stdenv.mkDerivation rec { sha256 = "1zz0cm5cgvp9s5n4nzksl8rb11c7sw214bdafzra74smvqfjcjcf"; }; - buildInputs = [ libX11 ]; + patches = [ + # Fixes Darwin: https://github.com/FreeSpacenav/spacenavd/pull/38 + (fetchpatch { + url = "https://github.com/FreeSpacenav/spacenavd/commit/d6a25d5c3f49b9676d039775efc8bf854737c43c.patch"; + sha256 = "02pdgcvaqc20qf9hi3r73nb9ds7yk2ps9nnxaj0x9p50xjnhfg5c"; + }) + ]; - configureFlags = [ "--disable-debug"]; + buildInputs = [ libX11 ] + ++ lib.optional stdenv.isDarwin IOKit; + + configureFlags = [ "--disable-debug" ]; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; meta = with lib; { homepage = "http://spacenav.sourceforge.net/"; diff --git a/pkgs/misc/t-rec/default.nix b/pkgs/misc/t-rec/default.nix index cb8ccc8c6ae..b9663cee5c3 100644 --- a/pkgs/misc/t-rec/default.nix +++ b/pkgs/misc/t-rec/default.nix @@ -1,4 +1,5 @@ -{ lib, imagemagick, ffmpeg, rustPlatform, fetchFromGitHub, makeWrapper }: +{ lib, stdenv, imagemagick, ffmpeg, rustPlatform, fetchFromGitHub, makeWrapper +, libiconv, Foundation }: let binPath = lib.makeBinPath [ @@ -17,8 +18,10 @@ rustPlatform.buildRustPackage rec { sha256 = "InArrBqfhDrsonjmCIPTBVOA/s2vYml9Ay6cdrKLd7c="; }; - buildInputs = [ imagemagick ]; nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ imagemagick ] + ++ lib.optionals stdenv.isDarwin [ libiconv Foundation ]; + postInstall = '' wrapProgram "$out/bin/t-rec" --prefix PATH : "${binPath}" ''; diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix index c5774aeb21a..44e2bdb1005 100644 --- a/pkgs/misc/vscode-extensions/terraform/default.nix +++ b/pkgs/misc/vscode-extensions/terraform/default.nix @@ -3,13 +3,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec { mktplcRef = { name = "terraform"; publisher = "hashicorp"; - version = "2.10.2"; + version = "2.11.0"; }; vsix = fetchurl { name = "${mktplcRef.publisher}-${mktplcRef.name}.zip"; url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/${mktplcRef.name}-${mktplcRef.version}.vsix"; - sha256 = "0fkkjkybjshgzbkc933jscxyxqwmqnhq3718pnw9hsac8qv0grrz"; + sha256 = "0wqdya353b415qxs8jczmis3q6d8fddv1pdd8jdd0w64s1ibv3sy"; }; patches = [ ./fix-terraform-ls.patch ]; diff --git a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch index 1e72b7b81ec..95e8d92da33 100644 --- a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch +++ b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch @@ -1,11 +1,11 @@ diff --git a/out/extension.js b/out/extension.js -index e815393..aeade0e 100644 +index e932d27..099126b 100644 --- a/out/extension.js +++ b/out/extension.js -@@ -141,25 +141,6 @@ function updateLanguageServer() { +@@ -143,25 +143,6 @@ function updateLanguageServer() { return __awaiter(this, void 0, void 0, function* () { - const delay = 1000 * 60 * 24; - setTimeout(updateLanguageServer, delay); // check for new updates every 24hrs + const delay = 1000 * 60 * 60 * 24; + languageServerUpdater.timeout(updateLanguageServer, delay); // check for new updates every 24hrs - // skip install if a language server binary path is set - if (!vscodeUtils_1.config('terraform').get('languageServer.pathToBinary')) { - const installer = new languageServerInstaller_1.LanguageServerInstaller(installPath, reporter); @@ -28,7 +28,7 @@ index e815393..aeade0e 100644 return startClients(); // on repeat runs with no install, this will be a no-op }); } -@@ -257,7 +238,7 @@ function pathToBinary() { +@@ -259,7 +240,7 @@ function pathToBinary() { reporter.sendTelemetryEvent('usePathToBinary'); } else { diff --git a/pkgs/os-specific/linux/ati-drivers/builder.sh b/pkgs/os-specific/linux/ati-drivers/builder.sh deleted file mode 100644 index a9e5aaef397..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/builder.sh +++ /dev/null @@ -1,302 +0,0 @@ -# TODO gentoo removes some tools because there are xorg sources (?) - -source $stdenv/setup -set -x - -die(){ echo $@; exit 1; } - -unzip $src -run_file=fglrx-$build/amd-driver-installer-$build-x86.x86_64.run -sh $run_file --extract . - -for patch in $patches;do - patch -p1 < $patch -done - -case "$system" in - x86_64-linux) - arch=x86_64 - lib_arch=lib64 - DIR_DEPENDING_ON_XORG_VERSION=xpic_64a - ;; - i686-linux) - arch=x86 - lib_arch=lib - DIR_DEPENDING_ON_XORG_VERSION=xpic - ;; - *) exit 1;; -esac - -# Handle/Build the kernel module. - -if test -z "$libsOnly"; then - - kernelVersion=$(cd ${kernelDir}/lib/modules && ls) - kernelBuild=$(echo ${kernelDir}/lib/modules/$kernelVersion/build) - linuxsources=$(echo ${kernelDir}/lib/modules/$kernelVersion/source) - - # note: maybe the .config file should be used to determine this ? - # current kbuild infrastructure allows using CONFIG_* defines - # but ati sources don't use them yet.. - # copy paste from make.sh - - setSMP(){ - - linuxincludes=$kernelBuild/include - - # copied and stripped. source: make.sh: - # 3 - # linux/autoconf.h may contain this: #define CONFIG_SMP 1 - - # Before 2.6.33 autoconf.h is under linux/. - # For 2.6.33 and later autoconf.h is under generated/. - if [ -f $linuxincludes/generated/autoconf.h ]; then - autoconf_h=$linuxincludes/generated/autoconf.h - else - autoconf_h=$linuxincludes/linux/autoconf.h - fi - src_file=$autoconf_h - - [ -e $src_file ] || die "$src_file not found" - - if [ `cat $src_file | grep "#undef" | grep "CONFIG_SMP" -c` = 0 ]; then - SMP=`cat $src_file | grep CONFIG_SMP | cut -d' ' -f3` - echo "file $src_file says: SMP=$SMP" - fi - - if [ "$SMP" = 0 ]; then - echo "assuming default: SMP=$SMP" - fi - # act on final result - if [ ! "$SMP" = 0 ]; then - smp="-SMP" - def_smp=-D__SMP__ - fi - - } - - setModVersions(){ - ! grep CONFIG_MODVERSIONS=y $kernelBuild/.config || - def_modversions="-DMODVERSIONS" - # make.sh contains much more code to determine this whether its enabled - } - - # ============================================================== - # resolve if we are building for a kernel with a fix for CVE-2010-3081 - # On kernels with the fix, use arch_compat_alloc_user_space instead - # of compat_alloc_user_space since the latter is GPL-only - - COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space - - for src_file in \ - $kernelBuild/arch/x86/include/asm/compat.h \ - $linuxsources/arch/x86/include/asm/compat.h \ - $kernelBuild/include/asm-x86_64/compat.h \ - $linuxsources/include/asm-x86_64/compat.h \ - $kernelBuild/include/asm/compat.h; - do - if [ -e $src_file ]; - then - break - fi - done - if [ ! -e $src_file ]; - then - echo "Warning: x86 compat.h not found in kernel headers" - echo "neither arch/x86/include/asm/compat.h nor include/asm-x86_64/compat.h" - echo "could be found in $kernelBuild or $linuxsources" - echo "" - else - if [ `cat $src_file | grep -c arch_compat_alloc_user_space` -gt 0 ] - then - COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space - fi - echo "file $src_file says: COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE" - fi - - # make.sh contains some code figuring out whether to use these or not.. - PAGE_ATTR_FIX=0 - setSMP - setModVersions - CC=gcc - MODULE=fglrx - LIBIP_PREFIX=$TMP/arch/$arch/lib/modules/fglrx/build_mod - [ -d $LIBIP_PREFIX ] - GCC_MAJOR="`gcc --version | grep -o -e ") ." | head -1 | cut -d " " -f 2`" - - { # build .ko module - cd ./common/lib/modules/fglrx/build_mod/2.6.x - echo .lib${MODULE}_ip.a.GCC${GCC_MAJOR}.cmd - echo 'This is a dummy file created to suppress this warning: could not find /lib/modules/fglrx/build_mod/2.6.x/.libfglrx_ip.a.GCC4.cmd for /lib/modules/fglrx/build_mod/2.6.x/libfglrx_ip.a.GCC4' > lib${MODULE}_ip.a.GCC${GCC_MAJOR}.cmd - - sed -i -e "s@COMPAT_ALLOC_USER_SPACE@$COMPAT_ALLOC_USER_SPACE@" ../kcl_ioctl.c - - make CC=${CC} \ - LIBIP_PREFIX=$(echo "$LIBIP_PREFIX" | sed -e 's|^\([^/]\)|../\1|') \ - MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ - KVER=$kernelVersion \ - KDIR=$kernelBuild \ - PAGE_ATTR_FIX=$PAGE_ATTR_FIX \ - -j4 - - cd $TMP - } - -fi - -{ # install - mkdir -p $out/lib/xorg - cp -r common/usr/include $out - cp -r common/usr/sbin $out - cp -r common/usr/share $out - mkdir $out/bin/ - cp -f common/usr/X11R6/bin/* $out/bin/ - # cp -r arch/$arch/lib $out/lib - # what are those files used for? - cp -r common/etc $out - cp -r $DIR_DEPENDING_ON_XORG_VERSION/usr/X11R6/$lib_arch/* $out/lib/xorg - - # install kernel module - if test -z "$libsOnly"; then - t=$out/lib/modules/${kernelVersion}/kernel/drivers/misc - mkdir -p $t - - cp ./common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko $t - fi - - # should this be installed at all? - # its used by the example fglrx_gamma only - # don't use $out/lib/modules/dri because this will cause the kernel module - # aggregator code to see both: kernel version and the dri direcotry. It'll - # fail saying different kernel versions - cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/modules/dri $out/lib - cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/modules/dri/* $out/lib - cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/*.so* $out/lib - cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/fglrx/fglrx-libGL.so.1.2 $out/lib/fglrx-libGL.so.1.2 - cp -r $TMP/arch/$arch/usr/$lib_arch/* $out/lib - ln -s libatiuki.so.1.0 $out/lib/libatiuki.so.1 - ln -s fglrx-libGL.so.1.2 $out/lib/libGL.so.1 - ln -s fglrx-libGL.so.1.2 $out/lib/libGL.so - # FIXME : This file is missing or has changed versions - #ln -s libfglrx_gamma.so.1.0 $out/lib/libfglrx_gamma.so.1 - # make xorg use the ati version - ln -s $out/lib/xorg/modules/extensions/{fglrx/fglrx-libglx.so,libglx.so} - # Correct some paths that are hardcoded into binary libs. - if [ "$arch" == "x86_64" ]; then - for lib in \ - xorg/modules/extensions/fglrx/fglrx-libglx.so \ - xorg/modules/glesx.so \ - dri/fglrx_dri.so \ - fglrx_dri.so \ - fglrx-libGL.so.1.2 - do - oldPaths="/usr/X11R6/lib/modules/dri" - newPaths="/run/opengl-driver/lib/dri" - sed -i -e "s|$oldPaths|$newPaths|" $out/lib/$lib - done - else - oldPaths="/usr/X11R6/lib32/modules/dri\x00/usr/lib32/dri" - newPaths="/run/opengl-driver-32/lib/dri\x00/dev/null/dri" - sed -i -e "s|$oldPaths|$newPaths|" \ - $out/lib/xorg/modules/extensions/fglrx/fglrx-libglx.so - - for lib in \ - dri/fglrx_dri.so \ - fglrx_dri.so \ - xorg/modules/glesx.so - do - oldPaths="/usr/X11R6/lib32/modules/dri/" - newPaths="/run/opengl-driver-32/lib/dri" - sed -i -e "s|$oldPaths|$newPaths|" $out/lib/$lib - done - - oldPaths="/usr/X11R6/lib32/modules/dri\x00" - newPaths="/run/opengl-driver-32/lib/dri" - sed -i -e "s|$oldPaths|$newPaths|" $out/lib/fglrx-libGL.so.1.2 - fi - # libstdc++ and gcc are needed by some libs - for pelib1 in \ - fglrx_dri.so \ - dri/fglrx_dri.so - do - patchelf --remove-needed libX11.so.6 $out/lib/$pelib1 - done - - for pelib2 in \ - libatiadlxx.so \ - xorg/modules/glesx.so \ - dri/fglrx_dri.so \ - fglrx_dri.so \ - libaticaldd.so - do - patchelf --set-rpath $glibcDir/lib/:$libStdCxx/lib/ $out/lib/$pelib2 - done -} - -if test -z "$libsOnly"; then - -{ # build samples - mkdir -p $out/bin - mkdir -p samples - cd samples - tar xfz ../common/usr/src/ati/fglrx_sample_source.tgz - eval "$patchPhaseSamples" - - - ( # build and install fgl_glxgears - cd fgl_glxgears; - gcc -DGL_ARB_texture_multisample=1 -g \ - -I$libGL/include -I$libGLU/include \ - -I$out/include \ - -L$libGL/lib -L$libGLU/lib -lGL -lGLU -lX11 -lm \ - -o $out/bin/fgl_glxgears -Wall fgl_glxgears.c - ) - - true || ( # build and install - - ### - ## FIXME ? - # doesn't build undefined reference to `FGLRX_X11SetGamma' - # which should be contained in -lfglrx_gamma - # This should create $out/lib/libfglrx_gamma.so.1.0 ? because there is - # a symlink named libfglrx_gamma.so.1 linking to libfglrx_gamma.so.1.0 in $out/lib/ - - cd programs/fglrx_gamma - gcc -fPIC -I${libXxf86vm.dev}/include \ - -I${xorgproto}/include \ - -I$out/X11R6/include \ - -L$out/lib \ - -Wall -lm -lfglrx_gamma -lX11 -lXext -o $out/bin/fglrx_xgamma fglrx_xgamma.c - ) - - { - # patch and copy statically linked qt libs used by amdcccle - patchelf --set-interpreter $(echo $glibcDir/lib/ld-linux*.so.2) $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 && - patchelf --set-rpath $gcc/$lib_arch/ $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 && - patchelf --set-rpath $gcc/$lib_arch/:$out/share/ati/:$libXrender/lib/:$libSM/lib/:$libICE/lib/:$libfontconfig/lib/:$libfreetype/lib/ $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtGui.so.4 && - mkdir -p $out/share/ati - cp -r $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 $out/share/ati/ - cp -r $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtGui.so.4 $out/share/ati/ - # copy binaries and wrap them: - BIN=$TMP/arch/$arch/usr/X11R6/bin - patchelf --set-rpath $gcc/$lib_arch/:$out/share/ati/:$libXinerama/lib/:$libXrandr/lib/ $TMP/arch/$arch/usr/X11R6/bin/amdcccle - patchelf --set-rpath $libXrender/lib/:$libXrandr/lib/ $TMP/arch/$arch/usr/X11R6/bin/aticonfig - patchelf --shrink-rpath $BIN/amdcccle - for prog in $BIN/*; do - cp -f $prog $out/bin && - patchelf --set-interpreter $(echo $glibcDir/lib/ld-linux*.so.2) $out/bin/$(basename $prog) && - wrapProgram $out/bin/$(basename $prog) --prefix LD_LIBRARY_PATH : $out/lib/:$gcc/lib/:$out/share/ati/:$libXinerama/lib/:$libXrandr/lib/:$libfontconfig/lib/:$libfreetype/lib/${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH - done - } - - rm -f $out/lib/fglrx/switchlibglx && rm -f $out/lib/fglrx/switchlibGL - -} - -fi - -for p in $extraDRIlibs; do - for lib in $p/lib/*.so*; do - ln -s $lib $out/lib/ - done -done diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix deleted file mode 100644 index 768aa7d7e7d..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/default.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ stdenv, lib, fetchurl, kernel ? null, which -, xorg, makeWrapper, glibc, patchelf, unzip -, fontconfig, freetype, libGLU, libGL # for fgl_glxgears -, # Whether to build the libraries only (i.e. not the kernel module or - # driver utils). Used to support 32-bit binaries on 64-bit - # Linux. - libsOnly ? false -}: - -assert (!libsOnly) -> kernel != null; - -with lib; - -# This derivation requires a maximum of gcc49, Linux kernel 4.1 and xorg.xserver 1.17 -# and will not build or run using versions newer - -# If you want to use a different Xorg version probably -# DIR_DEPENDING_ON_XORG_VERSION in builder.sh has to be adopted (?) -# make sure libglx.so of ati is used. xorg.xorgserver does provide it as well -# which is a problem because it doesn't contain the xorgserver patch supporting -# the XORG_DRI_DRIVER_PATH env var. -# See https://marc.info/?l=nix-dev&m=139641585515351 for a -# workaround (TODO) - -# The gentoo ebuild contains much more "magic" and is usually a great resource to -# find patches XD - -# http://wiki.cchtml.com/index.php/Main_Page - -# /usr/lib/dri/fglrx_dri.so must point to /run/opengl-driver/lib/fglrx_dri.so -# This is done in the builder script. - -stdenv.mkDerivation rec { - - version = "15.12"; - pname = "ati-drivers"; - build = "15.302"; - - linuxonly = - if stdenv.hostPlatform.system == "i686-linux" then - true - else if stdenv.hostPlatform.system == "x86_64-linux" then - true - else throw "ati-drivers are Linux only. Sorry. The build was stopped."; - - name = pname + "-" + version + (optionalString (!libsOnly) "-${kernelDir.version}"); - - builder = ./builder.sh; - gcc = stdenv.cc.cc; - libXinerama = xorg.libXinerama; - libXrandr = xorg.libXrandr; - libXrender = xorg.libXrender; - libXxf86vm = xorg.libXxf86vm; - xorgproto = xorg.xorgproto; - libSM = xorg.libSM; - libICE = xorg.libICE; - libfreetype = freetype; - libfontconfig = fontconfig; - libStdCxx = stdenv.cc.cc.lib; - - src = fetchurl { - url = - "https://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip"; - sha256 = "704f2dfc14681f76dae3b4120c87b1ded33cf43d5a1d800b6de5ca292bb61e58"; - curlOpts = "--referer https://www.amd.com/en/support"; - }; - - hardeningDisable = [ "pic" "format" ]; - - patchPhaseSamples = "patch -p2 < ${./patches/patch-samples.patch}"; - patches = [ - ./patches/15.12-xstate-fp.patch - ./patches/15.9-kcl_str.patch - ./patches/15.9-mtrr.patch - ./patches/15.9-preempt.patch - ./patches/15.9-sep_printf.patch ] - ++ optionals ( kernel != null && - (lib.versionAtLeast kernel.version "4.6") ) - [ ./patches/kernel-4.6-get_user_pages.patch - ./patches/kernel-4.6-page_cache_release-put_page.patch ] - ++ optionals ( kernel != null && - (lib.versionAtLeast kernel.version "4.7") ) - [ ./patches/4.7-arch-cpu_has_pge-v2.patch ] - ++ optionals ( kernel != null && - (lib.versionAtLeast kernel.version "4.9") ) - [ ./patches/4.9-get_user_pages.patch ]; - - nativeBuildInputs = [ unzip ]; - buildInputs = - [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM - xorg.libXrandr xorg.libXxf86vm xorg.xorgproto xorg.imake xorg.libICE - patchelf - libGLU libGL - fontconfig - freetype - makeWrapper - which - ]; - - inherit libsOnly; - - kernelDir = if libsOnly then null else kernel.dev; - - # glibc only used for setting the binaries interpreter - glibcDir = glibc.out; - - # outputs TODO: probably many fixes are needed; - LD_LIBRARY_PATH = makeLibraryPath - [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM - xorg.libXrandr xorg.libXxf86vm xorg.xorgproto xorg.imake xorg.libICE - libGLU libGL - fontconfig - freetype - stdenv.cc.cc - ]; - - # without this some applications like blender don't start, but they start - # with nvidia. This causes them to be symlinked to $out/lib so that they - # appear in /run/opengl-driver/lib which get's added to LD_LIBRARY_PATH - - extraDRIlibs = [ xorg.libXrandr.out xorg.libXrender.out xorg.libXext.out - xorg.libX11.out xorg.libXinerama.out xorg.libSM.out - xorg.libICE.out ]; - - inherit libGLU libGL; # only required to build the examples - - enableParallelBuilding = true; - - meta = with lib; { - description = "ATI Catalyst display drivers"; - homepage = "http://support.amd.com/us/gpudownload/Pages/index.aspx"; - license = licenses.unfree; - maintainers = with maintainers; [ marcweber offline jerith666 ]; - platforms = platforms.linux; - hydraPlatforms = []; - # Copied from the nvidia default.nix to prevent a store collision. - priority = 4; - }; - -} diff --git a/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch b/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch deleted file mode 100644 index 22e43fc0c7b..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Krzysztof Kolasa -Date: Thu, 26 Nov 2015 14:28:46 +0100 -Subject: [PATCH] Patch for kernel 4.4.0-rc2 - -constant change of name XSTATE_XP to name XFEATURE_MASK_FP ---- - firegl_public.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c -index 3626c7b..f071d42 100644 ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c -+++ b/common/lib/modules/fglrx/build_mod//firegl_public.c -@@ -6463,7 +6463,11 @@ static int KCL_fpu_save_init(struct task_struct *tsk) - if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP)) - #else - copy_xregs_to_kernel(&fpu->state.xsave); -- if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP)) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0) -+ if (!(fpu->state.xsave.header.xfeatures & XFEATURE_MASK_FP)) -+#else -+ if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP)) -+#endif - #endif - return 1; - } else if (static_cpu_has(X86_FEATURE_FXSR)) { diff --git a/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch b/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch deleted file mode 100644 index 20c3bc8a169..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-09-13 13:47:30.000000000 -0400 -+++ b/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-09-13 13:49:42.000000000 -0400 -@@ -169,7 +169,11 @@ int ATI_API_CALL KCL_STR_Strnicmp(const - const char* s2, - KCL_TYPE_SizeSigned count) - { -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) - return strnicmp(s1, s2, count); -+#else -+ return strncasecmp(s1, s2, count); -+#endif - } - - /** \brief Locate character in string diff --git a/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch b/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch deleted file mode 100644 index bdf70b4ccdc..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-19 23:43:22.000000000 -0400 -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-19 23:52:07.000000000 -0400 -@@ -3442,7 +3442,11 @@ int ATI_API_CALL KCL_MEM_MTRR_Support(vo - int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size) - { - #ifdef CONFIG_MTRR -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) -+ return arch_phys_wc_add(base, size); -+#else - return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); -+#endif - #else /* !CONFIG_MTRR */ - return -EPERM; - #endif /* !CONFIG_MTRR */ -@@ -3451,7 +3455,12 @@ int ATI_API_CALL KCL_MEM_MTRR_AddRegionW - int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size) - { - #ifdef CONFIG_MTRR -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) -+ arch_phys_wc_del(reg); -+ return reg; -+#else - return mtrr_del(reg, base, size); -+#endif - #else /* !CONFIG_MTRR */ - return -EPERM; - #endif /* !CONFIG_MTRR */ diff --git a/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch b/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch deleted file mode 100644 index c6598835133..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-08-30 17:36:02.000000000 -0400 -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-08-30 17:39:36.000000000 -0400 -@@ -21,6 +21,8 @@ - !!! since it requires changes to linux/init/main.c. - #endif /* !MODULE */ - -+#include -+ - // ============================================================ - #include - -@@ -4997,7 +4999,9 @@ static unsigned int kas_spin_unlock(kas_ - unsigned long ATI_API_CALL KAS_GetExecutionLevel(void) - { - unsigned long ret; -+ preempt_disable(); - ret = kas_GetExecutionLevel(); -+ preempt_enable(); - return ret; - } - -@@ -5022,8 +5026,10 @@ unsigned int ATI_API_CALL KAS_Ih_Execute - KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X\n", ih_routine, ih_context); - - //Prevent simultaneous entry on some SMP systems. -+ preempt_disable(); - if (test_and_set_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()]))) - { -+ preempt_enable(); - KCL_DEBUG1(FN_FIREGL_KAS, "The processor is handling the interrupt\n"); - return IRQ_NONE; - } -@@ -5036,9 +5042,9 @@ unsigned int ATI_API_CALL KAS_Ih_Execute - - kasSetExecutionLevel(orig_level); - spin_unlock(&kasContext.lock_ih); -- - clear_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()])); - KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret); -+ preempt_enable(); - - return ret; - } -@@ -5256,6 +5262,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A - - KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X\n", hSpinLock); - -+ preempt_disable(); - spin_lock_info.routine_type = spinlock_obj->routine_type; - spin_lock_info.plock = &(spinlock_obj->lock); - -@@ -5263,6 +5270,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A - - spinlock_obj->acquire_type = spin_lock_info.acquire_type; - spinlock_obj->flags = spin_lock_info.flags; -+ preempt_enable(); - - KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret); - return ret; -@@ -6034,6 +6042,8 @@ unsigned int ATI_API_CALL KAS_Interlocke - - KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X, 0x%08X\n", hListHead, hListEntry, phPrevEntry); - -+ preempt_disable(); -+ - /* Protect the operation with spinlock */ - spin_lock_info.routine_type = listhead_obj->routine_type; - spin_lock_info.plock = &(listhead_obj->lock); -@@ -6041,6 +6051,7 @@ unsigned int ATI_API_CALL KAS_Interlocke - if (!kas_spin_lock(&spin_lock_info)) - { - KCL_DEBUG_ERROR("Unable to grab list spinlock\n"); -+ preempt_enable(); - return 0; /* No spinlock - no operation */ - } - -@@ -6065,6 +6076,7 @@ unsigned int ATI_API_CALL KAS_Interlocke - spin_unlock_info.flags = spin_lock_info.flags; - - ret = kas_spin_unlock(&spin_unlock_info); -+ preempt_enable(); - KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret); - return ret; - } -@@ -6153,8 +6165,10 @@ unsigned int ATI_API_CALL KAS_Interlocke - spin_lock_info.routine_type = listhead_obj->routine_type; - spin_lock_info.plock = &(listhead_obj->lock); - -+ preempt_disable(); - if (!kas_spin_lock(&spin_lock_info)) - { -+ preempt_enable(); - KCL_DEBUG_ERROR("Unable to grab list spinlock"); - return 0; /* No spinlock - no operation */ - } -@@ -6178,6 +6192,7 @@ unsigned int ATI_API_CALL KAS_Interlocke - spin_unlock_info.flags = spin_lock_info.flags; - - ret = kas_spin_unlock(&spin_unlock_info); -+ preempt_enable(); - KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret); - return ret; - } diff --git a/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch b/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch deleted file mode 100644 index 3e4e8d6499a..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-14 15:14:36.000000000 -0400 -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-14 16:18:58.000000000 -0400 -@@ -649,6 +649,8 @@ static int firegl_major_proc_read(struct - *eof = 1; - - len = snprintf(buf, request, "%d\n", major); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0) -+ seq_printf(m, "%d\n", major); - #else - len = seq_printf(m, "%d\n", major); - #endif diff --git a/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch b/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch deleted file mode 100644 index cb86f5aff27..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c ---- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-18 19:47:41.000000000 +0100 -+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c 2016-08-15 15:09:37.228538907 +0200 -@@ -4518,7 +4518,11 @@ - write_cr0(cr0); - wbinvd(); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) -+ if (boot_cpu_has(X86_FEATURE_PGE)) -+#else - if (cpu_has_pge) -+#endif - { - cr4 = READ_CR4(); - WRITE_CR4(cr4 & ~X86_CR4_PGE); -@@ -4532,7 +4536,11 @@ - wbinvd(); - __flush_tlb(); - write_cr0(cr0 & 0xbfffffff); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) -+ if (boot_cpu_has(X86_FEATURE_PGE)) -+#else - if (cpu_has_pge) -+#endif - { - WRITE_CR4(cr4); - } -@@ -4559,7 +4567,11 @@ - write_cr0(cr0); - wbinvd(); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) -+ if (boot_cpu_has(X86_FEATURE_PGE)) -+#else - if (cpu_has_pge) -+#endif - { - cr4 = READ_CR4(); - WRITE_CR4(cr4 & ~X86_CR4_PGE); -@@ -4572,7 +4584,11 @@ - wbinvd(); - __flush_tlb(); - write_cr0(cr0 & 0xbfffffff); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) -+ if (boot_cpu_has(X86_FEATURE_PGE)) -+#else - if (cpu_has_pge) -+#endif - { - WRITE_CR4(cr4); - } -diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h ---- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 2015-12-18 19:47:41.000000000 +0100 -+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h 2016-08-15 15:09:05.815141238 +0200 -@@ -650,9 +650,15 @@ - #define cpu_has_pat test_bit(X86_FEATURE_PAT, (void *) &boot_cpu_data.x86_capability) - #endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) -+#ifndef boot_cpu_has(X86_FEATURE_PGE) -+#define boot_cpu_has(X86_FEATURE_PGE) test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability) -+#endif -+#else - #ifndef cpu_has_pge - #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability) - #endif -+#endif - - /* 2.6.29 defines pgprot_writecombine as a macro which resolves to a - * GPL-only function with the same name. So we always use our own diff --git a/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch b/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch deleted file mode 100644 index 8a6c42cdb1f..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit b3e4353fc68a6a024dcb95e2d61aa0afd7370233 -Author: Matt McHenry -Date: Fri Feb 3 20:19:41 2017 - - patch for 4.9 only - -diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c -index 4ce095f..3b591e1 100755 ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c -@@ -3224,7 +3224,7 @@ int ATI_API_CALL KCL_LockUserPages(unsigned long vaddr, unsigned long* page_list - int ret; - - down_read(¤t->mm->mmap_sem); -- ret = get_user_pages(vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL); -+ ret = get_user_pages(vaddr, page_cnt, 1, (struct page **)page_list, NULL); - up_read(¤t->mm->mmap_sem); - - return ret; -@@ -3242,7 +3242,7 @@ int ATI_API_CALL KCL_LockReadOnlyUserPages(unsigned long vaddr, unsigned long* p - int ret; - - down_read(¤t->mm->mmap_sem); -- ret = get_user_pages(vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL); -+ ret = get_user_pages(vaddr, page_cnt, 0, (struct page **)page_list, NULL); - up_read(¤t->mm->mmap_sem); - - return ret; diff --git a/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch b/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch deleted file mode 100644 index 1e7209ed5ed..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c -index 9c70211..b2242af 100755 ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c -@@ -3220,7 +3220,7 @@ int ATI_API_CALL KCL_LockUserPages(unsigned long vaddr, unsigned long* page_list - int ret; - - down_read(¤t->mm->mmap_sem); -- ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL); -+ ret = get_user_pages(vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL); - up_read(¤t->mm->mmap_sem); - - return ret; -@@ -3238,7 +3238,7 @@ int ATI_API_CALL KCL_LockReadOnlyUserPages(unsigned long vaddr, unsigned long* p - int ret; - - down_read(¤t->mm->mmap_sem); -- ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL); -+ ret = get_user_pages(vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL); - up_read(¤t->mm->mmap_sem); - - return ret; --- -2.9.2 - diff --git a/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch b/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch deleted file mode 100644 index 28820790e49..00000000000 --- a/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c -index b2242af..586129c 100755 ---- a/common/lib/modules/fglrx/build_mod/firegl_public.c -+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c -@@ -3249,7 +3249,7 @@ void ATI_API_CALL KCL_UnlockUserPages(unsigned long* page_list, unsigned int pag - unsigned int i; - for (i=0; i - - #ifdef _WIN32 - #include diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix index 62f95ef5322..1ff0b9a154a 100644 --- a/pkgs/os-specific/linux/ena/default.nix +++ b/pkgs/os-specific/linux/ena/default.nix @@ -1,14 +1,14 @@ { lib, stdenv, fetchFromGitHub, kernel }: stdenv.mkDerivation rec { - version = "2.4.1"; + version = "2.5.0"; name = "ena-${version}-${kernel.version}"; src = fetchFromGitHub { owner = "amzn"; repo = "amzn-drivers"; rev = "ena_linux_${version}"; - sha256 = "0f3i878g11yfw6n68p3qf125jsnggy706jhc8sc0z1xgap6qgh09"; + sha256 = "sha256-uOf/1624UtjaZtrk7XyQpeUGdTNVDnzZJZMgU86i+SM="; }; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/rtl8814au/default.nix b/pkgs/os-specific/linux/rtl8814au/default.nix index a710ef34e95..2b0fb9622a4 100644 --- a/pkgs/os-specific/linux/rtl8814au/default.nix +++ b/pkgs/os-specific/linux/rtl8814au/default.nix @@ -1,14 +1,14 @@ { lib, stdenv, fetchFromGitHub, kernel }: -stdenv.mkDerivation rec { - name = "rtl8814au-${kernel.version}-${version}"; - version = "4.3.21"; +stdenv.mkDerivation { + pname = "rtl8814au"; + version = "${kernel.version}-unstable-2021-05-18"; src = fetchFromGitHub { - owner = "zebulon2"; - repo = "rtl8814au"; - rev = "a58c56a5a6cb99ffb872f07cb67b68197911854f"; - sha256 = "1ffm67da183nz009gm5v9w1bab081hrm113kk8knl9s5qbqnn13q"; + owner = "morrownr"; + repo = "8814au"; + rev = "388786c864f9b1437fc4d934b1eccf6d7f1e1355"; + sha256 = "sha256-2EnheODPFWTGN/fz45LWRSOGeV6pTENEUrehahj+PJ4="; }; buildInputs = kernel.moduleBuildDependencies; @@ -31,9 +31,8 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Realtek 8814AU USB WiFi driver"; - homepage = "https://github.com/zebulon2/rtl8814au"; - license = licenses.gpl2; + homepage = "https://github.com/morrownr/8814au"; + license = licenses.gpl2Only; maintainers = [ maintainers.lassulus ]; - platforms = [ "x86_64-linux" "i686-linux" ]; }; } diff --git a/pkgs/os-specific/linux/rtl8821ce/default.nix b/pkgs/os-specific/linux/rtl8821ce/default.nix index cb8a02bcf30..b94bd3128e4 100644 --- a/pkgs/os-specific/linux/rtl8821ce/default.nix +++ b/pkgs/os-specific/linux/rtl8821ce/default.nix @@ -33,6 +33,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/tomaspinho/rtl8821ce"; license = licenses.gpl2Only; platforms = platforms.linux; + broken = stdenv.isAarch64; maintainers = with maintainers; [ hhm ]; }; } diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index a4598122777..854b476bbc7 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -89,7 +89,7 @@ "bloomsky" = ps: with ps; [ ]; "blueprint" = ps: with ps; [ ]; "bluesound" = ps: with ps; [ xmltodict ]; - "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL] + "bluetooth_le_tracker" = ps: with ps; [ pygatt ]; "bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ]; "bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense "bme680" = ps: with ps; [ bme680 smbus-cffi ]; @@ -755,7 +755,7 @@ "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub - "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL] + "skybeacon" = ps: with ps; [ pygatt ]; "skybell" = ps: with ps; [ skybellpy ]; "slack" = ps: with ps; [ slackclient ]; "sleepiq" = ps: with ps; [ sleepyq ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 52b049e4576..bb5af00bb8f 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -2,6 +2,7 @@ , lib , fetchFromGitHub , python3 +, inetutils , nixosTests # Look up dependencies of specified components in component-packages.nix @@ -55,6 +56,46 @@ let (mkOverride "ring-doorbell" "0.6.2" "fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560") + # Pinned due to API changes in pyflunearyou>=2.0 + (self: super: { + pyflunearyou = super.pyflunearyou.overridePythonAttrs (oldAttrs: rec { + version = "1.0.7"; + src = fetchFromGitHub { + owner = "bachya"; + repo = "pyflunearyou"; + rev = version; + sha256 = "0hq55k298m9a90qb3lasw9bi093hzndrah00rfq94bp53aq0is99"; + }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "poetry.masonry.api" "poetry.core.masonry.api" \ + --replace 'msgpack = "^0.6.2"' 'msgpack = "*"' \ + --replace 'ujson = "^1.35"' 'ujson = "*"' + ''; + }); + }) + + # Pinned due to API changes in pylast 4.2.1 + (mkOverride "pylast" "4.2.0" + "0zd0dn2l738ndz62vpa751z0ldnm91dcz9zzbvxv53r08l0s9yf3") + + # Pinned due to API changes in pyopenuv>=1.1.0 + (self: super: { + pyopenuv = super.pyopenuv.overridePythonAttrs (oldAttrs: rec { + version = "1.0.13"; + src = fetchFromGitHub { + owner = "bachya"; + repo = "pyopenuv"; + rev = version; + sha256 = "1gx9xjkyvqqy8410lnbshq1j5y4cb0cdc4m505g17rwdzdwb01y8"; + }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "poetry.masonry.api" "poetry.core.masonry.api" + ''; + }); + }) + # Pinned due to API changes in pyruckus>0.12 (self: super: { pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec { @@ -199,33 +240,69 @@ in with py.pkgs; buildPythonApplication rec { # services. Before adding new components to this list make sure we have all # its dependencies packaged and listed in ./component-packages.nix. componentTests = [ + "abode" "accuweather" + "acmeda" + "adguard" + "advantage_air" + "agent_dvr" + "air_quality" "airly" + "airnow" + "airvisual" + "alarm_control_panel" + "alarmdecoder" + "alert" + "alexa" + "almond" + "ambiclimate" + "ambient_station" "analytics" "androidtv" - "alert" + "apache_kafka" "api" + "apple_tv" + "apprise" + "arlo" + "asuswrt" + "august" + "aurora" "auth" "automation" + "awair" + "aws" "axis" "bayesian" "binary_sensor" + "blackbird" + "blueprint" + "bluetooth_le_tracker" + "braviatv" + "broadlink" "brother" + "bsblan" "caldav" "calendar" "camera" "canary" "cast" + "cert_expiry" "climacell" "climate" "cloud" + "cloudflare" "comfoconnect" "command_line" + "compensation" "config" "configurator" "conversation" + "coronavirus" "counter" "cover" + "daikin" + "darksky" + "datadog" "deconz" "default_config" "demo" @@ -235,22 +312,42 @@ in with py.pkgs; buildPythonApplication rec { "device_sun_light_trigger" "device_tracker" "devolo_home_control" + "dexcom" "dhcp" + "dialogflow" "discovery" "dsmr" + "dte_energy_bridge" + "duckdns" + "dyson" + "eafm" "econet" + "efergy" + "emonitor" "emulated_hue" "esphome" - "fan" + "everlights" + "ezviz" "faa_delays" + "facebook" + "facebox" + "fail2ban" + "fan" + "feedreader" "ffmpeg" + "fido" "file" "filesize" "filter" + "firmata" + "flo" + "flume" + "flunearyou" "flux" "folder" "folder_watcher" "freebox" + "freedns" "fritz" "fritzbox" "fritzbox_callmonitor" @@ -259,59 +356,97 @@ in with py.pkgs; buildPythonApplication rec { "generic_thermostat" "geo_json_events" "geo_location" + "geofency" + "glances" + "google" + "google_assistant" + "google_domains" + "google_pubsub" + "google_translate" + "google_travel_time" + "google_wifi" + "gpslogger" + "graphite" "group" + "guardian" + "harmony" + "hassio" "hddtemp" "history" "history_stats" "home_connect" "home_plus_control" + "homeassistant" "homekit" "homekit_controller" - "homeassistant" "homematic" "homematicip_cloud" "html5" "http" "hue" + "humidifier" "hyperion" + "ialarm" "iaqualink" + "icloud" "ifttt" "image" "image_processing" + "imap_email_content" "influxdb" "input_boolean" "input_datetime" - "input_text" "input_number" "input_select" + "input_text" + "insteon" + "integration" "intent" "intent_script" + "ios" "ipp" + "iqvia" "islamic_prayer_times" "jewish_calendar" + "kira" "kmtronic" "knx" "kodi" + "lastfm" + "lcn" "light" "litterrobot" "local_file" "local_ip" + "locative" "lock" "logbook" "logentries" "logger" + "london_air" "lovelace" + "luftdaten" "lutron_caseta" + "lyric" + "mailbox" "manual" "manual_mqtt" "mazda" "media_player" "media_source" + "meraki" "met" "met_eireann" + "microsoft_face" + "microsoft_face_detect" + "microsoft_face_identify" + "mikrotik" + "min_max" "minecraft_server" + "minio" "mobile_app" "modbus" + "mold_indicator" "moon" "motioneye" "mqtt" @@ -321,33 +456,66 @@ in with py.pkgs; buildPythonApplication rec { "mqtt_statestream" "mullvad" "mutesync" + "my" + "myq" + "mysensors" + "namecheapdns" + "neato" + "netatmo" "nexia" + "no_ip" "notify" "notion" + "nuki" "number" + "nws" "nx584" "omnilogic" + "onboarding" "ondilo_ico" + "openalpr_cloud" + "openalpr_local" "openerz" + "openhardwaremonitor" "opentherm_gw" + "openuv" + "openweathermap" + "opnsense" "ovo_energy" + "owntracks" "ozw" "panel_custom" "panel_iframe" "persistent_notification" "person" "philips_js" + "pi_hole" + "picnic" + "ping" "plaato" + "plant" + "plex" "plugwise" + "poolsense" + "profiler" "prometheus" "proximity" "push" + "pushbullet" "pvpc_hourly_pricing" "python_script" + "rachio" + "radarr" + "rainmachine" "random" + "recollect_waste" "recorder" + "reddit" + "remote" "rest" "rest_command" + "ring" + "risco" "rituals_perfume_genie" "rmvtransport" "roku" @@ -355,66 +523,125 @@ in with py.pkgs; buildPythonApplication rec { "rss_feed_template" "ruckus_unleashed" "safe_mode" + "samsungtv" "scene" "screenlogic" "script" "search" + "season" + "sensor" + "sentry" + "sharkiq" "shell_command" + "shelly" "shopping_list" + "sigfox" + "sighthound" "simplisafe" "simulated" + "slack" "sleepiq" "sma" - "smhi" - "sensor" - "slack" + "smappee" "smartthings" "smarttub" + "smhi" "smtp" - "smappee" + "snips" "solaredge" + "soma" + "somfy" "sonos" + "soundtouch" + "spaceapi" + "speedtestdotnet" "spotify" "sql" + "squeezebox" "ssdp" + "startca" + "statistics" + "statsd" "stream" + "stt" "subaru" "sun" "surepetcare" "switch" + "switcher_kis" "system_health" "system_log" + "tado" "tag" "tasmota" "tcp" + "telegram" + "tellduslive" "template" "tesla" "threshold" + "tile" "time_date" "timer" "tod" + "tomato" + "toon" + "tplink" "trace" + "transmission" + "trend" "tts" + "tuya" + "twentemilieu" + "twilio" + "twinkly" + "twitch" + "uk_transport" + "unifi" + "unifi_direct" "universal" "updater" "upnp" "uptime" + "usgs_earthquakes_feed" + "utility_meter" + "uvc" "vacuum" + "velbus" + "vera" "verisure" "version" "vesync" + "vizio" + "voicerss" + "volumio" + "vultr" + "wake_on_lan" + "water_heater" + "waze_travel_time" "weather" "webhook" + "webostv" "websocket_api" "wemo" + "wiffi" + "wilight" "wled" "workday" "worldclock" + "wsdot" + "wunderground" + "xiaomi" + "xiaomi_aqara" "xiaomi_miio" + "yamaha" "yandex_transport" + "yandextts" "yeelight" "zeroconf" + "zerproc" "zha" + "zodiac" "zone" "zwave" "zwave_js" @@ -423,19 +650,35 @@ in with py.pkgs; buildPythonApplication rec { ]; pytestFlagsArray = [ - # limit amout of runners to reduce race conditions - "-n auto" + # parallelize test run + "--numprocesses auto" + # assign tests grouped by file to workers + "--dist loadfile" # retry racy tests that end in "RuntimeError: Event loop is closed" "--reruns 3" "--only-rerun RuntimeError" - # assign tests grouped by file to workers - "--dist loadfile" # enable full variable printing on error "--showlocals" - # tests are located in tests/ - "tests" # screenlogic/test_config_flow.py: Tries to send out UDP broadcasts "--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect" + # asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error + "--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed" + # shelly/test_config_flow.py: Tries to join multicast group + "--deselect tests/components/shelly/test_config_flow.py::test_form" + "--deselect tests/components/shelly/test_config_flow.py::test_title_without_name" + "--deselect tests/components/shelly/test_config_flow.py::test_form_auth" + "--deselect tests/components/shelly/test_config_flow.py::test_form_errors_test_connection" + "--deselect tests/components/shelly/test_config_flow.py::test_user_setup_ignored_device" + "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection" + "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection" + "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection" + "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf" + "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device" + "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error" + "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error" + "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth" + # tests are located in tests/ + "tests" # dynamically add packages required for component tests ] ++ map (component: "tests/components/" + component) componentTests; @@ -464,6 +707,9 @@ in with py.pkgs; buildPythonApplication rec { "test_executor_shutdown_can_interrupt_threads" # {'theme_color': '#03A9F4'} != {'theme_color': 'blue'} "test_webhook_handle_get_config" + # onboarding tests rpi_power component, for which we are lacking rpi_bad_power library + "test_onboarding_core_sets_up_rpi_power" + "test_onboarding_core_no_rpi_power" ]; preCheck = '' @@ -472,6 +718,9 @@ in with py.pkgs; buildPythonApplication rec { # the tests require the existance of a media dir mkdir /build/media + # put ping binary into PATH, e.g. for wake_on_lan tests + export PATH=${inetutils}/bin:$PATH + # error out when component test directory is missing, otherwise hidden by xdist execution :( for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do test -d "tests/components/$component" || { diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix index 33c556fb54a..a26dd47e024 100644 --- a/pkgs/servers/http/gitlab-pages/default.nix +++ b/pkgs/servers/http/gitlab-pages/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "gitlab-pages"; - version = "1.38.0"; + version = "1.39.0"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-pages"; rev = "v${version}"; - sha256 = "sha256-QaqZGTkNAzQEqlwccAWPDP91BSc9vRDEsCBca/lEXW4="; + sha256 = "sha256-eyg2o/5k7/zagYjkYJOnJrHeoszbRkmdl7UgO+rmKyc="; }; - vendorSha256 = "sha256-uuwuiGQWLIQ5UJuCKDBEvCPo2+AXtJ54ARK431qiakc="; + vendorSha256 = "sha256-aedJ7vsv70aybjqBfUnSr4qhlFdY7jUUOSas3vXskpM="; subPackages = [ "." ]; meta = with lib; { diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix index 6a839351da4..dcb3ed7a25a 100644 --- a/pkgs/servers/jackett/default.nix +++ b/pkgs/servers/jackett/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "jackett"; - version = "0.17.1027"; + version = "0.18.15"; src = fetchurl { url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz"; - sha256 = "sha256:1kmi4f1ghx82rfd8y4laggg8cs9apnhcdkakfi0mah7hqcnqmhm3"; + sha256 = "sha256-z2xmF4FIv+z7ybPE7b8ZeC1+jlFi2H2J7HT09Bqyyhs="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index 21cd4a6b86c..227305dd0ea 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -12,11 +12,11 @@ let in buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.33.2"; + version = "1.34.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-9WZjuVvWpzCR1MjeMXfja/YV2YFHdo7QbjgUWDymCpM="; + sha256 = "sha256-lXVJfhcH9lKOCHn5f4Lc/OjgEYa5IpauKRhBsFXNWLw="; }; patches = [ diff --git a/pkgs/tools/filesystems/blobfuse/default.nix b/pkgs/tools/filesystems/blobfuse/default.nix index 651e93f4213..a620a07d475 100644 --- a/pkgs/tools/filesystems/blobfuse/default.nix +++ b/pkgs/tools/filesystems/blobfuse/default.nix @@ -1,19 +1,32 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, curl, gnutls, libgcrypt, libuuid, fuse }: - -stdenv.mkDerivation rec { - pname = "blobfuse"; - version = "1.0.2"; +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, curl, gnutls, libgcrypt, libuuid, fuse, boost }: +let + version = "1.3.7"; src = fetchFromGitHub { owner = "Azure"; repo = "azure-storage-fuse"; - rev = "v${version}"; - sha256 = "1qh04z1fsj1l6l12sz9yl2sy9hwlrnzac54hwrr7wvsgv90n9gbp"; + rev = "blobfuse-${version}-Linux"; + sha256 = "sha256-yihIuS4AG489U7eBi/p7H6S7Cg54kkQeNVCexxQZ60A="; }; + cpplite = stdenv.mkDerivation rec { + pname = "cpplite"; + inherit version src; + + sourceRoot = "source/cpplite"; + patches = [ ./install-adls.patch ]; + + cmakeFlags = [ "-DBUILD_ADLS=ON" "-DUSE_OPENSSL=OFF" ]; + + buildInputs = [ curl libuuid gnutls ]; + nativeBuildInputs = [ cmake pkg-config ]; + }; +in stdenv.mkDerivation rec { + pname = "blobfuse"; + inherit version src; NIX_CFLAGS_COMPILE = "-Wno-error=catch-value"; - buildInputs = [ curl gnutls libgcrypt libuuid fuse ]; + buildInputs = [ curl gnutls libgcrypt libuuid fuse boost cpplite ]; nativeBuildInputs = [ cmake pkg-config ]; meta = with lib; { diff --git a/pkgs/tools/filesystems/blobfuse/install-adls.patch b/pkgs/tools/filesystems/blobfuse/install-adls.patch new file mode 100644 index 00000000000..e48f4d592f6 --- /dev/null +++ b/pkgs/tools/filesystems/blobfuse/install-adls.patch @@ -0,0 +1,14 @@ +diff --git a/adls/CMakeLists.txt b/adls/CMakeLists.txt +index 1fb7146..22e663a 100644 +--- a/adls/CMakeLists.txt ++++ b/adls/CMakeLists.txt +@@ -50,3 +50,9 @@ if(BUILD_TESTS) + string(REGEX REPLACE "([^;]+)" "${CMAKE_CURRENT_SOURCE_DIR}/\\1" AZURE_STORAGE_ADLS_TEST_SOURCES "${AZURE_STORAGE_ADLS_TEST_SOURCES}") + set(AZURE_STORAGE_ADLS_TEST_SOURCES ${AZURE_STORAGE_ADLS_TEST_SOURCES} PARENT_SCOPE) + endif() ++ ++install(TARGETS azure-storage-adls ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib ++ RUNTIME DESTINATION bin) ++ diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix index 8d40200a9a7..7ac242c88f8 100644 --- a/pkgs/tools/misc/macchina/default.nix +++ b/pkgs/tools/misc/macchina/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { pname = "macchina"; - version = "0.7.2"; + version = "0.8.1"; src = fetchFromGitHub { owner = "Macchina-CLI"; repo = pname; rev = "v${version}"; - sha256 = "sha256-ICiU0emo5lEs6996TwkauuBWb2+Yy6lL+/x7zQgO470="; + sha256 = "04ya8sa0qhj0g3h5fi5fmx0xg1glg993xad4glfm317spgkff6z7"; }; - cargoSha256 = "sha256-OfOh0YXeLT/kBuR9SOV7pHa8Z4b6+JvtVwqqwd1hCJY="; + cargoSha256 = "1gch2742zv0f23mq8ppmi75lmjj5m3s14wlsr72nd8hyn3ff7kbw"; nativeBuildInputs = [ installShellFiles ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ]; diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix index d115997498b..ae580545114 100644 --- a/pkgs/tools/misc/silicon/default.nix +++ b/pkgs/tools/misc/silicon/default.nix @@ -13,6 +13,7 @@ , AppKit , CoreText , Security +, fira-code }: rustPlatform.buildRustPackage rec { @@ -28,7 +29,7 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-sUPOf9er+BOMqDJ8C6+Xjjqj6NQUV2JTzGA4yUWtDWM="; - buildInputs = [ llvmPackages.libclang expat freetype ] + buildInputs = [ llvmPackages.libclang expat freetype fira-code ] ++ lib.optionals stdenv.isLinux [ libxcb ] ++ lib.optionals stdenv.isDarwin [ libiconv AppKit CoreText Security ]; diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix index aad76062e36..2e506376851 100644 --- a/pkgs/tools/misc/xvfb-run/default.nix +++ b/pkgs/tools/misc/xvfb-run/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation { ''; meta = with lib; { - platforms = platforms.unix; + platforms = platforms.linux; license = licenses.gpl2; }; } diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix index 1059baf13ee..24b7176e82b 100644 --- a/pkgs/tools/networking/libreswan/default.nix +++ b/pkgs/tools/networking/libreswan/default.nix @@ -1,71 +1,114 @@ -{ lib, stdenv, fetchurl, makeWrapper, - pkg-config, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr, - bash, iproute2, iptables, procps, coreutils, gnused, gawk, nss, which, python3, - docs ? false, xmlto, libselinux, ldns - }: +{ lib +, stdenv +, fetchurl +, fetchpatch +, nixosTests +, pkg-config +, systemd +, gmp +, unbound +, bison +, flex +, pam +, libevent +, libcap_ng +, curl +, nspr +, bash +, iproute2 +, iptables +, procps +, coreutils +, gnused +, gawk +, nss +, which +, python3 +, libselinux +, ldns +, xmlto +, docbook_xml_dtd_412 +, docbook_xsl +, findXMLCatalogs +}: let + # Tools needed by ipsec scripts binPath = lib.makeBinPath [ - bash iproute2 iptables procps coreutils gnused gawk nss.tools which python3 + iproute2 iptables procps + coreutils gnused gawk + nss.tools which ]; in -assert docs -> xmlto != null; -assert stdenv.isLinux -> libselinux != null; - stdenv.mkDerivation rec { pname = "libreswan"; - version = "3.32"; + version = "4.4"; src = fetchurl { url = "https://download.libreswan.org/${pname}-${version}.tar.gz"; - sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3"; + sha256 = "0xj974yc0y1r7235zl4jhvxqz3bpb8js2fy9ic820zq9swh0lgsz"; }; strictDeps = true; - # These flags were added to compile v3.18. Try to lift them when updating. - NIX_CFLAGS_COMPILE = toString [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral" - # these flags were added to build with gcc7 - "-Wno-error=implicit-fallthrough" - "-Wno-error=format-truncation" - "-Wno-error=pointer-compare" - "-Wno-error=stringop-truncation" - # The following flag allows libreswan v3.32 to work with NSS 3.22, see - # https://github.com/libreswan/libreswan/issues/334. - # This flag should not be needed for libreswan v3.33 (which is not yet released). - "-DNSS_PKCS11_2_0_COMPAT=1" - ]; - nativeBuildInputs = [ bison flex - makeWrapper pkg-config + xmlto + docbook_xml_dtd_412 + docbook_xsl + findXMLCatalogs ]; - buildInputs = [ bash iproute2 iptables systemd coreutils gnused gawk gmp unbound pam libevent - libcap_ng curl nspr nss python3 ldns ] - ++ lib.optional docs xmlto - ++ lib.optional stdenv.isLinux libselinux; + buildInputs = [ + systemd coreutils + gnused gawk gmp unbound pam libevent + libcap_ng curl nspr nss ldns + # needed to patch shebangs + python3 bash + ] ++ lib.optional stdenv.isLinux libselinux; + + patches = [ + # Fix compilation on aarch64, remove on next update + (fetchpatch { + url = "https://github.com/libreswan/libreswan/commit/ea50d36d2886e44317ba5ba841de1d1bf91aee6c.patch"; + sha256 = "1jp89rm9jp55zmiyimyhg7yadj0fwwxaw7i5gyclrs38w3y1aacj"; + }) + ]; prePatch = '' - # Correct bash path - sed -i -e 's|/bin/bash|/usr/bin/env bash|' mk/config.mk + # Correct iproute2 path + sed -e 's|"/sbin/ip"|"${iproute2}/bin/ip"|' \ + -e 's|"/sbin/iptables"|"${iptables}/bin/iptables"|' \ + -i initsystems/systemd/ipsec.service.in \ + programs/verify/verify.in - # Fix systemd unit directory, and prevent the makefile from trying to reload the - # systemd daemon or create tmpfiles - sed -i -e 's|UNITDIR=.*$|UNITDIR=$\{out}/etc/systemd/system/|g' \ - -e 's|TMPFILESDIR=.*$|TMPFILESDIR=$\{out}/tmpfiles.d/|g' \ - -e 's|systemctl|true|g' \ - -e 's|systemd-tmpfiles|true|g' \ - initsystems/systemd/Makefile + # Prevent the makefile from trying to + # reload the systemd daemon or create tmpfiles + sed -e 's|systemctl|true|g' \ + -e 's|systemd-tmpfiles|true|g' \ + -i initsystems/systemd/Makefile # Fix the ipsec program from crushing the PATH - sed -i -e 's|\(PATH=".*"\):.*$|\1:$PATH|' programs/ipsec/ipsec.in + sed -e 's|\(PATH=".*"\):.*$|\1:$PATH|' -i programs/ipsec/ipsec.in # Fix python script to use the correct python - sed -i -e 's|#!/usr/bin/python|#!/usr/bin/env python|' -e 's/^\(\W*\)installstartcheck()/\1sscmd = "ss"\n\0/' programs/verify/verify.in + sed -e 's/^\(\W*\)installstartcheck()/\1sscmd = "ss"\n\0/' \ + -i programs/verify/verify.in + + # Replace wget with curl to save a dependency + curlArgs='-s --remote-name-all --output-dir' + sed -e "s|wget -q -P|${curl}/bin/curl $curlArgs|g" \ + -i programs/letsencrypt/letsencrypt.in + + # Patch the Makefile: + # 1. correct the pam.d directory install path + # 2. do not create the /var/lib/ directory + sed -e 's|$(DESTDIR)/etc/pam.d|$(out)/etc/pam.d|' \ + -e '/test ! -d $(NSSDIR)/,+3d' \ + -i configs/Makefile ''; # Set appropriate paths for build @@ -73,10 +116,10 @@ stdenv.mkDerivation rec { makeFlags = [ "INITSYSTEM=systemd" - (if docs then "all" else "base") + "UNITDIR=$(out)/etc/systemd/system/" + "TMPFILESDIR=$(out)/lib/tmpfiles.d/" ]; - installTargets = [ (if docs then "install" else "install-base") ]; # Hack to make install work installFlags = [ "FINALVARDIR=\${out}/var" @@ -84,18 +127,23 @@ stdenv.mkDerivation rec { ]; postInstall = '' - for i in $out/bin/* $out/libexec/ipsec/*; do - wrapProgram "$i" --prefix PATH ':' "$out/bin:${binPath}" - done + # Install examples directory (needed for letsencrypt) + cp -r docs/examples $out/share/doc/libreswan/examples ''; - enableParallelBuilding = true; + postFixup = '' + # Add a PATH to the main "ipsec" script + sed -e '0,/^$/{s||export PATH=${binPath}:$PATH|}' \ + -i $out/bin/ipsec + ''; + + passthru.tests.libreswan = nixosTests.libreswan; meta = with lib; { homepage = "https://libreswan.org"; description = "A free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange"; platforms = platforms.linux ++ platforms.freebsd; - license = licenses.gpl2; - maintainers = [ maintainers.afranchuk ]; + license = with licenses; [ gpl2Plus mpl20 ] ; + maintainers = with maintainers; [ afranchuk rnhmjoj ]; }; } diff --git a/pkgs/tools/networking/tinyproxy/default.nix b/pkgs/tools/networking/tinyproxy/default.nix index 2c6315b37c9..6aa05738498 100644 --- a/pkgs/tools/networking/tinyproxy/default.nix +++ b/pkgs/tools/networking/tinyproxy/default.nix @@ -1,55 +1,25 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, asciidoc, libxml2, - libxslt, docbook_xsl }: +{ lib, stdenv, fetchFromGitHub, autoreconfHook, perl, withDebug ? false }: stdenv.mkDerivation rec { pname = "tinyproxy"; - version = "1.10.0"; + version = "1.11.0"; src = fetchFromGitHub { - sha256 = "0gzapnllzyc005l3rs6iarjk1p5fc8mf9ysbck1mbzbd8xg6w35s"; + sha256 = "13fhkmmrwzl657dq04x2wagkpjwdrzhkl141qvzr7y7sli8j0w1n"; rev = version; repo = "tinyproxy"; owner = "tinyproxy"; }; - nativeBuildInputs = [ autoreconfHook asciidoc libxml2 libxslt docbook_xsl ]; + # perl is needed for man page generation. + nativeBuildInputs = [ autoreconfHook perl ]; - # -z flag is not supported in darwin - preAutoreconf = lib.optionalString stdenv.isDarwin '' - substituteInPlace configure.ac --replace \ - 'LDFLAGS="-Wl,-z,defs $LDFLAGS"' \ - 'LDFLAGS="-Wl, $LDFLAGS"' - ''; - - # See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=154624 - postConfigure = '' - substituteInPlace docs/man5/Makefile --replace \ - "-f manpage" \ - "--xsltproc-opts=--nonet \\ - -f manpage \\ - -L" - substituteInPlace docs/man8/Makefile --replace \ - "-f manpage" \ - "--xsltproc-opts=--nonet \\ - -f manpage \\ - -L" - ''; - - configureFlags = [ - "--disable-debug" # Turn off debugging - "--enable-xtinyproxy" # Compile in support for the XTinyproxy header, which is sent to any web server in your domain. - "--enable-filter" # Allows Tinyproxy to filter out certain domains and URLs. - "--enable-upstream" # Enable support for proxying connections through another proxy server. - "--enable-transparent" # Allow Tinyproxy to be used as a transparent proxy daemon. - "--enable-reverse" # Enable reverse proxying. - ] ++ - # See: https://github.com/tinyproxy/tinyproxy/issues/1 - lib.optional stdenv.isDarwin "--disable-regexcheck"; + configureFlags = lib.optionals withDebug [ "--enable-debug" ]; # Enable debugging support code and methods. meta = with lib; { homepage = "https://tinyproxy.github.io/"; description = "A light-weight HTTP/HTTPS proxy daemon for POSIX operating systems"; - license = licenses.gpl2; + license = licenses.gpl2Only; platforms = platforms.all; maintainers = [ maintainers.carlosdagos ]; }; diff --git a/pkgs/tools/nix/nixos-install-tools/default.nix b/pkgs/tools/nix/nixos-install-tools/default.nix new file mode 100644 index 00000000000..a129fb34521 --- /dev/null +++ b/pkgs/tools/nix/nixos-install-tools/default.nix @@ -0,0 +1,67 @@ +{ + buildEnv, + lib, + man, + nixos, + # TODO: replace indirect self-reference by proper self-reference + # https://github.com/NixOS/nixpkgs/pull/119942 + nixos-install-tools, + runCommand, +}: +let + inherit (nixos {}) config; + version = config.system.nixos.version; +in +(buildEnv { + name = "nixos-install-tools-${version}"; + paths = lib.attrValues { + # See nixos/modules/installer/tools/tools.nix + inherit (config.system.build) + nixos-install nixos-generate-config nixos-enter; + + # Required for --help. + inherit (config.system.build.manual) manpages; + }; + + extraOutputsToInstall = ["man"]; + + meta = { + description = "The essential commands from the NixOS installer as a package"; + longDescription = '' + With this package, you get the commands like nixos-generate-config and + nixos-install that you would otherwise only find on a NixOS system, such + as an installer image. + + This way, you can install NixOS using a machine that only has Nix. + ''; + license = lib.licenses.mit; + homepage = "https://nixos.org"; + platforms = lib.platforms.linux; + }; + + passthru.tests = { + nixos-install-help = runCommand "test-nixos-install-help" { + nativeBuildInputs = [ + man + nixos-install-tools + ]; + meta.description = '' + Make sure that --help works. It's somewhat non-trivial because it + requires man. + ''; + } '' + nixos-install --help | grep -F 'NixOS Reference Pages' + nixos-install --help | grep -F 'configuration.nix' + nixos-generate-config --help | grep -F 'NixOS Reference Pages' + nixos-generate-config --help | grep -F 'hardware-configuration.nix' + + # FIXME: Tries to call unshare, which it must not do for --help + # nixos-enter --help | grep -F 'NixOS Reference Pages' + + touch $out + ''; + }; +}).overrideAttrs (o: { + inherit version; + pname = "nixos-install-tools"; +}) diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix index 5c317e2d1c5..a40e2ce33c9 100644 --- a/pkgs/tools/security/sequoia/default.nix +++ b/pkgs/tools/security/sequoia/default.nix @@ -25,16 +25,16 @@ rustPlatform.buildRustPackage rec { pname = "sequoia"; # Upstream has separate version numbering for the library and the CLI frontend. # This derivation provides the CLI frontend, and thus uses its version number. - version = "0.24.0"; + version = "0.25.0"; src = fetchFromGitLab { owner = "sequoia-pgp"; repo = "sequoia"; rev = "sq/v${version}"; - sha256 = "0zavkf0grkqljyiywcprsiv8igidk8vc3yfj3fzqvbhm43vnnbdw"; + sha256 = "13f582g10vba0cpbdmqkkfzgd5jgagb640jaz1w425wf5nbh6q50"; }; - cargoSha256 = "0zv6mnjbp44vp85rw4l1nqk4yb7dzqp031r8rgqq2avbnq018yhk"; + cargoSha256 = "sha256-qIGP48uj2iQ6MVgy5anKI9QrX9vnuKh46Fmmcczda4w="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix index 03d52c100a8..6e8bdc60edb 100644 --- a/pkgs/tools/system/gdu/default.nix +++ b/pkgs/tools/system/gdu/default.nix @@ -1,4 +1,5 @@ { lib +, stdenv , buildGoModule , fetchFromGitHub , installShellFiles @@ -6,13 +7,13 @@ buildGoModule rec { pname = "gdu"; - version = "4.11.1"; + version = "4.11.2"; src = fetchFromGitHub { owner = "dundee"; repo = pname; rev = "v${version}"; - sha256 = "sha256-e9TYArmNWnK8XXcniAQCegrfWAUfTKKuClgdSTQep0U="; + sha256 = "sha256-IrlyHYAcoRvF5CA0LMKHTb8aYSawvEcU7s+a03QYI1c="; }; vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias="; @@ -27,21 +28,14 @@ buildGoModule rec { ]; postPatch = '' - substituteInPlace cmd/app/app_test.go --replace "development" "${version}" + substituteInPlace cmd/gdu/app/app_test.go --replace "development" "${version}" ''; postInstall = '' installManPage gdu.1 ''; - # tests fail with: - # dir_test.go:76: - # Error Trace: dir_test.go:76 - # Error: Not equal: - # expected: 0 - # actual : 512 - # Test: TestFlags - doCheck = false; + doCheck = !(stdenv.isAarch64 || stdenv.isDarwin); meta = with lib; { description = "Disk usage analyzer with console interface"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c51c5e48d5c..b1157c1c624 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3907,7 +3907,8 @@ in deno = callPackage ../development/web/deno { inherit (darwin) libobjc; - inherit (darwin.apple_sdk.frameworks) Security CoreServices Metal Foundation; + inherit (darwin.apple_sdk.frameworks) + Security CoreServices Metal Foundation QuartzCore; }; detox = callPackage ../tools/misc/detox { }; @@ -13434,7 +13435,10 @@ in lttv = callPackage ../development/tools/misc/lttv { }; - luaformatter = callPackage ../development/tools/luaformatter { }; + luaformatter = callPackage ../development/tools/luaformatter + (lib.optionalAttrs stdenv.isDarwin { + stdenv = overrideCC stdenv llvmPackages_latest.clang; + }); massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { }; @@ -13671,6 +13675,8 @@ in remake = callPackage ../development/tools/build-managers/remake { }; + replace-secret = callPackage ../build-support/replace-secret/replace-secret.nix { }; + replacement = callPackage ../development/tools/misc/replacement { }; retdec = callPackage ../development/tools/analysis/retdec { @@ -13876,7 +13882,7 @@ in texi2mdoc = callPackage ../tools/misc/texi2mdoc { }; texlab = callPackage ../development/tools/misc/texlab { - inherit (darwin.apple_sdk.frameworks) Security; + inherit (darwin.apple_sdk.frameworks) Security CoreServices; }; tflint = callPackage ../development/tools/analysis/tflint { }; @@ -20458,7 +20464,7 @@ in bbswitch = callPackage ../os-specific/linux/bbswitch {}; - ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { }; + ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18 chipsec = callPackage ../tools/security/chipsec { inherit kernel; @@ -26794,7 +26800,9 @@ in lavalauncher = callPackage ../applications/misc/lavalauncher { }; - t-rec = callPackage ../misc/t-rec { }; + t-rec = callPackage ../misc/t-rec { + inherit (darwin.apple_sdk.frameworks) Foundation; + }; ulauncher = callPackage ../applications/misc/ulauncher { }; @@ -26847,7 +26855,7 @@ in utox = callPackage ../applications/networking/instant-messengers/utox { }; - valentina = libsForQt514.callPackage ../applications/misc/valentina { }; + valentina = libsForQt512.callPackage ../applications/misc/valentina { }; vbindiff = callPackage ../applications/editors/vbindiff { }; @@ -30538,6 +30546,8 @@ in (import ../../nixos/lib/make-options-doc/default.nix) ({ inherit pkgs lib; } // attrs); + nixos-install-tools = callPackage ../tools/nix/nixos-install-tools { }; + nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; }; nixdoc = callPackage ../tools/nix/nixdoc {}; @@ -30899,7 +30909,9 @@ in hasktags = haskellPackages.hasktags; }; - spacenavd = callPackage ../misc/drivers/spacenavd { }; + spacenavd = callPackage ../misc/drivers/spacenavd { + inherit (darwin.apple_sdk.frameworks) IOKit; + }; spacenav-cube-example = callPackage ../applications/misc/spacenav-cube-example { }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index af4125d6713..8bea40efe64 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -86,7 +86,7 @@ in { llvmPackages = pkgs.llvmPackages_10; }; ghcHEAD = callPackage ../development/compilers/ghc/head.nix { - bootPkgs = packages.ghc8104; # no binary yet + bootPkgs = packages.ghc901; # no binary yet inherit (buildPackages.python3Packages) sphinx; buildLlvmPackages = buildPackages.llvmPackages_10; llvmPackages = pkgs.llvmPackages_10; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c1d83d7fe01..c7e140ca88d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6694,8 +6694,8 @@ in { pythonnet = callPackage ../development/python-modules/pythonnet { - # `mono >= 4.6` required to prevent crashes encountered with earlier versions. - mono = pkgs.mono4; + # Using `mono > 5`, tests are failing.. + mono = pkgs.mono5; }; python-nmap = callPackage ../development/python-modules/python-nmap { }; @@ -7770,6 +7770,8 @@ in { spinners = callPackage ../development/python-modules/spinners { }; + sphinxcontrib-actdiag = callPackage ../development/python-modules/sphinxcontrib-actdiag { }; + sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { }; sphinxcontrib-autoapi = callPackage ../development/python-modules/sphinxcontrib-autoapi { }; @@ -7792,6 +7794,8 @@ in { sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { }; + sphinxcontrib-nwdiag = callPackage ../development/python-modules/sphinxcontrib-nwdiag { }; + sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { }; sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { }; @@ -7804,6 +7808,8 @@ in { sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { }; + sphinxcontrib-seqdiag = callPackage ../development/python-modules/sphinxcontrib-seqdiag { }; + sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { }; sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz { diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index a4ce43859ce..38f5e2a4156 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -1,4 +1,8 @@ /* + This is the Hydra jobset for the `haskell-updates` branch in Nixpkgs. + You can see the status of this jobset at + https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. + To debug this expression you can use `hydra-eval-jobs` from `pkgs.hydra-unstable` which prints the jobset description to `stdout`: @@ -144,7 +148,6 @@ let koka krank lambdabot - ldgallery madlang matterhorn mueval @@ -205,7 +208,9 @@ let cabal-install = all; Cabal_3_4_0_0 = with compilerNames; [ ghc884 ghc8104 ]; funcmp = all; - haskell-language-server = all; + # Doesn't currently work on ghc-9.0: + # https://github.com/haskell/haskell-language-server/issues/297 + haskell-language-server = with compilerNames; [ ghc884 ghc8104 ]; hoogle = all; hsdns = all; jailbreak-cabal = all; @@ -226,7 +231,10 @@ let constituents = accumulateDerivations [ # haskell specific tests jobs.tests.haskell - jobs.tests.writers # writeHaskell{,Bin} + # writeHaskell and writeHaskellBin + # TODO: writeHaskell currently fails on darwin + jobs.tests.writers.x86_64-linux + jobs.tests.writers.aarch64-linux # important top-level packages jobs.cabal-install jobs.cabal2nix