* [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0. @ 2023-09-25 20:27 pinoaffe 2023-09-26 0:37 ` Vinicius Monego ` (4 more replies) 0 siblings, 5 replies; 19+ messages in thread From: pinoaffe @ 2023-09-25 20:27 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. --- gnu/packages/engineering.scm | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c2846f0bda..f12f4ad59d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2260,33 +2260,30 @@ (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")) (sha256 - (base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr")))) - (build-system gnu-build-system) + (base32 "02qfwyhdq1pklb5gkwn3rbsdhwvcgiksd21swaphz3kw6s4p9i8v")))) + (build-system cmake-build-system) (inputs - (list qtbase-5 qtsvg-5 zlib)) + (list qtbase-5 + qtsvg-5 + qtdeclarative-5 + qtquickcontrols2-5 + zlib + opencascade-occt + glu + fontconfig)) (native-inputs (list qttools-5 ; for lrelease 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"))))))) + ;; There is no cmake test target + `(#:tests? #f)) (home-page "https://librepcb.org/") (synopsis "Electronic Design Automation tool") (description "LibrePCB is @dfn{Electronic Design Automation} (EDA) base-commit: 445a0359083388b5ee686e6e855f94a3aac5f79c -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0. 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe @ 2023-09-26 0:37 ` Vinicius Monego 2023-09-26 12:08 ` pinoaffe 2023-09-26 12:16 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 pinoaffe ` (3 subsequent siblings) 4 siblings, 1 reply; 19+ messages in thread From: Vinicius Monego @ 2023-09-26 0:37 UTC (permalink / raw) To: pinoaffe, 66199 Hello, Em 25/09/2023 17:27, pinoaffe escreveu: > * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. Thank you. The commit message should also mention the switch to cmake-build-system, the "not overriding" of the configure phase, the new inputs and the test skip. I have a few more comments below. > --- > gnu/packages/engineering.scm | 29 +++++++++++++---------------- > 1 file changed, 13 insertions(+), 16 deletions(-) > > diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm > index c2846f0bda..f12f4ad59d 100644 > --- a/gnu/packages/engineering.scm > +++ b/gnu/packages/engineering.scm > @@ -2260,33 +2260,30 @@ (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")) > (sha256 > - (base32 "0smp1p7wnrj0vh4rmz1cr2krfawc2lzx0pbzmgyay7xdp6jxympr")))) > - (build-system gnu-build-system) > + (base32 "02qfwyhdq1pklb5gkwn3rbsdhwvcgiksd21swaphz3kw6s4p9i8v")))) > + (build-system cmake-build-system) > (inputs > - (list qtbase-5 qtsvg-5 zlib)) > + (list qtbase-5 > + qtsvg-5 > + qtdeclarative-5 > + qtquickcontrols2-5 > + zlib > + opencascade-occt > + glu > + fontconfig)) Inputs should be sorted alphabetically. > (native-inputs > (list qttools-5 ; for lrelease > unzip)) The comment about lrelease can be removed as lrelease is not being manually invoked anymore, and the native inputs list can be squashed in one line. > (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"))))))) > + ;; There is no cmake test target > + `(#:tests? #f)) > (home-page "https://librepcb.org/") > (synopsis "Electronic Design Automation tool") > (description "LibrePCB is @dfn{Electronic Design Automation} (EDA) > > base-commit: 445a0359083388b5ee686e6e855f94a3aac5f79c There are options in LibrePCB's CMakeLists.txt to unvendor some dependencies: https://github.com/LibrePCB/LibrePCB/blob/9edb6ede393e5b48785f95252f81a027db4b718a/CMakeLists.txt#L51 The only dependencies we do not have is dxflib and fontobene-qt5. It failed to find muparser and polyclipping ('clipper' package in Guix), I don't know why. It would be best to unvendor as many dependencies as possible. Could you send an updated patch? Optionally, you can try to package fontobene-qt5 and have cmake find muparser and polyclipping. Vinicius ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0. 2023-09-26 0:37 ` Vinicius Monego @ 2023-09-26 12:08 ` pinoaffe 2023-09-27 0:35 ` Vinicius Monego 0 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-09-26 12:08 UTC (permalink / raw) To: Vinicius Monego; +Cc: 66199 Hi, thank you for your review! Vinicius Monego <monego@posteo.net> writes: > The commit message should also mention the switch to > cmake-build-system, the "not overriding" of the configure phase, the > new inputs and the test skip.. I wasn't sure how to phrase / format this, is what I arrived at OK? > Inputs should be sorted alphabetically. Done > The comment about lrelease can be removed as lrelease is not being > manually invoked anymore, and the native inputs list can be squashed > in one line. Done > There are options in LibrePCB's CMakeLists.txt to unvendor some > dependencies: > https://github.com/LibrePCB/LibrePCB/blob/9edb6ede393e5b48785f95252f81a027db4b718a/CMakeLists.txt#L51 I unvendored all of the mentioned dependencies apart from dxflib (I couldn't get it to build). > The only dependencies we do not have is dxflib and fontobene-qt5. It > failed to find muparser and polyclipping ('clipper' package in Guix), > I don't know why. Adding pkg-config as a native dependency seems to have done the trick > It would be best to unvendor as many dependencies as possible. Could > you send an updated patch? Optionally, you can try to package > fontobene-qt5 and have cmake find muparser and polyclipping. I'll send some updated patches in a minute Kind regards, pinoaffe ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0. 2023-09-26 12:08 ` pinoaffe @ 2023-09-27 0:35 ` Vinicius Monego 2023-09-27 16:06 ` pinoaffe 0 siblings, 1 reply; 19+ messages in thread From: Vinicius Monego @ 2023-09-27 0:35 UTC (permalink / raw) To: pinoaffe; +Cc: 66199 Em 26/09/2023 09:08, pinoaffe escreveu: > Hi, Hi! > thank you for your review! > > Vinicius Monego <monego@posteo.net> writes: >> The commit message should also mention the switch to >> cmake-build-system, the "not overriding" of the configure phase, the >> new inputs and the test skip.. > I wasn't sure how to phrase / format this, is what I arrived at OK? You can check the logs of e.g. commit 19617735df2b1af3b169d8153ae543ad3e0fc1a1 for reference. >> Inputs should be sorted alphabetically. > Done > 'googletest' should be a native input, it's a test requirement only. [...] > I'll send some updated patches in a minute > > Kind regards, > pinoaffe [Comment on the LibrePCB update patch specifically]: This v2 is much better, thanks. While investigating the build I also found a few more things that could be improved: - The bundles that were unvendored can be deleted in a source snippet (see e.g. the mixxx package). - LibrePCB builds a test executable at tests/unittests/librepcb-unittests. Instead of 'make test', that file could be run manually when overriding the check phase. - The license list should be updated as some of the bundles listed there are not being provided anymore, or even better let it be only gpl3+ because that's the license of the final product. - I got two merge conflicts on 06dc36ffb7cde821a4762b299d1c95b3788ba110, please rebase it to the latest commit. If the tests are too problematic that's fine, I can merge this patch with the other changes later this week. Vinicius ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0. 2023-09-27 0:35 ` Vinicius Monego @ 2023-09-27 16:06 ` pinoaffe 0 siblings, 0 replies; 19+ messages in thread From: pinoaffe @ 2023-09-27 16:06 UTC (permalink / raw) To: Vinicius Monego; +Cc: 66199 Thanks again! Vinicius Monego <monego@posteo.net> writes: > Em 26/09/2023 09:08, pinoaffe escreveu: >> Vinicius Monego <monego@posteo.net> writes: >>> The commit message should also mention the switch to >>> cmake-build-system, the "not overriding" of the configure phase, the >>> new inputs and the test skip.. >> I wasn't sure how to phrase / format this, is what I arrived at OK? > You can check the logs of e.g. commit > 19617735df2b1af3b169d8153ae543ad3e0fc1a1 for reference. Ah yes, I'll try to replicate that > 'googletest' should be a native input, it's a test requirement only. oh yes, of course, thanks! > [Comment on the LibrePCB update patch specifically]: This v2 is much > better, thanks. While investigating the build I also found a few more > things that could be improved: > > - The bundles that were unvendored can be deleted in a source snippet > (see e.g. the mixxx package). Done > - LibrePCB builds a test executable at > tests/unittests/librepcb-unittests. Instead of 'make test', that > file could be run manually when overriding the check phase. Done > - The license list should be updated as some of the bundles listed > there are not being provided anymore, or even better let it be only > gpl3+ because that's the license of the final product. I removed all of the licenses and license comments that were no longer relevant, but there's still some non-GPL3+ code involved, so I figured I'd keep those licenses around. > - I got two merge conflicts on > 06dc36ffb7cde821a4762b299d1c95b3788ba110, please rebase it to the > latest commit. Done > If the tests are too problematic that's fine, I can merge this patch > with the other changes later this week. > > Vinicius Kind regards, pinoaffe ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5. 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-26 0:37 ` Vinicius Monego @ 2023-09-26 12:16 ` pinoaffe 2023-09-26 12:16 ` [bug#66199] [PATCH v2 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-27 0:39 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 Vinicius Monego 2023-09-27 16:14 ` [bug#66199] [PATCH v3 " pinoaffe ` (2 subsequent siblings) 4 siblings, 2 replies; 19+ messages in thread From: pinoaffe @ 2023-09-26 12:16 UTC (permalink / raw) To: 66199; +Cc: monego, pinoaffe * gnu/packages/fontutils.scm (fontobene-qt5): New variable. --- gnu/packages/fontutils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 230fdd1dde..71a4f156b0 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ (define-module (gnu packages fontutils) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) @@ -951,6 +953,34 @@ (define-public python-ufonormalizer @end itemize") (license license:bsd-3))) +(define-public fontobene-qt5 + (package + (name "fontobene-qt5") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fontobene/fontobene-qt5") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gy3sfraf23k7dm4ha8nqpd6madzk0zmxkcb204micyn5b5l8ljg")))) + (inputs (list qtbase-5)) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/fontobene-qt5-tests"))))))) + (home-page "https://github.com/fontobene/fontobene-qt5") + (synopsis "Parser for FontoBene stroke fonts") + (description "A header-only library to parse FontoBene stroke fonts with +C++11/Qt5.") + (license license:expat))) + (define-public ttfautohint (package (name "ttfautohint") base-commit: 445a0359083388b5ee686e6e855f94a3aac5f79c -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v2 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-26 12:16 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 pinoaffe @ 2023-09-26 12:16 ` pinoaffe 2023-09-27 0:39 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 Vinicius Monego 1 sibling, 0 replies; 19+ messages in thread From: pinoaffe @ 2023-09-26 12:16 UTC (permalink / raw) To: 66199; +Cc: monego, pinoaffe * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. * gnu/packages/engineering.scm (librepcb): Switch to CMake build system. --- gnu/packages/engineering.scm | 46 ++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c2846f0bda..ab36700ff5 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022, 2023 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2023 Theofilos Pechlivanis <theofilos.pechlivanis@gmail.com> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com ;;; ;;; This file is part of GNU Guix. ;;; @@ -124,6 +125,7 @@ (define-module (gnu packages engineering) #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages multiprecision) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) @@ -2260,33 +2262,41 @@ (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")) (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 + googletest + hoedown + muparser + opencascade-occt + clipper + qtbase-5 + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + quazip + zlib)) (native-inputs - (list qttools-5 ; for lrelease - unzip)) + (list 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"))))))) + `(#:tests? #f ;; There is no cmake test target + #: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) -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5. 2023-09-26 12:16 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 pinoaffe 2023-09-26 12:16 ` [bug#66199] [PATCH v2 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe @ 2023-09-27 0:39 ` Vinicius Monego 2023-09-27 16:11 ` pinoaffe 1 sibling, 1 reply; 19+ messages in thread From: Vinicius Monego @ 2023-09-27 0:39 UTC (permalink / raw) To: pinoaffe, 66199 Hi, Em 26/09/2023 09:16, pinoaffe escreveu: > * gnu/packages/fontutils.scm (fontobene-qt5): New variable. > --- > gnu/packages/fontutils.scm | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm > index 230fdd1dde..71a4f156b0 100644 > --- a/gnu/packages/fontutils.scm > +++ b/gnu/packages/fontutils.scm > @@ -18,6 +18,7 @@ > ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> > ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> > ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> > +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -65,6 +66,7 @@ (define-module (gnu packages fontutils) > #:use-module (gnu packages python) > #:use-module (gnu packages python-build) > #:use-module (gnu packages python-xyz) > + #:use-module (gnu packages qt) > #:use-module (gnu packages sqlite) > #:use-module (gnu packages webkit) > #:use-module (gnu packages xdisorg) > @@ -951,6 +953,34 @@ (define-public python-ufonormalizer > @end itemize") > (license license:bsd-3))) > > +(define-public fontobene-qt5 > + (package > + (name "fontobene-qt5") > + (version "0.2.0") > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/fontobene/fontobene-qt5") > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "0gy3sfraf23k7dm4ha8nqpd6madzk0zmxkcb204micyn5b5l8ljg")))) > + (inputs (list qtbase-5)) > + (build-system cmake-build-system) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (replace 'check > + (lambda* (#:key tests? #:allow-other-keys) > + (when tests? > + (invoke "./tests/fontobene-qt5-tests"))))))) > + (home-page "https://github.com/fontobene/fontobene-qt5") > + (synopsis "Parser for FontoBene stroke fonts") > + (description "A header-only library to parse FontoBene stroke fonts with > +C++11/Qt5.") Descriptions should be full sentences (subject + predicate). The linter should be able to catch this. Otherwise LGTM. > + (license license:expat))) > + > (define-public ttfautohint > (package > (name "ttfautohint") > > base-commit: 445a0359083388b5ee686e6e855f94a3aac5f79c Vinicius ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5. 2023-09-27 0:39 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 Vinicius Monego @ 2023-09-27 16:11 ` pinoaffe 0 siblings, 0 replies; 19+ messages in thread From: pinoaffe @ 2023-09-27 16:11 UTC (permalink / raw) To: Vinicius Monego; +Cc: 66199 Thanks for the review! Vinicius Monego <monego@posteo.net> writes: > Hi, > > Em 26/09/2023 09:16, pinoaffe escreveu: >> + (description "A header-only library to parse FontoBene stroke fonts with >> +C++11/Qt5.") > Descriptions should be full sentences (subject + predicate). The > linter should be able to catch this. Otherwise LGTM. For whatever reason it didn't catch this, but this should be fixed with v3 of the patch series Kind regards, pinoaffe ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v3 1/2] gnu: Add fontobene-qt5. 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-26 0:37 ` Vinicius Monego 2023-09-26 12:16 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 pinoaffe @ 2023-09-27 16:14 ` pinoaffe 2023-09-27 16:14 ` [bug#66199] [PATCH v3 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-27 18:46 ` [bug#66199] [PATCH v4 1/2] gnu: Add fontobene-qt5 pinoaffe 2023-10-04 0:15 ` [bug#66199] [PATCH v5 1/2] gnu: Add fontobene-qt5 pinoaffe 4 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-09-27 16:14 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/fontutils.scm (fontobene-qt5): New variable. --- gnu/packages/fontutils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 18697cd821..603f442e0a 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ (define-module (gnu packages fontutils) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) @@ -951,6 +953,34 @@ (define-public python-ufonormalizer @end itemize") (license license:bsd-3))) +(define-public fontobene-qt5 + (package + (name "fontobene-qt5") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fontobene/fontobene-qt5") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gy3sfraf23k7dm4ha8nqpd6madzk0zmxkcb204micyn5b5l8ljg")))) + (inputs (list qtbase-5)) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/fontobene-qt5-tests"))))))) + (home-page "https://github.com/fontobene/fontobene-qt5") + (synopsis "Parser for FontoBene stroke fonts") + (description "FontoBene-Qt5 is a header-only library to parse FontoBene +stroke fonts with C++11/Qt5.") + (license license:expat))) + (define-public ttfautohint (package (name "ttfautohint") base-commit: ce0cc6137df81919389f61671096a6ce701c0889 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v3 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-27 16:14 ` [bug#66199] [PATCH v3 " pinoaffe @ 2023-09-27 16:14 ` pinoaffe 2023-09-27 18:45 ` pinoaffe 0 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-09-27 16:14 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. [inputs]: Add various dependencies (both new ones and old ones that are now debundled). [arguments]: Remove overriding of configure phase. Replace test phase. Debundle various dependencies. [build-system]: Use cmake-build-system. [native-inputs]: Add googletest. --- gnu/packages/engineering.scm | 140 ++++++++++++++++++++++++++++------- 1 file changed, 114 insertions(+), 26 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index faba76161b..86e3407b4d 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) @@ -2322,36 +2325,126 @@ (define-public freehdl (license (list license:gpl2+ license:lgpl2.0+)))) ; freehdl's libraries +;; (define-public dxflib +;; (package +;; (name "dxflib") +;; (version "3.26.4") +;; (source (origin +;; (method git-fetch) +;; (uri (git-reference +;; (url "https://github.com/LibrePCB/dxflib") +;; (commit "3b09713d9938b3d6e60a628124f460a1ce4efdd0"))) +;; (file-name (git-file-name name version)) +;; (sha256 +;; (base32 +;; "0nli8f58gq91zkv82gw05zprr2xbin1zl0l32ihw31jvyr41zr40")))) +;; (build-system cmake-build-system) +;; (arguments +;; `(#:tests? #f)) ;; No tests +;; (inputs (list qtbase-5)) +;; (native-inputs (list pkg-config)) +;; (home-page "https://www.ribbonsoft.com/en/what-is-dxflib") +;; (synopsis "Parser for DXF files") +;; (description "dxflib is an open source C++ library mainly for parsing DXFTM files. dxflib can also write DXF files, but you need to have good knowledge of the DXF format to produce valid output.") +;; (license license:gpl2+))) + +;; (define-public dxflib +;; (package +;; (name "dxflib") +;; (version "3.26.4") +;; (source (origin +;; (method url-fetch) +;; (uri (string-append "https://www.ribbonsoft.com/archives/dxflib/dxflib-" version "-src.tar.gz")) +;; (sha256 +;; (base32 +;; "0pwic33mj6bp4axai5jiyn4xqf31y0xmb1i0pcf55b2h9fav8zah")))) +;; (build-system gnu-build-system) +;; (inputs (list qtbase-5)) +;; (native-inputs (list pkg-config)) +;; (arguments +;; `(#:phases +;; (modify-phases %standard-phases +;; (add-before 'configure 'add-install-prefix +;; (lambda _ +;; (substitute* "dxflib.pro" +;; (("dxflib.rc") +;; "dxflib.rc +;; target.path = $${PREFIX}/bin +;; share.path = $${PREFIX} +;; INSTALLS += target share")))) +;; (replace 'configure +;; (lambda* (#:key outputs #:allow-other-keys) +;; (let ((out (assoc-ref outputs "out"))) +;; (invoke "qmake" +;; (string-append "PREFIX=" out)))))))) +;; (home-page "https://www.ribbonsoft.com/en/what-is-dxflib") +;; (synopsis "Parser for DXF files") +;; (description "dxflib is an open source C++ library mainly for parsing DXFTM files. dxflib can also write DXF files, but you need to have good knowledge of the DXF format to produce valid output.") +;; (license license:gpl2+))) + (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 +2452,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 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v3 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-27 16:14 ` [bug#66199] [PATCH v3 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe @ 2023-09-27 18:45 ` pinoaffe 0 siblings, 0 replies; 19+ messages in thread From: pinoaffe @ 2023-09-27 18:45 UTC (permalink / raw) To: pinoaffe; +Cc: 66199 whoops, I didn't mean to include my commented-out attempts at packaging dxflib in the patch - v4 incoming ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v4 1/2] gnu: Add fontobene-qt5. 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe ` (2 preceding siblings ...) 2023-09-27 16:14 ` [bug#66199] [PATCH v3 " pinoaffe @ 2023-09-27 18:46 ` pinoaffe 2023-09-27 18:46 ` [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-10-04 0:15 ` [bug#66199] [PATCH v5 1/2] gnu: Add fontobene-qt5 pinoaffe 4 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-09-27 18:46 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/fontutils.scm (fontobene-qt5): New variable. --- gnu/packages/fontutils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 18697cd821..603f442e0a 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ (define-module (gnu packages fontutils) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) @@ -951,6 +953,34 @@ (define-public python-ufonormalizer @end itemize") (license license:bsd-3))) +(define-public fontobene-qt5 + (package + (name "fontobene-qt5") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fontobene/fontobene-qt5") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gy3sfraf23k7dm4ha8nqpd6madzk0zmxkcb204micyn5b5l8ljg")))) + (inputs (list qtbase-5)) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/fontobene-qt5-tests"))))))) + (home-page "https://github.com/fontobene/fontobene-qt5") + (synopsis "Parser for FontoBene stroke fonts") + (description "FontoBene-Qt5 is a header-only library to parse FontoBene +stroke fonts with C++11/Qt5.") + (license license:expat))) + (define-public ttfautohint (package (name "ttfautohint") base-commit: ce0cc6137df81919389f61671096a6ce701c0889 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-27 18:46 ` [bug#66199] [PATCH v4 1/2] gnu: Add fontobene-qt5 pinoaffe @ 2023-09-27 18:46 ` pinoaffe 2023-09-30 1:34 ` Vinicius Monego 0 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-09-27 18:46 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. [inputs]: Add various dependencies (both new ones and old ones that are now debundled). [arguments]: Remove overriding of configure phase. Replace test phase. Debundle various dependencies. [build-system]: Use cmake-build-system. [native-inputs]: Add googletest. --- 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 + 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 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-27 18:46 ` [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe @ 2023-09-30 1:34 ` Vinicius Monego 2023-10-03 23:39 ` pinoaffe 0 siblings, 1 reply; 19+ messages in thread From: Vinicius Monego @ 2023-09-30 1:34 UTC (permalink / raw) To: pinoaffe, 66199 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0. 2023-09-30 1:34 ` Vinicius Monego @ 2023-10-03 23:39 ` pinoaffe 2023-10-07 1:16 ` bug#66199: " Vinicius Monego 0 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-10-03 23:39 UTC (permalink / raw) To: Vinicius Monego; +Cc: 66199 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#66199: [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0. 2023-10-03 23:39 ` pinoaffe @ 2023-10-07 1:16 ` Vinicius Monego 0 siblings, 0 replies; 19+ messages in thread From: Vinicius Monego @ 2023-10-07 1:16 UTC (permalink / raw) To: pinoaffe; +Cc: 66199-done [-- Attachment #1: Type: text/plain, Size: 2569 bytes --] 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 [-- Attachment #2: Type: text/html, Size: 4958 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v5 1/2] gnu: Add fontobene-qt5. 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe ` (3 preceding siblings ...) 2023-09-27 18:46 ` [bug#66199] [PATCH v4 1/2] gnu: Add fontobene-qt5 pinoaffe @ 2023-10-04 0:15 ` pinoaffe 2023-10-04 0:15 ` [bug#66199] [PATCH v5 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 4 siblings, 1 reply; 19+ messages in thread From: pinoaffe @ 2023-10-04 0:15 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/fontutils.scm (fontobene-qt5): New variable. --- gnu/packages/fontutils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 18697cd821..603f442e0a 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ (define-module (gnu packages fontutils) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) @@ -951,6 +953,34 @@ (define-public python-ufonormalizer @end itemize") (license license:bsd-3))) +(define-public fontobene-qt5 + (package + (name "fontobene-qt5") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fontobene/fontobene-qt5") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gy3sfraf23k7dm4ha8nqpd6madzk0zmxkcb204micyn5b5l8ljg")))) + (inputs (list qtbase-5)) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./tests/fontobene-qt5-tests"))))))) + (home-page "https://github.com/fontobene/fontobene-qt5") + (synopsis "Parser for FontoBene stroke fonts") + (description "FontoBene-Qt5 is a header-only library to parse FontoBene +stroke fonts with C++11/Qt5.") + (license license:expat))) + (define-public ttfautohint (package (name "ttfautohint") base-commit: ce0cc6137df81919389f61671096a6ce701c0889 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#66199] [PATCH v5 2/2] gnu: librepcb: Update to 1.0.0. 2023-10-04 0:15 ` [bug#66199] [PATCH v5 1/2] gnu: Add fontobene-qt5 pinoaffe @ 2023-10-04 0:15 ` pinoaffe 0 siblings, 0 replies; 19+ messages in thread From: pinoaffe @ 2023-10-04 0:15 UTC (permalink / raw) To: 66199; +Cc: pinoaffe * gnu/packages/engineering.scm (librepcb): Update to 1.0.0. [inputs]: Add the following dependencies: fontconfig, fontobene-qt5, glu, hoedown, muparser, opencascade-occt, clipper, qtdeclarative-5, qtquickcontrols2-5, and quazip. [arguments]: Remove overriding of configure phase. Replace test phase. Disable 22 failing tests. Debundle clipper aka polyclipping, fontobene-qt5, googletest, hoedown, muparser, and quazip. [build-system]: Use cmake-build-system. [native-inputs]: Add googletest (for the test suite) and pkg-config (so the build system can find the debundled dependencies). --- gnu/packages/engineering.scm | 119 +++++++++++++++++++++++++++-------- 1 file changed, 93 insertions(+), 26 deletions(-) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index faba76161b..f25d5b140d 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,102 @@ (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 clipper + fontconfig + fontobene-qt5 + glu + hoedown + muparser + opencascade-occt + 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"))))))) + `(#:configure-flags (list + "-DUNBUNDLE_FONTOBENE_QT5=ON" + "-DUNBUNDLE_GTEST=ON" + "-DUNBUNDLE_HOEDOWN=ON" + "-DUNBUNDLE_MUPARSER=ON" + "-DUNBUNDLE_POLYCLIPPING=ON" + "-DUNBUNDLE_QUAZIP=ON") + #:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (let ((test-include (list "*")) + (test-exclude + (list + ;; These tests all fail when run by the build + ;; process even though they pass when manually + ;; run as a normal user. + + ;; TODO: verify that the failing tests don't + ;; point to any actual underlying issues + "SystemInfoTest.testGetUsername" + "OrderPcbDialogTest.testAutoOpenBrowser" + "DxfImportDialogTest.testLayerName" + "DxfImportDialogTest.testCirclesAsDrills" + "DxfImportDialogTest.testJoinTangentPolylines" + "DxfImportDialogTest.testLineWidth" + "DxfImportDialogTest.testScaleFactor" + "DxfImportDialogTest.testPlacementPosition" + "GraphicsExportDialogTest.testPageSize" + "GraphicsExportDialogTest.testOrientation" + "GraphicsExportDialogTest.testMargins" + "GraphicsExportDialogTest.testShowPinNumbers" + "GraphicsExportDialogTest.testRotate" + "GraphicsExportDialogTest.testMirror" + "GraphicsExportDialogTest.testScale" + "GraphicsExportDialogTest.testPixmapDpi" + "GraphicsExportDialogTest.testBlackWhite" + "GraphicsExportDialogTest.testBackgroundColor" + "GraphicsExportDialogTest.testMinLineWidth" + "GraphicsExportDialogTest.testLayerColors" + "GraphicsExportDialogTest.testOpenExportedFiles" + "AddComponentDialogTest.testAddMore"))) + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "QT_QUICK_BACKEND" "software") + (display "Running unittests...\n") + (invoke "./tests/unittests/librepcb-unittests" + (string-append + "--gtest_filter=" + (string-join test-include ":") + "-" + (string-join test-exclude ":")))))))))) (home-page "https://librepcb.org/") (synopsis "Electronic Design Automation tool") (description "LibrePCB is @dfn{Electronic Design Automation} (EDA) @@ -2359,17 +2431,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 -- 2.41.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2023-10-07 1:17 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-09-25 20:27 [bug#66199] [PATCH] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-26 0:37 ` Vinicius Monego 2023-09-26 12:08 ` pinoaffe 2023-09-27 0:35 ` Vinicius Monego 2023-09-27 16:06 ` pinoaffe 2023-09-26 12:16 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 pinoaffe 2023-09-26 12:16 ` [bug#66199] [PATCH v2 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-27 0:39 ` [bug#66199] [PATCH v2 1/2] gnu: Add fontobene-qt5 Vinicius Monego 2023-09-27 16:11 ` pinoaffe 2023-09-27 16:14 ` [bug#66199] [PATCH v3 " pinoaffe 2023-09-27 16:14 ` [bug#66199] [PATCH v3 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-27 18:45 ` pinoaffe 2023-09-27 18:46 ` [bug#66199] [PATCH v4 1/2] gnu: Add fontobene-qt5 pinoaffe 2023-09-27 18:46 ` [bug#66199] [PATCH v4 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe 2023-09-30 1:34 ` Vinicius Monego 2023-10-03 23:39 ` pinoaffe 2023-10-07 1:16 ` bug#66199: " Vinicius Monego 2023-10-04 0:15 ` [bug#66199] [PATCH v5 1/2] gnu: Add fontobene-qt5 pinoaffe 2023-10-04 0:15 ` [bug#66199] [PATCH v5 2/2] gnu: librepcb: Update to 1.0.0 pinoaffe
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).