uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
72
pkgs/applications/version-management/sourcehut/builds.nix
Normal file
72
pkgs/applications/version-management/sourcehut/builds.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, buildGoModule
|
||||
, srht
|
||||
, redis
|
||||
, celery
|
||||
, pyyaml
|
||||
, markdown
|
||||
, ansi2html
|
||||
, python
|
||||
}:
|
||||
let
|
||||
version = "0.75.2";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "builds.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-SwyxMzmp9baRQ0vceuEn/OpfIv7z7jwq/l67hdOHXjM=";
|
||||
};
|
||||
|
||||
buildWorker = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "builds-sr-ht-worker";
|
||||
|
||||
vendorSha256 = "sha256-Pf1M9a43eK4jr6QMi6kRHA8DodXQU0pqq9ua5VC3ER0=";
|
||||
};
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
inherit src version;
|
||||
pname = "buildsrht";
|
||||
|
||||
patches = [
|
||||
# Revert change breaking Unix socket support for Redis
|
||||
patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
redis
|
||||
celery
|
||||
pyyaml
|
||||
markdown
|
||||
ansi2html
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib
|
||||
mkdir -p $out/bin/builds.sr.ht
|
||||
|
||||
cp -r images $out/lib
|
||||
cp contrib/submit_image_build $out/bin/builds.sr.ht
|
||||
cp ${buildWorker "${src}/worker"}/bin/worker $out/bin/builds.sr.ht-worker
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "buildsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
|
||||
description = "Continuous integration service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
98
pkgs/applications/version-management/sourcehut/core.nix
Normal file
98
pkgs/applications/version-management/sourcehut/core.nix
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
{ lib
|
||||
, fetchgit
|
||||
, fetchNodeModules
|
||||
, buildPythonPackage
|
||||
, pgpy
|
||||
, flask
|
||||
, bleach
|
||||
, misaka
|
||||
, humanize
|
||||
, html5lib
|
||||
, markdown
|
||||
, psycopg2
|
||||
, pygments
|
||||
, requests
|
||||
, sqlalchemy
|
||||
, cryptography
|
||||
, beautifulsoup4
|
||||
, sqlalchemy-utils
|
||||
, prometheus-client
|
||||
, celery
|
||||
, alembic
|
||||
, importlib-metadata
|
||||
, mistletoe
|
||||
, minio
|
||||
, sassc
|
||||
, nodejs
|
||||
, redis
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "srht";
|
||||
version = "0.68.14";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-BY3W2rwrg0mhH3CltgUqg6Xv8Ve5VZNY/lI1cfbAjYM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
node_modules = fetchNodeModules {
|
||||
src = "${src}/srht";
|
||||
nodejs = nodejs;
|
||||
sha256 = "sha256-IWKahdWv3qJ5DNyb1GB9JWYkZxghn6wzZe68clYXij8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Disable check for npm
|
||||
./disable-npm-install.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
sassc
|
||||
nodejs
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pgpy
|
||||
flask
|
||||
bleach
|
||||
misaka
|
||||
humanize
|
||||
html5lib
|
||||
markdown
|
||||
psycopg2
|
||||
pygments
|
||||
requests
|
||||
mistletoe
|
||||
sqlalchemy
|
||||
cryptography
|
||||
beautifulsoup4
|
||||
sqlalchemy-utils
|
||||
prometheus-client
|
||||
|
||||
# Unofficial runtime dependencies?
|
||||
celery
|
||||
alembic
|
||||
importlib-metadata
|
||||
minio
|
||||
redis
|
||||
];
|
||||
|
||||
PKGVER = version;
|
||||
|
||||
preBuild = ''
|
||||
cp -r ${node_modules} srht/node_modules
|
||||
'';
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
pythonImportsCheck = [ "srht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/srht";
|
||||
description = "Core modules for sr.ht";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
47
pkgs/applications/version-management/sourcehut/default.nix
Normal file
47
pkgs/applications/version-management/sourcehut/default.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{ python3
|
||||
, openssl
|
||||
, callPackage
|
||||
, recurseIntoAttrs
|
||||
}:
|
||||
|
||||
# To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
|
||||
# Then we expose them through all-packages.nix as an application through `toPythonApplication`
|
||||
# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781
|
||||
let
|
||||
fetchNodeModules = callPackage ./fetchNodeModules.nix { };
|
||||
|
||||
python = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
srht = self.callPackage ./core.nix { inherit fetchNodeModules; };
|
||||
|
||||
buildsrht = self.callPackage ./builds.nix { };
|
||||
dispatchsrht = self.callPackage ./dispatch.nix { };
|
||||
gitsrht = self.callPackage ./git.nix { };
|
||||
hgsrht = self.callPackage ./hg.nix { };
|
||||
hubsrht = self.callPackage ./hub.nix { };
|
||||
listssrht = self.callPackage ./lists.nix { };
|
||||
mansrht = self.callPackage ./man.nix { };
|
||||
metasrht = self.callPackage ./meta.nix { };
|
||||
pagessrht = self.callPackage ./pages.nix { };
|
||||
pastesrht = self.callPackage ./paste.nix { };
|
||||
todosrht = self.callPackage ./todo.nix { };
|
||||
|
||||
scmsrht = self.callPackage ./scm.nix { };
|
||||
};
|
||||
};
|
||||
in
|
||||
with python.pkgs; recurseIntoAttrs {
|
||||
inherit python;
|
||||
coresrht = toPythonApplication srht;
|
||||
buildsrht = toPythonApplication buildsrht;
|
||||
dispatchsrht = toPythonApplication dispatchsrht;
|
||||
gitsrht = toPythonApplication gitsrht;
|
||||
hgsrht = toPythonApplication hgsrht;
|
||||
hubsrht = toPythonApplication hubsrht;
|
||||
listssrht = toPythonApplication listssrht;
|
||||
mansrht = toPythonApplication mansrht;
|
||||
metasrht = toPythonApplication metasrht;
|
||||
pagessrht = pagessrht;
|
||||
pastesrht = toPythonApplication pastesrht;
|
||||
todosrht = toPythonApplication todosrht;
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
diff --git a/setup.py b/setup.py
|
||||
index d63bac8..e1d0c35 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -5,9 +5,6 @@ import glob
|
||||
import os
|
||||
import sys
|
||||
|
||||
-if subprocess.call(["npm", "i"], cwd="srht") != 0:
|
||||
- sys.exit(1)
|
||||
-
|
||||
ver = os.environ.get("PKGVER") or subprocess.run(['git', 'describe', '--tags'],
|
||||
stdout=subprocess.PIPE).stdout.decode().strip()
|
||||
|
||||
42
pkgs/applications/version-management/sourcehut/dispatch.nix
Normal file
42
pkgs/applications/version-management/sourcehut/dispatch.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, pyyaml
|
||||
, PyGithub
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dispatchsrht";
|
||||
version = "0.15.34";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "dispatch.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-bZ4ZKohMozZIyP0TUgxETOECib4XGUv29+Mg8ZsoMf8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
pyyaml
|
||||
PyGithub
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "dispatchsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
|
||||
description = "Task dispatcher and service integration tool for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, jq }: { src, nodejs, sha256 }:
|
||||
|
||||
# Only npm >= 5.4.2 is deterministic, see:
|
||||
# https://github.com/npm/npm/issues/17979#issuecomment-332701215
|
||||
assert lib.versionAtLeast nodejs.version "8.9.0";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "node_modules";
|
||||
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = sha256;
|
||||
outputHashMode = "recursive";
|
||||
|
||||
nativeBuildInputs = [ jq nodejs ];
|
||||
|
||||
buildCommand = ''
|
||||
cp -r ${src}/* .
|
||||
HOME=. npm install --force --ignore-scripts --only=production
|
||||
for f in $(find node_modules -name package.json); do
|
||||
# https://github.com/npm/npm/issues/10393
|
||||
jq -S 'delpaths(keys | map(select(startswith("_")) | [.]))' $f > $f.tmp
|
||||
mv $f.tmp $f
|
||||
done
|
||||
mv node_modules $out
|
||||
'';
|
||||
}
|
||||
88
pkgs/applications/version-management/sourcehut/git.nix
Normal file
88
pkgs/applications/version-management/sourcehut/git.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, buildGoModule
|
||||
, python
|
||||
, srht
|
||||
, pygit2
|
||||
, scmsrht
|
||||
}:
|
||||
let
|
||||
version = "0.77.3";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "git.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-eJvXCcmdiUzTK0EqNJkLEZsAfr6toD/378HObnMbOWM=";
|
||||
};
|
||||
|
||||
buildShell = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "gitsrht-shell";
|
||||
vendorSha256 = "sha256-aqUFICp0C2reqb2p6JCPAUIRsxzSv0t9BHoNWrTYfqk=";
|
||||
};
|
||||
|
||||
buildDispatcher = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "gitsrht-dispatcher";
|
||||
vendorSha256 = "sha256-qWXPHo86s6iuRBhRMtmD5jxnAWKdrWHtA/iSUkdw89M=";
|
||||
};
|
||||
|
||||
buildKeys = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "gitsrht-keys";
|
||||
vendorSha256 = "sha256-9pojS69HCKVHUceyOpGtv9ewcxFD4WsOVsEzkmWJkF4=";
|
||||
};
|
||||
|
||||
buildUpdateHook = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "gitsrht-update-hook";
|
||||
vendorSha256 = "sha256-sBlG7EFqdDm7CkAHVX50Mf4N3sl1rPNmWExG/bfbfGA=";
|
||||
};
|
||||
|
||||
updateHook = buildUpdateHook "${src}/gitsrht-update-hook";
|
||||
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
inherit src version;
|
||||
pname = "gitsrht";
|
||||
|
||||
patches = [
|
||||
# Revert change breaking Unix socket support for Redis
|
||||
patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
pygit2
|
||||
scmsrht
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell
|
||||
cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
|
||||
cp ${buildKeys "${src}/gitsrht-keys"}/bin/gitsrht-keys $out/bin/gitsrht-keys
|
||||
cp ${updateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
|
||||
'';
|
||||
passthru = {
|
||||
inherit updateHook;
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "gitsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
|
||||
description = "Git repository hosting service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
43
pkgs/applications/version-management/sourcehut/hg.nix
Normal file
43
pkgs/applications/version-management/sourcehut/hg.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ lib
|
||||
, fetchhg
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, hglib
|
||||
, scmsrht
|
||||
, unidiff
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hgsrht";
|
||||
version = "0.29.4";
|
||||
|
||||
src = fetchhg {
|
||||
url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "Jn9M/R5tJK/GeJDWGo3LWCK2nwsfI9zh+/yo2M+X6Sk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
hglib
|
||||
scmsrht
|
||||
unidiff
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "hgsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht";
|
||||
description = "Mercurial repository hosting service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
37
pkgs/applications/version-management/sourcehut/hub.nix
Normal file
37
pkgs/applications/version-management/sourcehut/hub.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hubsrht";
|
||||
version = "0.14.4";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "hub.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-7HF+jykWGqzPWA0YtJZQZU7pnID1yexcqLkEf2HpnSs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
'';
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
pythonImportsCheck = [ "hubsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
|
||||
description = "Project hub service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
53
pkgs/applications/version-management/sourcehut/lists.nix
Normal file
53
pkgs/applications/version-management/sourcehut/lists.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, asyncpg
|
||||
, aiosmtpd
|
||||
, pygit2
|
||||
, emailthreads
|
||||
, redis
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "listssrht";
|
||||
version = "0.51.7";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "lists.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-oNY5A98oVoL2JKO0fU/8YVl8u7ywmHb/RHD8A6z9yIM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Revert change breaking Unix socket support for Redis
|
||||
patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
pygit2
|
||||
asyncpg
|
||||
aiosmtpd
|
||||
emailthreads
|
||||
redis
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "listssrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
|
||||
description = "Mailing list service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
40
pkgs/applications/version-management/sourcehut/man.nix
Normal file
40
pkgs/applications/version-management/sourcehut/man.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, pygit2
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mansrht";
|
||||
version = "0.15.23";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "man.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-xrBptXdwMee+YkPup/BYL/iXBhCzSUQ5htSHIw/1Ncc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
pygit2
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "mansrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht";
|
||||
description = "Wiki service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
82
pkgs/applications/version-management/sourcehut/meta.nix
Normal file
82
pkgs/applications/version-management/sourcehut/meta.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, buildGoModule
|
||||
, pgpy
|
||||
, srht
|
||||
, redis
|
||||
, bcrypt
|
||||
, qrcode
|
||||
, stripe
|
||||
, zxcvbn
|
||||
, alembic
|
||||
, pystache
|
||||
, dnspython
|
||||
, sshpubkeys
|
||||
, weasyprint
|
||||
, prometheus-client
|
||||
, python
|
||||
}:
|
||||
let
|
||||
version = "0.57.5";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "meta.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-qsCwZaCiqvY445U053OCWD98jlIUi9NB2jWVP2oW3Vk=";
|
||||
};
|
||||
|
||||
buildApi = src: buildGoModule {
|
||||
inherit src version;
|
||||
pname = "metasrht-api";
|
||||
vendorSha256 = "sha256-8Ubrr9qRlgW2wsLHrPHwulSWLz+gp4VPcTvOZpg8TYM=";
|
||||
};
|
||||
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "metasrht";
|
||||
inherit version src;
|
||||
|
||||
patches = [
|
||||
# Revert change breaking Unix socket support for Redis
|
||||
patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pgpy
|
||||
srht
|
||||
redis
|
||||
bcrypt
|
||||
qrcode
|
||||
stripe
|
||||
zxcvbn
|
||||
alembic
|
||||
pystache
|
||||
sshpubkeys
|
||||
weasyprint
|
||||
prometheus-client
|
||||
dnspython
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${buildApi "${src}/api/"}/bin/api $out/bin/metasrht-api
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "metasrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
|
||||
description = "Account management service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
30
pkgs/applications/version-management/sourcehut/pages.nix
Normal file
30
pkgs/applications/version-management/sourcehut/pages.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildGoModule
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "pagessrht";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "pages.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-ob0+t9V2o8lhVC6fXbi1rNm0Mnbs+GoyAmhBqVZ13PA=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-b0sHSH0jkKoIVq045N96wszuLJDegkkj0v50nuDFleU=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/sql/
|
||||
cp -r -t $out/share/sql/ schema.sql migrations
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht";
|
||||
description = "Web hosting service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
40
pkgs/applications/version-management/sourcehut/paste.nix
Normal file
40
pkgs/applications/version-management/sourcehut/paste.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, pyyaml
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pastesrht";
|
||||
version = "0.13.6";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "paste.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-Khcqk86iD9nxiKXN3+8mSLNoDau2qXNFOrLdkVu+rH8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
pyyaml
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "pastesrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
|
||||
description = "Ad-hoc text file hosting service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
From 069b03f85847ed4a9223183b62ee53f420838911 Mon Sep 17 00:00:00 2001
|
||||
From: Julien Moutinho <julm+srht@sourcephile.fr>
|
||||
Date: Thu, 16 Dec 2021 04:54:24 +0100
|
||||
Subject: [PATCH builds.sr.ht] Revert "Add build submission and queue
|
||||
monitoring"
|
||||
|
||||
This reverts commit 690f1aa16c77e418dc40109cd5e8fdf4a7ed947a.
|
||||
|
||||
This has broken Unix socket support for Redis
|
||||
See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
|
||||
---
|
||||
buildsrht/app.py | 3 ---
|
||||
buildsrht/runner.py | 9 +--------
|
||||
2 files changed, 1 insertion(+), 11 deletions(-)
|
||||
|
||||
diff --git a/buildsrht/app.py b/buildsrht/app.py
|
||||
index e5321a2..7c9977c 100644
|
||||
--- a/buildsrht/app.py
|
||||
+++ b/buildsrht/app.py
|
||||
@@ -36,9 +36,6 @@ class BuildApp(SrhtFlask):
|
||||
self.register_blueprint(secrets)
|
||||
self.register_blueprint(gql_blueprint)
|
||||
|
||||
- from buildsrht.runner import builds_queue_metrics_collector
|
||||
- self.metrics_registry.register(builds_queue_metrics_collector)
|
||||
-
|
||||
@self.context_processor
|
||||
def inject():
|
||||
return {
|
||||
diff --git a/buildsrht/runner.py b/buildsrht/runner.py
|
||||
index 7773452..0389c8e 100644
|
||||
--- a/buildsrht/runner.py
|
||||
+++ b/buildsrht/runner.py
|
||||
@@ -5,13 +5,10 @@ from srht.config import cfg
|
||||
from srht.database import db
|
||||
from srht.email import send_email
|
||||
from srht.oauth import UserType
|
||||
-from srht.metrics import RedisQueueCollector
|
||||
-from prometheus_client import Counter
|
||||
|
||||
allow_free = cfg("builds.sr.ht", "allow-free", default="no") == "yes"
|
||||
|
||||
-builds_broker = cfg("builds.sr.ht", "redis")
|
||||
-runner = Celery('builds', broker=builds_broker, config_source={
|
||||
+runner = Celery('builds', broker=cfg("builds.sr.ht", "redis"), config_source={
|
||||
"CELERY_TASK_SERIALIZER": "json",
|
||||
"CELERY_ACCEPT_CONTENT": ["json"],
|
||||
"CELERY_RESULT_SERIALIZER": "json",
|
||||
@@ -19,9 +16,6 @@ runner = Celery('builds', broker=builds_broker, config_source={
|
||||
"CELERY_TASK_PROTOCOL": 1
|
||||
})
|
||||
|
||||
-builds_queue_metrics_collector = RedisQueueCollector(builds_broker, "buildsrht_builds", "Number of builds currently in queue")
|
||||
-builds_submitted = Counter("buildsrht_builds_submited", "Number of builds submitted")
|
||||
-
|
||||
def queue_build(job, manifest):
|
||||
from buildsrht.types import JobStatus
|
||||
job.status = JobStatus.queued
|
||||
@@ -34,7 +28,6 @@ def queue_build(job, manifest):
|
||||
cfg("sr.ht", "owner-email"),
|
||||
"Cryptocurrency mining attempt on builds.sr.ht")
|
||||
else:
|
||||
- builds_submitted.inc()
|
||||
run_build.delay(job.id, manifest.to_dict())
|
||||
|
||||
def requires_payment(user):
|
||||
--
|
||||
2.34.0
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
From 5ccb5386304c26f25b0a9eb10ce9edb6da32f91a Mon Sep 17 00:00:00 2001
|
||||
From: Julien Moutinho <julm+srht@sourcephile.fr>
|
||||
Date: Sat, 12 Feb 2022 00:11:59 +0100
|
||||
Subject: [PATCH git.sr.ht] Revert "Add webhook queue monitoring"
|
||||
|
||||
This reverts commit 7ea630b776947ab82438d0ffa263b0f9d33ebff3.
|
||||
|
||||
Which has broken Unix socket support for Redis.
|
||||
See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
|
||||
---
|
||||
gitsrht/app.py | 3 ---
|
||||
gitsrht/webhooks.py | 5 +----
|
||||
2 files changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/gitsrht/app.py b/gitsrht/app.py
|
||||
index e9ccb56..4928851 100644
|
||||
--- a/gitsrht/app.py
|
||||
+++ b/gitsrht/app.py
|
||||
@@ -48,9 +48,6 @@ class GitApp(ScmSrhtFlask):
|
||||
self.add_template_filter(url_quote)
|
||||
self.add_template_filter(commit_links)
|
||||
|
||||
- from gitsrht.webhooks import webhook_metrics_collector
|
||||
- self.metrics_registry.register(webhook_metrics_collector)
|
||||
-
|
||||
@self.context_processor
|
||||
def inject():
|
||||
notice = session.get("notice")
|
||||
diff --git a/gitsrht/webhooks.py b/gitsrht/webhooks.py
|
||||
index 8a203fe..6240d50 100644
|
||||
--- a/gitsrht/webhooks.py
|
||||
+++ b/gitsrht/webhooks.py
|
||||
@@ -7,13 +7,10 @@ if not hasattr(db, "session"):
|
||||
db.init()
|
||||
from srht.webhook import Event
|
||||
from srht.webhook.celery import CeleryWebhook, make_worker
|
||||
-from srht.metrics import RedisQueueCollector
|
||||
from scmsrht.webhooks import UserWebhook
|
||||
import sqlalchemy as sa
|
||||
|
||||
-webhook_broker = cfg("git.sr.ht", "webhooks")
|
||||
-worker = make_worker(broker=webhook_broker)
|
||||
-webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
|
||||
+worker = make_worker(broker=cfg("git.sr.ht", "webhooks"))
|
||||
|
||||
class RepoWebhook(CeleryWebhook):
|
||||
events = [
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
From 730e090f31b150d42be4b4722751f8e4610835b0 Mon Sep 17 00:00:00 2001
|
||||
From: Julien Moutinho <julm+srht@sourcephile.fr>
|
||||
Date: Sat, 12 Feb 2022 00:38:12 +0100
|
||||
Subject: [PATCH lists.sr.ht] Revert "Add webhook queue monitoring"
|
||||
|
||||
This reverts commit e74e344808e8d523a9786cefcbf64c9a247d7a0e.
|
||||
|
||||
Which has broken Unix socket support for Redis.
|
||||
See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
|
||||
---
|
||||
listssrht/app.py | 3 ---
|
||||
listssrht/webhooks.py | 5 +----
|
||||
2 files changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/listssrht/app.py b/listssrht/app.py
|
||||
index aec59f3..83a355d 100644
|
||||
--- a/listssrht/app.py
|
||||
+++ b/listssrht/app.py
|
||||
@@ -29,9 +29,6 @@ class ListsApp(SrhtFlask):
|
||||
self.register_blueprint(user)
|
||||
self.register_blueprint(gql_blueprint)
|
||||
|
||||
- from listssrht.webhooks import webhook_metrics_collector
|
||||
- self.metrics_registry.register(webhook_metrics_collector)
|
||||
-
|
||||
@self.context_processor
|
||||
def inject():
|
||||
from listssrht.types import ListAccess
|
||||
diff --git a/listssrht/webhooks.py b/listssrht/webhooks.py
|
||||
index ae5b1cb..86421ba 100644
|
||||
--- a/listssrht/webhooks.py
|
||||
+++ b/listssrht/webhooks.py
|
||||
@@ -8,11 +8,8 @@ if not hasattr(db, "session"):
|
||||
db.init()
|
||||
from srht.webhook import Event
|
||||
from srht.webhook.celery import CeleryWebhook, make_worker
|
||||
-from srht.metrics import RedisQueueCollector
|
||||
|
||||
-webhook_broker = cfg("lists.sr.ht", "webhooks")
|
||||
-worker = make_worker(broker=webhook_broker)
|
||||
-webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
|
||||
+worker = make_worker(broker=cfg("lists.sr.ht", "webhooks"))
|
||||
|
||||
class ListWebhook(CeleryWebhook):
|
||||
events = [
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
From d88bee195797c6c294320617ff14798da94cd0f3 Mon Sep 17 00:00:00 2001
|
||||
From: Julien Moutinho <julm+srht@sourcephile.fr>
|
||||
Date: Thu, 16 Dec 2021 04:52:08 +0100
|
||||
Subject: [PATCH meta.sr.ht] Revert "Add webhook queue monitoring"
|
||||
|
||||
This reverts commit 9931df3c23094af5179df9ef019ca732b8125dac.
|
||||
|
||||
This has broken Unix socket support for Redis.
|
||||
See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
|
||||
---
|
||||
metasrht/app.py | 3 ---
|
||||
metasrht/webhooks.py | 5 +----
|
||||
2 files changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/metasrht/app.py b/metasrht/app.py
|
||||
index b190875..89c59bc 100644
|
||||
--- a/metasrht/app.py
|
||||
+++ b/metasrht/app.py
|
||||
@@ -49,9 +49,6 @@ class MetaApp(SrhtFlask):
|
||||
from metasrht.blueprints.billing import billing
|
||||
self.register_blueprint(billing)
|
||||
|
||||
- from metasrht.webhooks import webhook_metrics_collector
|
||||
- self.metrics_registry.register(webhook_metrics_collector)
|
||||
-
|
||||
@self.context_processor
|
||||
def inject():
|
||||
return {
|
||||
diff --git a/metasrht/webhooks.py b/metasrht/webhooks.py
|
||||
index 3e1149e..3f0ba01 100644
|
||||
--- a/metasrht/webhooks.py
|
||||
+++ b/metasrht/webhooks.py
|
||||
@@ -7,11 +7,8 @@ if not hasattr(db, "session"):
|
||||
db.init()
|
||||
from srht.webhook import Event
|
||||
from srht.webhook.celery import CeleryWebhook, make_worker
|
||||
-from srht.metrics import RedisQueueCollector
|
||||
|
||||
-webhook_broker = cfg("meta.sr.ht", "webhooks", "redis://")
|
||||
-worker = make_worker(broker=webhook_broker)
|
||||
-webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
|
||||
+worker = make_worker(broker=cfg("meta.sr.ht", "webhooks", "redis://"))
|
||||
|
||||
class UserWebhook(CeleryWebhook):
|
||||
events = [
|
||||
--
|
||||
2.34.0
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
From 42a27ea60d8454552d54e1f51f1b976d1067fc32 Mon Sep 17 00:00:00 2001
|
||||
From: Julien Moutinho <julm+srht@sourcephile.fr>
|
||||
Date: Sat, 12 Feb 2022 00:30:29 +0100
|
||||
Subject: [PATCH todo.sr.ht] Revert "Add webhook queue monitoring"
|
||||
|
||||
This reverts commit 320a5e8f7cd16ca43928c36f0320593f84d986fa.
|
||||
|
||||
Which has broken Unix socket support for Redis.
|
||||
See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
|
||||
---
|
||||
todosrht/flask.py | 3 ---
|
||||
todosrht/webhooks.py | 6 +-----
|
||||
2 files changed, 1 insertion(+), 8 deletions(-)
|
||||
|
||||
diff --git a/todosrht/flask.py b/todosrht/flask.py
|
||||
index 5e8ac66..9d0fd27 100644
|
||||
--- a/todosrht/flask.py
|
||||
+++ b/todosrht/flask.py
|
||||
@@ -43,9 +43,6 @@ class TodoApp(SrhtFlask):
|
||||
self.add_template_filter(urls.tracker_url)
|
||||
self.add_template_filter(urls.user_url)
|
||||
|
||||
- from todosrht.webhooks import webhook_metrics_collector
|
||||
- self.metrics_registry.register(webhook_metrics_collector)
|
||||
-
|
||||
@self.context_processor
|
||||
def inject():
|
||||
return {
|
||||
diff --git a/todosrht/webhooks.py b/todosrht/webhooks.py
|
||||
index eb8e08a..950047f 100644
|
||||
--- a/todosrht/webhooks.py
|
||||
+++ b/todosrht/webhooks.py
|
||||
@@ -7,13 +7,9 @@ if not hasattr(db, "session"):
|
||||
db.init()
|
||||
from srht.webhook import Event
|
||||
from srht.webhook.celery import CeleryWebhook, make_worker
|
||||
-from srht.metrics import RedisQueueCollector
|
||||
import sqlalchemy as sa
|
||||
|
||||
-
|
||||
-webhooks_broker = cfg("todo.sr.ht", "webhooks")
|
||||
-worker = make_worker(broker=webhooks_broker)
|
||||
-webhook_metrics_collector = RedisQueueCollector(webhooks_broker, "srht_webhooks", "Webhook queue length")
|
||||
+worker = make_worker(broker=cfg("todo.sr.ht", "webhooks"))
|
||||
|
||||
import todosrht.tracker_import
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
||||
43
pkgs/applications/version-management/sourcehut/scm.nix
Normal file
43
pkgs/applications/version-management/sourcehut/scm.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, redis
|
||||
, pyyaml
|
||||
, buildsrht
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "scmsrht";
|
||||
version = "0.22.19"; # Untagged version
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "scm.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-/QryPjWJ2S0Ov9DTdrwbM81HYucHiYcLh0oKacflywI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
redis
|
||||
pyyaml
|
||||
buildsrht
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
'';
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
pythonImportsCheck = [ "scmsrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
|
||||
description = "Shared support code for sr.ht source control services.";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
58
pkgs/applications/version-management/sourcehut/todo.nix
Normal file
58
pkgs/applications/version-management/sourcehut/todo.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ lib
|
||||
, fetchFromSourcehut
|
||||
, buildPythonPackage
|
||||
, srht
|
||||
, redis
|
||||
, alembic
|
||||
, pystache
|
||||
, pytest
|
||||
, factory_boy
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "todosrht";
|
||||
version = "0.67.2";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~sircmpwn";
|
||||
repo = "todo.sr.ht";
|
||||
rev = version;
|
||||
sha256 = "sha256-/QHsMlhzyah85ubZyx8j4GDUoITuWcLDJKosbZGeOZU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Revert change breaking Unix socket support for Redis
|
||||
patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = srht.nativeBuildInputs;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
srht
|
||||
redis
|
||||
alembic
|
||||
pystache
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export PKGVER=${version}
|
||||
export SRHT_PATH=${srht}/${python.sitePackages}/srht
|
||||
'';
|
||||
|
||||
# pytest tests fail
|
||||
checkInputs = [
|
||||
pytest
|
||||
factory_boy
|
||||
];
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
pythonImportsCheck = [ "todosrht" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht";
|
||||
description = "Ticket tracking service for the sr.ht network";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ eadwu ];
|
||||
};
|
||||
}
|
||||
76
pkgs/applications/version-management/sourcehut/update.sh
Executable file
76
pkgs/applications/version-management/sourcehut/update.sh
Executable file
|
|
@ -0,0 +1,76 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p git mercurial common-updater-scripts
|
||||
set -eux -o pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
|
||||
root=../../../..
|
||||
tmp=$(mktemp -d)
|
||||
trap 'rm -rf "$tmp"' EXIT
|
||||
|
||||
default() {
|
||||
(cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
|
||||
}
|
||||
|
||||
version() {
|
||||
(cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.version" | tr -d '"')
|
||||
}
|
||||
|
||||
src_url() {
|
||||
nix-instantiate --eval --strict --expr " with import $root {}; let src = sourcehut.python.pkgs.$1.drvAttrs.src; in src.url or src.meta.homepage" | tr -d '"'
|
||||
}
|
||||
|
||||
get_latest_version() {
|
||||
src="$(src_url "$1")"
|
||||
rm -rf "$tmp"
|
||||
if [ "$1" = "hgsrht" ]; then
|
||||
hg clone "$src" "$tmp" >/dev/null
|
||||
printf "%s" "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')"
|
||||
else
|
||||
git clone "$src" "$tmp" >/dev/null
|
||||
printf "%s" "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")"
|
||||
fi
|
||||
}
|
||||
|
||||
update_version() {
|
||||
default_nix="$(default "$1")"
|
||||
oldVersion="$(version "$1")"
|
||||
version="$(get_latest_version "$1")"
|
||||
|
||||
(cd "$root" && update-source-version "sourcehut.python.pkgs.$1" "$version")
|
||||
|
||||
# Update vendorSha256 of Go modules
|
||||
retry=true
|
||||
while "$retry"; do
|
||||
retry=false;
|
||||
exec < <(exec nix -L build -f "$root" sourcehut.python.pkgs."$1" 2>&1)
|
||||
while IFS=' :' read -r origin hash; do
|
||||
case "$origin" in
|
||||
(expected|specified) oldHash="$hash";;
|
||||
(got) sed -i "s|$oldHash|$hash|" "$default_nix"; retry=true; break;;
|
||||
(*) printf >&2 "%s\n" "$origin${hash:+:$hash}"
|
||||
esac
|
||||
done
|
||||
done
|
||||
|
||||
if [ "$oldVersion" != "$version" ]; then
|
||||
git add "$default_nix"
|
||||
git commit -m "sourcehut.$1: $oldVersion -> $version"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
services=("$@")
|
||||
else
|
||||
# Beware that some packages must be updated before others,
|
||||
# eg. buildsrht must be updated before gitsrht,
|
||||
# otherwise this script would enter an infinite loop
|
||||
# because the reported $oldHash to be changed
|
||||
# may not actually be in $default_nix
|
||||
# but in the file of one of its dependencies.
|
||||
services=( "srht" "scmsrht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"
|
||||
"metasrht" "pagessrht" "pastesrht" "todosrht" )
|
||||
fi
|
||||
|
||||
for service in "${services[@]}"; do
|
||||
update_version "$service"
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue