Subject: Re: [bug#37372] [PATCH] gnu: Add openscad.

From: Efraim Flashner <[email-masked]>
Date: Wed, 11 Sep 2019 10:57:57 +0300

On Tue, Sep 10, 2019 at 04:47:00PM -0700, Steve Sprang wrote:
> There is a lint complaint that the "source [is] not archived on
> Software Heritage". I'm not sure if that's something that I need to
> remedy or not.

I've been seeing it a bunch too lately. I know it was added more
explicitly as a check although I'm not sure if they're false positives
or if it's really missing. Either way, it's not something to worry about
at this point.

> From 20cbcd57a23a4acac83257817df0baeb3232695d Mon Sep 17 00:00:00 2001
> From: Steve Sprang <[email-masked]>
> Date: Tue, 10 Sep 2019 16:22:57 -0700
> Subject: [PATCH] gnu: Add openscad.
> 
> * gnu/packages/engineering.scm (openscad): New variable.
> ---
>  gnu/packages/engineering.scm | 69 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 69 insertions(+)
> 
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index 7f5409c835..9852aaf667 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -65,6 +65,7 @@
>    #:use-module (gnu packages glib)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages gperf)
> +  #:use-module (gnu packages graphics)
>    #:use-module (gnu packages groff)
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages guile)
> @@ -89,6 +90,7 @@
>    #:use-module (gnu packages tex)
>    #:use-module (gnu packages version-control)
>    #:use-module (gnu packages wxwidgets)
> +  #:use-module (gnu packages xml)
>    #:use-module (gnu packages xorg))
>  
>  (define-public librecad
> @@ -2145,3 +2147,70 @@ well as conversion and validation tools for input and output data.  The
>  specification can be downloaded at @url{http://3mf.io/specification/}.")
>      (home-page "https://3mf.io/")
>      (license license:bsd-2)))
> +
> +(define-public openscad
> +  (package
> +    (name "openscad")
> +    (version "2019.05")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://files.openscad.org/openscad-" version
> +                           ".src.tar.gz"))
> +       (sha256
> +        (base32
> +         "0nbgk5q5pgnw53la0kccdcpz2f4xf6d6076rkn0q08z57hkc85ha"))))
> +    (build-system cmake-build-system)
> +    (inputs
> +     `(("boost" ,boost)
> +       ("cgal" ,cgal)
> +       ("double-conversion" ,double-conversion)
> +       ("eigen" ,eigen)
> +       ("fontconfig" ,fontconfig)
> +       ("glew" ,glew)
> +       ("gmp" ,gmp)
> +       ("harfbuzz" ,harfbuzz)
> +       ("lib3mf" ,lib3mf)
> +       ("libxml2" ,libxml2)
> +       ("libzip" ,libzip)
> +       ("mpfr" ,mpfr)
> +       ("opencsg" ,opencsg)
> +       ("qscintilla" ,qscintilla)
> +       ("qtbase" ,qtbase)
> +       ("qtmultimedia" ,qtmultimedia)))
> +    (native-inputs
> +     `(("bison" ,bison)
> +       ("flex" ,flex)
> +       ("gnu-gettext" ,gnu-gettext)

This should be gnu-gettext-minimial

> +       ("pkg-config" ,pkg-config)
> +       ("which" ,which)
> +       ;; the following are only needed for tests
> +       ("imagemagick" ,imagemagick)
> +       ("ps" ,procps)
> +       ("python" ,python)
> +       ("xvfb" ,xorg-server)))
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (replace 'configure
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (invoke "qmake"
> +                     (string-append "PREFIX=" (assoc-ref outputs "out")))
> +             #t))
> +         (replace 'check
> +           (lambda _
> +             (with-directory-excursion "tests"
> +               (invoke "cmake" ".")
> +               (invoke "make")

I know it wouldn't get rid of all the changes to the 'check phase, but
is there a make-flag that would have it also build the tests? something
like "-DENABLE_TESTS=ON"?

> +               (invoke "ctest"))
> +             ;; strip python test files since lib dir ends up in out/share
> +             (for-each delete-file
> +                       (find-files "libraries/MCAD" ".*\\.py"))
> +             #t)))))
> +    (synopsis "Script-based 3D modeling application")
> +    (description
> +     "OpenSCAD is a 3D Computer-aided Design (CAD) application.  Unlike an
> +interactive modeler, OpenSCAD generates 3D models from a script, giving you
> +full programmatic control over your models.")
> +    (home-page "https://www.openscad.org/")
> +    (license license:gpl2+)))
> -- 
> 2.23.0
> 

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted