diff --git a/pkgs/by-name/ub/ubports-click/package.nix b/pkgs/by-name/ub/ubports-click/package.nix new file mode 100644 index 000000000000..c6597596e206 --- /dev/null +++ b/pkgs/by-name/ub/ubports-click/package.nix @@ -0,0 +1,178 @@ +{ + fetchFromGitLab, + fetchpatch, + gitUpdater, + lib, + stdenv, + testers, + autoreconfHook, + dbus, + dbus-test-runner, + dpkg, + getopt, + glib, + gobject-introspection, + json-glib, + libgee, + perl, + pkg-config, + properties-cpp, + python3Packages, + vala, + wrapGAppsHook3, +}: + +let + self = python3Packages.buildPythonApplication rec { + pname = "click"; + version = "0.5.2"; + format = "other"; + + src = fetchFromGitLab { + owner = "ubports"; + repo = "development/core/click"; + rev = version; + hash = "sha256-AV3n6tghvpV/6Ew6Lokf8QAGBIMbHFAnp6G4pefVn+8="; + }; + + patches = [ + # Remove when version > 0.5.2 + (fetchpatch { + name = "0001-click-fix-Wimplicit-function-declaration.patch"; + url = "https://gitlab.com/ubports/development/core/click/-/commit/8f654978a12e6f9a0b6ff64296ec5565e3ff5cd0.patch"; + hash = "sha256-kio+DdtuagUNYEosyQY3q3H+dJM3cLQRW9wUKUcpUTY="; + }) + + # Remove when version > 0.5.2 + (fetchpatch { + name = "0002-click-Add-uid_t-and-gid_t-to-the-ctypes-_typemap.patch"; + url = "https://gitlab.com/ubports/development/core/click/-/commit/cbcd23b08b02fa122434e1edd69c2b3dcb6a8793.patch"; + hash = "sha256-QaWRhxO61wAzULVqPLdJrLuBCr3+NhKmQlEPuYq843I="; + }) + ]; + + postPatch = '' + # These should be proper Requires, using the header needs their headers + substituteInPlace lib/click/click-*.pc.in \ + --replace-fail 'Requires.private' 'Requires' + + # Don't completely override PKG_CONFIG_PATH + substituteInPlace click_package/tests/Makefile.am \ + --replace-fail 'PKG_CONFIG_PATH=$(top_builddir)/lib/click' 'PKG_CONFIG_PATH=$(top_builddir)/lib/click:$(PKG_CONFIG_PATH)' + + patchShebangs bin/click + ''; + + strictDeps = true; + + pkgsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + autoreconfHook + dbus-test-runner # Always checking for this + getopt + gobject-introspection + perl + pkg-config + vala + wrapGAppsHook3 + ]; + + buildInputs = [ + glib + json-glib + libgee + properties-cpp + ]; + + propagatedBuildInputs = with python3Packages; [ + python-debian + pygobject3 + setuptools + ]; + + nativeCheckInputs = [ + dbus + dpkg + python3Packages.unittestCheckHook + ]; + + checkInputs = with python3Packages; [ + python-apt + six + ]; + + preConfigure = '' + export click_cv_perl_vendorlib=$out/${perl.libPrefix} + export PYTHON_INSTALL_FLAGS="--prefix=$out" + ''; + + configureFlags = [ + "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user" + ]; + + enableParallelBuilding = true; + + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + disabledTestPaths = [ + # From apt: Unable to determine a suitable packaging system type + "click_package/tests/integration/test_signatures.py" + "click_package/tests/test_build.py" + "click_package/tests/test_install.py" + "click_package/tests/test_scripts.py" + ]; + + preCheck = '' + export HOME=$TMP + + # tests recompile some files for loaded predefines, doesn't use any optimisation level for it + # makes test output harder to read, so make the warning go away + export NIX_CFLAGS_COMPILE+=" -U_FORTIFY_SOURCE" + + # Haven'tbeen able to get them excluded via disabledTest{s,Paths}, just deleting them + for path in $disabledTestPaths; do + rm -v $path + done + ''; + + preFixup = '' + makeWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "$out/lib" + ) + ''; + + passthru = { + updateScript = gitUpdater { }; + }; + + meta = { + description = "Tool to build click packages, mainly used for Ubuntu Touch"; + homepage = "https://gitlab.com/ubports/development/core/click"; + changelog = "https://gitlab.com/ubports/development/core/click/-/blob/${version}/ChangeLog"; + license = lib.licenses.gpl3Only; + mainProgram = "click"; + maintainers = + with lib.maintainers; + [ + ilyakooo0 + ] + ++ lib.teams.lomiri.members; + platforms = lib.platforms.linux; + pkgConfigModules = [ + "click-0.4" + ]; + }; + }; +in +self +// { + passthru = self.passthru // { + tests.pkg-config = testers.hasPkgConfigModules { + package = self; + }; + }; +} diff --git a/pkgs/development/tools/click/dbus-test-runner.patch b/pkgs/development/tools/click/dbus-test-runner.patch deleted file mode 100644 index c705cf99aa7c..000000000000 --- a/pkgs/development/tools/click/dbus-test-runner.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/click_package/Makefile.am b/click_package/Makefile.am -index 4981d74..9df9e79 100644 ---- a/click_package/Makefile.am -+++ b/click_package/Makefile.am -@@ -1,5 +1,3 @@ --SUBDIRS = tests -- - noinst_SCRIPTS = paths.py - CLEANFILES = $(noinst_SCRIPTS) - -diff --git a/configure.ac b/configure.ac -index 8f4dc9e..adbd366 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -52,8 +52,6 @@ PKG_CHECK_MODULES([SERVICE], [ - AC_SUBST([SERVICE_CFLAGS]) - AC_SUBST([SERVICE_LIBS]) - --AC_CHECK_PROG(DBUS_TEST_RUNNER_CHECK,dbus-test-runner,yes) --AS_IF([test "${DBUS_TEST_RUNNER_CHECK}" != "yes"], [AC_MSG_ERROR([dbus-test-runner not found])]) - AC_CHECK_PROG(GDBUS_CHECK,gdbus,yes) - AS_IF([test "${GDBUS_CHECK}" != "yes"], [AC_MSG_ERROR([gdbus (glib) not found])]) - diff --git a/pkgs/development/tools/click/default.nix b/pkgs/development/tools/click/default.nix deleted file mode 100644 index 97950147254c..000000000000 --- a/pkgs/development/tools/click/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ - lib, - fetchFromGitLab, - buildPythonApplication, - autoreconfHook, - python-debian, - perl, - vala, - pkg-config, - libgee, - json-glib, - properties-cpp, - gobject-introspection, - getopt, - setuptools, - pygobject3, - wrapGAppsHook3, -}: - -buildPythonApplication { - pname = "click"; - version = "unstable-2023-02-22"; - format = "other"; - - src = fetchFromGitLab { - owner = "ubports"; - repo = "development/core/click"; - rev = "aaf2735e8e6cbeaf2e429c70136733513a81718a"; - hash = "sha256-pNu995/w3tbz15QQVdVYBnWnAoZmqWj1DN/5PZZ0iZw="; - }; - - postPatch = '' - # These should be proper Requires, using the header needs their headers - substituteInPlace lib/click/click-*.pc.in \ - --replace 'Requires.private' 'Requires' - ''; - - configureFlags = [ - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user" - ]; - - preFixup = '' - makeWrapperArgs+=( - --prefix LD_LIBRARY_PATH : "$out/lib" - ) - ''; - - preConfigure = '' - export click_cv_perl_vendorlib=$out/${perl.libPrefix} - export PYTHON_INSTALL_FLAGS="--prefix=$out" - ''; - - nativeBuildInputs = [ - autoreconfHook - perl - pkg-config - gobject-introspection - vala - getopt - wrapGAppsHook3 - ]; - - # Tests were omitted for time constraint reasons - doCheck = false; - - enableParallelBuilding = true; - - patches = [ - # dbus-test-runner not packaged yet, otherwise build-time dependency even when not running tests - ./dbus-test-runner.patch - ]; - - buildInputs = [ - libgee - json-glib - properties-cpp - ]; - - propagatedBuildInputs = [ - python-debian - pygobject3 - setuptools - ]; - - meta = { - description = "Tool to build click packages. Mainly used for Ubuntu Touch"; - homepage = "https://gitlab.com/ubports/development/core/click"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ - ilyakooo0 - OPNA2608 - ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a694f39b4b93..0fa703f5370f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6955,8 +6955,6 @@ with pkgs; llvmPackages = llvmPackages_18; }; - ubports-click = python3Packages.callPackage ../development/tools/click { }; - urweb = callPackage ../development/compilers/urweb { icu = icu67; };