Merge remote-tracking branch 'origin/master' into staging-next

Conflicts:
- pkgs/development/python-modules/django-anymail/default.nix
- pkgs/development/python-modules/dockerspawner/default.nix
This commit is contained in:
Martin Weinelt 2023-12-21 15:21:14 +01:00
commit fb9f2b0e17
63 changed files with 665 additions and 264 deletions

View file

@ -1,4 +1,5 @@
# Testers {#chap-testers} # Testers {#chap-testers}
This chapter describes several testing builders which are available in the `testers` namespace. This chapter describes several testing builders which are available in the `testers` namespace.
## `hasPkgConfigModules` {#tester-hasPkgConfigModules} ## `hasPkgConfigModules` {#tester-hasPkgConfigModules}
@ -6,19 +7,11 @@ This chapter describes several testing builders which are available in the `test
<!-- Old anchor name so links still work --> <!-- Old anchor name so links still work -->
[]{#tester-hasPkgConfigModule} []{#tester-hasPkgConfigModule}
Checks whether a package exposes a given list of `pkg-config` modules. Checks whether a package exposes a given list of `pkg-config` modules.
If the `moduleNames` argument is omitted, `hasPkgConfigModules` will If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.pkgConfigModules`.
use `meta.pkgConfigModules`.
Example: :::{.example #ex-haspkgconfigmodules-defaultvalues}
```nix # Check that `pkg-config` modules are exposed using default values
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
moduleNames = [ "libfoo" ];
};
```
If the package in question has `meta.pkgConfigModules` set, it is even simpler:
```nix ```nix
passthru.tests.pkg-config = testers.hasPkgConfigModules { passthru.tests.pkg-config = testers.hasPkgConfigModules {
@ -28,6 +21,21 @@ passthru.tests.pkg-config = testers.hasPkgConfigModules {
meta.pkgConfigModules = [ "libfoo" ]; meta.pkgConfigModules = [ "libfoo" ];
``` ```
:::
:::{.example #ex-haspkgconfigmodules-explicitmodules}
# Check that `pkg-config` modules are exposed using explicit module names
```nix
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
moduleNames = [ "libfoo" ];
};
```
:::
## `testVersion` {#tester-testVersion} ## `testVersion` {#tester-testVersion}
Checks that the output from running a command contains the specified version string in it as a whole word. Checks that the output from running a command contains the specified version string in it as a whole word.
@ -83,7 +91,18 @@ This returns a derivation with an override on the builder, with the following ef
- Move `$out` to `$out/result`, if it exists (assuming `out` is the default output) - Move `$out` to `$out/result`, if it exists (assuming `out` is the default output)
- Save the build log to `$out/testBuildFailure.log` (same) - Save the build log to `$out/testBuildFailure.log` (same)
Example: While `testBuildFailure` is designed to keep changes to the original builder's environment to a minimum, some small changes are inevitable:
- The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted.
- `stdout` and `stderr` are a pipe instead of a tty. This could be improved.
- One or two extra processes are present in the sandbox during the original builder's execution.
- The derivation and output hashes are different, but not unusual.
- The derivation includes a dependency on `buildPackages.bash` and `expect-failure.sh`, which is built to include a transitive dependency on `buildPackages.coreutils` and possibly more.
These are not added to `PATH` or any other environment variable, so they should be hard to observe.
:::{.example #ex-testBuildFailure-showingenvironmentchanges}
# Check that a build fails, and verify the changes made during build
```nix ```nix
runCommand "example" { runCommand "example" {
@ -100,24 +119,15 @@ runCommand "example" {
''; '';
``` ```
While `testBuildFailure` is designed to keep changes to the original builder's :::
environment to a minimum, some small changes are inevitable.
- The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted.
- `stdout` and `stderr` are a pipe instead of a tty. This could be improved.
- One or two extra processes are present in the sandbox during the original
builder's execution.
- The derivation and output hashes are different, but not unusual.
- The derivation includes a dependency on `buildPackages.bash` and
`expect-failure.sh`, which is built to include a transitive dependency on
`buildPackages.coreutils` and possibly more. These are not added to `PATH`
or any other environment variable, so they should be hard to observe.
## `testEqualContents` {#tester-equalContents} ## `testEqualContents` {#tester-equalContents}
Check that two paths have the same contents. Check that two paths have the same contents.
Example: :::{.example #ex-testEqualContents-toyexample}
# Check that two paths have the same contents
```nix ```nix
testers.testEqualContents { testers.testEqualContents {
@ -137,17 +147,20 @@ testers.testEqualContents {
} }
``` ```
:::
## `testEqualDerivation` {#tester-testEqualDerivation} ## `testEqualDerivation` {#tester-testEqualDerivation}
Checks that two packages produce the exact same build instructions. Checks that two packages produce the exact same build instructions.
This can be used to make sure that a certain difference of configuration, This can be used to make sure that a certain difference of configuration, such as the presence of an overlay does not cause a cache miss.
such as the presence of an overlay does not cause a cache miss.
When the derivations are equal, the return value is an empty file. When the derivations are equal, the return value is an empty file.
Otherwise, the build log explains the difference via `nix-diff`. Otherwise, the build log explains the difference via `nix-diff`.
Example: :::{.example #ex-testEqualDerivation-hello}
# Check that two packages produce the same derivation
```nix ```nix
testers.testEqualDerivation testers.testEqualDerivation
@ -156,29 +169,28 @@ testers.testEqualDerivation
(hello.overrideAttrs(o: { doCheck = true; })) (hello.overrideAttrs(o: { doCheck = true; }))
``` ```
:::
## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash} ## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
Use the derivation hash to invalidate the output via name, for testing. Use the derivation hash to invalidate the output via name, for testing.
Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation` Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
Normally, fixed output derivations can and should be cached by their output Normally, fixed output derivations can and should be cached by their output hash only, but for testing we want to re-fetch everytime the fetcher changes.
hash only, but for testing we want to re-fetch everytime the fetcher changes.
Changes to the fetcher become apparent in the drvPath, which is a hash of Changes to the fetcher become apparent in the drvPath, which is a hash of how to fetch, rather than a fixed store path.
how to fetch, rather than a fixed store path. By inserting this hash into the name, we can make sure to re-run the fetcher every time the fetcher changes.
By inserting this hash into the name, we can make sure to re-run the fetcher
every time the fetcher changes.
This relies on the assumption that Nix isn't clever enough to reuse its This relies on the assumption that Nix isn't clever enough to reuse its database of local store contents to optimize fetching.
database of local store contents to optimize fetching.
You might notice that the "salted" name derives from the normal invocation, You might notice that the "salted" name derives from the normal invocation, not the final derivation.
not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher `invalidateFetcherByDrvHash` has to invoke the fetcher function twice:
function twice: once to get a derivation hash, and again to produce the final once to get a derivation hash, and again to produce the final fixed output derivation.
fixed output derivation.
Example: :::{.example #ex-invalidateFetcherByDrvHash-nix}
# Prevent nix from reusing the output of a fetcher
```nix ```nix
tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit { tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
@ -189,13 +201,17 @@ tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
}; };
``` ```
:::
## `runNixOSTest` {#tester-runNixOSTest} ## `runNixOSTest` {#tester-runNixOSTest}
A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only. A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only.
If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests). If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests).
Example: :::{.example #ex-runNixOSTest-hello}
# Run a NixOS test using `runNixOSTest`
```nix ```nix
pkgs.testers.runNixOSTest ({ lib, ... }: { pkgs.testers.runNixOSTest ({ lib, ... }: {
@ -209,19 +225,17 @@ pkgs.testers.runNixOSTest ({ lib, ... }: {
}) })
``` ```
:::
## `nixosTest` {#tester-nixosTest} ## `nixosTest` {#tester-nixosTest}
Run a NixOS VM network test using this evaluation of Nixpkgs. Run a NixOS VM network test using this evaluation of Nixpkgs.
NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking). NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking).
It is mostly equivalent to the function `import ./make-test-python.nix` from the It is mostly equivalent to the function `import ./make-test-python.nix` from the [NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), except that the current application of Nixpkgs (`pkgs`) will be used, instead of letting NixOS invoke Nixpkgs anew.
[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests),
except that the current application of Nixpkgs (`pkgs`) will be used, instead of
letting NixOS invoke Nixpkgs anew.
If a test machine needs to set NixOS options under `nixpkgs`, it must set only the If a test machine needs to set NixOS options under `nixpkgs`, it must set only the `nixpkgs.pkgs` option.
`nixpkgs.pkgs` option.
### Parameter {#tester-nixosTest-parameter} ### Parameter {#tester-nixosTest-parameter}

View file

@ -41,6 +41,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `k9s` was updated to v0.29. There have been breaking changes in the config file format, check out the [changelog](https://github.com/derailed/k9s/releases/tag/v0.29.0) for details. - `k9s` was updated to v0.29. There have been breaking changes in the config file format, check out the [changelog](https://github.com/derailed/k9s/releases/tag/v0.29.0) for details.
- `nitter` requires a `guest_accounts.jsonl` to be provided as a path or loaded into the default location at `/var/lib/nitter/guest_accounts.jsonl`. See [Guest Account Branch Deployment](https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment) for details.
- Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857) - Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the - `mkosi` was updated to v19. Parts of the user interface have changed. Consult the

View file

@ -49,7 +49,14 @@ in {
default = true; default = true;
}; };
package = lib.mkPackageOption pkgs "nix-direnv" {}; package = lib.mkOption {
default = pkgs.nix-direnv.override { nix = config.nix.package; };
defaultText = "pkgs.nix-direnv";
type = lib.types.package;
description = lib.mdDoc ''
The nix-direnv package to use
'';
};
}; };
}; };

View file

@ -26,13 +26,28 @@ let
}; };
}; };
defaultSwayPackage = pkgs.sway.override { genFinalPackage = pkg:
extraSessionCommands = cfg.extraSessionCommands; let
extraOptions = cfg.extraOptions; expectedArgs = lib.naturalSort [
withBaseWrapper = cfg.wrapperFeatures.base; "extraSessionCommands"
withGtkWrapper = cfg.wrapperFeatures.gtk; "extraOptions"
isNixOS = true; "withBaseWrapper"
}; "withGtkWrapper"
"isNixOS"
];
existedArgs = with lib;
naturalSort
(intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
in if existedArgs != expectedArgs then
pkg
else
pkg.override {
extraSessionCommands = cfg.extraSessionCommands;
extraOptions = cfg.extraOptions;
withBaseWrapper = cfg.wrapperFeatures.base;
withGtkWrapper = cfg.wrapperFeatures.gtk;
isNixOS = true;
};
in { in {
options.programs.sway = { options.programs.sway = {
enable = mkEnableOption (lib.mdDoc '' enable = mkEnableOption (lib.mdDoc ''
@ -44,14 +59,16 @@ in {
package = mkOption { package = mkOption {
type = with types; nullOr package; type = with types; nullOr package;
default = defaultSwayPackage; default = pkgs.sway;
apply = p: if p == null then null else genFinalPackage p;
defaultText = literalExpression "pkgs.sway"; defaultText = literalExpression "pkgs.sway";
description = lib.mdDoc '' description = lib.mdDoc ''
Sway package to use. Will override the options Sway package to use. If the package does not contain the override arguments
'wrapperFeatures', 'extraSessionCommands', and 'extraOptions'. `extraSessionCommands`, `extraOptions`, `withBaseWrapper`, `withGtkWrapper`,
Set to `null` to not add any Sway package to your `isNixOS`, then the module options {option}`wrapperFeatures`,
path. This should be done if you want to use the Home Manager Sway {option}`wrapperFeatures` and {option}`wrapperFeatures` will have no effect.
module to install Sway. Set to `null` to not add any Sway package to your path. This should be done if
you want to use the Home Manager Sway module to install Sway.
''; '';
}; };

View file

@ -35,6 +35,12 @@ let
type = lib.types.str; type = lib.types.str;
}; };
extraGroups = lib.mkOption {
default = [ "keys" ];
description = lib.mdDoc "Groups the user for this buildkite agent should belong to";
type = lib.types.listOf lib.types.str;
};
runtimePackages = lib.mkOption { runtimePackages = lib.mkOption {
default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]; default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]"; defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
@ -150,7 +156,7 @@ in
home = cfg.dataDir; home = cfg.dataDir;
createHome = true; createHome = true;
description = "Buildkite agent user"; description = "Buildkite agent user";
extraGroups = [ "keys" ]; extraGroups = cfg.extraGroups;
isSystemUser = true; isSystemUser = true;
group = "buildkite-agent-${name}"; group = "buildkite-agent-${name}";
}; };

View file

@ -304,6 +304,23 @@ in
''; '';
}; };
guestAccounts = mkOption {
type = types.path;
default = "/var/lib/nitter/guest_accounts.jsonl";
description = lib.mdDoc ''
Path to the guest accounts file.
This file contains a list of guest accounts that can be used to
access the instance without logging in. The file is in JSONL format,
where each line is a JSON object with the following fields:
{"oauth_token":"some_token","oauth_token_secret":"some_secret_key"}
See https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment
for more information on guest accounts and how to generate them.
'';
};
redisCreateLocally = mkOption { redisCreateLocally = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -333,8 +350,12 @@ in
after = [ "network-online.target" ]; after = [ "network-online.target" ];
serviceConfig = { serviceConfig = {
DynamicUser = true; DynamicUser = true;
LoadCredential="guestAccountsFile:${cfg.guestAccounts}";
StateDirectory = "nitter"; StateDirectory = "nitter";
Environment = [ "NITTER_CONF_FILE=/var/lib/nitter/nitter.conf" ]; Environment = [
"NITTER_CONF_FILE=/var/lib/nitter/nitter.conf"
"NITTER_ACCOUNTS_FILE=%d/guestAccountsFile"
];
# Some parts of Nitter expect `public` folder in working directory, # Some parts of Nitter expect `public` folder in working directory,
# see https://github.com/zedeus/nitter/issues/414 # see https://github.com/zedeus/nitter/issues/414
WorkingDirectory = "${cfg.package}/share/nitter"; WorkingDirectory = "${cfg.package}/share/nitter";

View file

@ -136,7 +136,7 @@ let
# System Call Filtering # System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ]; SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService; } // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ]; path = with pkgs; [ ffmpeg-headless file imagemagick ];
}) })
) cfg.sidekiqProcesses; ) cfg.sidekiqProcesses;
@ -773,7 +773,7 @@ in {
# System Call Filtering # System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ]; SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService; } // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ]; path = with pkgs; [ ffmpeg-headless file imagemagick ];
}; };
systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable { systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable {

View file

@ -1,13 +1,28 @@
import ./make-test-python.nix ({ pkgs, ... }: import ./make-test-python.nix ({ pkgs, ... }:
let
# In a real deployment this should naturally not common from the nix store
# and be seeded via agenix or as a non-nix managed file.
#
# These credentials are from the nitter wiki and are expired. We must provide
# credentials in the correct format, otherwise nitter fails to start. They
# must not be valid, as unauthorized errors are handled gracefully.
guestAccountFile = pkgs.writeText "guest_accounts.jsonl" ''
{"oauth_token":"1719213587296620928-BsXY2RIJEw7fjxoNwbBemgjJhueK0m","oauth_token_secret":"N0WB0xhL4ng6WTN44aZO82SUJjz7ssI3hHez2CUhTiYqy"}
'';
in
{ {
name = "nitter"; name = "nitter";
meta.maintainers = with pkgs.lib.maintainers; [ erdnaxe ]; meta.maintainers = with pkgs.lib.maintainers; [ erdnaxe ];
nodes.machine = { nodes.machine = {
services.nitter.enable = true; services.nitter = {
# Test CAP_NET_BIND_SERVICE enable = true;
services.nitter.server.port = 80; # Test CAP_NET_BIND_SERVICE
server.port = 80;
# Provide dummy guest accounts
guestAccounts = guestAccountFile;
};
}; };
testScript = '' testScript = ''

View file

@ -27,11 +27,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "PortfolioPerformance"; pname = "PortfolioPerformance";
version = "0.65.6"; version = "0.66.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-sI2DqhR9LmXxjkkMTDiMG/f/QXcBVPmEjbHFsmEP8qE="; hash = "sha256-jUakjgprf561OVwBW25+/+q+r2CZ6H1iDM3n6w54IfI=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
homepage = "https://www.portfolio-performance.info/"; homepage = "https://www.portfolio-performance.info/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.epl10; license = licenses.epl10;
maintainers = with maintainers; [ elohmeier oyren shawn8901 ]; maintainers = with maintainers; [ elohmeier kilianar oyren shawn8901 ];
mainProgram = "portfolio"; mainProgram = "portfolio";
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };

View file

@ -25,6 +25,7 @@
, pugixml , pugixml
, qtbase , qtbase
, qtmultimedia , qtmultimedia
, utf8cpp
, xdg-utils , xdg-utils
, zlib , zlib
, withGUI ? true , withGUI ? true
@ -32,7 +33,8 @@
}: }:
let let
inherit (lib) enableFeature optional optionals optionalString; inherit (lib)
enableFeature getDev getLib optionals optionalString;
phase = name: args: phase = name: args:
'' ''
@ -64,10 +66,9 @@ stdenv.mkDerivation rec {
pkg-config pkg-config
rake rake
] ]
++ optional withGUI wrapQtAppsHook; ++ optionals withGUI [ wrapQtAppsHook ];
# 1. qtbase and qtmultimedia are needed without the GUI # qtbase and qtmultimedia are needed without the GUI
# 2. we have utf8cpp in nixpkgs but it doesn't find it
buildInputs = [ buildInputs = [
boost boost
expat expat
@ -84,11 +85,12 @@ stdenv.mkDerivation rec {
pugixml pugixml
qtbase qtbase
qtmultimedia qtmultimedia
utf8cpp
xdg-utils xdg-utils
zlib zlib
] ]
++ optional withGUI cmark ++ optionals withGUI [ cmark ]
++ optional stdenv.isDarwin libiconv; ++ optionals stdenv.isDarwin [ libiconv ];
# autoupdate is not needed but it silences a ton of pointless warnings # autoupdate is not needed but it silences a ton of pointless warnings
postPatch = '' postPatch = ''
@ -103,9 +105,11 @@ stdenv.mkDerivation rec {
"--disable-static-qt" "--disable-static-qt"
"--disable-update-check" "--disable-update-check"
"--enable-optimization" "--enable-optimization"
"--with-boost-libdir=${lib.getLib boost}/lib" "--with-boost-libdir=${getLib boost}/lib"
"--with-docbook-xsl-root=${docbook_xsl}/share/xml/docbook-xsl" "--with-docbook-xsl-root=${docbook_xsl}/share/xml/docbook-xsl"
"--with-gettext" "--with-gettext"
"--with-extra-includes=${getDev utf8cpp}/include/utf8cpp"
"--with-extra-libs=${getLib utf8cpp}/lib"
(enableFeature withGUI "gui") (enableFeature withGUI "gui")
]; ];

View file

@ -0,0 +1,32 @@
{ fetchFromGitLab, lib, python3Packages, qt5 }:
let
pname = "amphetype";
version = "1.0.0";
in python3Packages.buildPythonApplication {
inherit pname version;
src = fetchFromGitLab {
owner = "franksh";
repo = pname;
rev = "v${version}";
hash = "sha256-pve2f+XMfFokMCtW3KdeOJ9Ey330Gwv/dk1+WBtrBEQ=";
};
propagatedBuildInputs = with python3Packages; [
editdistance
pyqt5
translitcodec
];
doCheck = false;
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
meta = with lib; {
description = "An advanced typing practice program";
homepage = "https://gitlab.com/franksh/amphetype";
license = licenses.gpl3Only;
maintainers = with maintainers; [ rycee ];
};
}

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchFromGitHub
, qt5
, makeDesktopItem
, copyDesktopItems
}:
stdenv.mkDerivation (self: {
pname = "cloudlogoffline";
version = "1.1.4";
rev = "185f294ec36d7ebe40e37d70148b15f58d60bf0d";
hash = "sha256-UEi7q3NbTgkg4tSjiksEO05YE4yjRul4qB9hFPswnK0=";
src = fetchFromGitHub {
inherit (self) rev hash;
owner = "myzinsky";
repo = "cloudLogOffline";
};
nativeBuildInputs = [
qt5.qmake
qt5.wrapQtAppsHook
]
++ lib.optionals (!stdenv.isDarwin) [
copyDesktopItems
];
buildInputs = [
qt5.qtbase
qt5.qtgraphicaleffects
qt5.qtlocation
qt5.qtpositioning
qt5.qtquickcontrols2
qt5.qtsvg
];
postPatch = let
targetDir = if stdenv.isDarwin then "Applications" else "bin";
in ''
substituteInPlace CloudLogOffline.pro \
--replace 'target.path = /opt/$''${TARGET}/bin' "target.path = $out/${targetDir}"
'';
postInstall = lib.optionalString (!stdenv.isDarwin) ''
install -d $out/share/pixmaps
install -m644 images/logo_circle.svg $out/share/pixmaps/cloudlogoffline.svg
'';
desktopItems = lib.optionals (!stdenv.isDarwin) [
(makeDesktopItem {
name = "cloudlogoffline";
desktopName = "CloudLogOffline";
exec = "CloudLogOffline";
icon = "cloudlogoffline";
comment = self.meta.description;
genericName = "Ham radio contact logbook";
categories = [ "Network" "Utility" "HamRadio" ];
})
];
meta = {
description = "Offline frontend for Cloudlog";
homepage = "https://github.com/myzinsky/cloudLogOffline";
license = [ lib.licenses.lgpl3 ];
mainProgram = "CloudLogOffline";
maintainers = [ lib.maintainers.dblsaiko ];
platforms = lib.platforms.unix;
};
})

View file

@ -0,0 +1,28 @@
{ lib
, stdenv
, fetchFromGitHub
, php
}:
php.buildComposerProject (finalAttrs: {
pname = "composer-require-checker";
version = "4.8.0";
src = fetchFromGitHub {
owner = "maglnet";
repo = "ComposerRequireChecker";
rev = finalAttrs.version;
hash = "sha256-qCHUNaPunCPuWax/YUbYXaVh1JlJEwYvG/NmaSc1VpA=";
};
vendorHash = "sha256-B5w5n2S/mTF7vpsLuHtf2DGR5aPBfO9QGmodYGXE+Cg=";
meta = {
description = "A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies";
homepage = "https://github.com/maglnet/ComposerRequireChecker/";
changelog = "https://github.com/maglnet/ComposerRequireChecker/releases/tag/${finalAttrs.version}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ drupol ];
mainProgram = "composer-require-checker";
};
})

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "didder"; pname = "didder";
version = "1.2.0"; version = "1.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "makew0rld"; owner = "makew0rld";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-S1j2TdV0XCrSc7Ua+SdY3JJoWgnFuAMGhUinTKO2Xh4="; hash = "sha256-wYAudEyOLxbNfk4M720absGkuWXcaBPyBAcmBNBaaWU=";
}; };
vendorHash = "sha256-TEp1YrQquqdEMVvZaNsEB1H/DZsTYmRL257RjQF2JqM="; vendorHash = "sha256-UD90N3nE3H9GSdVhGt1zfCk8BhPaToKGu4i0zP0Lb3Q=";
nativeBuildInputs = [ pandoc ]; nativeBuildInputs = [ pandoc ];

View file

@ -62,11 +62,11 @@
"packages": [ "packages": [
"jsony" "jsony"
], ],
"path": "/nix/store/bzcq8q439rdsqhhihikzv3rsx4l4ybdm-source", "path": "/nix/store/l84av0wdc0s4r4alsvkaxcxhpd6j4bzg-source",
"rev": "ea811be", "rev": "1de1f08",
"sha256": "1720iqsxjhqmhw1zhhs7d2ncdz25r8fqadls1p1iry1wfikjlnba", "sha256": "0rj205cs3v6g80h8ys9flbdq4wyd1csmkwdxv0lz21972zcsrcfh",
"srcDir": "src", "srcDir": "src",
"url": "https://github.com/treeform/jsony/archive/ea811be.tar.gz" "url": "https://github.com/treeform/jsony/archive/1de1f08.tar.gz"
}, },
{ {
"method": "fetchzip", "method": "fetchzip",
@ -95,11 +95,22 @@
"packages": [ "packages": [
"nimcrypto" "nimcrypto"
], ],
"path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source", "path": "/nix/store/zyr8zwh7vaiycn1s4r8cxwc71f2k5l0h-source",
"rev": "4014ef9", "rev": "a079df9",
"sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a", "sha256": "1dmdmgb6b9m5f8dyxk781nnd61dsk3hdxqks7idk9ncnpj9fng65",
"srcDir": "", "srcDir": "",
"url": "https://github.com/cheatfate/nimcrypto/archive/4014ef9.tar.gz" "url": "https://github.com/cheatfate/nimcrypto/archive/a079df9.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"oauth"
],
"path": "/nix/store/bwmrrzs6xpwizmww35461x3lqpgd0942-source",
"rev": "b8c163b",
"sha256": "0k5slyzjngbdr6g0b0dykhqmaf8r8n2klbkg2gpid4ckm8hg62v5",
"srcDir": "src",
"url": "https://github.com/CORDEA/oauth/archive/b8c163b.tar.gz"
}, },
{ {
"method": "fetchzip", "method": "fetchzip",
@ -156,6 +167,18 @@
"srcDir": "src", "srcDir": "src",
"url": "https://github.com/dom96/sass/archive/7dfdd03.tar.gz" "url": "https://github.com/dom96/sass/archive/7dfdd03.tar.gz"
}, },
{
"method": "fetchzip",
"packages": [
"sha1"
],
"path": "/nix/store/a6a0ycxsaxpqks42aq9wicj8ars7z7ai-source",
"ref": "master",
"rev": "92ccc5800bb0ac4865b275a2ce3c1544e98b48bc",
"sha256": "00zvvd8ssy22srg74xzapknmgmi82v534npjdrk5805shswfhqdm",
"srcDir": "",
"url": "https://github.com/onionhammer/sha1/archive/92ccc5800bb0ac4865b275a2ce3c1544e98b48bc.tar.gz"
},
{ {
"method": "fetchzip", "method": "fetchzip",
"packages": [ "packages": [

View file

@ -8,13 +8,13 @@
buildNimPackage (finalAttrs: prevAttrs: { buildNimPackage (finalAttrs: prevAttrs: {
pname = "nitter"; pname = "nitter";
version = "unstable-2023-10-31"; version = "unstable-2023-12-03";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zedeus"; owner = "zedeus";
repo = "nitter"; repo = "nitter";
rev = "b62d73dbd373f08af07c7a79efcd790d3bc1a49c"; rev = "583c858cdf3486451ed6a0627640844f27009dbe";
hash = "sha256-yCD7FbqWZMY0fyFf9Q3Ka06nw5Ha7jYLpmPONAhEVIM="; hash = "sha256-3E6nfmOFhQ2bjwGMWdTmZ38Fg/SE36s6fxYDXwSJaTw=";
}; };
lockFile = ./lock.json; lockFile = ./lock.json;

View file

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "terrapin-scanner"; pname = "terrapin-scanner";
version = "1.0.3"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "RUB-NDS"; owner = "RUB-NDS";
repo = "Terrapin-Scanner"; repo = "Terrapin-Scanner";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-snKEIWhFj+uG/jY1nbq/8T0y2FcAdkIUTf9J2Lz6owo="; hash = "sha256-d0aAs9dT74YQkzDQnmeEo+p/RnPHeG2+SgCCF/t1F+w=";
}; };
vendorHash = null; vendorHash = "sha256-skYMlL9SbBoC89tFCTIzyRViEJaviXENASEqr6zSvoo=";
ldflags = [ ldflags = [
"-s" "-s"

View file

@ -76,13 +76,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "gdal"; pname = "gdal";
version = "3.8.1"; version = "3.8.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OSGeo"; owner = "OSGeo";
repo = "gdal"; repo = "gdal";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-EQWAJZgufUC0FADuIotrGhP0Nf5qlgOwmiSlqLSv00A="; hash = "sha256-R21zRjEvJO+97yXJDvzDJryQ7ps9uEN62DZ0GCxdoFk=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,14 +1,13 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, six
, requests , requests
, django , django
, boto3 , boto3
, hatchling
, python
, mock , mock
, pytestCheckHook , responses
, pytest-django
, setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -24,32 +23,31 @@ buildPythonPackage rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
setuptools hatchling
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
six
requests requests
django django
boto3
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook
pytest-django
mock mock
]; responses
] ++ passthru.optional-dependencies.amazon-ses;
disabledTests = [ passthru.optional-dependencies = {
# Require networking amazon-ses = [ boto3 ];
"test_debug_logging" };
"test_no_debug_logging"
]; checkPhase = ''
runHook preCheck
CONTINUOUS_INTEGRATION=1 ${python.interpreter} runtests.py
runHook postCheck
'';
pythonImportsCheck = [ "anymail" ]; pythonImportsCheck = [ "anymail" ];
DJANGO_SETTINGS_MODULE = "tests.test_settings.settings_3_2";
meta = with lib; { meta = with lib; {
description = "Django email backends and webhooks for Mailgun"; description = "Django email backends and webhooks for Mailgun";
homepage = "https://github.com/anymail/django-anymail"; homepage = "https://github.com/anymail/django-anymail";

View file

@ -30,12 +30,15 @@ buildPythonPackage rec {
# tests require docker # tests require docker
doCheck = false; doCheck = false;
pythonImportsCheck = [ "dockerspawner" ]; pythonImportsCheck = [
"dockerspawner"
];
meta = with lib; { meta = with lib; {
description = "Dockerspawner: A custom spawner for Jupyterhub"; description = "A custom spawner for Jupyterhub";
homepage = "https://jupyter.org"; homepage = "https://github.com/jupyterhub/dockerspawner";
changelog = "https://github.com/jupyterhub/dockerspawner/blob/${version}/docs/source/changelog.md";
license = licenses.bsd3; license = licenses.bsd3;
maintainers = [ ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -28,14 +28,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "etils"; pname = "etils";
version = "1.5.2"; version = "1.6.0";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.10";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-umo+Gv+Vx2kTB3aqF2wRVAY39d2IHzt5FypRSbaxxEY="; hash = "sha256-xjX70Cp5/tStdoJdMTBrWB0itAZxch2qi8J5z2Mz5Io=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -81,7 +81,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
changelog = "https://github.com/google/etils/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/google/etils/blob/v${version}/CHANGELOG.md";
description = "Collection of eclectic utils for python"; description = "Collection of eclectic utils";
homepage = "https://github.com/google/etils"; homepage = "https://github.com/google/etils";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ mcwitt ]; maintainers = with maintainers; [ mcwitt ];

View file

@ -18,7 +18,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "faraday-plugins"; pname = "faraday-plugins";
version = "1.14.0"; version = "1.15.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "infobyte"; owner = "infobyte";
repo = "faraday_plugins"; repo = "faraday_plugins";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-qFA0AVebHd/Ny8x+rUkueLZhYB/PwL7o/qpUnZCRsEA="; hash = "sha256-2Z3S5zojaRVaeeujFor/g3x+rxKppw/jSyq0GRJ49OY=";
}; };
postPatch = '' postPatch = ''

View file

@ -1,23 +1,28 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, pythonOlder
, sgmllib3k
, python , python
, pythonOlder
, setuptools
, sgmllib3k
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "feedparser"; pname = "feedparser";
version = "6.0.10"; version = "6.0.11";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-J9pIX0Y3znFjzeqxOoAxK5O30MG3db70pHYpoxELylE="; hash = "sha256-ydBAe2TG8qBl0OuyksKzXAEFDMDcM3V0Yaqr3ExBhNU=";
}; };
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
sgmllib3k sgmllib3k
]; ];
@ -36,8 +41,9 @@ buildPythonPackage rec {
]; ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/kurtmckee/feedparser";
description = "Universal feed parser"; description = "Universal feed parser";
homepage = "https://github.com/kurtmckee/feedparser";
changelog = "https://feedparser.readthedocs.io/en/latest/changelog.html";
license = licenses.bsd2; license = licenses.bsd2;
maintainers = with maintainers; [ domenkozar ]; maintainers = with maintainers; [ domenkozar ];
}; };

View file

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gehomesdk"; pname = "gehomesdk";
version = "0.5.25"; version = "0.5.26";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-VQSefwzw4zA9ycO8723kBlMbtrOJxmKgZ8tfXZmtyQc="; hash = "sha256-eIpBVfkUIQBriZ4wxp8ii5YmuuKF8r0lNauBEEqoNV8=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -2,31 +2,42 @@
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, protobuf , protobuf
, setuptools-scm
, pythonRelaxDepsHook
, pytestCheckHook , pytestCheckHook
, pythonOlder
, pythonRelaxDepsHook
, setuptools-scm
, uharfbuzz , uharfbuzz
, youseedee , youseedee
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "gflanguages"; pname = "gflanguages";
version = "0.5.10"; version = "0.5.13";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-JVeI7TlJjbKCa+gGmjylbNiEhX3qmpbLXiH3VpFqgXc="; hash = "sha256-LoppJHzX0dOpHnwMCyS1ACdIO4cqwb370ksvsXDFHzQ=";
}; };
propagatedBuildInputs = [ # Relax the dependency on protobuf 3. Other packages in the Google Fonts
protobuf # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
# so we need to use protobuf 4 here as well to avoid a conflict
# in the closure of fontbakery. It seems to be compatible enough.
pythonRelaxDeps = [
"protobuf"
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
setuptools-scm setuptools-scm
]; ];
doCheck = true; propagatedBuildInputs = [
protobuf
];
nativeCheckInputs = [ nativeCheckInputs = [
pythonRelaxDepsHook pythonRelaxDepsHook
pytestCheckHook pytestCheckHook
@ -34,15 +45,10 @@ buildPythonPackage rec {
youseedee youseedee
]; ];
# Relax the dependency on protobuf 3. Other packages in the Google Fonts
# ecosystem have begun upgrading from protobuf 3 to protobuf 4,
# so we need to use protobuf 4 here as well to avoid a conflict
# in the closure of fontbakery. It seems to be compatible enough.
pythonRelaxDeps = [ "protobuf" ];
meta = with lib; { meta = with lib; {
description = "Python library for Google Fonts language metadata"; description = "Python library for Google Fonts language metadata";
homepage = "https://github.com/googlefonts/lang"; homepage = "https://github.com/googlefonts/lang";
changelog = "https://github.com/googlefonts/lang/releases/tag/v${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ danc86 ]; maintainers = with maintainers; [ danc86 ];
}; };

View file

@ -14,14 +14,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-bigquery-datatransfer"; pname = "google-cloud-bigquery-datatransfer";
version = "3.12.1"; version = "3.13.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-uEWnQIGs4yybuukzgrAqaduFYKNW9h/WouX2MzSVgUg="; hash = "sha256-J6hFyyJgWlEsBc4owokNLvl61O38mBevVVpz2AJOw7o=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -50,8 +50,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "BigQuery Data Transfer API client library"; description = "BigQuery Data Transfer API client library";
homepage = "https://github.com/googleapis/python-bigquery-datatransfer"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-datatransfer";
changelog = "https://github.com/googleapis/python-bigquery-datatransfer/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-bigquery-datatransfer-v${version}/packages/google-cloud-bigquery-datatransfer/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-iam-logging"; pname = "google-cloud-iam-logging";
version = "1.2.2"; version = "1.3.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-6IBjA2WwP11d/vQJSIY3WhbqYvAgFRtZFFSffUqKM38="; hash = "sha256-oLqRmxNPbb+nUMN70kGlAtBCji4wXrbRv2DhNMcZV5c=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -43,8 +43,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "IAM Service Logging client library"; description = "IAM Service Logging client library";
homepage = "https://github.com/googleapis/python-iam-logging"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-iam-logging";
changelog = "https://github.com/googleapis/python-iam-logging/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-iam-logging-v${version}/packages/google-cloud-iam-logging/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-tasks"; pname = "google-cloud-tasks";
version = "2.14.2"; version = "2.15.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-PvsoDnpjX1eGCgajRhMcEXBC6CCtSDr9JWgA+uG01wE="; hash = "sha256-SpmTjbARHVU3hkG1I1uY5r12S8jip+JN9wb4uGO98nw=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -50,8 +50,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Cloud Tasks API API client library"; description = "Cloud Tasks API API client library";
homepage = "https://github.com/googleapis/python-tasks"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-tasks";
changelog = "https://github.com/googleapis/python-tasks/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-tasks-v${version}/packages/google-cloud-tasks/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-texttospeech"; pname = "google-cloud-texttospeech";
version = "2.14.2"; version = "2.15.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-ojc4NmmI+vTSZSAPV8XeQxLvo9FLtDS5Km5UFxP12QY="; hash = "sha256-d4Y+1U94/NLhlMoRPJzF5+QLhzBszsG6MH5G3PgfBzc=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -48,8 +48,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Google Cloud Text-to-Speech API client library"; description = "Google Cloud Text-to-Speech API client library";
homepage = "https://github.com/googleapis/python-texttospeech"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-texttospeech";
changelog = "https://github.com/googleapis/python-texttospeech/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-texttospeech-v${version}/packages/google-cloud-texttospeech/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-trace"; pname = "google-cloud-trace";
version = "1.11.3"; version = "1.12.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-ud0MLfv5Oy3AV6RdAkyMbCxM2+55txtfoekTB1eznFE="; hash = "sha256-IvbMxHbOMQHUH7q86sP+/N/gV9KWez6OIMAmcTY6Uko=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -50,8 +50,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Cloud Trace API client library"; description = "Cloud Trace API client library";
homepage = "https://github.com/googleapis/python-trace"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-trace";
changelog = "https://github.com/googleapis/python-trace/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-trace-v${version}/packages/google-cloud-trace/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -13,14 +13,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-videointelligence"; pname = "google-cloud-videointelligence";
version = "2.11.4"; version = "2.12.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-B6zimaY/Wz1EQTdWNIU7Vc6PkMYsaiT4pH6wVBSfb5k="; hash = "sha256-SwGUkyzSYEGZuIBbwQhpLmoqJZ9Hd1FrnLyXi4hx4pU=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -52,8 +52,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Google Cloud Video Intelligence API client library"; description = "Google Cloud Video Intelligence API client library";
homepage = "https://github.com/googleapis/python-videointelligence"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-videointelligence";
changelog = "https://github.com/googleapis/python-videointelligence/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-videointelligence-v${version}/packages/google-cloud-videointelligence/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "google-cloud-websecurityscanner"; pname = "google-cloud-websecurityscanner";
version = "1.12.3"; version = "1.13.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-zu4e4MTpc24p5ZWeRfVQwX0brciaz80FDGbxy6UppEA="; hash = "sha256-vktbTjzNYMa8otEGGq36fYOKcNuNasWql4SBWbk84Iw=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -41,8 +41,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Google Cloud Web Security Scanner API client library"; description = "Google Cloud Web Security Scanner API client library";
homepage = "https://github.com/googleapis/python-websecurityscanner"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-websecurityscanner";
changelog = "https://github.com/googleapis/python-websecurityscanner/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/googleapis/google-cloud-python/tree/google-cloud-websecurityscanner-v${version}/packages/google-cloud-websecurityscanner";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -0,0 +1,79 @@
{ lib
, aiohttp
, aresponses
, awesomeversion
, backoff
, buildPythonPackage
, fetchFromGitHub
, mashumaro
, orjson
, poetry-core
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, syrupy
, typer
, yarl
, zeroconf
}:
buildPythonPackage rec {
pname = "gotailwind";
version = "0.2.2";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "frenck";
repo = "python-gotailwind";
rev = "refs/tags/v${version}";
hash = "sha256-JtMBud3iON4xLc9dQdXniv51EBqs7zkat8cYm3q0uEE=";
};
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}" \
--replace "--cov" ""
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
awesomeversion
backoff
mashumaro
orjson
yarl
zeroconf
];
passthru.optional-dependencies = {
cli = [
typer
];
};
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
syrupy
];
pythonImportsCheck = [
"gotailwind"
];
meta = with lib; {
description = "Modul to communicate with Tailwind garage door openers";
homepage = "https://github.com/frenck/python-gotailwind";
changelog = "https://github.com/frenck/python-gotailwind/releases/tag/v$version";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -7,6 +7,7 @@
, opencv4 , opencv4
, pillow , pillow
, scikit-learn , scikit-learn
, setuptools
, torch , torch
, torchvision , torchvision
, ttach , ttach
@ -15,19 +16,25 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "grad-cam"; pname = "grad-cam";
version = "1.4.8"; version = "1.5.0";
disabled = pythonOlder "3.6"; pyproject = true;
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-BNcwDaEEmRsEoJ4nvvGfjZ9LdG0eRqZCFuY5/Gmp5N4="; hash = "sha256-aw7Z/6/AMKH2PVBcOr8HxsmRDa6c3v8Xd4xa8HTiFGA=";
}; };
postPatch = '' postPatch = ''
substituteInPlace requirements.txt --replace "opencv-python" "opencv" substituteInPlace requirements.txt\
--replace "opencv-python" "opencv"
''; '';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
matplotlib matplotlib
numpy numpy

View file

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gspread"; pname = "gspread";
version = "5.12.1"; version = "5.12.3";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "burnash"; owner = "burnash";
repo = "gspread"; repo = "gspread";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-cuSR5QWURHSL1o2R4rc/m3KETz3X+78TC8LuuzZghbs="; hash = "sha256-NmIWGHS40VOUL3IGSR/SW9inbSQFv+2UDgo1FZWROHI=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -17,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "habluetooth"; pname = "habluetooth";
version = "0.9.0"; version = "1.0.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices"; owner = "Bluetooth-Devices";
repo = "habluetooth"; repo = "habluetooth";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-jAv3ygKsd2leHTR6FAIxaq+PtQbjauzyA+wvxTfTe2g="; hash = "sha256-bk6UU+QGrkHio5j0/rOup7EQV12F/lb4m4b7JiJ7LFw=";
}; };
postPatch = '' postPatch = ''
@ -61,7 +61,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Library for high availability Bluetooth"; description = "Library for high availability Bluetooth";
homepage = "https://github.com/Bluetooth-Devices/habluetooth"; homepage = "https://github.com/Bluetooth-Devices/habluetooth";
changelog = "https://github.com/Bluetooth-Devices/habluetooth/blob/${version}/CHANGELOG.md"; changelog = "https://github.com/Bluetooth-Devices/habluetooth/blob/v${version}/CHANGELOG.md";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ibm-cloud-sdk-core"; pname = "ibm-cloud-sdk-core";
version = "3.18.0"; version = "3.18.2";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-vytpQHYZcMFLU/yPwTWvVnxYuXCdsyFL5AOjg91Ryrs="; hash = "sha256-0gjISrKELopSMEuZHL8fy8q7rMuMqzATkP+c4Y8I+9A=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -11,16 +11,16 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "id"; pname = "id";
version = "1.1.0"; version = "1.2.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "di"; owner = "di";
repo = "id"; repo = "id";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-T3p13EnXU1Efysnu1RQw5st1BgHyZNdrKtkzQSguRtM="; hash = "sha256-njX4kL8pCv6+SyYUtmzUh/BWWsaueKO+IiJ96sAXMVo=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "life360"; pname = "life360";
version = "6.0.0"; version = "6.0.1";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "pnbruckner"; owner = "pnbruckner";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-GRQPH7fp8YkkCEpXtvgFxJO6VLFQK/PBaRe0Tfg3KdU="; hash = "sha256-USqSkjOHlH0K/RlRYpn/gz6dHW8/uEVpsc4HeUZ3Emg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -11,26 +11,35 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mediapy"; pname = "mediapy";
version = "1.1.9"; version = "1.2.0";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-WUOxtE0NfXi0fpdasZTqixPhVV2+Refatvf6dgCb0Z8="; hash = "sha256-enxOx0hZ+fksk8ibsDWg0Bl/cJeSBHE37bN/D1ucECg=";
}; };
nativeBuildInputs = [ flit-core ]; nativeBuildInputs = [
flit-core
];
propagatedBuildInputs = [ ipython matplotlib numpy pillow ]; propagatedBuildInputs = [
ipython
matplotlib
numpy
pillow
];
pythonImportsCheck = [
pythonImportsCheck = [ "mediapy" ]; "mediapy"
];
meta = with lib; { meta = with lib; {
description = "Read/write/show images and videos in an IPython notebook"; description = "Read/write/show images and videos in an IPython notebook";
homepage = "https://github.com/google/mediapy"; homepage = "https://github.com/google/mediapy";
changelog = "https://github.com/google/mediapy/releases/tag/v${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ mcwitt ]; maintainers = with maintainers; [ mcwitt ];
}; };

View file

@ -8,14 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "meraki"; pname = "meraki";
version = "1.39.0"; version = "1.41.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-B3+2KnRXWkB83Sy/NH9kJwgSha9L17tx37fFwBjT3Mw="; hash = "sha256-aXcGMRqkiVPnLEYrzIMLDiFXWurBRNlMg4OnRd5jlrY=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -20,7 +20,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "meshtastic"; pname = "meshtastic";
version = "2.2.12"; version = "2.2.16";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "meshtastic"; owner = "meshtastic";
repo = "Meshtastic-python"; repo = "Meshtastic-python";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-W//mDKtTWjcKT43n82OU3h4yKrNZMAVzLzQCjsmkJP0="; hash = "sha256-5JEMiSLLVv7p8H5R8BDE5IKGmBb2bSht+s4sCsxWyzU=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -6,18 +6,21 @@
, portmidi , portmidi
, python-rtmidi , python-rtmidi
, pytestCheckHook , pytestCheckHook
, pythonOlder
, setuptools , setuptools
, setuptools-scm , setuptools-scm
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "mido"; pname = "mido";
version = "1.3.0"; version = "1.3.2";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-hCguOs40vKP5hCINstvLmCRc/q+4VCYMAuAAdQ3Khqo="; sha256 = "sha256-Ouootu1zD3N9WxLaNXjevp3FAFj6Nw/pzt7ZGJtnw0g=";
}; };
patches = [ patches = [
@ -47,6 +50,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "MIDI Objects for Python"; description = "MIDI Objects for Python";
homepage = "https://mido.readthedocs.io"; homepage = "https://mido.readthedocs.io";
changelog = "https://github.com/mido/mido/releases/tag/${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mkdocs-git-revision-date-localized-plugin"; pname = "mkdocs-git-revision-date-localized-plugin";
version = "1.2.1"; version = "1.2.2";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "timvink"; owner = "timvink";
repo = "mkdocs-git-revision-date-localized-plugin"; repo = "mkdocs-git-revision-date-localized-plugin";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-UIbW64ac9kXptJjn86V6vPArnICANiT3QGi5JH45KLY="; hash = "sha256-6qLVmmJzMTrvuoeSVUjWqmI6f5MbAFWAj36v2l3ZeD8=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ms-active-directory"; pname = "ms-active-directory";
version = "1.12.1"; version = "1.13.0";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,8 +20,8 @@ buildPythonPackage rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zorn96"; owner = "zorn96";
repo = "ms_active_directory"; repo = "ms_active_directory";
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-mErQib8xTgo29iPAtiLnhxLXyFboAzyEW9A/QMseM6k="; hash = "sha256-+wfhtEGuC1R5jbEnWm4mDHIR096KKEcG/K8SuItwjGk=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -43,6 +43,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Python module for integrating with Microsoft Active Directory domains"; description = "Python module for integrating with Microsoft Active Directory domains";
homepage = "https://github.com/zorn96/ms_active_directory/"; homepage = "https://github.com/zorn96/ms_active_directory/";
changelog = "https://github.com/zorn96/ms_active_directory/releases/tag/v${version}";
license = with licenses; [ mit ]; license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "msgspec"; pname = "msgspec";
version = "0.18.4"; version = "0.18.5";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "jcrist"; owner = "jcrist";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-u1mrj/pHvlbSwh6QtRdJKuVGN1zQ6mRITi/qzrCHnhk="; hash = "sha256-BcENL1vPCspzYdAHicC5AHs/7xZPWf+Yys37vKgbris=";
}; };
# Requires libasan to be accessible # Requires libasan to be accessible

View file

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "nibe"; pname = "nibe";
version = "2.5.2"; version = "2.6.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "yozik04"; owner = "yozik04";
repo = "nibe"; repo = "nibe";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-qlGQtjRG92AhFY+sF3mB4ghIn4kydkbDOolLu9Qh0JM="; hash = "sha256-VDK6ZCyW8fmp9Ap/AwgLbU5vlyhYXIGYD6eZ3esSCiU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -16,14 +16,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "onnxmltools"; pname = "onnxmltools";
version = "1.11.2"; version = "1.12.0";
format = "setuptools"; format = "setuptools";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "onnx"; owner = "onnx";
repo = "onnxmltools"; repo = "onnxmltools";
rev = "v${version}"; rev = "refs/tags/${version}";
hash = "sha256-uLFAGtCDLdMd0SMoonMXFE0kGHuDpwp6IrIbD0t8l4M="; hash = "sha256-/UKGo56riLnATcn7kA++QoFkkILVGYBwqRZZ+PYB1/0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -18,7 +18,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyenphase"; pname = "pyenphase";
version = "1.14.3"; version = "1.15.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "pyenphase"; owner = "pyenphase";
repo = "pyenphase"; repo = "pyenphase";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-cjkmRGieSKynL8cZORp11/ViK8oCBAZXrgbFKumWKaM="; hash = "sha256-XhcCNp7iA7wTd5ldoCO9QC7o3kmL3jIlumjg8Y5mkVQ=";
}; };
postPatch = '' postPatch = ''

View file

@ -0,0 +1,30 @@
{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, pythonOlder }:
let
pname = "translitcodec";
version = "0.7.0";
in buildPythonPackage {
inherit pname version;
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "claudep";
repo = pname;
rev = "version-${version}";
hash = "sha256-/EKquTchx9i3fZqJ6AMzHYP9yCORvwbuUQ95WJQOQbI=";
};
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ pname ];
meta = with lib; {
description = "Unicode to 8-bit charset transliteration codec";
homepage = "https://github.com/claudep/translitcodec";
license = with licenses; [ mit ];
maintainers = with maintainers; [ rycee ];
};
}

View file

@ -7,22 +7,22 @@
let let
pname = "osu-lazer-bin"; pname = "osu-lazer-bin";
version = "2023.1218.1"; version = "2023.1221.0";
src = { src = {
aarch64-darwin = fetchzip { aarch64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
hash = "sha256-FSxXPvbHjLVKU2rlTY2iqIUZSjOPoTES8Bl8j/Ln+6w="; hash = "sha256-viurUlCdPU2Jo5IzEfq+As1mW6GI6LZsKocnkgMvsGU=";
stripRoot = false; stripRoot = false;
}; };
x86_64-darwin = fetchzip { x86_64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
hash = "sha256-d6jumDva2LAmiixxD9RFiKdiuSv1yPVeX8OgNB7DYpM="; hash = "sha256-fbOqySfBomVoWZvMFWhPAi/cWaH5akRdeMIxBJcFXdg=";
stripRoot = false; stripRoot = false;
}; };
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
hash = "sha256-xxWNLP5m/nxGutt/ogcDYcVaiFaesEvZpDdU/ndVRMs="; hash = "sha256-Flxwh4Jlb60joJ/VYVevw4So612Cnyy1gPnJ7tTKxV0=";
}; };
}.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");

View file

@ -16,13 +16,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "osu-lazer"; pname = "osu-lazer";
version = "2023.1218.1"; version = "2023.1221.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ppy"; owner = "ppy";
repo = "osu"; repo = "osu";
rev = version; rev = version;
sha256 = "sha256-VUnILNH5Ng1mx/UmlBGu6/yYXUOf1t3ofl0AiRHNsRc="; sha256 = "sha256-iIyJQCi16Gf4knej+tZq5f92G9NX0ZLC6q/llAYwlLU=";
}; };
projectFile = "osu.Desktop/osu.Desktop.csproj"; projectFile = "osu.Desktop/osu.Desktop.csproj";

View file

@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
Refer to the description of epson-escpr for usage. Refer to the description of epson-escpr for usage.
''; '';
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ ma9e ma27 ]; maintainers = with maintainers; [ ma9e ma27 shawn8901 ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -11,13 +11,14 @@ stdenv.mkDerivation rec {
preBuild = '' preBuild = ''
makeFlagsArray=(sbindir=$out/sbin manprefix=$out) makeFlagsArray=(sbindir=$out/sbin manprefix=$out)
''; '';
meta = with lib; { meta = with lib; {
description = "A tool to get/set ATA/SATA drive parameters under Linux"; description = "A tool to get/set ATA/SATA drive parameters under Linux";
homepage = "https://sourceforge.net/projects/hdparm/"; homepage = "https://sourceforge.net/projects/hdparm/";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.bsd2; license = licenses.bsd2;
mainProgram = "hdparm";
maintainers = [ ]; maintainers = [ ];
}; };

View file

@ -1,5 +1,5 @@
{ lib, stdenv, nodejs-slim, bundlerEnv, nixosTests { lib, stdenv, nodejs-slim, bundlerEnv, nixosTests
, yarn, callPackage, imagemagick, ffmpeg, file, ruby, writeShellScript , yarn, callPackage, ruby, writeShellScript
, fetchYarnDeps, prefetch-yarn-deps , fetchYarnDeps, prefetch-yarn-deps
, brotli , brotli
@ -96,7 +96,8 @@ stdenv.mkDerivation rec {
''; '';
}; };
propagatedBuildInputs = [ imagemagick ffmpeg file mastodonGems.wrappedRuby ]; propagatedBuildInputs = [ mastodonGems.wrappedRuby ];
nativeBuildInputs = [ brotli ];
buildInputs = [ mastodonGems nodejs-slim ]; buildInputs = [ mastodonGems nodejs-slim ];
buildPhase = '' buildPhase = ''

View file

@ -7,11 +7,12 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "pubs"; pname = "pubs";
version = "0.9.0"; version = "0.9.0";
pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pubs"; owner = "pubs";
repo = "pubs"; repo = "pubs";
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-U/9MLqfXrzYVGttFSafw4pYDy26WgdsJMCxciZzO1pw="; hash = "sha256-U/9MLqfXrzYVGttFSafw4pYDy26WgdsJMCxciZzO1pw=";
}; };
@ -28,22 +29,26 @@ python3.pkgs.buildPythonApplication rec {
}) })
]; ];
nativeBuildInputs = with python3.pkgs; [
setuptools
];
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
pyyaml
bibtexparser
python-dateutil
six
requests
configobj
beautifulsoup4
feedparser
argcomplete argcomplete
beautifulsoup4
bibtexparser
configobj
feedparser
python-dateutil
pyyaml
requests
six
]; ];
nativeCheckInputs = with python3.pkgs; [ nativeCheckInputs = with python3.pkgs; [
pyfakefs
mock
ddt ddt
mock
pyfakefs
pytestCheckHook pytestCheckHook
]; ];
@ -57,11 +62,18 @@ python3.pkgs.buildPythonApplication rec {
disabledTests = [ disabledTests = [
# https://github.com/pubs/pubs/issues/276 # https://github.com/pubs/pubs/issues/276
"test_readme" "test_readme"
# AssertionError: Lists differ: ['Ini[112 chars]d to...
"test_add_non_standard"
];
pythonImportsCheck = [
"pubs"
]; ];
meta = with lib; { meta = with lib; {
description = "Command-line bibliography manager"; description = "Command-line bibliography manager";
homepage = "https://github.com/pubs/pubs"; homepage = "https://github.com/pubs/pubs";
changelog = "https://github.com/pubs/pubs/blob/v${version}/changelog.md";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = with maintainers; [ gebner dotlambda ]; maintainers = with maintainers; [ gebner dotlambda ];
}; };

View file

@ -2,7 +2,7 @@
, boost , boost
, fetchFromGitHub , fetchFromGitHub
, libsodium , libsodium
, nix , nixVersions
, pkg-config , pkg-config
, rustPlatform , rustPlatform
, nix-update-script , nix-update-script
@ -11,25 +11,25 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "harmonia"; pname = "harmonia";
version = "0.7.3"; version = "0.7.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nix-community"; owner = "nix-community";
repo = pname; repo = pname;
rev = "refs/tags/${pname}-v${version}"; rev = "refs/tags/${pname}-v${version}";
hash = "sha256-XtnK54HvZMKZGSCrVD0FO5PQLMo3Vkj8ezUlsfqStq0="; hash = "sha256-72JMrXmxw/FuGjqXXxMIGiAbUUOqXEERdQwch+s3iwU=";
}; };
cargoHash = "sha256-oQVHrfNPhslYk6APB/bhW+h+vk/gNTW/ZypoGGb5zPk="; cargoHash = "sha256-Q5Y5v7mmJpfZFGRgurTcRBRtbApFRrwqOBHdZTJbyzc=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config nix pkg-config nixVersions.nix_2_19
]; ];
buildInputs = [ buildInputs = [
boost boost
libsodium libsodium
nix nixVersions.nix_2_19
]; ];
passthru = { passthru = {

View file

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "cloudfox"; pname = "cloudfox";
version = "1.12.2"; version = "1.12.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "BishopFox"; owner = "BishopFox";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-r9YIJ+PRUA1stKTL39+/T+m1WMkocpjfzG8Y9knnFU4="; hash = "sha256-V6zYEH2LACBcMY0ox8ZgqJGFLWFgCNR4l9Uo+hMgseE=";
}; };
vendorHash = "sha256-nSisRurpareGI4EHENayMhsYOKL1hE1wVw2Ueiqii4U="; vendorHash = "sha256-PZW1rNX8TLW0SZ9A2eF5N12J9BPWgRZJeGIb042Tinc=";
# Some tests are failing because of wrong filename/path # Some tests are failing because of wrong filename/path
doCheck = false; doCheck = false;

View file

@ -5,18 +5,18 @@
buildGoModule rec { buildGoModule rec {
pname = "cnquery"; pname = "cnquery";
version = "9.11.0"; version = "9.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mondoohq"; owner = "mondoohq";
repo = "cnquery"; repo = "cnquery";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-3fyX6vz3lqnV07gu/H7qeIrLyNSbqhLpICJWqPTv7T0="; hash = "sha256-d2S9qEm0jvXvpU7IHpurDJ7A21bvjuM3HrdRPaujzTU=";
}; };
subPackages = [ "apps/cnquery" ]; subPackages = [ "apps/cnquery" ];
vendorHash = "sha256-7zZRX0LWDmO7LA0fIjAh8+5kK2dcAV/4HQmKdn9I3Mg="; vendorHash = "sha256-vEJcdGgev9C/3vGx+SMmD9dLMau5Jyx2TjHiiQQ+16A=";
meta = with lib; { meta = with lib; {
description = "cloud-native, graph-based asset inventory"; description = "cloud-native, graph-based asset inventory";

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kube-bench"; pname = "kube-bench";
version = "0.6.19"; version = "0.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aquasecurity"; owner = "aquasecurity";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-owpmQ/APTUu1V8au2UE48SIIZnVI93tlv5bhkS/2kgQ="; hash = "sha256-yJJEWxz8EWdLi2rhw42QVdG9AcGO0OWnihg153hALNE=";
}; };
vendorHash = "sha256-dBN6Yi8HtS9LzXr08jhw1hqDwS8a4UqrYaRpM+RzvVM="; vendorHash = "sha256-zKw6d3UWs2kb+DCXmLZ09Lw3m8wMhm9QJYkeXJYcFA8=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -5,16 +5,20 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "theharvester"; pname = "theharvester";
version = "4.4.4"; version = "4.5.0";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "laramies"; owner = "laramies";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-L0WbPZE2alregOvWc+0nuMvsD17ayCw3JtahGhf4B1o="; hash = "sha256-tnCiI4bte2RSWSkEL2rwFz6WFjfRMMFiEBOvv3QMyos=";
}; };
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
aiodns aiodns
aiofiles aiofiles

View file

@ -5099,8 +5099,6 @@ with pkgs;
dibbler = callPackage ../tools/networking/dibbler { }; dibbler = callPackage ../tools/networking/dibbler { };
didder = callPackage ../tools/graphics/didder { };
dieharder = callPackage ../tools/security/dieharder { }; dieharder = callPackage ../tools/security/dieharder { };
diesel-cli = callPackage ../development/tools/diesel-cli { diesel-cli = callPackage ../development/tools/diesel-cli {
@ -24051,7 +24049,7 @@ with pkgs;
minizip-ng = callPackage ../development/libraries/minizip-ng { }; minizip-ng = callPackage ../development/libraries/minizip-ng { };
mkvtoolnix = libsForQt5.callPackage ../applications/video/mkvtoolnix { mkvtoolnix = qt6Packages.callPackage ../applications/video/mkvtoolnix {
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv; stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
}; };

View file

@ -4762,6 +4762,8 @@ self: super: with self; {
googletrans = callPackage ../development/python-modules/googletrans { }; googletrans = callPackage ../development/python-modules/googletrans { };
gotailwind = callPackage ../development/python-modules/gotailwind { };
gotenberg-client = callPackage ../development/python-modules/gotenberg-client { }; gotenberg-client = callPackage ../development/python-modules/gotenberg-client { };
gorilla = callPackage ../development/python-modules/gorilla { }; gorilla = callPackage ../development/python-modules/gorilla { };
@ -14475,6 +14477,8 @@ self: super: with self; {
translationstring = callPackage ../development/python-modules/translationstring { }; translationstring = callPackage ../development/python-modules/translationstring { };
translitcodec = callPackage ../development/python-modules/translitcodec { };
transmission-rpc = callPackage ../development/python-modules/transmission-rpc { }; transmission-rpc = callPackage ../development/python-modules/transmission-rpc { };
transmissionrpc = callPackage ../development/python-modules/transmissionrpc { }; transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };