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 @@ users.")
(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 @@ users.")
;; 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 @@ users.")
("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 @@ devices and connections, attempting to keep active network connectivity when
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