ubports-click: Bump, modernise, fix GCC 14 compat (#367871)

This commit is contained in:
Cosima Neidahl 2024-12-25 14:12:42 +01:00 committed by GitHub
commit 04e40bca2a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 178 additions and 121 deletions

View file

@ -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;
};
};
}

View file

@ -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])])

View file

@ -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;
};
}

View file

@ -6955,8 +6955,6 @@ with pkgs;
llvmPackages = llvmPackages_18;
};
ubports-click = python3Packages.callPackage ../development/tools/click { };
urweb = callPackage ../development/compilers/urweb {
icu = icu67;
};