3
0
Fork 0
forked from mirrors/nixpkgs

Merge branch 'master' into staging-next

This commit is contained in:
Weijia Wang 2023-11-12 22:13:26 +01:00
commit c1eb661271
24 changed files with 212 additions and 67 deletions

View file

@ -939,3 +939,68 @@ Fenix also has examples with `buildRustPackage`,
[crane](https://github.com/ipetkov/crane), [crane](https://github.com/ipetkov/crane),
[naersk](https://github.com/nix-community/naersk), [naersk](https://github.com/nix-community/naersk),
and cross compilation in its [Examples](https://github.com/nix-community/fenix#examples) section. and cross compilation in its [Examples](https://github.com/nix-community/fenix#examples) section.
## Using `git bisect` on the Rust compiler {#using-git-bisect-on-the-rust-compiler}
Sometimes an upgrade of the Rust compiler (`rustc`) will break a
downstream package. In these situations, being able to `git bisect`
the `rustc` version history to find the offending commit is quite
useful. Nixpkgs makes it easy to do this.
First, roll back your nixpkgs to a commit in which its `rustc` used
*the most recent one which doesn't have the problem.* You'll need
to do this because of `rustc`'s extremely aggressive
version-pinning.
Next, add the following overlay, updating the Rust version to the
one in your rolled-back nixpkgs, and replacing `/git/scratch/rust`
with the path into which you have `git clone`d the `rustc` git
repository:
```nix
(final: prev: /*lib.optionalAttrs prev.stdenv.targetPlatform.isAarch64*/ {
rust_1_72 =
lib.updateManyAttrsByPath [{
path = [ "packages" "stable" ];
update = old: old.overrideScope(final: prev: {
rustc = prev.rustc.overrideAttrs (_: {
src = lib.cleanSource /git/scratch/rust;
# do *not* put passthru.isReleaseTarball=true here
});
});
}]
prev.rust_1_72;
})
```
If the problem you're troubleshooting only manifests when
cross-compiling you can uncomment the `lib.optionalAttrs` in the
example above, and replace `isAarch64` with the target that is
having problems. This will speed up your bisect quite a bit, since
the host compiler won't need to be rebuilt.
Now, you can start a `git bisect` in the directory where you checked
out the `rustc` source code. It is recommended to select the
endpoint commits by searching backwards from `origin/master` for the
*commits which added the release notes for the versions in
question.* If you set the endpoints to commits on the release
branches (i.e. the release tags), git-bisect will often get confused
by the complex merge-commit structures it will need to traverse.
The command loop you'll want to use for bisecting looks like this:
```bash
git bisect {good,bad} # depending on result of last build
git submodule update --init
CARGO_NET_OFFLINE=false cargo vendor \
--sync ./src/tools/cargo/Cargo.toml \
--sync ./src/tools/rust-analyzer/Cargo.toml \
--sync ./compiler/rustc_codegen_cranelift/Cargo.toml \
--sync ./src/bootstrap/Cargo.toml
nix-build $NIXPKGS -A package-broken-by-rust-changes
```
The `git submodule update --init` and `cargo vendor` commands above
require network access, so they can't be performed from within the
`rustc` derivation, unfortunately.

View file

@ -7,7 +7,7 @@
((buildMozillaMach rec { ((buildMozillaMach rec {
pname = "floorp"; pname = "floorp";
packageVersion = "11.5.0"; packageVersion = "11.5.1";
applicationName = "Floorp"; applicationName = "Floorp";
binaryName = "floorp"; binaryName = "floorp";
version = "155.4.0"; version = "155.4.0";
@ -17,7 +17,7 @@
repo = "Floorp"; repo = "Floorp";
fetchSubmodules = true; fetchSubmodules = true;
rev = "v${packageVersion}"; rev = "v${packageVersion}";
hash = "sha256-adK3LAu3cDh6d+GvtnkWmSnxansnSZoIgtA9TAqIMyA="; hash = "sha256-988jKyfIGZ2UPHTNO1cK2lxR/5j3U/QYR3ZI9WsvHUI=";
}; };
extraConfigureFlags = [ extraConfigureFlags = [

View file

@ -1,20 +1,20 @@
{ {
stable = import ./browser.nix { stable = import ./browser.nix {
channel = "stable"; channel = "stable";
version = "118.0.2088.76"; version = "119.0.2151.44";
revision = "1"; revision = "1";
sha256 = "sha256-cd8W/0UZi+NhPSILR8e8aOLxy6ra+0DVwRowo2jG8DA="; sha256 = "sha256-QY9Dk4tcpuNJGVcAcaIaVXAT95K87rK7ZQo7COMDpVU=";
}; };
beta = import ./browser.nix { beta = import ./browser.nix {
channel = "beta"; channel = "beta";
version = "119.0.2151.32"; version = "119.0.2151.44";
revision = "1"; revision = "1";
sha256 = "sha256-tsDFUKZDiusr/fGO5NMRqzTDIF+MTgC/1gJu95wXwAw="; sha256 = "sha256-aLiitzCoMvJH2xAfo9bO7lEPMqKlb++BdJkrWx61SMc=";
}; };
dev = import ./browser.nix { dev = import ./browser.nix {
channel = "dev"; channel = "dev";
version = "120.0.2172.1"; version = "120.0.2186.2";
revision = "1"; revision = "1";
sha256 = "sha256-EvTS0AO3/A8Ut9H36mMOnS9PRR062WAoas9/Pd90NBM="; sha256 = "sha256-L/rtOddk4bt8ffkRnq0BYcVjrSb7RmDaay85S5vixSM=";
}; };
} }

View file

@ -55,16 +55,16 @@ assert (extraParameters != null) -> set != null;
buildNpmPackage rec { buildNpmPackage rec {
pname = if set != null then "iosevka-${set}" else "iosevka"; pname = if set != null then "iosevka-${set}" else "iosevka";
version = "27.3.4"; version = "27.3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "be5invis"; owner = "be5invis";
repo = "iosevka"; repo = "iosevka";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-JsK2jzXyAACh9e3P2y0YLky2XQuR/dKyEbRpFUSnJdM="; hash = "sha256-dqXr/MVOuEmAMueaRWsnzY9MabhnyBRtLR9IDVLN79I=";
}; };
npmDepsHash = "sha256-uchJ+1NWbo4FpNOjOO3luhIdZyQZLToZ1UCMLdGzjkY="; npmDepsHash = "sha256-bux8aFBP1Pi5pAQY1jkNTqD2Ny2j+QQs+QRaXWJj6xg=";
nativeBuildInputs = [ nativeBuildInputs = [
remarshal remarshal

View file

@ -23,6 +23,7 @@
, gnome , gnome
, gsettings-desktop-schemas , gsettings-desktop-schemas
, gsound , gsound
, gst_all_1
, gtk4 , gtk4
, ibus , ibus
, libgnomekbd , libgnomekbd
@ -134,7 +135,11 @@ stdenv.mkDerivation rec {
tracker-miners # for search locations dialog tracker-miners # for search locations dialog
udisks2 udisks2
upower upower
]; ] ++ (with gst_all_1; [
# For animations in Mouse panel.
gst-plugins-base
gst-plugins-good
]);
preConfigure = '' preConfigure = ''
# For ITS rules # For ITS rules

View file

@ -55,6 +55,6 @@ in stdenv.mkDerivation rec {
homepage = "http://smalltalk.gnu.org/"; homepage = "http://smalltalk.gnu.org/";
license = with licenses; [ gpl2 lgpl2 ]; license = with licenses; [ gpl2 lgpl2 ];
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ AndersonTorres ];
}; };
} }

View file

@ -73,7 +73,7 @@ in
patches = rustcPatches; patches = rustcPatches;
# Use boot package set to break cycle # Use boot package set to break cycle
inherit (bootstrapRustPackages) cargo rustc; inherit (bootstrapRustPackages) cargo rustc rustfmt;
}); });
rustfmt = self.callPackage ./rustfmt.nix { rustfmt = self.callPackage ./rustfmt.nix {
inherit Security; inherit Security;

View file

@ -1,7 +1,7 @@
{ lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, targetPackages { lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, targetPackages
, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackages , llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackages
, fetchurl, file, python3 , fetchurl, file, python3
, darwin, cargo, cmake, rustc , darwin, cargo, cmake, rustc, rustfmt
, pkg-config, openssl, xz , pkg-config, openssl, xz
, libiconv , libiconv
, which, libffi , which, libffi
@ -24,13 +24,15 @@
let let
inherit (lib) optionals optional optionalString concatStringsSep; inherit (lib) optionals optional optionalString concatStringsSep;
inherit (darwin.apple_sdk.frameworks) Security; inherit (darwin.apple_sdk.frameworks) Security;
in stdenv.mkDerivation rec { in stdenv.mkDerivation (finalAttrs: {
pname = "${targetPackages.stdenv.cc.targetPrefix}rustc"; pname = "${targetPackages.stdenv.cc.targetPrefix}rustc";
inherit version; inherit version;
src = fetchurl { src = fetchurl {
url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"; url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
inherit sha256; inherit sha256;
# See https://nixos.org/manual/nixpkgs/stable/#using-git-bisect-on-the-rust-compiler
passthru.isReleaseTarball = true;
}; };
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
@ -82,6 +84,12 @@ in stdenv.mkDerivation rec {
"--release-channel=stable" "--release-channel=stable"
"--set=build.rustc=${rustc}/bin/rustc" "--set=build.rustc=${rustc}/bin/rustc"
"--set=build.cargo=${cargo}/bin/cargo" "--set=build.cargo=${cargo}/bin/cargo"
] ++ lib.optionals (!(finalAttrs.src.passthru.isReleaseTarball or false)) [
# release tarballs vendor the rustfmt source; when
# git-bisect'ing from upstream's git repo we must prevent
# attempts to download the missing source tarball
"--set=build.rustfmt=${rustfmt}/bin/rustfmt"
] ++ [
"--tools=rustc,rust-analyzer-proc-macro-srv" "--tools=rustc,rust-analyzer-proc-macro-srv"
"--enable-rpath" "--enable-rpath"
"--enable-vendor" "--enable-vendor"
@ -206,6 +214,14 @@ in stdenv.mkDerivation rec {
# See https://github.com/jemalloc/jemalloc/issues/1997 # See https://github.com/jemalloc/jemalloc/issues/1997
# Using a value of 48 should work on both emulated and native x86_64-darwin. # Using a value of 48 should work on both emulated and native x86_64-darwin.
export JEMALLOC_SYS_WITH_LG_VADDR=48 export JEMALLOC_SYS_WITH_LG_VADDR=48
'' + lib.optionalString (!(finalAttrs.src.passthru.isReleaseTarball or false)) ''
mkdir .cargo
cat > .cargo/config <<\EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
''; '';
# rustc unfortunately needs cmake to compile llvm-rt but doesn't # rustc unfortunately needs cmake to compile llvm-rt but doesn't
@ -283,4 +299,4 @@ in stdenv.mkDerivation rec {
"i686-windows" "x86_64-windows" "i686-windows" "x86_64-windows"
]; ];
}; };
} })

View file

@ -29,6 +29,6 @@ stdenv.mkDerivation {
homepage = "http://roguecentral.org/doryen/libtcod/"; homepage = "http://roguecentral.org/doryen/libtcod/";
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
maintainers = [ ]; maintainers = with lib.maintainers; [ AndersonTorres ];
}; };
} }

View file

@ -20,14 +20,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "asyncssh"; pname = "asyncssh";
version = "2.14.0"; version = "2.14.1";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-4D7y0TH7tDcbQBhxhFLOjHNaSO3+ATnSq9zkwYekWcM="; hash = "sha256-GsMcMzoNg8iIMVIyRVAMqoFFA0I3QbDkZTOe9tpbXik=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "awscrt"; pname = "awscrt";
version = "0.19.8"; version = "0.19.12";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-d6I1nRL41sWFvv9Nxw5dSJDEv15i9Lni0wySyWruEGU="; hash = "sha256-skkkwtmSbGJV6MRBJMfNhu+pWEBuMkB7ozTh9wiyYVM=";
}; };
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [

View file

@ -10,14 +10,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "azure-eventgrid"; pname = "azure-eventgrid";
version = "4.15.0"; version = "4.16.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-hVPCQgVu5NkEMJBJcfaER8JGtjnIEWquIcBX6vFSiAc="; hash = "sha256-o895Xjp/su2mc1WHbsQvWDe28sX/HhLtOb7BC5TFkyg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -0,0 +1,42 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
, setuptools
, pytestCheckHook
, pytest-django
, django-crispy-forms
}:
buildPythonPackage rec {
pname = "django-crispy-bootstrap4";
version = "2023.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "django-crispy-forms";
repo = "crispy-bootstrap4";
rev = "refs/tags/${version}";
hash = "sha256-4p6dlyQYZGyfBntTuzCjikL8ZG/4xDnTiQ1rCVt0Hbk=";
};
propagatedBuildInputs = [
django
setuptools
];
nativeCheckInputs = [
pytest-django
pytestCheckHook
django-crispy-forms
];
pythonImportsCheck = [ "crispy_bootstrap4" ];
meta = with lib; {
description = "Bootstrap 4 template pack for django-crispy-forms";
homepage = "https://github.com/django-crispy-forms/crispy-bootstrap4";
license = licenses.mit;
maintainers = with maintainers; [ onny ];
};
}

View file

@ -1,34 +1,48 @@
{ lib { lib
, asgiref
, blinker
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, flask
, pytestCheckHook
, pythonAtLeast
, pythonOlder , pythonOlder
, semantic-version
# build-system
, setuptools
# dependencies
, flask
, werkzeug , werkzeug
# tests
, asgiref
, blinker
, pytestCheckHook
, semantic-version
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "flask-login"; pname = "flask-login";
version = "0.6.2"; version = "0.6.3";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
pname = "Flask-Login"; pname = "Flask-Login";
inherit version; inherit version;
hash = "sha256-wKe6qf3ESM3T3W8JOd9y7sUXey96vmy4L8k00pyqycM="; hash = "sha256-XiPRSmB+8SgGxplZC4nQ8ODWe67sWZ11lHv5wUczAzM=";
}; };
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
flask flask
werkzeug werkzeug
]; ];
pythonImportsCheck = [
"flask_login"
];
nativeCheckInputs = [ nativeCheckInputs = [
asgiref asgiref
blinker blinker
@ -36,25 +50,8 @@ buildPythonPackage rec {
semantic-version semantic-version
]; ];
disabledTests = [
# https://github.com/maxcountryman/flask-login/issues/747
"test_remember_me_accepts_duration_as_int"
"test_remember_me_custom_duration_uses_custom_cookie"
"test_remember_me_refresh_every_request"
"test_remember_me_uses_custom_cookie_parameters"
] ++ lib.optionals (pythonAtLeast "3.10") [
"test_hashable"
];
pytestFlagsArray = [
"-W" "ignore::DeprecationWarning"
];
pythonImportsCheck = [
"flask_login"
];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/maxcountryman/flask-login/blob/${version}/CHANGES.md";
description = "User session management for Flask"; description = "User session management for Flask";
homepage = "https://github.com/maxcountryman/flask-login"; homepage = "https://github.com/maxcountryman/flask-login";
license = licenses.mit; license = licenses.mit;

View file

@ -46,6 +46,7 @@ buildPythonPackage rec {
description = "Settings management using pydantic"; description = "Settings management using pydantic";
homepage = "https://github.com/pydantic/pydantic-settings"; homepage = "https://github.com/pydantic/pydantic-settings";
license = licenses.mit; license = licenses.mit;
broken = lib.versionOlder pydantic.version "2.0.0";
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sgp4"; pname = "sgp4";
version = "2.22"; version = "2.23";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-F/Ci6q0tygZbbeJcHOqpQP98+ozGcSDLQRGgDxd7hvk="; hash = "sha256-2K3cU6L7n4je5r/UAdKGWwFMwLV78s7mm97o2WhdVCk=";
}; };
nativeCheckInputs = [ numpy ]; nativeCheckInputs = [ numpy ];

View file

@ -1,22 +1,35 @@
{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, isPy27 }: { lib
, buildPythonPackage
, fetchPypi
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "unicodedata2"; pname = "unicodedata2";
version = "15.0.0"; version = "15.1.0";
format = "setuptools";
disabled = isPy27; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit version pname; inherit version pname;
sha256 = "0bcgls7m2zndpd8whgznnd5908jbsa50si2bh88wsn0agcznhv7d"; hash = "sha256-yzDxia1mSC+FKaRdpxsqiEHpvSuzdswpMwA6SlWgdkg=";
}; };
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"unicodedata2"
];
meta = with lib; { meta = with lib; {
description = "Backport and updates for the unicodedata module"; description = "Backport and updates for the unicodedata module";
homepage = "https://github.com/mikekap/unicodedata2"; homepage = "https://github.com/mikekap/unicodedata2";
changelog = "https://github.com/fonttools/unicodedata2/releases/tag/${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.sternenseemann ]; maintainers = with maintainers; [ sternenseemann ];
}; };
} }

View file

@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];
cmakeFlags = [ "-DPICO_SDK_PATH=${pico-sdk}/lib/pico-sdk" ]; cmakeFlags = [ "-DPICO_SDK_PATH=${pico-sdk}/lib/pico-sdk" ];
postInstall = ''
install -Dm444 ../udev/99-picotool.rules -t $out/etc/udev/rules.d
'';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/raspberrypi/picotool"; homepage = "https://github.com/raspberrypi/picotool";
description = "Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary"; description = "Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary";

View file

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-generate"; pname = "cargo-generate";
version = "0.18.4"; version = "0.18.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cargo-generate"; owner = "cargo-generate";
repo = "cargo-generate"; repo = "cargo-generate";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-u4LEE3fDYneKhNU38VeVNvqcbDO0pws6yldgcvwSv6M="; sha256 = "sha256-be0jgjhaboutT+c3rRyp6fjmv8nAkggkcqofWmH83Zc=";
}; };
cargoSha256 = "sha256-pgffaqHWnm3RBE9TGbpRJX35BFpXW/na9wmad9eyCXw="; cargoHash = "sha256-Sset3+jRm6yOUkvLYxBHdFvVCYOq3bvix9b3pnt7AV8=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
description = "A community-lead fork of the minimalist roguelike game Brogue"; description = "A community-lead fork of the minimalist roguelike game Brogue";
homepage = "https://github.com/tmewett/BrogueCE"; homepage = "https://github.com/tmewett/BrogueCE";
license = licenses.agpl3; license = licenses.agpl3;
maintainers = with maintainers; [ fgaz ]; maintainers = with maintainers; [ AndersonTorres fgaz ];
platforms = platforms.all; platforms = platforms.all;
}; };
} }

View file

@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
description = "A roguelike game"; description = "A roguelike game";
homepage = "https://sites.google.com/site/broguegame/"; homepage = "https://sites.google.com/site/broguegame/";
license = licenses.agpl3; license = licenses.agpl3;
maintainers = [ ]; maintainers = with maintainers; [ AndersonTorres fgaz ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} }

View file

@ -71,7 +71,7 @@ in
meta = with lib; { meta = with lib; {
description = "Custom launcher for FFXIV"; description = "Custom launcher for FFXIV";
homepage = "https://github.com/goatcorp/FFXIVQuickLauncher"; homepage = "https://github.com/goatcorp/XIVLauncher.Core";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ sersorrel witchof0x20 ]; maintainers = with maintainers; [ sersorrel witchof0x20 ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];

View file

@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.jabberwocky.com/software/paperkey/"; homepage = "https://www.jabberwocky.com/software/paperkey/";
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ AndersonTorres peterhoeg ];
}; };
} }

View file

@ -2958,6 +2958,8 @@ self: super: with self; {
django-countries = callPackage ../development/python-modules/django-countries { }; django-countries = callPackage ../development/python-modules/django-countries { };
django-crispy-bootstrap4 = callPackage ../development/python-modules/django-crispy-bootstrap4 { };
django-crispy-forms = callPackage ../development/python-modules/django-crispy-forms { }; django-crispy-forms = callPackage ../development/python-modules/django-crispy-forms { };
django-cryptography = callPackage ../development/python-modules/django-cryptography { }; django-cryptography = callPackage ../development/python-modules/django-cryptography { };