gnu: network-manager: Switch to meson-build-system.

This commit is contained in:
Brice Waegeneire 2020-05-11 15:39:57 +02:00
parent c2f236fa92
commit 255ff74f3a
No known key found for this signature in database
GPG key ID: A94903A166A18FAE

View file

@ -6367,42 +6367,42 @@ (define-public network-manager
(substitute* "src/devices/wwan/nm-modem-manager.c" (substitute* "src/devices/wwan/nm-modem-manager.c"
(("systemd") "elogind")) (("systemd") "elogind"))
#t)))) #t))))
(build-system gnu-build-system) (build-system meson-build-system)
(outputs '("out" (outputs '("out"
"doc")) ; 8 MiB of gtk-doc HTML "doc")) ; 8 MiB of gtk-doc HTML
(arguments (arguments
'(#:configure-flags `(#:configure-flags
(let ((out (assoc-ref %outputs "out")) (let ((out (assoc-ref %outputs "out"))
(doc (assoc-ref %outputs "doc"))
(dhclient (string-append (assoc-ref %build-inputs "isc-dhcp") (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
"/sbin/dhclient"))) "/sbin/dhclient")))
(list "--with-libnm-glib" ; needed by network-manager-applet (list
"--with-systemd-journal=no" ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
"--with-session-tracking=elogind" ;; component.
"--with-suspend-resume=elogind" (string-append "-Dc_link_args=-Wl,-rpath="
"--with-consolekit=no" out "/lib:"
"--with-crypto=gnutls" out "/lib/NetworkManager/" ,version)
"--with-iwd=yes" "-Dsystemd_journal=false"
"--with-libaudit=yes" "-Dsession_tracking=elogind"
"--with-resolvconf=yes" "-Dsuspend_resume=elogind"
"--sysconfdir=/etc" "-Dsystemdsystemunitdir=no"
"--localstatedir=/var" "-Dsession_tracking_consolekit=false"
(string-append "--with-udev-dir=" "-Ddhcpcd=no"
out "/lib/udev") "-Ddhcpcanon=no"
(string-append "--with-dbus-sys-dir=" "-Dcrypto=gnutls"
out "/etc/dbus-1/system.d") "-Diwd=true"
(string-append "--with-html-dir=" "-Dlibaudit=yes"
doc "/share/gtk-doc/html") "-Dqt=false"
(string-append "--with-dhclient=" dhclient))) "-Ddocs=true"
"--sysconfdir=/etc"
"--localstatedir=/var"
(string-append "-Dudev_dir="
out "/lib/udev")
(string-append "-Ddbus_conf_dir="
out "/etc/dbus-1/system.d")
(string-append "-Ddhclient=" dhclient)))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; This bare "ls" invocation breaks some tests.
(add-after 'unpack 'patch-ls-invocation
(lambda _
(substitute* "build-aux/ltmain.sh"
(("`ls -")
(string-append "`" (which "ls") " -")))
#t))
(add-before 'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda _ (lambda _
;; These tests try to test aspects of network-manager's ;; These tests try to test aspects of network-manager's
@ -6410,61 +6410,64 @@ (define-public network-manager
;; cope with being already in the Guix build jail as that jail ;; cope with being already in the Guix build jail as that jail
;; lacks some features that they would like to proxy over (like ;; lacks some features that they would like to proxy over (like
;; a /sys mount). ;; a /sys mount).
(substitute* '("Makefile.in") (substitute* "src/platform/tests/meson.build"
(("src/platform/tests/test-address-linux") " ") ((".*test-address-linux.*") "")
(("src/platform/tests/test-cleanup-linux") " ") ((".*test-cleanup-linux.*") "")
(("src/platform/tests/test-link-linux") " ") ((".*test-link-linux.*") "")
(("src/platform/tests/test-route-linux") " ") ((".*test-route-linux.*") ""))
(("src/devices/tests/test-acd") "") (substitute* "src/devices/tests/meson.build"
(("src/devices/tests/test-arping") " ") ((".*test-acd.*") "")
(("src/devices/tests/test-lldp") " ") ((".*test-lldp.*") ""))
(("src/tests/test-route-manager-linux") " "))
#t))
(add-after 'unpack 'delete-failing-tests
(lambda _
;; FIXME: These three tests fail for unknown reasons.
;; ERROR:libnm-core/tests/test-general.c:5842:
;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
;; ERROR:libnm-core/tests/test-keyfile.c:647:
;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
;; ERROR:libnm-core/tests/test-setting.c:907:
;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
(substitute* "Makefile.in"
(("libnm-core/tests/test-general") " ")
(("libnm-core/tests/test-keyfile") " ")
(("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
#t)) #t))
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
(let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook")))
(substitute* (find-files "." ".*\\.(xsl|xml)")
(("http://.*/docbookx\\.dtd")
(string-append xmldoc "/docbookx.dtd")))
#t)))
(add-before 'check 'pre-check (add-before 'check 'pre-check
(lambda _ (lambda _
;; For the missing /etc/machine-id. ;; For the missing /etc/machine-id.
(setenv "DBUS_FATAL_WARNINGS" "0") (setenv "DBUS_FATAL_WARNINGS" "0")
#t)) #t))
(replace 'install (add-before 'install 'no-polkit-magic
;; Meson magically invokes pkexec, which fails (not setuid).
(lambda _ (lambda _
(invoke "make" (setenv "PKEXEC_UID" "something")
"sysconfdir=/tmp" #t))
"rundir=/tmp" (add-after 'install 'move-doc
"statedir=/tmp" (lambda* (#:key outputs #:allow-other-keys)
"nmstatedir=/tmp/nm" (let ((out (assoc-ref outputs "out"))
"install") (doc (assoc-ref outputs "doc")))
#t))))) (mkdir-p (string-append doc "/share"))
(for-each (lambda (directory)
(copy-recursively (string-append out directory)
(string-append doc directory))
(delete-file-recursively
(string-append out directory)))
'("/share/doc" "/share/gtk-doc"))
#t))))))
(propagated-inputs (propagated-inputs
`(("glib" ,glib))) `(("glib" ,glib)))
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for gdbus-codegen `(("glib:bin" ,glib "bin") ; for gdbus-codegen
("gtk-doc" ,gtk-doc)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)
("intltool" ,intltool) ("intltool" ,intltool)
("libxslt" ,libxslt) ("libxslt" ,libxslt)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("vala" ,vala)
;; For testing. ;; For testing.
("python" ,python-wrapper) ("python" ,python-wrapper)
("python-dbus" ,python-dbus) ("python-dbus" ,python-dbus)
("python-pygobject" ,python-pygobject))) ("python-pygobject" ,python-pygobject)))
(inputs (inputs
`(("coreutils" ,coreutils) ; for ls `(("curl" ,curl)
("curl" ,curl)
("cyrus-sasl" ,cyrus-sasl) ("cyrus-sasl" ,cyrus-sasl)
("dbus-glib" ,dbus-glib) ("dbus-glib" ,dbus-glib)
("dnsmasq" ,dnsmasq) ("dnsmasq" ,dnsmasq)
@ -6480,6 +6483,7 @@ (define-public network-manager
("libndp" ,libndp) ("libndp" ,libndp)
("libnl" ,libnl) ("libnl" ,libnl)
("libsoup" ,libsoup) ("libsoup" ,libsoup)
("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
("modem-manager" ,modem-manager) ("modem-manager" ,modem-manager)
("newt" ,newt) ;for the 'nmtui' console interface ("newt" ,newt) ;for the 'nmtui' console interface
("openresolv" ,openresolv) ; alternative resolv.conf manager ("openresolv" ,openresolv) ; alternative resolv.conf manager
@ -6496,7 +6500,11 @@ (define-public network-manager
available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
devices, and provides VPN integration with a variety of different VPN devices, and provides VPN integration with a variety of different VPN
services.") services.")
(license license:gpl2+) ;; “This NetworkManager project consists of the daemon, client tools, and
;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
;; GPL-2.0+.”
(license (list license:gpl2+
license:lgpl2.1+))
(properties '((upstream-name . "NetworkManager"))))) (properties '((upstream-name . "NetworkManager")))))
(define-public network-manager-openvpn (define-public network-manager-openvpn