From 7bab6d38a720675b44ca280ff6ef57b8eef5d3e2 Mon Sep 17 00:00:00 2001
From: Millian Poquet <millian.poquet@irit.fr>
Date: Sun, 13 Nov 2022 20:57:29 +0100
Subject: [PATCH] package python protocol

---
 default.nix       | 11 +++--------
 protocol/setup.py | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 8 deletions(-)
 create mode 100644 protocol/setup.py

diff --git a/default.nix b/default.nix
index 48de43e..05eab10 100644
--- a/default.nix
+++ b/default.nix
@@ -24,21 +24,16 @@ let self = rec {
       ninja
     ];
   };
-  protocol-python = pkgs.stdenv.mkDerivation {
-    pname = "protocol-python";
-    version = "local";
+  protocol-python = pythonPackages.buildPythonPackage {
+    name = "protocol-python-0.1.0";
     src = pkgs.lib.sourceByRegex ./protocol [
       "hello\.proto"
+      "setup\.py"
     ];
     propagatedBuildInputs = [
       pkgs.protobuf
       pythonPackages.protobuf
     ];
-    phases = [ "unpackPhase" "buildPhase" ];
-    buildPhase = ''
-      mkdir -p $out/lib/python${pkgs.lib.versions.majorMinor python3.version}/site-packages/protocol
-      protoc --python_out $out/lib/python${pkgs.lib.versions.majorMinor python3.version}/site-packages/protocol hello.proto
-    '';
   };
   simgrid-simulator = pkgs.stdenv.mkDerivation {
     pname = "simgrid-simulator";
diff --git a/protocol/setup.py b/protocol/setup.py
new file mode 100644
index 0000000..3c9cfdf
--- /dev/null
+++ b/protocol/setup.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+from distutils.core import setup
+from distutils.spawn import find_executable
+from os import makedirs
+import subprocess
+import sys
+
+protoc = find_executable('protoc')
+
+makedirs('protocol', exist_ok=True)
+protoc_command = [protoc, '--python_out=protocol', 'hello.proto']
+if subprocess.call(protoc_command) != 0:
+    sys.exit(1)
+
+setup(name='protocol',
+    version='0.1.0',
+    packages=['protocol'],
+
+    python_requires='>=3.6',
+    install_requires=[
+        'protobuf>=3.19.4',
+    ],
+
+    description="Example python protocol library for DZ2 toy CI prototype.",
+    author='Millian Poquet',
+    author_email='millian.poquet@irit.fr',
+    url='https://gitlab.irit.fr/sepia/datazero/ci-prototype',
+    license='MIT',
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: MIT License",
+    ],
+)
-- 
GitLab