Message ID | ddc505a8e4faeb8b80c7c41305bfeae9ac0425c2.1695840289.git.pinoaffe@gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#66199,v4,1/2] gnu: Add fontobene-qt5. | expand |
Hi, Em 27/09/2023 15:46, pinoaffe escreveu: > * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. > [inputs]: Add various dependencies (both new ones and old ones that are now > debundled). If the change is not automated, then every input should be listed, separated by commas. > [arguments]: Remove overriding of configure phase. Replace test > phase. Debundle various dependencies. Avoid words like "various", list all items whenever possible. > [build-system]: Use cmake-build-system. > [native-inputs]: Add googletest. pkg-config was also added to native-inputs. And don't worry too much about the commit message, I can change it later. > --- > gnu/packages/engineering.scm | 83 +++++++++++++++++++++++++----------- > 1 file changed, 57 insertions(+), 26 deletions(-) > > diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm > index faba76161b..fca831f44b 100644 > --- a/gnu/packages/engineering.scm > +++ b/gnu/packages/engineering.scm > @@ -38,6 +38,7 @@ > ;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net> > ;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com> > ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> > +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -123,7 +124,9 @@ (define-module (gnu packages engineering) > #:use-module (gnu packages lisp) > #:use-module (gnu packages m4) > #:use-module (gnu packages man) > + #:use-module (gnu packages markup) > #:use-module (gnu packages maths) > + #:use-module (gnu packages multiprecision) > #:use-module (gnu packages mpi) > #:use-module (gnu packages multiprecision) > #:use-module (gnu packages ncurses) > @@ -2325,33 +2328,66 @@ (define-public freehdl > (define-public librepcb > (package > (name "librepcb") > - (version "0.1.5") > + (version "1.0.0") > (source > (origin > (method url-fetch) > (uri (string-append "https://download.librepcb.org/releases/" > version "/librepcb-" version "-source.zip")) > + (modules `((guix build utils))) > + (snippet > + ;; Delete libraries that we already have or don't need. > + ;; TODO: try to unbundle more (see lib/). > + `(begin > + (let ((third-parties '("fontobene-qt5" > + "googletest" > + "hoedown" > + "muparser" > + "polyclipping" > + "quazip"))) > + (with-directory-excursion "libs" > + (map (lambda (third-party) > + (delete-file-recursively third-party)) > + third-parties))) > + #t)) > (sha256 > - (base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr")))) > - (build-system gnu-build-system) > + (base32 "02qfwyhdq1pklb5gkwn3rbsdhwvcgiksd21swaphz3kw6s4p9i8v")))) > + (build-system cmake-build-system) > (inputs > - (list qtbase-5 qtsvg-5 zlib)) > + (list fontconfig > + fontobene-qt5 > + glu > + hoedown > + muparser > + opencascade-occt > + clipper Nitpick: 'clipper' is out of order > + qtbase-5 > + qtdeclarative-5 > + qtquickcontrols2-5 > + qtsvg-5 > + quazip > + zlib)) > (native-inputs > - (list qttools-5 ; for lrelease > + (list googletest > + pkg-config > + qttools-5 > unzip)) > (arguments > - `(#:phases > - (modify-phases %standard-phases > - (replace 'configure > - (lambda* (#:key inputs outputs #:allow-other-keys) > - (mkdir-p "build") > - (chdir "build") > - (let ((lrelease (search-input-file inputs "/bin/lrelease")) > - (out (assoc-ref outputs "out"))) > - (invoke "qmake" > - (string-append "QMAKE_LRELEASE=" lrelease) > - (string-append "PREFIX=" out) > - "../librepcb.pro"))))))) > + `(#:phases (modify-phases %standard-phases > + (replace 'check > + (lambda* (#:key tests? #:allow-other-keys) > + (when tests? > + (setenv "QT_QPA_PLATFORM" "offscreen") > + (setenv "QT_QUICK_BACKEND" "software") > + (display "Running unittests...\n") > + (invoke "./tests/unittests/librepcb-unittests" "--help"))))) > + Why --help? I ran librepcb-unittests with no arguments and found that ~20 tests failed out of ~2100. If it's not possible to skip them manually, you could skip all tests and leave a comment reporting what happened. I didn't check the output of --help. > #:configure-flags (list > + "-DUNBUNDLE_FONTOBENE_QT5=ON" > + "-DUNBUNDLE_GTEST=ON" > + "-DUNBUNDLE_HOEDOWN=ON" > + "-DUNBUNDLE_MUPARSER=ON" > + "-DUNBUNDLE_POLYCLIPPING=ON" > + "-DUNBUNDLE_QUAZIP=ON"))) #:configure-flags is usually placed above #:phases. > (home-page "https://librepcb.org/") > (synopsis "Electronic Design Automation tool") > (description "LibrePCB is @dfn{Electronic Design Automation} (EDA) > @@ -2359,17 +2395,12 @@ (define-public librepcb > formats and complete project management with library, schematic and board > editors.") > (license (list license:gpl3+ > - license:boost1.0 ; libs/clipper, > - ; libs/optional/tests/catch.hpp, > - ; libs/sexpresso/tests/catch.hpp > + license:boost1.0 ; libs/optional/tests/catch.hpp, > license:expat ; libs/delaunay-triangulation, > ; libs/parseagle, libs/type_safe > - license:asl2.0 ; libs/fontobene, libs/googletest, > - ; libs/parseagle > - license:isc ; libs/hoedown > - license:cc0 ; libs/optional, libs/sexpresso > - license:bsd-2 ; libs/optional/tests/catch.hpp > - license:lgpl2.1+)))) ; libs/quazip > + license:asl2.0 ; libs/parseagle > + license:cc0 ; libs/optional > + license:bsd-2)))) ; libs/optional/tests/catch.hpp > > (define-public gpx > (package I think this patch is ready after fixing the test suite. Vinicius
Thanks again! Vinicius Monego <monego@posteo.net> writes: >> * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. >> [inputs]: Add various dependencies (both new ones and old ones that are now >> debundled). > > If the change is not automated, then every input should be listed, > separated by commas. Done, I hope this is more or less what you meant >> [arguments]: Remove overriding of configure phase. Replace test >> phase. Debundle various dependencies. > > Avoid words like "various", list all items whenever possible. Okay >> [build-system]: Use cmake-build-system. >> [native-inputs]: Add googletest. > pkg-config was also added to native-inputs. I added it to the commit message > And don't worry too much about the commit message, I can change it > later. Aight >> + (list fontconfig >> + fontobene-qt5 >> + glu >> + hoedown >> + muparser >> + opencascade-occt >> + clipper > Nitpick: 'clipper' is out of order Whoops! >> + `(#:phases (modify-phases %standard-phases >> + (replace 'check >> + (lambda* (#:key tests? #:allow-other-keys) >> + (when tests? >> + (setenv "QT_QPA_PLATFORM" "offscreen") >> + (setenv "QT_QUICK_BACKEND" "software") >> + (display "Running unittests...\n") >> + (invoke "./tests/unittests/librepcb-unittests" "--help"))))) >> + > Why --help? Oops, that's a leftover artifact of me testing some stuff > I ran librepcb-unittests with no arguments and found that > ~20 tests failed out of ~2100. If it's not possible to skip them > manually, you could skip all tests and leave a comment reporting what > happened. I didn't check the output of --help. I manually skipped them, though I feel a bit "dirty" skipping 22 tests without properly knowing why they fail, especially since it's just a constant list of 22 strings in the middle of a package definition. > #:configure-flags is usually placed above #:phases. Okay, I moved it > I think this patch is ready after fixing the test suite. Great! Kind regards, pinoaffe
Hello, Em 03/10/2023 20:39, pinoaffe escreveu: > Thanks again! > > Vinicius Monego<monego@posteo.net> writes: >>> * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. >>> [inputs]: Add various dependencies (both new ones and old ones that are now >>> debundled). >> If the change is not automated, then every input should be listed, >> separated by commas. > Done, I hope this is more or less what you meant > >>> [arguments]: Remove overriding of configure phase. Replace test >>> phase. Debundle various dependencies. >> Avoid words like "various", list all items whenever possible. > Okay > >>> [build-system]: Use cmake-build-system. >>> [native-inputs]: Add googletest. >> pkg-config was also added to native-inputs. > I added it to the commit message > >> And don't worry too much about the commit message, I can change it >> later. > Aight > >>> + (list fontconfig >>> + fontobene-qt5 >>> + glu >>> + hoedown >>> + muparser >>> + opencascade-occt >>> + clipper >> Nitpick: 'clipper' is out of order > Whoops! > >>> + `(#:phases (modify-phases %standard-phases >>> + (replace 'check >>> + (lambda* (#:key tests? #:allow-other-keys) >>> + (when tests? >>> + (setenv "QT_QPA_PLATFORM" "offscreen") >>> + (setenv "QT_QUICK_BACKEND" "software") >>> + (display "Running unittests...\n") >>> + (invoke "./tests/unittests/librepcb-unittests" "--help"))))) >>> + >> Why --help? > Oops, that's a leftover artifact of me testing some stuff > >> I ran librepcb-unittests with no arguments and found that >> ~20 tests failed out of ~2100. If it's not possible to skip them >> manually, you could skip all tests and leave a comment reporting what >> happened. I didn't check the output of --help. > I manually skipped them, though I feel a bit "dirty" skipping 22 tests > without properly knowing why they fail, especially since it's just a > constant list of 22 strings in the middle of a package definition. > >> #:configure-flags is usually placed above #:phases. > Okay, I moved it > >> I think this patch is ready after fixing the test suite. > Great! > > Kind regards, > pinoaffe Great job! I pushed the patches after rewriting the commit message for librepcb and doing some minor tweaks. It's OK to skip some tests, and even better to add a comment stating that they pass after the package is built. Thanks, Vinicius
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index faba76161b..fca831f44b 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -123,7 +124,9 @@ (define-module (gnu packages engineering) #:use-module (gnu packages lisp) #:use-module (gnu packages m4) #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages mpi) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) @@ -2325,33 +2328,66 @@ (define-public freehdl (define-public librepcb (package (name "librepcb") - (version "0.1.5") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "https://download.librepcb.org/releases/" version "/librepcb-" version "-source.zip")) + (modules `((guix build utils))) + (snippet + ;; Delete libraries that we already have or don't need. + ;; TODO: try to unbundle more (see lib/). + `(begin + (let ((third-parties '("fontobene-qt5" + "googletest" + "hoedown" + "muparser" + "polyclipping" + "quazip"))) + (with-directory-excursion "libs" + (map (lambda (third-party) + (delete-file-recursively third-party)) + third-parties))) + #t)) (sha256 - (base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr")))) - (build-system gnu-build-system) + (base32 "02qfwyhdq1pklb5gkwn3rbsdhwvcgiksd21swaphz3kw6s4p9i8v")))) + (build-system cmake-build-system) (inputs - (list qtbase-5 qtsvg-5 zlib)) + (list fontconfig + fontobene-qt5 + glu + hoedown + muparser + opencascade-occt + clipper + qtbase-5 + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + quazip + zlib)) (native-inputs - (list qttools-5 ; for lrelease + (list googletest + pkg-config + qttools-5 unzip)) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (mkdir-p "build") - (chdir "build") - (let ((lrelease (search-input-file inputs "/bin/lrelease")) - (out (assoc-ref outputs "out"))) - (invoke "qmake" - (string-append "QMAKE_LRELEASE=" lrelease) - (string-append "PREFIX=" out) - "../librepcb.pro"))))))) + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "QT_QUICK_BACKEND" "software") + (display "Running unittests...\n") + (invoke "./tests/unittests/librepcb-unittests" "--help"))))) + #:configure-flags (list + "-DUNBUNDLE_FONTOBENE_QT5=ON" + "-DUNBUNDLE_GTEST=ON" + "-DUNBUNDLE_HOEDOWN=ON" + "-DUNBUNDLE_MUPARSER=ON" + "-DUNBUNDLE_POLYCLIPPING=ON" + "-DUNBUNDLE_QUAZIP=ON"))) (home-page "https://librepcb.org/") (synopsis "Electronic Design Automation tool") (description "LibrePCB is @dfn{Electronic Design Automation} (EDA) @@ -2359,17 +2395,12 @@ (define-public librepcb formats and complete project management with library, schematic and board editors.") (license (list license:gpl3+ - license:boost1.0 ; libs/clipper, - ; libs/optional/tests/catch.hpp, - ; libs/sexpresso/tests/catch.hpp + license:boost1.0 ; libs/optional/tests/catch.hpp, license:expat ; libs/delaunay-triangulation, ; libs/parseagle, libs/type_safe - license:asl2.0 ; libs/fontobene, libs/googletest, - ; libs/parseagle - license:isc ; libs/hoedown - license:cc0 ; libs/optional, libs/sexpresso - license:bsd-2 ; libs/optional/tests/catch.hpp - license:lgpl2.1+)))) ; libs/quazip + license:asl2.0 ; libs/parseagle + license:cc0 ; libs/optional + license:bsd-2)))) ; libs/optional/tests/catch.hpp (define-public gpx (package