Message ID | 20210426081145.28926-1-rg@raghavgururajan.name |
---|---|
State | Accepted |
Headers | show |
Series | [bug#48028,wip-gnome,1/8] gnu: gtkmm@2: Remove inheritance from gtkmm@3. | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
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 <https://git.savannah.gnu.org/cgit/guix.git/commit/?h=wip-gnome&id=26511b7aed03fcf5175fe29ba9a51de4fe4ee3c9>, 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 <https://git.savannah.gnu.org/cgit/guix.git/commit/?h=wip-gnome&id=26511b7aed03fcf5175fe29ba9a51de4fe4ee3c9>. 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.
Hi Maxime, Thanks for the review. I have revised the patches in v5. Regards, RG.
Hi Maxime, Thanks for the review. I have revised the patches in v5. Regards, RG.
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 + `(#: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)))))) + (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))) (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.") + (home-page "https://gtkmm.org/") + (license + (list + ;; Library + license:lgpl2.1+ + ;; Tools + license:gpl2+)))) (define-public gtksourceviewmm (package