about summary refs log tree commit diff
path: root/pkgs/tools/package-management/libcomps
diff options
context:
space:
mode:
authorPaul Meyer <49727155+katexochen@users.noreply.github.com>2023-11-09 17:43:05 +0100
committerPaul Meyer <49727155+katexochen@users.noreply.github.com>2023-12-05 11:31:07 +0100
commit1d845b40d4cb3e111f0fed7e4fc22af19db4509a (patch)
treea57f60447c3b3bfc4ea9abc5bfc05b2d86a9d4f0 /pkgs/tools/package-management/libcomps
parent4119ae605a84bd7d2cf3ea9ff3c9d55080a0cd6e (diff)
libcomps: init at 0.1.20
Diffstat (limited to 'pkgs/tools/package-management/libcomps')
-rw-r--r--pkgs/tools/package-management/libcomps/default.nix65
-rw-r--r--pkgs/tools/package-management/libcomps/fix-python-install-dir.patch13
2 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/tools/package-management/libcomps/default.nix b/pkgs/tools/package-management/libcomps/default.nix
new file mode 100644
index 0000000000000..89c2982497df4
--- /dev/null
+++ b/pkgs/tools/package-management/libcomps/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, check
+, cmake
+, doxygen
+, expat
+, fetchFromGitHub
+, libxml2
+, python
+, sphinx
+, stdenv
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libcomps";
+  version = "0.1.20";
+
+  outputs = [ "out" "dev" "py" ];
+
+  src = fetchFromGitHub {
+    owner = "rpm-software-management";
+    repo = "libcomps";
+    rev = version;
+    hash = "sha256-IX4du1+G7lwWrGnllydnBDap2aqK5pzos1Mdyu4MzOU=";
+  };
+
+  patches = [
+    ./fix-python-install-dir.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace libcomps/src/python/src/CMakeLists.txt \
+      --replace "@PYTHON_INSTALL_DIR@" "$out/${python.sitePackages}"
+  '';
+
+  nativeBuildInputs = [
+    check
+    cmake
+    doxygen
+    python
+    sphinx
+  ];
+
+  buildInputs = [
+    expat
+    libxml2
+    zlib
+  ];
+
+  dontUseCmakeBuildDir = true;
+  cmakeDir = "libcomps";
+
+  postFixup = ''
+    ls $out/lib
+    moveToOutput "lib/${python.libPrefix}" "$py"
+  '';
+
+  meta = with lib; {
+    description = "Comps XML file manipulation library";
+    homepage = "https://github.com/rpm-software-management/libcomps";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ katexochen ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch b/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch
new file mode 100644
index 0000000000000..958b4c80843c5
--- /dev/null
+++ b/pkgs/tools/package-management/libcomps/fix-python-install-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
+index d22b84e..57bd1c2 100644
+--- a/libcomps/src/python/src/CMakeLists.txt
++++ b/libcomps/src/python/src/CMakeLists.txt
+@@ -85,7 +85,7 @@ IF (SKBUILD)
+     INSTALL(FILES libcomps/__init__.py DESTINATION libcomps/src/python/src/libcomps)
+     INSTALL(TARGETS pycomps LIBRARY DESTINATION libcomps/src/python/src/libcomps)
+ ELSE ()
+-    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from sysconfig import get_path; stdout.write(get_path('platlib'))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
++    SET(PYTHON_INSTALL_DIR "@PYTHON_INSTALL_DIR@")
+
+     INSTALL(FILES ${pycomps_SRCDIR}/libcomps/__init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libcomps)
+     #INSTALL(FILES ${pycomps_SRCDIR}/tests/__test.py DESTINATION