Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-07-09 18:01:06 +00:00 committed by GitHub
commit c786eaf612
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 16941 additions and 174 deletions

View file

@ -42,7 +42,7 @@ let
nixos-option = nixos-option =
if lib.versionAtLeast (lib.getVersion config.nix.package) "2.4pre" if lib.versionAtLeast (lib.getVersion config.nix.package) "2.4pre"
then null then null
else pkgs.callPackage ./nixos-option { }; else pkgs.nixos-option;
nixos-version = makeProg { nixos-version = makeProg {
name = "nixos-version"; name = "nixos-version";

View file

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec { rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
pname = "zcash"; pname = "zcash";
version = "4.4.0"; version = "4.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zcash"; owner = "zcash";
repo = "zcash"; repo = "zcash";
rev = "v${version}"; rev = "v${version}";
sha256 = "19vhblyqkaf1lapx8s4v88xjpslqmrd1jnar46rschzcz0mm9sq4"; sha256 = "0nhrjizx518khrl8aygag6a1ianzzqpchasggi963f807kv7ipb7";
}; };
cargoSha256 = "1yiy1506ijndxb9bx79p7fkfvw1c5zdsljil4m55xz1mv8dzhbgm"; cargoSha256 = "101j8cn2lg3l1gn53yg3svzwx783z331g9kzn9ici4azindyx903";
nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ]; nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
buildInputs = [ boost174 libevent libsodium utf8cpp ] buildInputs = [ boost174 libevent libsodium utf8cpp ]

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kube3d"; pname = "kube3d";
version = "4.4.6"; version = "4.4.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rancher"; owner = "rancher";
repo = "k3d"; repo = "k3d";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-gId7zDrtkTjFN59yaFyeYwrDZV24hkkV+4dPr8Jr22E="; sha256 = "sha256-S1vHmXUCP1ayPo3vvHAbNCqNm1ueJ0jE4NUBvg5P3MU=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -0,0 +1,60 @@
{ lib, stdenv, fetchFromGitHub, fftw, libjpeg, log4cpp, openjpeg
, libpng12, poppler, qtbase, qt5, qmake, wrapQtAppsHook
}:
stdenv.mkDerivation rec {
pname = "engauge-digitizer";
version = "12.1";
src = fetchFromGitHub {
owner = "markummitchell";
repo = pname;
rev = "v${version}";
sha256 = "12gflxqaa4w6vifwpaqwl0l3f9qq5pbrh45s1rpc584nmr0897a7";
};
nativeBuildInputs = [ qmake wrapQtAppsHook ];
buildInputs = [
qtbase
qt5.qttools
poppler
libpng12
openjpeg
openjpeg.dev
log4cpp
libjpeg
fftw
];
qmakeFlags = [
"CONFIG+=jpeg2000"
"CONFIG+=pdf"
"CONFIG+=log4cpp_null"
];
POPPLER_INCLUDE = "${poppler.dev}/include/poppler/qt5";
POPPLER_LIB = "${poppler}/lib";
OPENJPEG_INCLUDE = "${openjpeg.dev}/include/${openjpeg.pname}-${lib.versions.majorMinor openjpeg.version}";
OPENJPEG_LIB = "${openjpeg}/lib";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp bin/engauge $out/bin/
runHook postInstall
'';
meta = with lib; {
description = "Engauge Digitizer is a tool for recovering graph data from an image file";
homepage = "https://markummitchell.github.io/engauge-digitizer";
license = with licenses; [ gpl2Only ];
platforms = platforms.linux;
maintainers = [ maintainers.sheepforce ];
};
}

View file

@ -0,0 +1,34 @@
{ lib, fetchFromGitLab, buildDunePackage, bigstring, alcotest, cstruct, hex }:
buildDunePackage rec {
pname = "uecc";
version = "0.3";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "ocaml-uecc";
rev = "v${version}";
sha256 = "0m3cw34254baajscrwlrj0jp5n0yad3dhgi4jh3pz89iqykj15fr";
};
useDune2 = true;
propagatedBuildInputs = [
bigstring
];
checkInputs = [
alcotest
cstruct
hex
];
doCheck = true;
meta = {
description = "Bindings for ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors";
homepage = https://gitlab.com/nomadic-labs/ocaml-uecc;
license = lib.licenses.isc;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -1,165 +1,202 @@
{ lib { lib
, stdenv , stdenv
, python
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, fetchpatch , writeText
, alembic , alembic
, argcomplete
, attrs
, blinker
, cached-property , cached-property
, configparser , cattrs
, clickclick
, colorlog , colorlog
, croniter , croniter
, cryptography
, dill , dill
, flask , flask
, flask-appbuilder , flask-appbuilder
, flask-admin
, flask-caching , flask-caching
, flask_login , flask_login
, flask-swagger
, flask_wtf , flask_wtf
, flask-bcrypt
, funcsigs
, future
, GitPython , GitPython
, graphviz
, gunicorn , gunicorn
, httpx
, iso8601 , iso8601
, json-merge-patch , importlib-resources
, importlib-metadata
, inflection
, itsdangerous
, jinja2 , jinja2
, ldap3 , jsonschema
, lxml
, lazy-object-proxy , lazy-object-proxy
, lockfile
, markdown , markdown
, markupsafe
, marshmallow-oneofschema
, numpy
, openapi-spec-validator
, pandas , pandas
, pendulum , pendulum
, psutil , psutil
, pygments , pygments
, pyjwt
, python-daemon , python-daemon
, python-dateutil , python-dateutil
, requests , python-nvd3
, python-slugify
, python3-openid
, pyyaml
, rich
, setproctitle , setproctitle
, snakebite
, sqlalchemy , sqlalchemy
, sqlalchemy-jsonfield
, swagger-ui-bundle
, tabulate , tabulate
, tenacity , tenacity
, termcolor , termcolor
, text-unidecode
, thrift
, tzlocal
, unicodecsv , unicodecsv
, zope_deprecation , werkzeug
, nose , pytest
, pythonOlder , freezegun
, pythonAtLeast , mkYarnPackage
}: }:
let
buildPythonPackage rec { version = "2.1.1rc1";
pname = "apache-airflow";
version = "1.10.5";
# Upstream does not yet support python 3.8
# https://github.com/apache/airflow/issues/8674
disabled = pythonOlder "3.5" || pythonAtLeast "3.8";
src = fetchFromGitHub rec { airflow-src = fetchFromGitHub rec {
owner = "apache"; owner = "apache";
repo = "airflow"; repo = "airflow";
rev = version; rev = version;
sha256 = "14fmhfwx977c9jdb2kgm93i6acx43l45ggj30rb37r68pzpb6l6h"; sha256 = "1vzzmcfgqni9rkf7ggh8mswnm3ffwaishcz1ysrwx0a96ilhm9q2";
}; };
patches = [ # airflow bundles a web interface, which is built using webpack by an undocumented shell script in airflow's source tree.
# Not yet accepted: https://github.com/apache/airflow/pull/6562 # This replicates this shell script, fixing bugs in yarn.lock and package.json
(fetchpatch {
name = "avoid-warning-from-abc.collections"; airflow-frontend = mkYarnPackage {
url = "https://patch-diff.githubusercontent.com/raw/apache/airflow/pull/6562.patch"; name = "airflow-frontend";
sha256 = "0swpay1qlb7f9kgc56631s1qd9k82w4nw2ggvkm7jvxwf056k61z";
}) src = "${airflow-src}/airflow/www";
# Not yet accepted: https://github.com/apache/airflow/pull/6561 packageJSON = ./package.json;
(fetchpatch { yarnLock = ./yarn.lock;
name = "pendulum2-compatibility"; yarnNix = ./yarn.nix;
url = "https://patch-diff.githubusercontent.com/raw/apache/airflow/pull/6561.patch";
sha256 = "17hw8qyd4zxvib9zwpbn32p99vmrdz294r31gnsbkkcl2y6h9knk"; distPhase = "true";
})
]; configurePhase = ''
cp -r $node_modules node_modules
'';
buildPhase = ''
yarn --offline build
find package.json yarn.lock static/css static/js -type f | sort | xargs md5sum > static/dist/sum.md5
'';
installPhase = ''
mkdir -p $out/static/
cp -r static/dist $out/static
'';
};
in
buildPythonPackage rec {
pname = "apache-airflow";
inherit version;
src = airflow-src;
propagatedBuildInputs = [ propagatedBuildInputs = [
alembic alembic
argcomplete
attrs
blinker
cached-property cached-property
cattrs
clickclick
colorlog colorlog
configparser
croniter croniter
cryptography
dill dill
flask flask
flask-admin
flask-appbuilder flask-appbuilder
flask-bcrypt
flask-caching flask-caching
flask_login flask_login
flask-swagger
flask_wtf flask_wtf
funcsigs
future
GitPython GitPython
graphviz
gunicorn gunicorn
httpx
iso8601 iso8601
json-merge-patch importlib-resources
importlib-metadata
inflection
itsdangerous
jinja2 jinja2
ldap3 jsonschema
lxml
lazy-object-proxy lazy-object-proxy
lockfile
markdown markdown
markupsafe
marshmallow-oneofschema
numpy
openapi-spec-validator
pandas pandas
pendulum pendulum
psutil psutil
pygments pygments
pyjwt
python-daemon python-daemon
python-dateutil python-dateutil
requests python-nvd3
python-slugify
python3-openid
pyyaml
rich
setproctitle setproctitle
sqlalchemy sqlalchemy
sqlalchemy-jsonfield
swagger-ui-bundle
tabulate tabulate
tenacity tenacity
termcolor termcolor
text-unidecode
thrift
tzlocal
unicodecsv unicodecsv
zope_deprecation werkzeug
];
buildInputs = [
airflow-frontend
]; ];
checkInputs = [ checkInputs = [
snakebite freezegun
nose pytest
]; ];
INSTALL_PROVIDERS_FROM_SOURCES = "true";
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.cfg \
--replace "importlib_resources~=1.4" "importlib_resources" \
--replace "importlib_metadata~=1.7" "importlib_metadata" \
--replace "tenacity~=6.2.0" "tenacity" \
--replace "pyjwt<2" "pyjwt" \
--replace "flask>=1.1.0, <2.0" "flask" \ --replace "flask>=1.1.0, <2.0" "flask" \
--replace "jinja2>=2.10.1, <2.11.0" "jinja2" \
--replace "pandas>=0.17.1, <1.0.0" "pandas" \
--replace "flask-caching>=1.3.3, <1.4.0" "flask-caching" \
--replace "flask-appbuilder>=1.12.5, <2.0.0" "flask-appbuilder" \
--replace "flask-admin==1.5.3" "flask-admin" \
--replace "flask-login>=0.3, <0.5" "flask-login" \ --replace "flask-login>=0.3, <0.5" "flask-login" \
--replace "cached_property~=1.5" "cached_property" \ --replace "flask-wtf>=0.14.3, <0.15" "flask-wtf" \
--replace "dill>=0.2.2, <0.3" "dill" \ --replace "jinja2>=2.10.1, <2.12.0" "jinja2" \
--replace "configparser>=3.5.0, <3.6.0" "configparser" \ --replace "attrs>=20.0, <21.0" "attrs" \
--replace "colorlog==4.0.2" "colorlog" \ --replace "cattrs~=1.1, <1.7.0" "cattrs" \
--replace "funcsigs==1.0.0" "funcsigs" \ --replace "markupsafe>=1.1.1, <2.0" "markupsafe" \
--replace "flask-swagger==0.2.13" "flask-swagger" \ --replace "docutils<0.17" "docutils" \
--replace "python-daemon>=2.1.1, <2.2" "python-daemon" \ --replace "sqlalchemy>=1.3.18, <1.4" "sqlalchemy" \
--replace "alembic>=1.0, <2.0" "alembic" \ --replace "sqlalchemy_jsonfield~=1.0" "sqlalchemy-jsonfield" \
--replace "markdown>=2.5.2, <3.0" "markdown" \ --replace "werkzeug~=1.0, >=1.0.1" "werkzeug" \
--replace "future>=0.16.0, <0.17" "future" \ --replace "itsdangerous>=1.1.0, <2.0" "itsdangerous"
--replace "tenacity==4.12.0" "tenacity" \
--replace "text-unidecode==1.2" "text-unidecode" \
--replace "tzlocal>=1.4,<2.0.0" "tzlocal" \
--replace "sqlalchemy~=1.3" "sqlalchemy" \
--replace "gunicorn>=19.5.0, <20.0" "gunicorn"
# dumb-init is only needed for CI and Docker, not relevant for NixOS. substituteInPlace tests/core/test_core.py \
substituteInPlace setup.py \
--replace "'dumb-init>=1.2.2'," ""
substituteInPlace tests/core.py \
--replace "/bin/bash" "${stdenv.shell}" --replace "/bin/bash" "${stdenv.shell}"
''; '';
@ -174,11 +211,14 @@ buildPythonPackage rec {
export PATH=$PATH:$out/bin export PATH=$PATH:$out/bin
airflow version airflow version
airflow initdb airflow db init
airflow resetdb -y airflow db reset -y
nosetests tests.core.CoreTest
## all tests pytest tests/core/test_core.py
# nosetests --cover-package=airflow '';
postInstall = ''
cp -rv ${airflow-frontend}/static/dist $out/lib/${python.libPrefix}/site-packages/airflow/www/static
''; '';
meta = with lib; { meta = with lib; {

View file

@ -0,0 +1,80 @@
{
"name": "airflow-frontend",
"version": "2.1.1rc1",
"description": "Apache Airflow is a platform to programmatically author, schedule and monitor workflows.",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "NODE_ENV=dev webpack --watch --colors --progress --debug --output-pathinfo --devtool eval-cheap-source-map --mode development",
"prod": "NODE_ENV=production node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js -p --colors --progress",
"build": "NODE_ENV=production webpack --colors --progress",
"lint": "eslint --ignore-path=.eslintignore --ext .js,.html .",
"lint:fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.html ."
},
"author": "Apache",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "git+https://github.com/apache/airflow.git"
},
"homepage": "https://airflow.apache.org/",
"keywords": [
"big",
"data",
"workflow",
"airflow",
"d3",
"nerds",
"database",
"flask"
],
"devDependencies": {
"babel": "^6.23.0",
"babel-core": "^6.26.3",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0",
"babel-plugin-css-modules-transform": "^1.6.1",
"babel-polyfill": "^6.26.0",
"clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^6.0.3",
"css-loader": "^3.4.2",
"eslint": "^7.5.0",
"eslint-config-airbnb-base": "^14.2.0",
"eslint-plugin-html": "^6.0.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"file-loader": "^6.0.0",
"imports-loader": "^1.1.0",
"mini-css-extract-plugin": "1.6.0",
"moment-locales-webpack-plugin": "^1.2.0",
"optimize-css-assets-webpack-plugin": "6.0.0",
"style-loader": "^1.2.1",
"stylelint": "^13.6.1",
"stylelint-config-standard": "^20.0.0",
"url-loader": "4.1.0",
"webpack": "^4.16.3",
"webpack-cli": "^3.1.0",
"webpack-manifest-plugin": "^2.2.0"
},
"dependencies": {
"bootstrap-3-typeahead": "^4.0.2",
"codemirror": "^5.59.1",
"d3": "^3.4.4",
"d3-shape": "^2.1.0",
"d3-tip": "^0.9.1",
"dagre-d3": "^0.6.4",
"datatables.net": "^1.10.23",
"datatables.net-bs": "^1.10.23",
"eonasdan-bootstrap-datetimepicker": "^4.17.47",
"jquery": ">=3.4.0",
"jshint": "^2.12.0",
"moment-timezone": "^0.5.28",
"nvd3": "^1.8.6",
"redoc": "^2.0.0-rc.48",
"url-search-params-polyfill": "^8.1.0"
},
"resolutions": {
"lodash": "^4.17.21"
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,7 @@
{ lib { lib
, attrs , attrs
, bson , bson
, pythonOlder
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, hypothesis , hypothesis
@ -18,6 +19,10 @@ buildPythonPackage rec {
version = "1.7.0"; version = "1.7.0";
format = "pyproject"; format = "pyproject";
# https://cattrs.readthedocs.io/en/latest/history.html#id33:
# "Python 2, 3.5 and 3.6 support removal. If you need it, use a version below 1.1.0."
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Tinche"; owner = "Tinche";
repo = pname; repo = pname;

View file

@ -5,7 +5,6 @@
, colorama , colorama
, click , click
, email_validator , email_validator
, fetchpatch
, flask , flask
, flask-babel , flask-babel
, flask_login , flask_login
@ -26,23 +25,18 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "flask-appbuilder"; pname = "flask-appbuilder";
version = "3.3.0"; version = "3.3.1";
src = fetchPypi { src = fetchPypi {
pname = "Flask-AppBuilder"; pname = "Flask-AppBuilder";
inherit version; inherit version;
sha256 = "00dsfv1apl6483wy20aj91f9h5ak2casbx5vcajv2nd3i7c7v8gx"; sha256 = "13rlpdf3ipm39zpc62sywn8qjn6gwfbgr43x7lqpxr28br2jcg3j";
}; };
patches = [ # See here: https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch
# https://github.com/dpgaspar/Flask-AppBuilder/pull/1610 # https://github.com/dpgaspar/Flask-AppBuilder/pull/1610
(fetchpatch { # The patch from the PR doesn't apply cleanly so I edited it manually.
name = "flask_jwt_extended-and-pyjwt-patch"; patches = [ ./upgrade-to-flask_jwt_extended-4.patch ];
url = "https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch";
sha256 = "sha256-ZpY8+2Hoz3z01GVtw2OIbQcsmAwa7iwilFWzgcGhY1w=";
includes = [ "flask_appbuilder/security/manager.py" "setup.py" ];
})
];
propagatedBuildInputs = [ propagatedBuildInputs = [
apispec apispec
@ -70,9 +64,15 @@ buildPythonPackage rec {
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3, <5" \ --replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3, <5" \
--replace "click>=6.7, <8" "click" \
--replace "Flask>=0.12, <2" "Flask" \
--replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3, <0.6" \ --replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3, <0.6" \
--replace "Flask-Babel>=1, <2" "Flask-Babel >=1, <3" \ --replace "Flask-Babel>=1, <2" "Flask-Babel >=1, <3" \
--replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy >=0.22.0, <0.25.0" --replace "Flask-WTF>=0.14.2, <0.15.0" "Flask-WTF" \
--replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy" \
--replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended>=4.1.0" \
--replace "PyJWT>=1.7.1, <2.0.0" "PyJWT>=2.0.1" \
--replace "SQLAlchemy<1.4.0" "SQLAlchemy"
''; '';
# Majority of tests require network access or mongo # Majority of tests require network access or mongo

View file

@ -0,0 +1,45 @@
diff --git a/flask_appbuilder/security/api.py b/flask_appbuilder/security/api.py
index 2e2dfd612..df1bd5a25 100644
--- a/flask_appbuilder/security/api.py
+++ b/flask_appbuilder/security/api.py
@@ -3,7 +3,7 @@
create_access_token,
create_refresh_token,
get_jwt_identity,
- jwt_refresh_token_required,
+ jwt_required,
)
from ..api import BaseApi, safe
@@ -118,7 +118,7 @@ def login(self):
return self.response(200, **resp)
@expose("/refresh", methods=["POST"])
- @jwt_refresh_token_required
+ @jwt_required(refresh=True)
@safe
def refresh(self):
"""
diff --git a/flask_appbuilder/security/manager.py b/flask_appbuilder/security/manager.py
index fe7697007..3b22ab255 100644
--- a/flask_appbuilder/security/manager.py
+++ b/flask_appbuilder/security/manager.py
@@ -297,7 +297,7 @@ def create_jwt_manager(self, app) -> JWTManager:
"""
jwt_manager = JWTManager()
jwt_manager.init_app(app)
- jwt_manager.user_loader_callback_loader(self.load_user_jwt)
+ jwt_manager.user_lookup_loader(self.load_user_jwt)
return jwt_manager
def create_builtin_roles(self):
@@ -1944,7 +1944,8 @@ def del_permission_role(self, role, perm_view):
def load_user(self, pk):
return self.get_user_by_id(int(pk))
- def load_user_jwt(self, pk):
+ def load_user_jwt(self, _jwt_header, jwt_data):
+ pk = jwt_data["sub"]
user = self.load_user(pk)
# Set flask g.user to JWT user, we can't do it on before request
g.user = user

View file

@ -0,0 +1,22 @@
{ lib, buildPythonPackage, fetchPypi, marshmallow, setuptools }:
buildPythonPackage rec {
pname = "marshmallow-oneofschema";
version = "2.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "0s0yr7nv06sfgxglghl2vq74g3m49j60k1hi2qzfsv4bj8hvs35k";
};
propagatedBuildInputs = [ marshmallow setuptools ];
pythonImportsCheck = [ "marshmallow_oneofschema" ];
meta = with lib; {
homepage = "https://github.com/marshmallow-code/marshmallow-oneofschema";
description = "Marshmallow library extension that allows schema (de)multiplexing";
license = licenses.mit;
maintainers = [ maintainers.ivan-tkatchev ];
};
}

View file

@ -8,14 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyfronius"; pname = "pyfronius";
version = "0.5.2"; version = "0.5.3";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nielstron"; owner = "nielstron";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "013nlxbpicm4d07q8cjkbwh6xbji8am5la9vv5iqjyk0h4c2hgr7"; sha256 = "sha256-AtCpraIYNrEkTygtLMivrXfKCKVKIIUCDo3GYFpg8fk=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -0,0 +1,27 @@
{ lib, buildPythonPackage, fetchFromGitHub, python-slugify, jinja2, setuptools, coverage }:
buildPythonPackage rec {
pname = "python-nvd3";
version = "0.15.0";
src = fetchFromGitHub {
owner = "areski";
repo = "python-nvd3";
rev = "dc8e772597ed72f413b229856fc9a3318e57fcfc";
sha256 = "1vjnicszcc9j0rgb58104fk9sry5xad1xli64jana9bkx42c6x1v";
};
propagatedBuildInputs = [ python-slugify jinja2 setuptools ];
checkInputs = [ coverage ];
checkPhase = ''
coverage run --source=nvd3 setup.py test
'';
meta = with lib; {
homepage = "https://github.com/areski/python-nvd3";
description = "Python Wrapper for NVD3 - It's time for beautiful charts";
license = licenses.mit;
maintainers = [ maintainers.ivan-tkatchev ];
};
}

View file

@ -0,0 +1,44 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, sqlalchemy
, setuptools-scm
, setuptools
, tox
, sphinx
, pytest
, pytest-cov
, pytest-html
, pytest-sugar
, coverage
, pymysql
, psycopg2 }:
buildPythonPackage rec {
pname = "sqlalchemy-jsonfield";
version = "1.0.0";
src = fetchFromGitHub {
owner = "penguinolog";
repo = "sqlalchemy_jsonfield";
rev = version;
sha256 = "015pl4z84spfw8389hk1szlm37jgw2basvbmzmkacdqi0685zx24";
};
SETUPTOOLS_SCM_PRETEND_VERSION = "v${version}";
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [ sqlalchemy setuptools ];
checkInputs = [ tox sphinx pytest pytest-cov pytest-html pytest-sugar coverage pymysql psycopg2 ];
checkPhase = ''
TOX_TESTENV_PASSENV="PYTHONPATH SETUPTOOLS_SCM_PRETEND_VERSION" tox -e functional
'';
meta = with lib; {
homepage = "https://github.com/penguinolog/sqlalchemy_jsonfield";
description = "SQLALchemy JSONField implementation for storing dicts at SQL independently from JSON type support";
license = licenses.asl20;
maintainers = [ maintainers.ivan-tkatchev ];
};
}

View file

@ -0,0 +1,34 @@
From 9718cdb4bdaf7203d07789b2dc5eec4060538889 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Fri, 9 Jul 2021 11:37:22 +0200
Subject: [PATCH] bundle system-glm in seriousproton
---
CMakeLists.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cbd68ca..730df82 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,6 +81,9 @@ if(NOT ${SFML_FOUND})
)
endif()
+
+find_package(glm)
+
add_subdirectory(src/Box2D)
add_subdirectory(src/lua)
add_subdirectory(src/GL)
@@ -205,7 +208,7 @@ target_compile_options(seriousproton_deps
target_link_libraries(seriousproton_deps
INTERFACE
- box2d lua glew ${SFML_LIBRARIES}
+ box2d lua glew ${SFML_LIBRARIES} glm
"$<$<BOOL:${WIN32}>:wsock32>"
# LTO flag must be on the linker's list as well.
"$<$<AND:$<BOOL:${CMAKE_COMPILER_IS_GNUCC}>,$<OR:$<CONFIG:RelWithDebInfo>,$<CONFIG:Release>>>:-flto>"
--
2.31.1

View file

@ -1,11 +1,11 @@
{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3 }: { lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3, fetchpatch, applyPatches, glm}:
let let
major = "2021"; major = "2021";
minor = "03"; minor = "06";
patch.seriousproton = "30"; patch.seriousproton = "23";
patch.emptyepsilon = "31"; patch.emptyepsilon = "23";
version.seriousproton = "${major}.${minor}.${patch.seriousproton}"; version.seriousproton = "${major}.${minor}.${patch.seriousproton}";
version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}"; version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}";
@ -14,15 +14,32 @@ let
pname = "serious-proton"; pname = "serious-proton";
version = version.seriousproton; version = version.seriousproton;
src = fetchFromGitHub { src = applyPatches {
owner = "daid"; src = fetchFromGitHub {
repo = "SeriousProton"; owner = "daid";
rev = "EE-${version.seriousproton}"; repo = "SeriousProton";
sha256 = "sha256-wxb/CxJ/HKsVngeahjygZFPMMxitkHdVD0EQ3svxgIU="; rev = "EE-${version.seriousproton}";
sha256 = "sha256-02cHHWKoe99257qLgxtMjeXnhi0UYajh4v87B57felM=";
};
patches = [
# Various CMake fixes for `json11`. Can be removed on the next release.
(fetchpatch {
url = "https://github.com/daid/SeriousProton/commit/adbba45fd9ae5e020e43e5d7f9326f1355391209.patch";
sha256 = "sha256-gMTpIGPGCREmZ/ZxvEc7RVsVUxWXbu2BPUCE3A62sCI=";
})
# Simplified variant of
# * https://github.com/daid/SeriousProton/commit/0d1ac45b738195db5e2785531db713328f547e60
# * https://github.com/daid/SeriousProton/commit/32509f2db91a58b9528aeb1bb505e9426b52b825
#
# To fix configure errors when building EmptyEpsilon, can be removed on the next release.
./0001-bundle-system-glm-in-seriousproton.patch
];
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ sfml libX11 ]; buildInputs = [ sfml libX11 glm ];
meta = with lib; { meta = with lib; {
description = "C++ game engine coded on top of SFML used for EmptyEpsilon"; description = "C++ game engine coded on top of SFML used for EmptyEpsilon";
@ -44,11 +61,23 @@ stdenv.mkDerivation {
owner = "daid"; owner = "daid";
repo = "EmptyEpsilon"; repo = "EmptyEpsilon";
rev = "EE-${version.emptyepsilon}"; rev = "EE-${version.emptyepsilon}";
sha256 = "sha256-x0XJPMU0prubTb4ti/W/dH5P9abNwbjqkeUhKQpct9o="; sha256 = "sha256-dc/Ic1/DULTQO6y9xSop2HxFvUh4kN57oSF/HBmbmF4=";
}; };
patches = [
# Various CMake fixes that can be removed when upgrading to the next release.
(fetchpatch {
url = "https://github.com/daid/EmptyEpsilon/commit/ee0cd42bfe5fd20b8339e8e02eb7f69766168d57.patch";
sha256 = "sha256-8dXtl/izfzqbwHtjuugjH34vYP+d4AobqZhxL2GXTzw=";
})
(fetchpatch {
url = "https://github.com/daid/EmptyEpsilon/commit/69d93e6acdae3259755924f9d35e7e5ae949d377.patch";
sha256 = "sha256-30AGo4mi73GrW9GNS3vF3mTOS7J5/41LvjOzNjeFhOg=";
})
];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ serious-proton sfml glew libX11 python3 ]; buildInputs = [ serious-proton sfml glew libX11 python3 glm ];
cmakeFlags = [ cmakeFlags = [
"-DSERIOUS_PROTON_DIR=${serious-proton.src}" "-DSERIOUS_PROTON_DIR=${serious-proton.src}"

View file

@ -1,24 +1,33 @@
{ lib, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, ... } @ args: { lib
, fetchpatch
, kernel
, date ? "2021-07-08"
, commit ? "3693b2ca83ff9eda49660b31299d2bebe3a1075f"
, diffHash ? "1sfq3vwc2kxa761s292f2cqrm0vvqvkdx6drpyn5yaxwnapwidcw"
, kernelPatches # must always be defined in bcachefs' all-packages.nix entry because it's also a top-level attribute supplied by callPackage
, argsOverride ? {}
, ...
} @ args:
buildLinux (args // { kernel.override ( args // {
version = "5.9.0-2020.11.20";
modDirVersion = "5.9.0";
src = fetchFromGitHub { argsOverride = {
owner = "koverstreet"; version = "${kernel.version}-bcachefs-unstable-${date}";
repo = "bcachefs"; extraMeta = {
# commit does not exist on any branch on the target repository branch = "master";
rev = "6a505b63ed3003faf5000f19fd08bbd477d93fbc"; maintainers = with lib.maintainers; [ davidak chiiruno ];
sha256 = "1rf34gzv9npafp1c3i6lymk3b0gnqp4rb0wl33pw6yrpgnsry3cc"; platforms = [ "x86_64-linux" ];
}; };
} // argsOverride;
extraConfig = "BCACHEFS_FS m"; kernelPatches = [ {
name = "bcachefs-${commit}";
patch = fetchpatch {
name = "bcachefs-${commit}.diff";
url = "https://evilpiepirate.org/git/bcachefs.git/rawdiff/?id=${commit}&id2=v${lib.versions.majorMinor kernel.version}";
sha256 = diffHash;
};
extraConfig = "BCACHEFS_FS m";
} ] ++ kernelPatches;
extraMeta = { })
branch = "master";
hydraPlatforms = []; # Should the testing kernels ever be built on Hydra?
maintainers = with lib.maintainers; [ davidak chiiruno ];
platforms = [ "x86_64-linux" ];
};
} // (args.argsOverride or {}))

View file

@ -3,12 +3,12 @@
buildGoModule rec { buildGoModule rec {
pname = "imgproxy"; pname = "imgproxy";
version = "2.16.5"; version = "2.16.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
sha256 = "sha256-CLmnc33mVvm7CR0Qv4zsLiQ/jyRIkr1N53mMfD3flNM="; sha256 = "sha256-wrd8G2y8oepaHMJaU4Bcvkf91ABX4ZapQSlztq4Gg84=";
rev = "v${version}"; rev = "v${version}";
}; };

View file

@ -1,16 +1,16 @@
{ lib, stdenv, fetchurl, bison, cmake, pkg-config { lib, stdenv, fetchurl, bison, cmake, pkg-config
, boost, icu, libedit, libevent, lz4, ncurses, openssl, protobuf, re2, readline, zlib, zstd , boost, icu, libedit, libevent, lz4, ncurses, openssl, protobuf, re2, readline, zlib, zstd
, numactl, perl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto , numactl, perl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl
}: }:
let let
self = stdenv.mkDerivation rec { self = stdenv.mkDerivation rec {
pname = "mysql"; pname = "mysql";
version = "8.0.22"; version = "8.0.25";
src = fetchurl { src = fetchurl {
url = "https://dev.mysql.com/get/Downloads/MySQL-${self.mysqlVersion}/${pname}-${version}.tar.gz"; url = "https://dev.mysql.com/get/Downloads/MySQL-${self.mysqlVersion}/${pname}-${version}.tar.gz";
sha256 = "9fd85bb243940ef8234d21384ef421a0962fd4d13406fc1420efa902115ce17a"; sha256 = "c16aa9cf621bc028efba2bb11f3c36a323b125fa0d108ff92fab60e46309206e";
}; };
patches = [ patches = [
@ -27,7 +27,7 @@ self = stdenv.mkDerivation rec {
''; '';
buildInputs = [ buildInputs = [
boost icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib boost curl icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib
zstd zstd
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
numactl libtirpc numactl libtirpc

View file

@ -0,0 +1,40 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, openssl
, postgresql
, libiconv
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "lemmy-server";
version = "0.11.2";
src = fetchFromGitHub {
owner = "LemmyNet";
repo = "lemmy";
rev = version;
sha256 = "sha256-wDRBeAYjPpAd3DL99fH4Yng994hGmAmxlBqzOeXTP88=";
};
cargoSha256 = "sha256-7wF5mUjSeJvCNLZcR6XB31RX2RLOOEyTGpOQxg+NcWk=";
buildInputs = [ postgresql ]
++ lib.optionals stdenv.isDarwin [ libiconv Security ];
# Using OPENSSL_NO_VENDOR is not an option on darwin
# As of version 0.10.35 rust-openssl looks for openssl on darwin
# with a hardcoded path to /usr/lib/libssl.x.x.x.dylib
# https://github.com/sfackler/rust-openssl/blob/master/openssl-sys/build/find_normal.rs#L115
OPENSSL_LIB_DIR = "${openssl.out}/lib";
OPENSSL_INCLUDE_DIR = "${openssl.dev}/include";
meta = with lib; {
description = "Ultra relevant and instant full-text search API";
homepage = "https://join-lemmy.org/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ happysalada ];
};
}

View file

@ -1,5 +1,9 @@
{ lib, buildGoModule, fetchFromGitHub }: { lib
, buildGoModule
, fetchFromGitHub
, makeWrapper
, openssh
}:
buildGoModule rec { buildGoModule rec {
pname = "zrepl"; pname = "zrepl";
version = "0.4.0"; version = "0.4.0";
@ -15,10 +19,17 @@ buildGoModule rec {
subPackages = [ "." ]; subPackages = [ "." ];
nativeBuildInputs = [
makeWrapper
];
postInstall = '' postInstall = ''
mkdir -p $out/lib/systemd/system mkdir -p $out/lib/systemd/system
substitute dist/systemd/zrepl.service $out/lib/systemd/system/zrepl.service \ substitute dist/systemd/zrepl.service $out/lib/systemd/system/zrepl.service \
--replace /usr/local/bin/zrepl $out/bin/zrepl --replace /usr/local/bin/zrepl $out/bin/zrepl
wrapProgram $out/bin/zrepl \
--prefix PATH : ${lib.makeBinPath [ openssh ]}
''; '';
meta = with lib; { meta = with lib; {

View file

@ -1,18 +1,34 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, attr, libuuid, libscrypt, libsodium, keyutils { lib
, liburcu, zlib, libaio, udev, zstd, lz4, valgrind, python3Packages, nixosTests , stdenv
, fuseSupport ? false, fuse3 ? null }: , fetchFromGitHub
, pkg-config
assert fuseSupport -> fuse3 != null; , docutils
, libuuid
, libscrypt
, libsodium
, keyutils
, liburcu
, zlib
, libaio
, zstd
, lz4
, python3Packages
, udev
, valgrind
, nixosTests
, fuse3
, fuseSupport ? false
}:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "bcachefs-tools"; pname = "bcachefs-tools";
version = "2020-11-17"; version = "unstable-2021-07-08";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "koverstreet"; owner = "koverstreet";
repo = "bcachefs-tools"; repo = "bcachefs-tools";
rev = "41bec63b265a38dd9fa168b6042ea5bf07135048"; rev = "050d5f7bcf08bd02f5077a1c5559f352fa449e1e";
sha256 = "1y3187kpw1bmnl97isv28k2sw8cmrnsn31a0dw745adwm0n7z6fj"; sha256 = "15bl9ni0ckmvs5d7hi6v26z690rrmkb7dx00skn6gwq87ffz3imw";
}; };
postPatch = '' postPatch = ''
@ -22,7 +38,7 @@ stdenv.mkDerivation {
"INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools" "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
''; '';
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config docutils ];
buildInputs = [ buildInputs = [
libuuid libscrypt libsodium keyutils liburcu zlib libaio libuuid libscrypt libsodium keyutils liburcu zlib libaio
@ -48,6 +64,6 @@ stdenv.mkDerivation {
homepage = "https://bcachefs.org/"; homepage = "https://bcachefs.org/";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ davidak chiiruno ]; maintainers = with maintainers; [ davidak chiiruno ];
platforms = platforms.linux; platforms = [ "x86_64-linux" ]; # does not build on aarch64, see https://github.com/koverstreet/bcachefs-tools/issues/39
}; };
} }

View file

@ -2,12 +2,41 @@
, buildPythonApplication , buildPythonApplication
, fetchFromGitHub , fetchFromGitHub
, gitMinimal , gitMinimal
, arrow , python3
, click
, sh
, wheel
}: }:
let
py = python3.override {
packageOverrides = self: super: {
click = super.click.overridePythonAttrs (oldAttrs: rec {
version = "7.1.2";
src = oldAttrs.src.override {
inherit version;
sha256 = "06kbzd6sjfkqan3miwj9wqyddfxc2b6hi7p5s4dvqjb3gif2bdfj";
};
});
arrow = super.arrow.overridePythonAttrs (oldAttrs: rec {
version = "1.0.3";
src = oldAttrs.src.override {
inherit version;
sha256 = "0793badh4hgbk2c5g70hmbl7n3d4g5d87bcflld0w9rjwy59r71r";
};
});
sh = super.sh.overridePythonAttrs (oldAttrs: rec {
version = "1.14.1";
src = oldAttrs.src.override {
inherit version;
sha256 = "13hxgifab9ichla13qaa7sh8r0il7vs1r21js72s0n355zr9mair";
};
});
};
};
in
with py.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "gitlint"; pname = "gitlint";
version = "0.15.1"; version = "0.15.1";
@ -19,7 +48,9 @@ buildPythonApplication rec {
sha256 = "sha256-CqmE4V+svSuQAsoX0I3NpUqPU5CQf3fyCHJPrjUjHF4="; sha256 = "sha256-CqmE4V+svSuQAsoX0I3NpUqPU5CQf3fyCHJPrjUjHF4=";
}; };
nativeBuildInputs = [ wheel ]; nativeBuildInputs = [
wheel
];
propagatedBuildInputs = [ propagatedBuildInputs = [
arrow arrow
@ -35,10 +66,10 @@ buildPythonApplication rec {
gitMinimal gitMinimal
]; ];
meta = { meta = with lib; {
description = "Linting for your git commit messages"; description = "Linting for your git commit messages";
homepage = "http://jorisroovers.github.io/gitlint"; homepage = "https://jorisroovers.com/gitlint/";
license = lib.licenses.mit; license = licenses.mit;
maintainers = with lib.maintainers; [ ethancedwards8 ]; maintainers = with maintainers; [ ethancedwards8 fab ];
}; };
} }

View file

@ -1,4 +1,5 @@
{lib, stdenv, boost, cmake, pkg-config, nix, ... }: {lib, stdenv, boost, cmake, pkg-config, nix, ... }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nixos-option"; name = "nixos-option";
src = ./.; src = ./.;

View file

@ -4348,6 +4348,8 @@ in
autoreconfHook = buildPackages.autoreconfHook269; autoreconfHook = buildPackages.autoreconfHook269;
}; };
engauge-digitizer = libsForQt5.callPackage ../applications/science/math/engauge-digitizer { };
epubcheck = callPackage ../tools/text/epubcheck { }; epubcheck = callPackage ../tools/text/epubcheck { };
luckybackup = libsForQt5.callPackage ../tools/backup/luckybackup { luckybackup = libsForQt5.callPackage ../tools/backup/luckybackup {
@ -19509,6 +19511,10 @@ in
leafnode = callPackage ../servers/news/leafnode { }; leafnode = callPackage ../servers/news/leafnode { };
lemmy = callPackage ../servers/web-apps/lemmy {
inherit (darwin.apple_sdk.frameworks) Security;
};
lighttpd = callPackage ../servers/http/lighttpd { }; lighttpd = callPackage ../servers/http/lighttpd { };
livepeer = callPackage ../servers/livepeer { }; livepeer = callPackage ../servers/livepeer { };
@ -19843,7 +19849,7 @@ in
inherit (darwin) cctools developer_cmds; inherit (darwin) cctools developer_cmds;
inherit (darwin.apple_sdk.frameworks) CoreServices; inherit (darwin.apple_sdk.frameworks) CoreServices;
boost = boost173; # Configure checks for specific version. boost = boost173; # Configure checks for specific version.
protobuf = protobuf3_7; protobuf = protobuf3_11;
icu = icu67; icu = icu67;
}; };
@ -20842,11 +20848,9 @@ in
]; ];
}; };
linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix { linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix rec {
kernelPatches = kernel = linux_5_13;
[ kernelPatches.bridge_stp_helper kernelPatches = kernel.kernelPatches;
kernelPatches.request_key_helper
];
}; };
linux_hardkernel_4_14 = callPackage ../os-specific/linux/kernel/linux-hardkernel-4.14.nix { linux_hardkernel_4_14 = callPackage ../os-specific/linux/kernel/linux-hardkernel-4.14.nix {
@ -31185,6 +31189,8 @@ in
nix-linter = haskell.lib.justStaticExecutables (haskellPackages.nix-linter); nix-linter = haskell.lib.justStaticExecutables (haskellPackages.nix-linter);
nixos-option = callPackage ../tools/nix/nixos-option { };
nix-pin = callPackage ../tools/package-management/nix-pin { }; nix-pin = callPackage ../tools/package-management/nix-pin { };
nix-prefetch = callPackage ../tools/package-management/nix-prefetch { }; nix-prefetch = callPackage ../tools/package-management/nix-prefetch { };

View file

@ -1215,6 +1215,8 @@ let
uchar = callPackage ../development/ocaml-modules/uchar { }; uchar = callPackage ../development/ocaml-modules/uchar { };
uecc = callPackage ../development/ocaml-modules/uecc { };
utop = callPackage ../development/tools/ocaml/utop { }; utop = callPackage ../development/tools/ocaml/utop { };
uuidm = callPackage ../development/ocaml-modules/uuidm { }; uuidm = callPackage ../development/ocaml-modules/uuidm { };

View file

@ -4321,6 +4321,8 @@ in {
marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { }; marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
marshmallow-oneofschema = callPackage ../development/python-modules/marshmallow-oneofschema { };
marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { }; marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { }; marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
@ -4888,6 +4890,8 @@ in {
nvchecker = callPackage ../development/python-modules/nvchecker { }; nvchecker = callPackage ../development/python-modules/nvchecker { };
python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
nwdiag = callPackage ../development/python-modules/nwdiag { }; nwdiag = callPackage ../development/python-modules/nwdiag { };
oath = callPackage ../development/python-modules/oath { }; oath = callPackage ../development/python-modules/oath { };
@ -8240,6 +8244,8 @@ in {
SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { }; SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
sqlalchemy-jsonfield = callPackage ../development/python-modules/sqlalchemy-jsonfield { };
sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { }; sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { }; sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };