Message ID | 7cd1d20fbbb1cf9c620748e22bdfef7feb83ff72.1692382380.git.maxim.cournoyer@gmail.com |
---|---|
State | New |
Headers | show |
Series | Update Jami and related packages. | expand |
Am Freitag, dem 18.08.2023 um 14:12 -0400 schrieb Maxim Cournoyer: > * gnu/packages/glib.scm (sdbus-cpp): New variable. > * gnu/packages/patches/sdbus-c++-elogind.patch: New file. > * gnu/local.mk (dist_patch_DATA): Register it. > --- > > gnu/local.mk | 1 + > gnu/packages/glib.scm | 43 +++++++++++++ > gnu/packages/patches/sdbus-c++-elogind.patch | 63 > ++++++++++++++++++++ > 3 files changed, 107 insertions(+) > create mode 100644 gnu/packages/patches/sdbus-c++-elogind.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index abe8964f4d..de669c1177 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -1938,6 +1938,7 @@ dist_patch_DATA > = \ > %D%/packages/patches/scons-test-environment.patch \ > %D%/packages/patches/screen-hurd-path-max.patch \ > %D%/packages/patches/scsh-nonstring-search-path.patch \ > + %D%/packages/patches/sdbus-c++-elogind.patch \ > %D%/packages/patches/sdl-libx11-1.6.patch \ > %D%/packages/patches/seed-webkit.patch \ > %D%/packages/patches/sendgmail-accept-ignored-gsuite- > flag.patch \ > diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm > index a0b85b15d1..588133e93f 100644 > --- a/gnu/packages/glib.scm > +++ b/gnu/packages/glib.scm > @@ -1290,6 +1290,49 @@ (define-public dbus-cxx > (home-page "https://dbus-cxx.github.io/") > (license license:gpl3))) > > +(define-public sdbus-c++ > + ;; Use the latest commit, which includes unreleased fixes to the > pkg-config > + ;; file. > + (let ((commit "3e84b254e9603935cb5fc180c4d2214d7024ccbb") > + (revision "0")) > + (package > + (name "sdbus-c++") > + (version (git-version "1.2.0" revision commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url > "https://github.com/Kistler-Group/sdbus-cpp") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + > "0xrcp49almi3kwzmwcwv8sayqjxx8m55s5grxarw2hl9jmghwlc3")) > + (patches (search-patches "sdbus-c++- > elogind.patch")))) > + (build-system cmake-build-system) > + (arguments > + (list > + ;; Avoid the integration test, which requires a system bus. > + #:test-target "sdbus-c++-unit-tests" > + #:configure-flags #~(list "-DBUILD_CODE_GEN=ON" > + "-DBUILD_TESTS=ON" > + ;; Do not install tests. > + "-DTESTS_INSTALL_PATH=/tmp" > + "-DCMAKE_VERBOSE_MAKEFILE=ON") > + #:phases #~(modify-phases %standard-phases > + (add-after 'unpack 'do-not-install-tests > + (lambda _ > + (substitute* "tests/CMakeLists.txt" > + (("/etc/dbus-1/system.d") "/tmp"))))))) Should we perhaps add those to a separate output? Are they useful on their own? > + (native-inputs (list googletest pkg-config)) > + (inputs (list expat)) > + (propagated-inputs (list elogind)) ;required by sdbus-c++.pc > + (home-page "https://github.com/Kistler-Group/sdbus-cpp") > + (synopsis "High-level C++ D-Bus library") > + (description "@code{sdbus-c++} is a high-level C++ D-Bus > library designed > +to provide easy-to-use yet powerful API in modern C++. It adds > another layer > +of abstraction on top of @code{sd-bus}, the C D-Bus implementation > by systemd.") > + (license license:lgpl2.1+)))) > + > (define-public appstream-glib > (package > (name "appstream-glib") > diff --git a/gnu/packages/patches/sdbus-c++-elogind.patch > b/gnu/packages/patches/sdbus-c++-elogind.patch > new file mode 100644 > index 0000000000..d01838edbc > --- /dev/null > +++ b/gnu/packages/patches/sdbus-c++-elogind.patch > @@ -0,0 +1,63 @@ > +Submitted upstream: > https://github.com/Kistler-Group/sdbus-cpp/pull/352 > + > +From 8423c44b6c24ebd59db06ad33704265aa81a1c7a Mon Sep 17 00:00:00 > 2001 > +From: Sven Eden <sven.eden@prydeworx.com> > +Date: Thu, 17 Aug 2023 23:16:19 -0400 > +Subject: [PATCH] build: Add support for elogind. > + > +* CMakeLists.txt: Fallback to elogind when libsystemd could not be > +found. Set LIBSYSTEMD variable. > +* pkgconfig/sdbus-c++.pc.in (Description): Parameterize with above > +LIBSYSTEMD variable. > + > +Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> > +--- > + CMakeLists.txt | 11 +++++++++++ > + pkgconfig/sdbus-c++.pc.in | 2 +- > + 2 files changed, 12 insertions(+), 1 deletion(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 94f71c7..40c15f8 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -12,11 +12,22 @@ include(GNUInstallDirs) # Installation > directories for `install` command and pkg > + # PERFORMING CHECKS & PREPARING THE DEPENDENCIES > + #------------------------------- > + > ++set(LIBSYSTEMD "libsystemd") > ++ > + option(BUILD_LIBSYSTEMD "Build libsystemd static library and > incorporate it into libsdbus-c++" OFF) > + > + if(NOT BUILD_LIBSYSTEMD) > + find_package(PkgConfig REQUIRED) > + pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL > libsystemd>=236) > ++ if(NOT TARGET PkgConfig::Systemd) > ++ message(WARNING "libsystemd not found, checking for > libelogind instead") Perhaps demote this to INFO? > ++ pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL > libelogind>=236) > ++ if(TARGET PkgConfig::Systemd) > ++ set(LIBSYSTEMD "libelogind") > ++ string(REPLACE "." ";" VERSION_LIST ${Systemd_VERSION}) > ++ list(GET VERSION_LIST 0 Systemd_VERSION) > ++ endif() > ++ endif() > + if(NOT TARGET PkgConfig::Systemd) > + message(FATAL_ERROR "libsystemd of version at least 236 is > required, but was not found " > + "(if you have systemd in your OS, you > may want to install package containing pkgconfig " > +diff --git a/pkgconfig/sdbus-c++.pc.in b/pkgconfig/sdbus-c++.pc.in > +index 6ad010a..0703476 100644 > +--- a/pkgconfig/sdbus-c++.pc.in > ++++ b/pkgconfig/sdbus-c++.pc.in > +@@ -5,7 +5,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ > + > + Name: @PROJECT_NAME@ > + Description: C++ library on top of sd-bus, a systemd D-Bus library > +-Requires@PKGCONFIG_REQS@: libsystemd > ++Requires@PKGCONFIG_REQS@: @LIBSYSTEMD@ > + Version: @SDBUSCPP_VERSION@ > + Libs: -L${libdir} -l@PROJECT_NAME@ > + Cflags: -I${includedir} > + > +base-commit: 3e84b254e9603935cb5fc180c4d2214d7024ccbb > +-- > +2.41.0 > + Otherwise LGTM. Cheers
Hi Liliana, Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Freitag, dem 18.08.2023 um 14:12 -0400 schrieb Maxim Cournoyer: >> * gnu/packages/glib.scm (sdbus-cpp): New variable. >> * gnu/packages/patches/sdbus-c++-elogind.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Register it. >> --- >> >> gnu/local.mk | 1 + >> gnu/packages/glib.scm | 43 +++++++++++++ >> gnu/packages/patches/sdbus-c++-elogind.patch | 63 >> ++++++++++++++++++++ >> 3 files changed, 107 insertions(+) >> create mode 100644 gnu/packages/patches/sdbus-c++-elogind.patch >> >> diff --git a/gnu/local.mk b/gnu/local.mk >> index abe8964f4d..de669c1177 100644 >> --- a/gnu/local.mk >> +++ b/gnu/local.mk >> @@ -1938,6 +1938,7 @@ dist_patch_DATA >> = \ >> %D%/packages/patches/scons-test-environment.patch \ >> %D%/packages/patches/screen-hurd-path-max.patch \ >> %D%/packages/patches/scsh-nonstring-search-path.patch \ >> + %D%/packages/patches/sdbus-c++-elogind.patch \ >> %D%/packages/patches/sdl-libx11-1.6.patch \ >> %D%/packages/patches/seed-webkit.patch \ >> %D%/packages/patches/sendgmail-accept-ignored-gsuite- >> flag.patch \ >> diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm >> index a0b85b15d1..588133e93f 100644 >> --- a/gnu/packages/glib.scm >> +++ b/gnu/packages/glib.scm >> @@ -1290,6 +1290,49 @@ (define-public dbus-cxx >> (home-page "https://dbus-cxx.github.io/") >> (license license:gpl3))) >> >> +(define-public sdbus-c++ >> + ;; Use the latest commit, which includes unreleased fixes to the >> pkg-config >> + ;; file. >> + (let ((commit "3e84b254e9603935cb5fc180c4d2214d7024ccbb") >> + (revision "0")) >> + (package >> + (name "sdbus-c++") >> + (version (git-version "1.2.0" revision commit)) >> + (source (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url >> "https://github.com/Kistler-Group/sdbus-cpp") >> + (commit commit))) >> + (file-name (git-file-name name version)) >> + (sha256 >> + (base32 >> + >> "0xrcp49almi3kwzmwcwv8sayqjxx8m55s5grxarw2hl9jmghwlc3")) >> + (patches (search-patches "sdbus-c++- >> elogind.patch")))) >> + (build-system cmake-build-system) >> + (arguments >> + (list >> + ;; Avoid the integration test, which requires a system bus. >> + #:test-target "sdbus-c++-unit-tests" >> + #:configure-flags #~(list "-DBUILD_CODE_GEN=ON" >> + "-DBUILD_TESTS=ON" >> + ;; Do not install tests. >> + "-DTESTS_INSTALL_PATH=/tmp" >> + "-DCMAKE_VERBOSE_MAKEFILE=ON") >> + #:phases #~(modify-phases %standard-phases >> + (add-after 'unpack 'do-not-install-tests >> + (lambda _ >> + (substitute* "tests/CMakeLists.txt" >> + (("/etc/dbus-1/system.d") "/tmp"))))))) > Should we perhaps add those to a separate output? Are they useful on > their own? My informal policy on tests installation has been "only maybe install tests if they cannot be made to run at build time", which is not the case here. >> + (native-inputs (list googletest pkg-config)) >> + (inputs (list expat)) >> + (propagated-inputs (list elogind)) ;required by sdbus-c++.pc >> + (home-page "https://github.com/Kistler-Group/sdbus-cpp") >> + (synopsis "High-level C++ D-Bus library") >> + (description "@code{sdbus-c++} is a high-level C++ D-Bus >> library designed >> +to provide easy-to-use yet powerful API in modern C++. It adds >> another layer >> +of abstraction on top of @code{sd-bus}, the C D-Bus implementation >> by systemd.") >> + (license license:lgpl2.1+)))) >> + >> (define-public appstream-glib >> (package >> (name "appstream-glib") >> diff --git a/gnu/packages/patches/sdbus-c++-elogind.patch >> b/gnu/packages/patches/sdbus-c++-elogind.patch >> new file mode 100644 >> index 0000000000..d01838edbc >> --- /dev/null >> +++ b/gnu/packages/patches/sdbus-c++-elogind.patch >> @@ -0,0 +1,63 @@ >> +Submitted upstream: >> https://github.com/Kistler-Group/sdbus-cpp/pull/352 >> + >> +From 8423c44b6c24ebd59db06ad33704265aa81a1c7a Mon Sep 17 00:00:00 >> 2001 >> +From: Sven Eden <sven.eden@prydeworx.com> >> +Date: Thu, 17 Aug 2023 23:16:19 -0400 >> +Subject: [PATCH] build: Add support for elogind. >> + >> +* CMakeLists.txt: Fallback to elogind when libsystemd could not be >> +found. Set LIBSYSTEMD variable. >> +* pkgconfig/sdbus-c++.pc.in (Description): Parameterize with above >> +LIBSYSTEMD variable. >> + >> +Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> >> +--- >> + CMakeLists.txt | 11 +++++++++++ >> + pkgconfig/sdbus-c++.pc.in | 2 +- >> + 2 files changed, 12 insertions(+), 1 deletion(-) >> + >> +diff --git a/CMakeLists.txt b/CMakeLists.txt >> +index 94f71c7..40c15f8 100644 >> +--- a/CMakeLists.txt >> ++++ b/CMakeLists.txt >> +@@ -12,11 +12,22 @@ include(GNUInstallDirs) # Installation >> directories for `install` command and pkg >> + # PERFORMING CHECKS & PREPARING THE DEPENDENCIES >> + #------------------------------- >> + >> ++set(LIBSYSTEMD "libsystemd") >> ++ >> + option(BUILD_LIBSYSTEMD "Build libsystemd static library and >> incorporate it into libsdbus-c++" OFF) >> + >> + if(NOT BUILD_LIBSYSTEMD) >> + find_package(PkgConfig REQUIRED) >> + pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL >> libsystemd>=236) >> ++ if(NOT TARGET PkgConfig::Systemd) >> ++ message(WARNING "libsystemd not found, checking for >> libelogind instead") > Perhaps demote this to INFO? I agree, but the patch is not entirely mine and more importantly has already been merged :-). >> ++ pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL >> libelogind>=236) >> ++ if(TARGET PkgConfig::Systemd) >> ++ set(LIBSYSTEMD "libelogind") >> ++ string(REPLACE "." ";" VERSION_LIST ${Systemd_VERSION}) >> ++ list(GET VERSION_LIST 0 Systemd_VERSION) >> ++ endif() >> ++ endif() >> + if(NOT TARGET PkgConfig::Systemd) >> + message(FATAL_ERROR "libsystemd of version at least 236 is >> required, but was not found " >> + "(if you have systemd in your OS, you >> may want to install package containing pkgconfig " >> +diff --git a/pkgconfig/sdbus-c++.pc.in b/pkgconfig/sdbus-c++.pc.in >> +index 6ad010a..0703476 100644 >> +--- a/pkgconfig/sdbus-c++.pc.in >> ++++ b/pkgconfig/sdbus-c++.pc.in >> +@@ -5,7 +5,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ >> + >> + Name: @PROJECT_NAME@ >> + Description: C++ library on top of sd-bus, a systemd D-Bus library >> +-Requires@PKGCONFIG_REQS@: libsystemd >> ++Requires@PKGCONFIG_REQS@: @LIBSYSTEMD@ >> + Version: @SDBUSCPP_VERSION@ >> + Libs: -L${libdir} -l@PROJECT_NAME@ >> + Cflags: -I${includedir} >> + >> +base-commit: 3e84b254e9603935cb5fc180c4d2214d7024ccbb >> +-- >> +2.41.0 >> + > Otherwise LGTM. Thanks for the review! -- Thanks, Maxim
Hi, This refreshed series has now been merged.
diff --git a/gnu/local.mk b/gnu/local.mk index abe8964f4d..de669c1177 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1938,6 +1938,7 @@ dist_patch_DATA = \ %D%/packages/patches/scons-test-environment.patch \ %D%/packages/patches/screen-hurd-path-max.patch \ %D%/packages/patches/scsh-nonstring-search-path.patch \ + %D%/packages/patches/sdbus-c++-elogind.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seed-webkit.patch \ %D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index a0b85b15d1..588133e93f 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -1290,6 +1290,49 @@ (define-public dbus-cxx (home-page "https://dbus-cxx.github.io/") (license license:gpl3))) +(define-public sdbus-c++ + ;; Use the latest commit, which includes unreleased fixes to the pkg-config + ;; file. + (let ((commit "3e84b254e9603935cb5fc180c4d2214d7024ccbb") + (revision "0")) + (package + (name "sdbus-c++") + (version (git-version "1.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Kistler-Group/sdbus-cpp") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xrcp49almi3kwzmwcwv8sayqjxx8m55s5grxarw2hl9jmghwlc3")) + (patches (search-patches "sdbus-c++-elogind.patch")))) + (build-system cmake-build-system) + (arguments + (list + ;; Avoid the integration test, which requires a system bus. + #:test-target "sdbus-c++-unit-tests" + #:configure-flags #~(list "-DBUILD_CODE_GEN=ON" + "-DBUILD_TESTS=ON" + ;; Do not install tests. + "-DTESTS_INSTALL_PATH=/tmp" + "-DCMAKE_VERBOSE_MAKEFILE=ON") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'do-not-install-tests + (lambda _ + (substitute* "tests/CMakeLists.txt" + (("/etc/dbus-1/system.d") "/tmp"))))))) + (native-inputs (list googletest pkg-config)) + (inputs (list expat)) + (propagated-inputs (list elogind)) ;required by sdbus-c++.pc + (home-page "https://github.com/Kistler-Group/sdbus-cpp") + (synopsis "High-level C++ D-Bus library") + (description "@code{sdbus-c++} is a high-level C++ D-Bus library designed +to provide easy-to-use yet powerful API in modern C++. It adds another layer +of abstraction on top of @code{sd-bus}, the C D-Bus implementation by systemd.") + (license license:lgpl2.1+)))) + (define-public appstream-glib (package (name "appstream-glib") diff --git a/gnu/packages/patches/sdbus-c++-elogind.patch b/gnu/packages/patches/sdbus-c++-elogind.patch new file mode 100644 index 0000000000..d01838edbc --- /dev/null +++ b/gnu/packages/patches/sdbus-c++-elogind.patch @@ -0,0 +1,63 @@ +Submitted upstream: https://github.com/Kistler-Group/sdbus-cpp/pull/352 + +From 8423c44b6c24ebd59db06ad33704265aa81a1c7a Mon Sep 17 00:00:00 2001 +From: Sven Eden <sven.eden@prydeworx.com> +Date: Thu, 17 Aug 2023 23:16:19 -0400 +Subject: [PATCH] build: Add support for elogind. + +* CMakeLists.txt: Fallback to elogind when libsystemd could not be +found. Set LIBSYSTEMD variable. +* pkgconfig/sdbus-c++.pc.in (Description): Parameterize with above +LIBSYSTEMD variable. + +Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> +--- + CMakeLists.txt | 11 +++++++++++ + pkgconfig/sdbus-c++.pc.in | 2 +- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 94f71c7..40c15f8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,11 +12,22 @@ include(GNUInstallDirs) # Installation directories for `install` command and pkg + # PERFORMING CHECKS & PREPARING THE DEPENDENCIES + #------------------------------- + ++set(LIBSYSTEMD "libsystemd") ++ + option(BUILD_LIBSYSTEMD "Build libsystemd static library and incorporate it into libsdbus-c++" OFF) + + if(NOT BUILD_LIBSYSTEMD) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libsystemd>=236) ++ if(NOT TARGET PkgConfig::Systemd) ++ message(WARNING "libsystemd not found, checking for libelogind instead") ++ pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libelogind>=236) ++ if(TARGET PkgConfig::Systemd) ++ set(LIBSYSTEMD "libelogind") ++ string(REPLACE "." ";" VERSION_LIST ${Systemd_VERSION}) ++ list(GET VERSION_LIST 0 Systemd_VERSION) ++ endif() ++ endif() + if(NOT TARGET PkgConfig::Systemd) + message(FATAL_ERROR "libsystemd of version at least 236 is required, but was not found " + "(if you have systemd in your OS, you may want to install package containing pkgconfig " +diff --git a/pkgconfig/sdbus-c++.pc.in b/pkgconfig/sdbus-c++.pc.in +index 6ad010a..0703476 100644 +--- a/pkgconfig/sdbus-c++.pc.in ++++ b/pkgconfig/sdbus-c++.pc.in +@@ -5,7 +5,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + + Name: @PROJECT_NAME@ + Description: C++ library on top of sd-bus, a systemd D-Bus library +-Requires@PKGCONFIG_REQS@: libsystemd ++Requires@PKGCONFIG_REQS@: @LIBSYSTEMD@ + Version: @SDBUSCPP_VERSION@ + Libs: -L${libdir} -l@PROJECT_NAME@ + Cflags: -I${includedir} + +base-commit: 3e84b254e9603935cb5fc180c4d2214d7024ccbb +-- +2.41.0 +