From 2971472e79b2aff214106de16b6f57e618510bdd Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 5 Oct 2021 00:46:26 -0400 Subject: gnu: at-spi2-core: Reverse inheritance relationship with minimal variant. Since the minimal variant is here to stay, this should make things easier to maintain. * gnu/packages/gtk.scm (at-spi2-core-minimal): Rewrite after removing inheritance, making it the base minimal package, with no documentation-related inputs or build phases. (at-spi2-core): Rewrite definition, inherit from the above minimal variant, adding the documentation-related inputs and build phases. --- gnu/packages/gtk.scm | 195 ++++++++++++++++++++++----------------------------- 1 file changed, 85 insertions(+), 110 deletions(-) (limited to 'gnu/packages/gtk.scm') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5dfdaae7e4..c38fd3e907 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -740,122 +740,97 @@ scaled, composited, modified, saved, or rendered.") loaders)))))))) (synopsis "Image loading library, with SVG support"))) -(define-public at-spi2-core - (package - (name "at-spi2-core") - (version "2.40.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1")))) - (build-system meson-build-system) - (outputs '("out" "doc")) - (arguments - `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas - #:configure-flags - ;; Generating documentation requires running binaries for the host - ;; on the build machine. - (list ,(if (%current-target-system) - "-Ddocs=false" - "-Ddocs=true")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-documentation-path - (lambda* (#:key outputs #:allow-other-keys) - ;; Ensure that the cross-references point to the "doc" output. - (substitute* "doc/libatspi/meson.build" - (("docpath =.*") - (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n"))) - #t)) - (add-before 'install 'prepare-doc-directory - (lambda* (#:key outputs #:allow-other-keys) - (mkdir-p (string-append (assoc-ref outputs "doc") "/share")) - #t)) - ;; TODO(core-updates): Unconditionally use (or native-inputs inputs) - (add-after 'unpack 'patch-docbook-sgml - (lambda* (#:key ,@(if (%current-target-system) - '(native-inputs) - '()) inputs #:allow-other-keys) - (let* ((xmldoc - (string-append (assoc-ref ,(if (%current-target-system) - '(or native-inputs inputs) - 'inputs) - "docbook-xml") - "/xml/dtd/docbook"))) - (substitute* "doc/libatspi/libatspi-docs.sgml" - (("http://.*/docbookx\\.dtd") - (string-append xmldoc "/docbookx.dtd"))) - #t))) - ,@(if (%current-target-system) - '() - '((add-after 'install 'move-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (copy-recursively - (string-append out "/share/gtk-doc") - (string-append doc "/share/gtk-doc")) - (delete-file-recursively - (string-append out "/share/gtk-doc"))) - #t)))) - (add-after 'install 'check - (lambda _ - (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME - ;; Run test-suite under a dbus session. - (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service - (string-append %output "/share")) - ;; Don't fail on missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") ; - (invoke "dbus-launch" "ninja" "test"))) - (delete 'check)))) - (inputs - ;; TODO(core-updates): Make this input unconditional. - (if (%current-target-system) - `(("bash-minimal" ,bash-minimal)) - '())) - (propagated-inputs - ;; atspi-2.pc refers to all these. - `(("dbus" ,dbus) - ("glib" ,glib) - ("libx11" ,libx11) - ("libxi" ,libxi) - ("libxtst" ,libxtst))) - (native-inputs - `(("docbook-xml" ,docbook-xml-4.3) - ("gettext" ,gettext-minimal) - ("glib" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) - (synopsis "Assistive Technology Service Provider Interface, core components") - (description - "The Assistive Technology Service Provider Interface, core components, +;;; A minimal variant used to prevent a cycle with Inkscape. +(define-public at-spi2-core-minimal + (hidden-package + (package + (name "at-spi2-core") + (version "2.40.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0a9l6cfxynjn6jcp29d72i75xbkrzs1l5kmqcwmfal801b9sg5j1")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas + #:phases + (modify-phases %standard-phases + (add-after 'install 'check + (lambda _ + (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME + ;; Run test-suite under a dbus session. + (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service + (string-append %output "/share")) + ;; Don't fail on missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") ; + (invoke "dbus-launch" "ninja" "test"))) + (delete 'check)))) + (inputs + `(("bash-minimal" ,bash-minimal))) + (propagated-inputs + ;; atspi-2.pc refers to all these. + `(("dbus" ,dbus) + ("glib" ,glib) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxtst" ,libxtst))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) + (synopsis "Assistive Technology Service Provider Interface, core components") + (description + "The Assistive Technology Service Provider Interface, core components, is part of the GNOME accessibility project.") - (license license:lgpl2.1+) - (home-page "https://wiki.gnome.org/Accessibility/"))) + (license license:lgpl2.1+) + (home-page "https://wiki.gnome.org/Accessibility/")))) -;;; A minimal variant used to prevent a cycle with Inkscape. -(define at-spi2-core-minimal - (package - (inherit at-spi2-core) - (name "at-spi2-core-minimal") - (outputs (delete "doc" (package-outputs at-spi2-core))) +(define-public at-spi2-core + (package/inherit at-spi2-core-minimal + (outputs (cons "doc" (package-outputs at-spi2-core-minimal))) (arguments - (substitute-keyword-arguments (package-arguments at-spi2-core) - ((#:configure-flags configure-flags) - `(delete "-Ddocs=true" ,configure-flags)) + (substitute-keyword-arguments (package-arguments at-spi2-core-minimal) + ((#:configure-flags flags ''()) + `(cons ,(if (%current-target-system) + "-Ddocs=false" + "-Ddocs=true") + ,flags)) ((#:phases phases) `(modify-phases ,phases - (delete 'set-documentation-path) - (delete 'prepare-doc-directory) - (delete 'move-documentation))))) + (add-after 'unpack 'set-documentation-path + (lambda* (#:key outputs #:allow-other-keys) + ;; Ensure that the cross-references point to the "doc" output. + (substitute* "doc/libatspi/meson.build" + (("docpath =.*") + (string-append "docpath = '" (assoc-ref outputs "doc") + "/share/gtk-doc/html'\n"))))) + (add-before 'install 'prepare-doc-directory + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append (assoc-ref outputs "doc") "/share")))) + ,@(if (%current-target-system) + '() + '((add-after 'install 'move-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (copy-recursively + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")) + (delete-file-recursively + (string-append out "/share/gtk-doc"))))))))))) (native-inputs - (alist-delete "gtk-doc" (package-native-inputs at-spi2-core))))) + (append `(("docbook-xml" ,docbook-xml-4.3) + ("gtk-doc" ,gtk-doc/stable) + ("libxml2" ,libxml2)) ;for XML_CATALOG_FILES + (package-native-inputs at-spi2-core-minimal))) + (properties (alist-delete 'hidden? + (package-properties at-spi2-core-minimal))))) (define-public at-spi2-atk (package -- cgit v1.2.3