* [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 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] 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 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] 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-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 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
* 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
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).