summary refs log tree commit diff
path: root/pkgs/tools/virtualization/lxd-image-server
diff options
context:
space:
mode:
authorMaciej Krüger <mkg20001@gmail.com>2021-10-20 22:29:09 +0200
committerMaciej Krüger <mkg20001@gmail.com>2021-11-03 14:29:27 +0100
commit0cecb3303a960266b6ac301ce8876a62159f48f0 (patch)
treeb09b540b032c1944e2088718f70802388e42936e /pkgs/tools/virtualization/lxd-image-server
parent1cc3c4506448f6decf27eabfe1303105c40de628 (diff)
downloadnixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar.gz
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar.bz2
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar.lz
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar.xz
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.tar.zst
nixpkgs-0cecb3303a960266b6ac301ce8876a62159f48f0.zip
lxd-image-server: init at 0.0.4
Diffstat (limited to 'pkgs/tools/virtualization/lxd-image-server')
-rw-r--r--pkgs/tools/virtualization/lxd-image-server/default.nix47
-rw-r--r--pkgs/tools/virtualization/lxd-image-server/run.patch25
-rw-r--r--pkgs/tools/virtualization/lxd-image-server/state.patch49
3 files changed, 121 insertions, 0 deletions
diff --git a/pkgs/tools/virtualization/lxd-image-server/default.nix b/pkgs/tools/virtualization/lxd-image-server/default.nix
new file mode 100644
index 00000000000..3992f425a3c
--- /dev/null
+++ b/pkgs/tools/virtualization/lxd-image-server/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, openssl
+, rsync
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "lxd-image-server";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    owner = "Avature";
+    repo = "lxd-image-server";
+    rev = version;
+    sha256 = "yx8aUmMfSzyWaM6M7+WcL6ouuWwOpqLzODWSdNgwCwo=";
+  };
+
+  patches = [
+    ./state.patch
+    ./run.patch
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    setuptools
+    attrs
+    click
+    inotify
+    cryptography
+    confight
+    python-pidfile
+  ];
+
+  makeWrapperArgs = [
+    ''--prefix PATH ':' "${lib.makeBinPath [ openssl rsync ]}"''
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Creates and manages a simplestreams lxd image server on top of nginx";
+    homepage = "https://github.com/Avature/lxd-image-server";
+    license = licenses.apsl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/pkgs/tools/virtualization/lxd-image-server/run.patch b/pkgs/tools/virtualization/lxd-image-server/run.patch
new file mode 100644
index 00000000000..bd1172c1f86
--- /dev/null
+++ b/pkgs/tools/virtualization/lxd-image-server/run.patch
@@ -0,0 +1,25 @@
+From df2ce9fb48a3790407646a388e0d220a75496c52 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Wed, 3 Nov 2021 14:23:38 +0100
+Subject: [PATCH] /var/run -> /run
+
+---
+ lxd_image_server/tools/config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lxd_image_server/tools/config.py b/lxd_image_server/tools/config.py
+index 60e8973..23d392a 100644
+--- a/lxd_image_server/tools/config.py
++++ b/lxd_image_server/tools/config.py
+@@ -9,7 +9,7 @@ import confight
+ class Config():
+ 
+     _lock = Lock()
+-    pidfile = Path('/var/run/lxd-image-server/pidfile')
++    pidfile = Path('/run/lxd-image-server/pidfile')
+     data = {}
+ 
+     @classmethod
+-- 
+2.33.0
+
diff --git a/pkgs/tools/virtualization/lxd-image-server/state.patch b/pkgs/tools/virtualization/lxd-image-server/state.patch
new file mode 100644
index 00000000000..c6677ea48e9
--- /dev/null
+++ b/pkgs/tools/virtualization/lxd-image-server/state.patch
@@ -0,0 +1,49 @@
+From 17a1e09eaf8957174425d05200be9ee3e77229f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Thu, 21 Oct 2021 00:39:08 +0200
+Subject: [PATCH] Remove system-state changing code
+
+This is already done by the module on nixOS
+---
+ lxd_image_server/cli.py | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/lxd_image_server/cli.py b/lxd_image_server/cli.py
+index d276e6d..f759bf2 100644
+--- a/lxd_image_server/cli.py
++++ b/lxd_image_server/cli.py
+@@ -140,30 +140,17 @@ def reload_config():
+ @cli.command()
+ @click.option('--root_dir', default='/var/www/simplestreams',
+               show_default=True)
+-@click.option('--ssl_dir', default='/etc/nginx/ssl', show_default=True,
+-              callback=lambda ctx, param, val: Path(val))
+ @click.pass_context
+-def init(ctx, root_dir, ssl_dir):
++def init(ctx, root_dir):
+     if not Path(root_dir).exists():
+         logger.error('Root directory does not exists')
+     else:
+-        if not ssl_dir.exists():
+-            os.makedirs(str(ssl_dir))
+-
+-        if not (ssl_dir / 'nginx.key').exists():
+-            generate_cert(str(ssl_dir))
+-
+         img_dir = str(Path(root_dir, 'images'))
+         streams_dir = str(Path(root_dir, 'streams/v1'))
+         if not Path(img_dir).exists():
+             os.makedirs(img_dir)
+         if not Path(streams_dir).exists():
+             os.makedirs(streams_dir)
+-        conf_path = Path('/etc/nginx/sites-enabled/simplestreams.conf')
+-        if not conf_path.exists():
+-            conf_path.symlink_to(
+-                '/etc/nginx/sites-available/simplestreams.conf')
+-            os.system('nginx -s reload')
+ 
+         if not Path(root_dir, 'streams', 'v1', 'images.json').exists():
+             ctx.invoke(update, img_dir=Path(root_dir, 'images'),
+-- 
+2.33.0
+