This partially fixes <https://issues.guix.gnu.org/54786>, allowing the 'jami'
and 'jami-provisioning' system tests to pass again.
In version 0.9.0, Shepherd constructors are now run concurrently, via
cooperative scheduling (Guile Fibers). The Jami service previously relied on
blocking sleeps while polling for D-Bus services to become ready after forking
a process; this wouldn't work anymore since while blocking the service process
wouldn't be given the chance to finish starting. The new reliance on Fibers
in Shepherd's fork+exec-command in the helper 'send-dbus' procedure also meant
that it wouldn't work outside of Shepherd anymore. Finally, the
'start-service' Shepherd procedure used in the test suite would cause the Jami
daemon to be spawned multiple times (a bug introduced in Shepherd 0.9.0).
To fix/simplify these problems, this change does the following:
1. Use the Guile AC/D-Bus library for D-Bus communication, which simplify
things, such as avoiding the need to fork 'dbus-send' processes.
2. The non-blocking 'sleep' version of Fiber is used for the 'with-retries'
waiting syntax.
3. A 'dbus' package variant is used to adjust the session bus configuration,
tailoring it for the use case at hand.
4. Avoid start-service in the tests, preferring 'jami-service-available?' for
now.
* gnu/build/jami-service.scm (parse-dbus-reply, strip-quotes)
(deserialize-item, serialize-boolean, dbus-dict->alist)
(dbus-array->list, parse-account-ids, parse-account-details)
(parse-contacts): Delete procedures.
(%send-dbus-binary, %send-dbus-bus, %send-dbus-user, %send-dbus-group)
(%send-dbus-debug): Delete parameters.
(jami-service-running?): New procedure.
(send-dbus/configuration-manager): Rename to...
(call-configuration-manager-method): ... this. Turn METHOD into a positional
argument. Turn ARGUMENTS into an optional argument. Invoke
`call-dbus-method' instead of `send-dbus', adjusting callers accordingly.
(get-account-ids, id->account-details, id->account-details)
(id->volatile-account-details, username->id, add-account remove-account)
(username->contacts, remove-contact, add-contact, set-account-details)
(set-all-moderators, username->all-moderators?, username->moderators)
(set-moderator): Adjust accordingly.
(with-retries, send-dbus, dbus-available-services)
(dbus-service-available?): Move to ...
* gnu/build/dbus-service.scm: ... this new module.
(send-dbus): Rewrite to use the Guile AC/D-Bus library.
(%dbus-query-timeout, sleep*): New variables.
(%current-dbus-connection): New parameter.
(initialize-dbus-connection!, argument->signature-type)
(call-dbus-method): New procedures.
(dbus-available-services): Adjust accordingly.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register new module.
* gnu/packages/glib.scm (dbus-for-jami): New variable.
* gnu/services/telephony.scm: (jami-configuration)[dbus]: Default to
dbus-for-jami.
(jami-dbus-session-activation): Write a D-Bus daemon configuration file at
'/var/run/jami/session-local.conf'.
(jami-shepherd-services): Add the closure of guile-ac-d-bus and guile-fibers
as extensions. Adjust imported modules. Remove no longer used parameters.
<jami-dbus-session>: Use a PID file, avoiding the need for the manual
synchronization.
<jami>: Set DBUS_SESSION_BUS_ADDRESS environment variable. Poll using
'jami-service-available?' instead of 'dbus-service-available?'.
* gnu/tests/telephony.scm (run-jami-test): Add needed Guile extensions. Set
DBUS_SESSION_BUS_ADDRESS environment variable. Adjust all tests to use
'jami-service-available?' to determine if the service is started rather than
the now problematic Shepherd's 'start-service'.
* gnu/packages/patches/openbox-python3.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/openbox.scm (openbox)[source]: Apply it.
[arguments]: New field.
[propagated-inputs]: Replace python2-pyxdg with python-pyxdg.
[native-inputs]: Replace python-2 with python-wrapper.
Add autoconf, automake, gettext-minimal and libtool.
* gnu/packages/patches/mia-fix-boost-headers.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/image-processing.scm (mia): Update to 2.4.7.
[source]: Apply patch.
[configure-flags]: Use the more conventional OFF option value (instead of 0).
[inputs]: Use new style. Replace python2-lxml by python-lxml. Replace vtk by
vtk-7.
[native-inputs]: Use new style. Replace python-2 with python-wrapper.
* gnu/packages/patches/itk-snap-alt-glibc-compat.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/image-processing.scm (itk-snap): Apply it.
[phases]: Delete trailing #t.
[inputs]: Use new style. Replace vtk-6 with vtk-7.
* gnu/packages/patches/emacs-helpful-docstring-test.patch: New file.
* gnu/packages/emacs-xyz.scm (emacs-helpful): Update to 0.19.
[source]: Use the patch.
* gnu/local.mk (dist_patch_DATA): Register the patch.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu/packages/games.scm (irrlicht): Update to 1.8.5.
[source]: Use unmodified Debian patches rather than manually maintain
a custom mash-up.
[arguments]: Add a new 'delete-broken-install-rule phase instead.
Don't explicitly return #t from phases.
* gnu/packages/patches/irrlicht-link-against-needed-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/local.mk (dist_patch_DATA): Remove minetest-add-MINETEST_MOD_PATH.patch.
* gnu/packages/minetest.scm (minetest): Update to 5.5.1.
[patches]: Don’t use the patch anymore.
[#:configure-flags]: Point cmake to irrlicht-for-minetest and zstd.
[inputs]: Use irrlicht-for-minetest instead of irrlicht, and add zstd.
(minetest-data): Update hash.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This is a follow-up to a08c21f206.
* gnu/packages/patches/libmicrohttpd-0.9.73-test-ssl3.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch: New file.
* gnu/packages/emacs-xyz.scm (emacs-deferred)[patches]: Use it here.
* gnu/local.mk (dist_patch_DATA): Add it here.
Fixes <https://issues.guix.gnu.org/55616>.
Reported by Tim Rakowski <tim.rakowski@gmail.com>.
This is a followup to 37e29ccd33.
* gnu/packages/patches/gcc-12-strmov-store-file-names.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
Add support for renewing AD membership with adcli. Wrap binaries with
LDB_MODULES_PATH. Fix the sss_analyze utility to run without systemd
libraries. Add native inputs to generate man pages and run additional tests
during build.
* gnu/packages/sssd.scm (sssd): Update to 2.7.0.
[patches]: Drop patches applied upstream. Add a patch for sss_analyze.
[inputs]: Add adcli, bash-minimal, jose, keyutils, libnl, pcre2, python.
Drop augeas, pcre.
[native-inputs]: Add cmocka, doxygen, gettext-minimal, libfaketime,
libtool, openssh, po4a, softhsm.
[arguments]: Rewrite in gexp style. Fix configure checks. Remove static
library from install. Wrap binaries to set correct paths.
* gnu/packages/patches/sssd-collision-with-external-nss-symbol.patch,
gnu/packages/patches/sssd-fix-samba-4.15.3.patch,
gnu/packages/patches/sssd-fix-samba.patch: Delete files.
* gnu/packages/patches/sssd-optional-systemd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/patches/emacs-yasnippet-fix-tests.patch: New file.
* gnu/packages/emacs-xyz.scm (emacs-yasnippet): Use it here.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/patches/emacs-lispy-fix-thread-last-test.patch: New file.
* gnu/packages/emacs-xyz.scm (emacs-lispy): Use it here.
* gnu/local.mk (dist_patch_DATA): Register it here.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* gnu/packages/patches/gcolor3-update-libportal-usage.patch: New file.
* gnu/packages/gnome.scm (gcolor3)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/python-xyz.scm (python-debugpy): New variable.
* gnu/packages/patches/python-debugpy-unbundle-pydevd.patch: New file.
* gnu/local.mk: Register it.
* gnu/packages/patches/emacs-git-email-missing-parens.patch: New file.
* gnu/packages/emacs-xyz.scm (emacs-git-email)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* gnu/local.mk (dist_patch_DATA): Add the patch
* gnu/packages/patches/openssh-trust-guix-store-directory.patch: Patch it
* gnu/packages/ssh.scm (openssh[source]): Use it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (openjdk15)[source]: Add it.
* gnu/packages/patches/hwloc-1-test-btrfs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mpi.scm (hwloc-1): Use it and update to 1.11.13.
Co-authored-by: Ludovic Courtès <ludovic.courtes@inria.fr>
* gnu/packages/patches/efivar-211.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/linux.scm (efivar)[source]<origin>: Use it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This fixes a regression that was introduced in
27720d0fe1.
* gnu/packages/patches/ganeti-pyyaml-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/virtualization.scm (ganeti)[source](patches): Add it.
* gnu/packages/llvm.scm (%llvm-monorepo-hashes, %llvm-patches, llvm-monorepo):
New variables.
(clang-runtime-from-llvm): Make HASH optional; use monorepo when not present.
(clang-from-llvm): Likewise.
(llvm-14, clang-runtime-14, clang-14, clang-toolchain-14, lld-14): New variables.
(llvm-13): Inherit from LLVM-14.
(lld-13): Inherit from LLD-14.
(lld): Turn into alias for LLD-14.
* gnu/packages/patches/clang-14.0-libc-search-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/zig.scm (zig): Change from LLD to LLD-13.
* gnu/packages/crates-io.scm (rust-ndarray-0.14): New variable.
* gnu/packages/patches/rust-ndarray-0.14-remove-blas-src.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/python-xyz.scm (python-robotframework): Update to 5.0.
[patches]: Remove python-robotframework-ug2html.patch. Add
python-robotframework-atest.patch and update
python-robotframework-source-date-epoch.patch.
[phases]: Use gexps.
{delete-problematic-tests}: New phase.
{check}: Also run `atest', the acceptance test suite.
[native-inputs]: Use new style. Add python-lxml, python-pyyaml,
python-xmlschema, scrot and xvfb-run.
* gnu/packages/patches/python-robotframework-atest.patch: New file.
* gnu/packages/patches/python-robotframework-source-date-epoch.patch: Update patch.
* gnu/packages/patches/python-robotframework-ug2html.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/patches/openboardview-use-system-imgui.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/electronics.scm (openboardview)[source]: Delete "imgui"
subdirectory from snippet and apply patch.
[inputs]{imgui}: New input.
* gnu/packages/patches/python-mypy-12332.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/python-check.scm (python-mypy)[source]<origin>: Use patch
"python-mypy-12332.patch" to avoid overflow issues resulting in test failures.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/databases.scm (mariadb)[arguments]: Add custom phase for
powerpc-linux to apply patch.
[native-inputs]: When building for powerpc-linux add patch and a patch
file.
* gnu/packages/patches/mariadb-link-libatomic.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/patches/transfig-gcc10-fno-common.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/xfig.scm (transfig)[source]<origin>: Use patch
"transfig-gcc10-fno-common.patch" to avoid "multiple definition" errors with
GCC 10+ and "-f-no-common".
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/patches/python-robotframework-ug2html.patch: New patch.
* gnu/local.mk: Register it.
* gnu/packages/python-xyz.scm (python-robotframework): Apply patch.
[modules]: New argument.
[phases]{build-and-install-doc}: Modify to build the full HTML documentation,
including the user guide.
[native-inputs]: Add python-pygments.
* gnu/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/python-xyz.scm (python-robotframework-sshlibrary): Apply it.