IIUC, the commit message is ‘gnu: gtkmm@2: Remove inheritance from gtkmm@3’. But this patch also adds some inputs, a description, starts an X server for tests, places documentation in the correct place ... Could you split up this patch? Raghav Gururajan via Guix-patches via schreef op ma 26-04-2021 om 04:11 [-0400]: > Remove inheritance to prevent rebuilds of packages like inkscape > and gtk+, whenever changes are made gtkmm@3. If changes are made to gtkmm@3, wouldn't gtkmm@2 require similar changes anyway? For example ... > * gnu/packages/gtk.scm (gtkmm-2)[build-system,outputs,arguments, > native-inputs,synopsis,description,home-page,license]: New fields. > --- > gnu/packages/gtk.scm | 48 ++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 46 insertions(+), 2 deletions(-) > > diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm > index 04a0db1161..81ac4a7197 100644 > --- a/gnu/packages/gtk.scm > +++ b/gnu/packages/gtk.scm > @@ -1660,7 +1660,6 @@ tutorial.") > > (define-public gtkmm-2 > (package > - (inherit gtkmm) > (name "gtkmm") > (version "2.24.5") > (source > @@ -1672,12 +1671,57 @@ tutorial.") > name "-" version ".tar.xz")) > (sha256 > (base32 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006")))) > + (build-system glib-or-gtk-build-system) > + (outputs '("out" "doc")) > + (arguments btw, the following has been dropped in , I wonder why? My guess: disallowed-references refers to the wrong version when cross-compiling. But that seems rather harmless to me? (Though ideally there would be exist a disallowed-references/native or something ...) > + `(#:phases > + (modify-phases %standard-phases > + (add-before 'check 'pre-check > + (lambda _ > + ;; Tests require a running X server. > + (system "Xvfb :1 +extension GLX &") > + (setenv "DISPLAY" ":1") > + ;; For missing '/etc/machine-id'. > + (setenv "DBUS_FATAL_WARNINGS" "0") > + #t)) > + (add-after 'install 'move-doc > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (doc (assoc-ref outputs "doc"))) > + (mkdir-p (string-append doc "/share")) > + (rename-file > + (string-append out "/share/doc") > + (string-append doc "/share/doc")) > + #t)))))) These phases were added to gtkmm@3 in . It seems they are also required in gtkmm@2. > + (native-inputs > + `(("dot" ,graphviz) > + ("doxygen" ,doxygen) > + ("m4" ,m4) > + ("mm-common" ,mm-common) > + ("perl" ,perl) > + ("pkg-config" ,pkg-config) > + ("xsltproc" ,libxslt) > + ("xorg-server" ,xorg-server-for-tests))) Likewise. > (propagated-inputs > `(("atkmm" ,atkmm-2.28) > ("cairomm" ,cairomm-1.13) > ("glibmm" ,glibmm-2.64) > ("gtk+" ,gtk+-2) > - ("pangomm" ,pangomm-2.42))))) > + ("pangomm" ,pangomm-2.42))) > + (synopsis "C++ Interfaces for GTK+ and GNOME") > + (description "GTKmm is the official C++ interface for the popular GUI > +library GTK+. Highlights include typesafe callbacks, and a comprehensive set of > +widgets that are easily extensible via inheritance. You can create user > +interfaces either in code or with the Glade User Interface designer, using > +libglademm. There's extensive documentation, including API reference and a > +tutorial.") Duplication. > + (home-page "https://gtkmm.org/") > + (license > + (list > + ;; Library > + license:lgpl2.1+ > + ;; Tools > + license:gpl2+)))) More duplication. So I don't see the value of removing inheritance from gtkmm@3. Greetings, Maxime.