[PATCH] gnu: elogind: Update to 239.2.

  • Done
  • quality assurance status badge
Details
3 participants
  • Marius Bakke
  • Meiyo Peng
  • Stefan Stefanovi?
Owner
unassigned
Submitted by
Stefan Stefanovi?
Severity
normal
S
S
Stefan Stefanovi? wrote on 23 Nov 2018 08:11
(name . guix-patches)(address . guix-patches@gnu.org)
CAFBTj=gVjzwhQWqWZxvzEACeipAU_NkoYk6rw-4Py09ZttwUmw@mail.gmail.com
Hello,
Guix.

Elogind version 239.2 was released upstream,
as I announced here is the Guix elogind package update.

Sorry for the delay,
it took me a while to reconfigure my system
and test this release. It works, for me, as expected.

Stefan.
M
M
Marius Bakke wrote on 23 Nov 2018 19:47
871s7bockp.fsf@fastmail.com
Stefan Stefanovi? <stefanx2ovic@gmail.com> writes:

Toggle quote (3 lines)
> Hello,
> Guix.

Hello Stefan!

Toggle quote (7 lines)
> Elogind version 239.2 was released upstream,
> as I announced here is the Guix elogind package update.
>
> Sorry for the delay,
> it took me a while to reconfigure my system
> and test this release. It works, for me, as expected.

Thank you very much for this work (again!).

Overall the patch LGTM, some nitpicks:

Toggle quote (34 lines)
> From e220c336852ce6e5ae2c746fd70aacff18763cd9 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Stefan=20Stefanovi=C4=87?= <stefanx2ovic@gmail.com>
> Date: Fri, 23 Nov 2018 04:47:02 +0100
> Subject: [PATCH] gnu: elogind: Update to 239.2.
>
> * gnu/packages/freedesktop.scm (elogind): Update to 239.2.
> [version]: Use git-version.
> [source](method): Use git-fetch.
> [source](file-name): Use git-file-name.
> [source](patches): Remove elogind-glibc-2.27.patch.
> [source](snippet):
> Use substitute on meson.build file
> to clean RUNPATH and adjust pkttyagent path.
> Use substitute on man/meson.build file
> to build man pages without internet access.
> Use substitute on src/login/elogind.c file
> to change elogind.pid file path to tmpfs mount point.
> [arguments]<#:configure-flags>: Adjust build paths.
> [arguments]<#:make-flags>: Remove argument.
> [arguments]<#:phases>:
> [patch-locale-header]: Remove phase.
> [bootstrap]: Delete phase.
> [fix-service-file]: Remove phase.
> [add-libcap-to-search-path]: Remove phase.
> [remove-uaccess-tag]: Remove phase.
> [build-system]: Switch to meson-build-system.
> [native-inputs]:
> Remove: autoconf, automake, libtool, intltool.
> Add: docbook-xml-4.2, python-lxml.
> [inputs]:
> Remove: linux-libre-headers.
> Add: audit, glibc, libseccomp, libselinux, pcre2,
> python, util-linux.

I'm surprised by the amount of new dependencies since I tried packaging
236. Are all these actually required? Or do they enable optional
functionality? For the latter case I'd prefer a separate patch that
adds it.

Toggle quote (2 lines)
> [synopsis]: Small adjustment.

Can you align these with the left margin? The lines can be longer too.

Toggle quote (184 lines)
>
> * gnu/packages/patches/elogind-glibc-2.27.patch: Delete file.
> * gnu/local.mk (dist_patch_DATA): Remove patch file.
> ---
> gnu/local.mk | 1 -
> gnu/packages/freedesktop.scm | 238 +++++++++---------
> gnu/packages/patches/elogind-glibc-2.27.patch | 22 --
> 3 files changed, 123 insertions(+), 138 deletions(-)
> delete mode 100644 gnu/packages/patches/elogind-glibc-2.27.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index c56278e93..1b1511e54 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -659,7 +659,6 @@ dist_patch_DATA = \
> %D%/packages/patches/dropbear-CVE-2018-15599.patch \
> %D%/packages/patches/dvd+rw-tools-add-include.patch \
> %D%/packages/patches/elfutils-tests-ptrace.patch \
> - %D%/packages/patches/elogind-glibc-2.27.patch \
> %D%/packages/patches/einstein-build.patch \
> %D%/packages/patches/emacs-exec-path.patch \
> %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
> diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
> index 5cc2699ad..14980b2ed 100644
> --- a/gnu/packages/freedesktop.scm
> +++ b/gnu/packages/freedesktop.scm
> @@ -43,6 +43,7 @@
> #:use-module (gnu packages acl)
> #:use-module (gnu packages admin)
> #:use-module (gnu packages autotools)
> + #:use-module (gnu packages base)
> #:use-module (gnu packages bash)
> #:use-module (gnu packages boost)
> #:use-module (gnu packages check)
> @@ -65,6 +66,7 @@
> #:use-module (gnu packages libusb)
> #:use-module (gnu packages linux)
> #:use-module (gnu packages m4)
> + #:use-module (gnu packages pcre)
> #:use-module (gnu packages perl)
> #:use-module (gnu packages perl-check)
> #:use-module (gnu packages polkit)
> @@ -72,6 +74,7 @@
> #:use-module (gnu packages perl)
> #:use-module (gnu packages perl-check)
> #:use-module (gnu packages python)
> + #:use-module (gnu packages selinux)
> #:use-module (gnu packages valgrind)
> #:use-module (gnu packages w3m)
> #:use-module (gnu packages web)
> @@ -227,124 +230,129 @@ the freedesktop.org XDG Base Directory specification.")
> (license license:expat)))
>
> (define-public elogind
> - (package
> - (name "elogind")
> - (version "232.4")
> - (source (origin
> - (method url-fetch)
> - (uri (string-append "https://github.com/elogind/elogind/"
> - "archive/v" version ".tar.gz"))
> - (file-name (string-append name "-" version ".tar.gz"))
> - (sha256
> - (base32
> - "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931"))
> - (patches (search-patches "elogind-glibc-2.27.patch"))
> - (modules '((guix build utils)))
> - (snippet
> - '(begin
> - (use-modules (guix build utils))
> - (substitute* "Makefile.am"
> - ;; Avoid validation against DTD because the DTDs for
> - ;; both doctype 4.2 and 4.5 are needed.
> - (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))
> - #t))))
> - (build-system gnu-build-system)
> - (arguments
> - `(#:tests? #f ;FIXME: "make check" in the "po" directory fails.
> - #:configure-flags
> - (list (string-append "--with-udevrulesdir="
> - (assoc-ref %outputs "out")
> - "/lib/udev/rules.d")
> -
> - ;; Let elogind be its own cgroup controller, rather than relying
> - ;; on systemd or OpenRC. By default, 'configure' makes an
> - ;; incorrect guess.
> - "--with-cgroup-controller=elogind"
> -
> - (string-append "--with-rootprefix="
> - (assoc-ref %outputs "out"))
> - (string-append "--with-rootlibexecdir="
> - (assoc-ref %outputs "out")
> - "/libexec/elogind")
> - ;; These are needed to ensure that lto linking works.
> - "RANLIB=gcc-ranlib"
> - "AR=gcc-ar"
> - "NM=gcc-nm")
> - #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
> - #:phases
> - (modify-phases %standard-phases
> - (add-after 'unpack 'patch-locale-header
> - (lambda _
> - ;; Fix compilation with glibc >= 2.26, which removed xlocale.h.
> - ;; This can be removed for elogind 234.
> - (substitute* "src/basic/parse-util.c"
> - (("xlocale\\.h") "locale.h"))
> - #t))
> - (replace 'bootstrap
> - (lambda _
> - (invoke "intltoolize" "--force" "--automake")
> - (invoke "autoreconf" "-vif")))
> - (add-before 'build 'fix-service-file
> - (lambda* (#:key outputs #:allow-other-keys)
> - ;; Fix the file name of the 'elogind' binary in the D-Bus
> - ;; '.service' file.
> - (substitute* "src/login/org.freedesktop.login1.service"
> - (("^Exec=.*")
> - (string-append "Exec=" (assoc-ref %outputs "out")
> - "/libexec/elogind/elogind\n")))
> - #t))
> - (add-after 'install 'add-libcap-to-search-path
> - (lambda* (#:key inputs outputs #:allow-other-keys)
> - ;; Add a missing '-L' for libcap in libelogind.la. See
> - ;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>.
> - (let ((libcap (assoc-ref inputs "libcap"))
> - (out (assoc-ref outputs "out")))
> - (substitute* (string-append out "/lib/libelogind.la")
> - (("-lcap")
> - (string-append "-L" libcap "/lib -lcap")))
> - #t)))
> - (add-after 'unpack 'remove-uaccess-tag
> - (lambda _
> - ;; systemd supports a "uaccess" built-in tag, but eudev currently
> - ;; doesn't. This leads to eudev warnings that we'd rather not
> - ;; see, so remove the reference to "uaccess."
> - (substitute* "src/login/73-seat-late.rules.in"
> - (("^TAG==\"uaccess\".*" line)
> - (string-append "# " line "\n")))
> - #t)))))
> - (native-inputs
> - `(("autoconf" ,autoconf)
> - ("automake" ,automake)
> - ("libtool" ,libtool)
> - ("intltool" ,intltool)
> - ("gettext" ,gettext-minimal)
> - ("python" ,python)
> - ("docbook-xsl" ,docbook-xsl)
> - ("docbook-xml" ,docbook-xml)
> - ("xsltproc" ,libxslt)
> - ("m4" ,m4)
> - ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
> - ("pkg-config" ,pkg-config)
> -
> - ;; Use gperf 3.0 to work around
> - ;; <https://github.com/wingo/elogind/issues/8>.
> - ("gperf" ,gperf-3.0)))
> - (inputs
> - `(("linux-pam" ,linux-pam)
> - ("linux-libre-headers" ,linux-libre-headers)
> - ("libcap" ,libcap)
> - ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
> - ;when pressing the power button
> - ("dbus" ,dbus)
> - ("eudev" ,eudev)
> - ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
> - (home-page "https://github.com/elogind/elogind")
> - (synopsis "User, seat, and session management service")
> - (description "Elogind is the systemd project's \"logind\" service,
> + (let* ((commit "30c4221a9785a9e03ba37ece364ed8ff36d46480")
> + (revision "1")
> + (version (git-version "239.2" revision commit)))
> + (package
> + (name "elogind")
> + (version version)
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/elogind/elogind")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "17khwbzqmkfd3hcscs51kzdpvq9p2llm08vbpsdhy9yxgwfzlfa6"))

Can you split this into two patches: one that switches the current
elogind package to use "git-fetch", and afterwards this update?

Please also remove the let binding so that we can keep the original
indentation. Those bindings are usually only necessary for packages
that don't have a proper versioning scheme, unlike elogind.

Toggle quote (10 lines)
> + (modules '((guix build utils)))
> + (snippet
> + '(begin
> + (use-modules (guix build utils))
> + (substitute* "meson.build"
> + ;; Clean RUNPATH.
> + (("install_rpath :") "#install_rpath :")
> + ;; TODO: Remove $ORIGIN from RUNPATH
> + ;; of libexec executables.

I think meson-build-system on 'core-updates' does this, if it does not
already (doesn't ld-wrapper ignore it?). Having $ORIGIN there should
be harmless though, no?

Toggle quote (4 lines)
> + ;; Fix pkttyagent path:
> + (("join_paths\\(bindir, 'pkttyagent'\\)")
> + "'\"/run/current-system/profile/bin/pkttyagent\"'"))

Please do this substitution in a phase, since it's very Guix-specific.

Toggle quote (8 lines)
> + (substitute* "man/meson.build"
> + ;; Necessary because
> + ;; there is no internet access
> + ;; inside the build environment.
> + (("xsltproc_flags = \\[")
> + (string-append "xsltproc_flags = ["
> + " '--novalid',")))

Please retain the original comment for this substitution.

Actually, I see in my WIP branch that this is rendered unnecessary by
adding "docbook-xsl@4.2" as a native-input. Did you try removing it?

Toggle quote (6 lines)
> + (substitute* "src/login/elogind.c"
> + ;; Change PID file path
> + ;; to fmpfs mount point.
> + (("\"/run/elogind.pid\"")
> + "\"/run/systemd/elogind.pid\""))

Is it possible to adjust elogind-service instead of making this
substitution? This is also better to do in a phase.

Toggle quote (4 lines)
> + #t))))
> + (build-system meson-build-system)
> + (outputs '("out"))

'("out") is the default, so this line can be removed.

Toggle quote (10 lines)
> + (arguments
> + `(#:tests? #t
> + ;; Some tests fail only in chroot build environment:
> + ;; - https://github.com/elogind/elogind/issues/45
> + ;; Some tests assume existence of standard directories:
> + ;; *** test_copy_bytes FAILS because there is no
> + ;; /usr/lib/os-release or /etc/os-release file
> + ;; *** test_chase_symlinks FAILS because there is no
> + ;; /usr directory

Since we don't currently run the tests, I think we can skip this comment
and instead work on a followup patch that enables the tests.

Toggle quote (15 lines)
> + ;;
> + #:configure-flags
> + (let* ((out (assoc-ref %outputs "out"))
> + (sysconf (string-append out "/etc"))
> + (libexec (string-append out "/libexec/elogind"))
> + (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
> + (shepherd (assoc-ref %build-inputs "shepherd"))
> + (halt-path (string-append shepherd "/sbin/halt"))
> + (kexec-path "") ;; NOTE: We need to package kexec-tools,
> + ;; or support kexec with shepherd.
> + (poweroff-path (string-append shepherd "/sbin/shutdown"))
> + (reboot-path (string-append shepherd "/sbin/reboot")))
> + `(,(string-append
> + "-Drootprefix=" out)

Please use (list ...) here instead of quote/unquote.

Toggle quote (26 lines)
> + ,(string-append
> + "-Dsysconfdir=" sysconf)
> + ,(string-append
> + "-Drootlibexecdir=" libexec)
> + ,(string-append
> + "-Ddbuspolicydir=" dbuspolicy)
> + ,(string-append
> + "-Dc_link_args=-Wl,-rpath=" libexec)
> + ,(string-append
> + "-Dcpp_link_args=-Wl,-rpath=" libexec)
> + ,(string-append
> + "-Dhalt-path=" halt-path)
> + ,(string-append
> + "-Dkexec-path=" kexec-path)
> + ,(string-append
> + "-Dpoweroff-path=" poweroff-path)
> + ,(string-append
> + "-Dreboot-path=" reboot-path)
> + "-Dcgroup-controller=elogind"
> + ;; Disable some tests.
> + "-Dtests=false"
> + "-Dslow-tests=false"))
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'bootstrap))))

Can you add a comment about why this is necessary?

Toggle quote (19 lines)
> + (native-inputs
> + `(("docbook-xsl" ,docbook-xsl)
> + ("docbook-xml-4.2" ,docbook-xml-4.2)
> + ("docbook-xml-4.5" ,docbook-xml)
> + ("libxml2" ,libxml2)
> + ("m4" ,m4)
> + ("pkg-config" ,pkg-config)
> + ("python" ,python)
> + ("python-lxml" ,python-lxml)
> + ("gettext" ,gettext-minimal)
> + ("gperf" ,gperf)
> + ("xsltproc" ,libxslt)))
> + (inputs
> + `(("acl" ,acl)
> + ("audit" ,audit)
> + ("dbus" ,dbus)
> + ("eudev" ,eudev)
> + ("glibc" ,glibc)

glibc is already an input, so this can be dropped.

The rest of the patch LGTM, though I admit that I did not test it yet.

Please also make sure "make check-system TESTS=elogind" passes. I found
I had to s|/dev/tty1|tty1| in gnu/tests/desktop.scm in my branch.

Can you send updates patches? Thanks in advance!

Toggle quote (49 lines)
> + ("libcap" ,libcap)
> + ("libseccomp" ,libseccomp)
> + ("libselinux" ,libselinux)
> + ("linux-pam" ,linux-pam)
> + ("pcre2" ,pcre2)
> + ("python" ,python) ;; libpython optional input
> + ("shepherd" ,shepherd)
> + ("util-linux" ,util-linux)))
> + (home-page "https://github.com/elogind/elogind")
> + (synopsis "Elogind provides user, seat, and session management service")
> + (description "Elogind is the systemd project's \"logind\" service,
> extracted out as a separate project. Elogind integrates with PAM to provide
> the org.freedesktop.login1 interface over the system bus, allowing other parts
> of a the system to know what users are logged in, and where.")
> - (license license:lgpl2.1+)))
> + (license license:lgpl2.1+))))
>
> (define-public packagekit
> (package
> diff --git a/gnu/packages/patches/elogind-glibc-2.27.patch b/gnu/packages/patches/elogind-glibc-2.27.patch
> deleted file mode 100644
> index 4ade587b5..000000000
> --- a/gnu/packages/patches/elogind-glibc-2.27.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Look for memfd_create in sys/mman.h instead of linux/memfd.h.
> -Needed to build with glibc-2.27.
> -
> ---- a/configure.ac 1969-12-31 19:00:00.000000000 -0500
> -+++ b/configure.ac 2018-03-27 23:54:15.414589005 -0400
> -@@ -360,7 +360,7 @@
> - # ------------------------------------------------------------------------------
> -
> - AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
> --AC_CHECK_HEADERS([linux/memfd.h], [], [])
> -+AC_CHECK_HEADERS([sys/mman.h], [], [])
> -
> - AC_CHECK_HEADERS([printf.h], [have_printf_h=yes], [have_printf_h=no])
> - AS_IF([test x$have_printf_h = xyes], [
> -@@ -395,6 +395,7 @@
> - [], [], [[
> - #include <sys/types.h>
> - #include <unistd.h>
> -+#include <sys/mman.h>
> - #include <sys/mount.h>
> - #include <fcntl.h>
> - #include <sched.h>
> --
> 2.19.2
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlv4S1YACgkQoqBt8qM6
VPr9sAf9HdZmrATJ1+K3/6vsnnNotO2W2YjI2HUOySam5thafcFO5ORwkqB8c4MO
pLS0hVxErHYXMQ3bMn6Y9xCv/wLWVbWtGQEacsGaqnbykQ0YqC+OASa/N1P97coE
bWcXKwKdPd/37NaBXOVzLoNyF1Tf5Hu0f4tEw+Au9g/+8DlEUD1q4fASE25CvCYl
vmOMaoKy8a1BLsKOKxdtXeGy1BNKxrx6i6nJmSUk9slESE/VvdUlqTZmJ7AUog3i
7Q/5dSDimJlb5H8ihAt6DKtbql8nCeEkBLi97+KkBVSQ6bNpaFRb/SmdnYYx+q5L
I7wlE09zRUkO6Ea/voTeyqXeaR+/Qg==
=xNcR
-----END PGP SIGNATURE-----

S
S
Stefan Stefanovi? wrote on 24 Nov 2018 04:10
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAFBTj=gSGP+JD4-Oi0zhaoHA2XQ=vk_6o2JPysgmcU_tdOmOng@mail.gmail.com
On 11/23/18, Marius Bakke <mbakke@fastmail.com> wrote:
Toggle quote (57 lines)
> Stefan Stefanovi? <stefanx2ovic@gmail.com> writes:
>
>> Hello,
>> Guix.
>
> Hello Stefan!
>
>> Elogind version 239.2 was released upstream,
>> as I announced here is the Guix elogind package update.
>>
>> Sorry for the delay,
>> it took me a while to reconfigure my system
>> and test this release. It works, for me, as expected.
>
> Thank you very much for this work (again!).
>
> Overall the patch LGTM, some nitpicks:
>
>> From e220c336852ce6e5ae2c746fd70aacff18763cd9 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Stefan=20Stefanovi=C4=87?= <stefanx2ovic@gmail.com>
>> Date: Fri, 23 Nov 2018 04:47:02 +0100
>> Subject: [PATCH] gnu: elogind: Update to 239.2.
>>
>> * gnu/packages/freedesktop.scm (elogind): Update to 239.2.
>> [version]: Use git-version.
>> [source](method): Use git-fetch.
>> [source](file-name): Use git-file-name.
>> [source](patches): Remove elogind-glibc-2.27.patch.
>> [source](snippet):
>> Use substitute on meson.build file
>> to clean RUNPATH and adjust pkttyagent path.
>> Use substitute on man/meson.build file
>> to build man pages without internet access.
>> Use substitute on src/login/elogind.c file
>> to change elogind.pid file path to tmpfs mount point.
>> [arguments]<#:configure-flags>: Adjust build paths.
>> [arguments]<#:make-flags>: Remove argument.
>> [arguments]<#:phases>:
>> [patch-locale-header]: Remove phase.
>> [bootstrap]: Delete phase.
>> [fix-service-file]: Remove phase.
>> [add-libcap-to-search-path]: Remove phase.
>> [remove-uaccess-tag]: Remove phase.
>> [build-system]: Switch to meson-build-system.
>> [native-inputs]:
>> Remove: autoconf, automake, libtool, intltool.
>> Add: docbook-xml-4.2, python-lxml.
>> [inputs]:
>> Remove: linux-libre-headers.
>> Add: audit, glibc, libseccomp, libselinux, pcre2,
>> python, util-linux.
>
> I'm surprised by the amount of new dependencies since I tried packaging
> 236. Are all these actually required? Or do they enable optional
> functionality? For the latter case I'd prefer a separate patch that
> adds it.

Some dependencies are optional, for example python, libselinux...
I need to check the others I can not remember.

Toggle quote (5 lines)
>
>> [synopsis]: Small adjustment.
>
> Can you align these with the left margin? The lines can be longer too.

I will, but small example, taken as a partial modification of commit message
can be very helpful.

Toggle quote (218 lines)
>
>>
>> * gnu/packages/patches/elogind-glibc-2.27.patch: Delete file.
>> * gnu/local.mk (dist_patch_DATA): Remove patch file.
>> ---
>> gnu/local.mk | 1 -
>> gnu/packages/freedesktop.scm | 238 +++++++++---------
>> gnu/packages/patches/elogind-glibc-2.27.patch | 22 --
>> 3 files changed, 123 insertions(+), 138 deletions(-)
>> delete mode 100644 gnu/packages/patches/elogind-glibc-2.27.patch
>>
>> diff --git a/gnu/local.mk b/gnu/local.mk
>> index c56278e93..1b1511e54 100644
>> --- a/gnu/local.mk
>> +++ b/gnu/local.mk
>> @@ -659,7 +659,6 @@ dist_patch_DATA = \
>> %D%/packages/patches/dropbear-CVE-2018-15599.patch \
>> %D%/packages/patches/dvd+rw-tools-add-include.patch \
>> %D%/packages/patches/elfutils-tests-ptrace.patch \
>> - %D%/packages/patches/elogind-glibc-2.27.patch \
>> %D%/packages/patches/einstein-build.patch \
>> %D%/packages/patches/emacs-exec-path.patch \
>> %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
>> diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
>> index 5cc2699ad..14980b2ed 100644
>> --- a/gnu/packages/freedesktop.scm
>> +++ b/gnu/packages/freedesktop.scm
>> @@ -43,6 +43,7 @@
>> #:use-module (gnu packages acl)
>> #:use-module (gnu packages admin)
>> #:use-module (gnu packages autotools)
>> + #:use-module (gnu packages base)
>> #:use-module (gnu packages bash)
>> #:use-module (gnu packages boost)
>> #:use-module (gnu packages check)
>> @@ -65,6 +66,7 @@
>> #:use-module (gnu packages libusb)
>> #:use-module (gnu packages linux)
>> #:use-module (gnu packages m4)
>> + #:use-module (gnu packages pcre)
>> #:use-module (gnu packages perl)
>> #:use-module (gnu packages perl-check)
>> #:use-module (gnu packages polkit)
>> @@ -72,6 +74,7 @@
>> #:use-module (gnu packages perl)
>> #:use-module (gnu packages perl-check)
>> #:use-module (gnu packages python)
>> + #:use-module (gnu packages selinux)
>> #:use-module (gnu packages valgrind)
>> #:use-module (gnu packages w3m)
>> #:use-module (gnu packages web)
>> @@ -227,124 +230,129 @@ the freedesktop.org XDG Base Directory
>> specification.")
>> (license license:expat)))
>>
>> (define-public elogind
>> - (package
>> - (name "elogind")
>> - (version "232.4")
>> - (source (origin
>> - (method url-fetch)
>> - (uri (string-append "https://github.com/elogind/elogind/"
>> - "archive/v" version ".tar.gz"))
>> - (file-name (string-append name "-" version ".tar.gz"))
>> - (sha256
>> - (base32
>> - "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931"))
>> - (patches (search-patches "elogind-glibc-2.27.patch"))
>> - (modules '((guix build utils)))
>> - (snippet
>> - '(begin
>> - (use-modules (guix build utils))
>> - (substitute* "Makefile.am"
>> - ;; Avoid validation against DTD because the DTDs for
>> - ;; both doctype 4.2 and 4.5 are needed.
>> - (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS =
>> --novalid"))
>> - #t))))
>> - (build-system gnu-build-system)
>> - (arguments
>> - `(#:tests? #f ;FIXME: "make check" in the "po" directory fails.
>> - #:configure-flags
>> - (list (string-append "--with-udevrulesdir="
>> - (assoc-ref %outputs "out")
>> - "/lib/udev/rules.d")
>> -
>> - ;; Let elogind be its own cgroup controller, rather than
>> relying
>> - ;; on systemd or OpenRC. By default, 'configure' makes an
>> - ;; incorrect guess.
>> - "--with-cgroup-controller=elogind"
>> -
>> - (string-append "--with-rootprefix="
>> - (assoc-ref %outputs "out"))
>> - (string-append "--with-rootlibexecdir="
>> - (assoc-ref %outputs "out")
>> - "/libexec/elogind")
>> - ;; These are needed to ensure that lto linking works.
>> - "RANLIB=gcc-ranlib"
>> - "AR=gcc-ar"
>> - "NM=gcc-nm")
>> - #:make-flags
>> '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
>> - #:phases
>> - (modify-phases %standard-phases
>> - (add-after 'unpack 'patch-locale-header
>> - (lambda _
>> - ;; Fix compilation with glibc >= 2.26, which removed
>> xlocale.h.
>> - ;; This can be removed for elogind 234.
>> - (substitute* "src/basic/parse-util.c"
>> - (("xlocale\\.h") "locale.h"))
>> - #t))
>> - (replace 'bootstrap
>> - (lambda _
>> - (invoke "intltoolize" "--force" "--automake")
>> - (invoke "autoreconf" "-vif")))
>> - (add-before 'build 'fix-service-file
>> - (lambda* (#:key outputs #:allow-other-keys)
>> - ;; Fix the file name of the 'elogind' binary in the D-Bus
>> - ;; '.service' file.
>> - (substitute* "src/login/org.freedesktop.login1.service"
>> - (("^Exec=.*")
>> - (string-append "Exec=" (assoc-ref %outputs "out")
>> - "/libexec/elogind/elogind\n")))
>> - #t))
>> - (add-after 'install 'add-libcap-to-search-path
>> - (lambda* (#:key inputs outputs #:allow-other-keys)
>> - ;; Add a missing '-L' for libcap in libelogind.la. See
>> - ;;
>> <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>.
>> - (let ((libcap (assoc-ref inputs "libcap"))
>> - (out (assoc-ref outputs "out")))
>> - (substitute* (string-append out "/lib/libelogind.la")
>> - (("-lcap")
>> - (string-append "-L" libcap "/lib -lcap")))
>> - #t)))
>> - (add-after 'unpack 'remove-uaccess-tag
>> - (lambda _
>> - ;; systemd supports a "uaccess" built-in tag, but eudev
>> currently
>> - ;; doesn't. This leads to eudev warnings that we'd rather
>> not
>> - ;; see, so remove the reference to "uaccess."
>> - (substitute* "src/login/73-seat-late.rules.in"
>> - (("^TAG==\"uaccess\".*" line)
>> - (string-append "# " line "\n")))
>> - #t)))))
>> - (native-inputs
>> - `(("autoconf" ,autoconf)
>> - ("automake" ,automake)
>> - ("libtool" ,libtool)
>> - ("intltool" ,intltool)
>> - ("gettext" ,gettext-minimal)
>> - ("python" ,python)
>> - ("docbook-xsl" ,docbook-xsl)
>> - ("docbook-xml" ,docbook-xml)
>> - ("xsltproc" ,libxslt)
>> - ("m4" ,m4)
>> - ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
>> - ("pkg-config" ,pkg-config)
>> -
>> - ;; Use gperf 3.0 to work around
>> - ;; <https://github.com/wingo/elogind/issues/8>.
>> - ("gperf" ,gperf-3.0)))
>> - (inputs
>> - `(("linux-pam" ,linux-pam)
>> - ("linux-libre-headers" ,linux-libre-headers)
>> - ("libcap" ,libcap)
>> - ("shepherd" ,shepherd) ;for 'halt' and 'reboot',
>> invoked
>> - ;when pressing the power
>> button
>> - ("dbus" ,dbus)
>> - ("eudev" ,eudev)
>> - ("acl" ,acl))) ;to add individual users to ACLs on /dev
>> nodes
>> - (home-page "https://github.com/elogind/elogind")
>> - (synopsis "User, seat, and session management service")
>> - (description "Elogind is the systemd project's \"logind\" service,
>> + (let* ((commit "30c4221a9785a9e03ba37ece364ed8ff36d46480")
>> + (revision "1")
>> + (version (git-version "239.2" revision commit)))
>> + (package
>> + (name "elogind")
>> + (version version)
>> + (source (origin
>> + (method git-fetch)
>> + (uri (git-reference
>> + (url "https://github.com/elogind/elogind")
>> + (commit commit)))
>> + (file-name (git-file-name name version))
>> + (sha256
>> + (base32
>> +
>> "17khwbzqmkfd3hcscs51kzdpvq9p2llm08vbpsdhy9yxgwfzlfa6"))
>
> Can you split this into two patches: one that switches the current
> elogind package to use "git-fetch", and afterwards this update?
>
> Please also remove the let binding so that we can keep the original
> indentation. Those bindings are usually only necessary for packages
> that don't have a proper versioning scheme, unlike elogind.
>
>> + (modules '((guix build utils)))
>> + (snippet
>> + '(begin
>> + (use-modules (guix build utils))
>> + (substitute* "meson.build"
>> + ;; Clean RUNPATH.
>> + (("install_rpath :") "#install_rpath :")
>> + ;; TODO: Remove $ORIGIN from RUNPATH
>> + ;; of libexec executables.
>
> I think meson-build-system on 'core-updates' does this, if it does not
> already (doesn't ld-wrapper ignore it?). Having $ORIGIN there should
> be harmless though, no?

I was not sure about this so I wrote this comment, will remove the TODO comment.
The above substitute should remain, because without it the RUNPATH is
filled with some strange artifacts, paths with 'XXXX...' strings.

Toggle quote (18 lines)
>
>> + ;; Fix pkttyagent path:
>> + (("join_paths\\(bindir, 'pkttyagent'\\)")
>> +
>> "'\"/run/current-system/profile/bin/pkttyagent\"'"))
>
> Please do this substitution in a phase, since it's very Guix-specific.
>
>> + (substitute* "man/meson.build"
>> + ;; Necessary because
>> + ;; there is no internet access
>> + ;; inside the build environment.
>> + (("xsltproc_flags = \\[")
>> + (string-append "xsltproc_flags = ["
>> + " '--novalid',")))
>
> Please retain the original comment for this substitution.

I will.

Toggle quote (13 lines)
>
> Actually, I see in my WIP branch that this is rendered unnecessary by
> adding "docbook-xsl@4.2" as a native-input. Did you try removing it?
>
>> + (substitute* "src/login/elogind.c"
>> + ;; Change PID file path
>> + ;; to fmpfs mount point.
>> + (("\"/run/elogind.pid\"")
>> + "\"/run/systemd/elogind.pid\""))
>
> Is it possible to adjust elogind-service instead of making this
> substitution? This is also better to do in a phase.

Elogind, assumed that 'elogind.pid' file is in tmpfs RAM filesystem,
it has more robust check now but this check is not tested.

'/run' is not mounted as tmpfs, unlike '/run/systemd'.
Is it feasible to make '/run' tmpfs mount point?

If we decide not to place 'elogind.pid' file in tmpfs,
we should at least change it to '/var/run/...' just to be consistent.

In any case I will move this in phase.

Toggle quote (7 lines)
>
>> + #t))))
>> + (build-system meson-build-system)
>> + (outputs '("out"))
>
> '("out") is the default, so this line can be removed.

I will, I tried to be more explicit. This is my old habit, sorry.

Toggle quote (14 lines)
>
>> + (arguments
>> + `(#:tests? #t
>> + ;; Some tests fail only in chroot build environment:
>> + ;; - https://github.com/elogind/elogind/issues/45
>> + ;; Some tests assume existence of standard directories:
>> + ;; *** test_copy_bytes FAILS because there is no
>> + ;; /usr/lib/os-release or /etc/os-release file
>> + ;; *** test_chase_symlinks FAILS because there is no
>> + ;; /usr directory
>
> Since we don't currently run the tests, I think we can skip this comment
> and instead work on a followup patch that enables the tests.

I will remove this comment.
I was planing on working on those failing tests after this release.

Toggle quote (19 lines)
>
>> + ;;
>> + #:configure-flags
>> + (let* ((out (assoc-ref %outputs "out"))
>> + (sysconf (string-append out "/etc"))
>> + (libexec (string-append out "/libexec/elogind"))
>> + (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
>> + (shepherd (assoc-ref %build-inputs "shepherd"))
>> + (halt-path (string-append shepherd "/sbin/halt"))
>> + (kexec-path "") ;; NOTE: We need to package kexec-tools,
>> + ;; or support kexec with shepherd.
>> + (poweroff-path (string-append shepherd
>> "/sbin/shutdown"))
>> + (reboot-path (string-append shepherd "/sbin/reboot")))
>> + `(,(string-append
>> + "-Drootprefix=" out)
>
> Please use (list ...) here instead of quote/unquote.

Will do. I am already contradicting my stated desire to be more explicit. :)

Toggle quote (29 lines)
>
>> + ,(string-append
>> + "-Dsysconfdir=" sysconf)
>> + ,(string-append
>> + "-Drootlibexecdir=" libexec)
>> + ,(string-append
>> + "-Ddbuspolicydir=" dbuspolicy)
>> + ,(string-append
>> + "-Dc_link_args=-Wl,-rpath=" libexec)
>> + ,(string-append
>> + "-Dcpp_link_args=-Wl,-rpath=" libexec)
>> + ,(string-append
>> + "-Dhalt-path=" halt-path)
>> + ,(string-append
>> + "-Dkexec-path=" kexec-path)
>> + ,(string-append
>> + "-Dpoweroff-path=" poweroff-path)
>> + ,(string-append
>> + "-Dreboot-path=" reboot-path)
>> + "-Dcgroup-controller=elogind"
>> + ;; Disable some tests.
>> + "-Dtests=false"
>> + "-Dslow-tests=false"))
>> + #:phases
>> + (modify-phases %standard-phases
>> + (delete 'bootstrap))))
>
> Can you add a comment about why this is necessary?

I will. I need to check, the standard meson phases.
Maybe we do not need it, I wrote this a few weeks ago. :(

Toggle quote (22 lines)
>
>> + (native-inputs
>> + `(("docbook-xsl" ,docbook-xsl)
>> + ("docbook-xml-4.2" ,docbook-xml-4.2)
>> + ("docbook-xml-4.5" ,docbook-xml)
>> + ("libxml2" ,libxml2)
>> + ("m4" ,m4)
>> + ("pkg-config" ,pkg-config)
>> + ("python" ,python)
>> + ("python-lxml" ,python-lxml)
>> + ("gettext" ,gettext-minimal)
>> + ("gperf" ,gperf)
>> + ("xsltproc" ,libxslt)))
>> + (inputs
>> + `(("acl" ,acl)
>> + ("audit" ,audit)
>> + ("dbus" ,dbus)
>> + ("eudev" ,eudev)
>> + ("glibc" ,glibc)
>
> glibc is already an input, so this can be dropped.

Ok, will be removed.

Toggle quote (6 lines)
>
> The rest of the patch LGTM, though I admit that I did not test it yet.
>
> Please also make sure "make check-system TESTS=elogind" passes. I found
> I had to s|/dev/tty1|tty1| in gnu/tests/desktop.scm in my branch.

I will try that.

Toggle quote (3 lines)
>
> Can you send updates patches? Thanks in advance!

I will start working on them right away.
Thank you, for your suggestions.

Stefan.
S
S
Stefan Stefanovi? wrote on 24 Nov 2018 05:34
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAFBTj=h-fot9=1tEyt4UDpASdmLyP48WUpG=Dh-dwLCSNQtwGg@mail.gmail.com
Toggle quote (3 lines)
> Can you split this into two patches: one that switches the current
> elogind package to use "git-fetch", and afterwards this update?

Here is the first patch, that switches to git-fetch method.

Toggle quote (4 lines)
> Please also remove the let binding so that we can keep the original
> indentation. Those bindings are usually only necessary for packages
> that don't have a proper versioning scheme, unlike elogind.

I will start working on the second patch, which will include the above
suggestions.

Stefan.
From 7b3dfe0ebf7fb1d47f965cde284c52c9734bc994 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Stefanovi=C4=87?= <stefanx2ovic@gmail.com>
Date: Sat, 24 Nov 2018 05:20:29 +0100
Subject: [PATCH] gnu: elogind: Use git-fetch.

* gnu/packages/freedesktop.scm (elogind)[source]: Use git-fetch.
---
gnu/packages/freedesktop.scm | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 431cbd0c3..afcd63b54 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -229,13 +229,14 @@ the freedesktop.org XDG Base Directory specification.")
(name "elogind")
(version "232.4")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/elogind/elogind/"
- "archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/elogind/elogind")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931"))
+ "06qqs6yfcwg8aiinqqvy5374pys6sspmvsrqz93c724hqq38d93z"))
(patches (search-patches "elogind-glibc-2.27.patch"))
(modules '((guix build utils)))
(snippet
--
2.19.2
S
S
Stefan Stefanovi? wrote on 24 Nov 2018 07:10
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAFBTj=hHnLhhqwrb9K46wdxGHoks2krHwfyB3dmc13YWKzqs=w@mail.gmail.com
Hello,
Marius.

Thanks to your input and suggestions I managed to simplify the original patch.
I will attach the second patch to this e-mail.

I tried to stick to the suggestions you gave me,
and tried to make this patch as small as possible.
The "--novalid" option is not necessary for this build so, I removed it.
Please comment on this patch, and point out other areas I need to improve.

I will try to test this patch on my main system.
I expect it to work, we will see. ;)

Thank you.

Stefan.
S
S
Stefan Stefanovi? wrote on 25 Nov 2018 08:02
(name . Marius Bakke)(address . mbakke@fastmail.com)
CAFBTj=jQ2W_n3ReFoGDusrZQinh0NM+zk-iV1JqJ9ypCoUtDiA@mail.gmail.com
Toggle quote (3 lines)
>Please also make sure "make check-system TESTS=elogind" passes. I found
>I had to s|/dev/tty1|tty1| in gnu/tests/desktop.scm in my branch.

I forgot to mention that this elogind test passed, after the fix you
provided. Thank you.
I should have replied to this point sooner, sorry about that.
M
M
Marius Bakke wrote on 4 Dec 2018 22:02
(name . Stefan Stefanovi?)(address . stefanx2ovic@gmail.com)
87zhtluhs5.fsf@fastmail.com
Stefan Stefanovi? <stefanx2ovic@gmail.com> writes:

Toggle quote (14 lines)
> Hello,
> Marius.
>
> Thanks to your input and suggestions I managed to simplify the original patch.
> I will attach the second patch to this e-mail.
>
> I tried to stick to the suggestions you gave me,
> and tried to make this patch as small as possible.
> The "--novalid" option is not necessary for this build so, I removed it.
> Please comment on this patch, and point out other areas I need to improve.
>
> I will try to test this patch on my main system.
> I expect it to work, we will see. ;)

Thanks! I can confirm that this patch works for me.

I've applied these changes in my local branch:
1 file changed, 9 insertions(+), 17 deletions(-)
gnu/packages/freedesktop.scm | 26 +++++++++-----------------

modified gnu/packages/freedesktop.scm
@@ -239,16 +239,14 @@ the freedesktop.org XDG Base Directory specification.")
"17khwbzqmkfd3hcscs51kzdpvq9p2llm08vbpsdhy9yxgwfzlfa6"))))
(build-system meson-build-system)
(arguments
- `(#:tests? #t
- #:configure-flags
+ `(#:configure-flags
(let* ((out (assoc-ref %outputs "out"))
(sysconf (string-append out "/etc"))
(libexec (string-append out "/libexec/elogind"))
(dbuspolicy (string-append out "/etc/dbus-1/system.d"))
(shepherd (assoc-ref %build-inputs "shepherd"))
(halt-path (string-append shepherd "/sbin/halt"))
- (kexec-path "") ;; NOTE: We need to package kexec-tools,
- ;; or support kexec with shepherd.
+ (kexec-path "") ;not available in Guix yet
(poweroff-path (string-append shepherd "/sbin/shutdown"))
(reboot-path (string-append shepherd "/sbin/reboot")))
(list
@@ -268,11 +266,6 @@ the freedesktop.org XDG Base Directory specification.")
"-Dslow-tests=false"))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'clean-runpath
- (lambda _
- (substitute* "meson.build"
- (("install_rpath :") "#install_rpath :"))
- #t))
(add-after 'unpack 'fix-pkttyagent-path
(lambda _
(substitute* "meson.build"
@@ -290,22 +283,21 @@ the freedesktop.org XDG Base Directory specification.")
("docbook-xsl" ,docbook-xsl)
("gettext" ,gettext-minimal)
("gperf" ,gperf)
- ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
+ ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("m4" ,m4)
("pkg-config" ,pkg-config)
("python" ,python)
("xsltproc" ,libxslt)))
(inputs
- `(("acl" ,acl) ;to add individual users to ACLs on /dev nodes
+ `(("linux-pam" ,linux-pam)
+ ("libcap" ,libcap)
+ ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
+ ;when pressing the power button
("dbus" ,dbus)
("eudev" ,eudev)
- ("libcap" ,libcap)
- ("linux-pam" ,linux-pam)
- ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
- ;when pressing the power button
- ))
+ ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
- (synopsis "Elogind provides user, seat, and session management service")
+ (synopsis "User, seat, and session management service")
(description "Elogind is the systemd project's \"logind\" service,
extracted out as a separate project. Elogind integrates with PAM to provide
the org.freedesktop.login1 interface over the system bus, allowing other parts

[back]
The 'clean-runpath' phase should be unnecessary now. The other changes
are mostly adjustments to make the final diff clearer (i.e. no sorting
of regular inputs, or synopsis change).

I will push this to 'master' tomorrow unless there are objections :-)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlwG63oACgkQoqBt8qM6
VPoGigf/U/Rq1nHHRSTejOQIvUgvVnRqJmJp/InDlBrgHJGfqLnZ1iWQQcJKBm7+
ufzkTTd0t9JMvvcIBIVePQx8xuKiSiOFWTNmOvwLP7JwjlrzD370/cvn8NRi8jRd
651R/khWus4O6rgDIhwf3MsSXKULMFiEx+xgUGJzfaruS+OnER2X8KJuQL70C+SI
SBnhzPWP8m/8eWT4Vv3HR7nN9yK3dnp4Gt7d/04KC5jnygW+CRILLGwq7/pkwzn+
NPIbyzvTDTdqfYk5USXoQrvO7H80qlsTuHDskr3t3V4MkCHuyom7sa8GQyvqDud5
hS4q/GNEtAMfVxKIsaeYErkR2RLJmA==
=E0aE
-----END PGP SIGNATURE-----

M
M
Meiyo Peng wrote on 5 Dec 2018 02:18
Re: [bug#33471] [PATCH] gnu: elogind: Update to 239.2.
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 33471@debbugs.gnu.org)
87r2ewixes.fsf@gmail.com
Hi,

Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (2 lines)
> I will push this to 'master' tomorrow unless there are objections :-)

Great! I have been waiting for elogind(>=239), wayland(>=1.16) and
meson(>=0.48) in order to build sway window manager 1.0-beta. Thank you
all.

--
Meiyo Peng
M
M
Marius Bakke wrote on 6 Dec 2018 20:25
Re: [PATCH] gnu: elogind: Update to 239.2.
(name . Stefan Stefanovi?)(address . stefanx2ovic@gmail.com)(address . 33471-done@debbugs.gnu.org)
87a7litq3f.fsf@fastmail.com
Marius Bakke <mbakke@fastmail.com> writes:

Toggle quote (2 lines)
> I will push this to 'master' tomorrow unless there are objections :-)

Pushed as 4163f2467bce1a6123f0da1c49e88751d93e634b. Thank you Stefan!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlwJd6QACgkQoqBt8qM6
VPqeuQf+LxS970xUiH0480tBd/Z2mgDluvBqvw+VBSHBoBPbzzvmODKfQ8woquq2
BGAvCEaADZjNMBedSIKyh4mdt2T0hC25tR78BMZha1BQEI45V9y1+88+DcPXRehQ
qKv4BkLINQDJkAkHJbUQ1VjieeoCAWRgWQUInAEpZUGSKLQc8H3/10HDoIGRj1d4
1U7CyzllIO4p5Ubk14nHI0VGJ0tQCsmjiKjRE8KRrHDJh8n+Q9OwL49H3dhZGNjc
cnVlapf3ayzcDew0QH2Y9kL/YwaQtnm3x9NA5AmG9v+tJMzN9XVVHI5KMo87RVIO
M5Tvul5ZTxegjfUTvw6u1e+BlZXqhQ==
=PNyo
-----END PGP SIGNATURE-----

Closed
?