diff mbox series

[bug#60201] gnu: Add libswell

Message ID ChXlp6YIa5eQPVrAFeG2FC6o26Dc5gy7wqxPRhNRHBYQbA9_bSFj5eVJ54SNCY-PGGkKddEU6il-w16cEoGvT2mV_B3pyxlGo6yMrwzy0H8=@proton.me
State New
Headers show
Series [bug#60201] gnu: Add libswell | expand

Commit Message

Sughosha Dec. 19, 2022, 1:49 p.m. UTC
* gnu/packages/wdl.scm (libswell): New variable.
---
 gnu/packages/wdl.scm | 75 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 gnu/packages/wdl.scm

Comments

Ricardo Wurmus Jan. 2, 2023, 11:32 a.m. UTC | #1
Hi,

thank you for the patch!

Could you add a comment why tests are disabled?

I recommend using a gexp for the phases:

  (arguments
    (list
      ;; There are no tests.
      #:tests? #false
      #:phases
      #~(modify-phases … )))

Then you can use #$output instead of binding the ‘outputs’ keyword
argument and looking up the output with label ‘out’.

Is it really enough to just install the .so?  Shouldn’t the headers also
be installed?

Why are origin and commit separated as a global definition? That seems
unnecessary.
Ricardo Wurmus Jan. 4, 2023, 10:23 a.m. UTC | #2
Thank you for your patience.
I took the liberty of making a few changes:

- minor indentation / formatting changes
- pulled out the “with-directory-excursion” to simplify the snippet
- used “with-directory-excursion” where possible to avoid stateful
  behavior across build phases.
- removed the “mkdir-p” which would have only created empty directories
  in $out/include, and simplified installation of all headers.
- added a copyright line for you

It’s all pushed to the “master” branch with commit
a8f15711508abab85cba3174f68a4343a15fb116.

Thanks!
diff mbox series

Patch

diff --git a/gnu/packages/wdl.scm b/gnu/packages/wdl.scm
new file mode 100644
index 0000000000..e0a7ea8fac
--- /dev/null
+++ b/gnu/packages/wdl.scm
@@ -0,0 +1,75 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Sughosha <sughosha@proton.me>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages wdl)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config))
+
+(define %wdl-commit "60ef0b41d520813c63303046531c78ec95e64d5c")
+
+(define %wdl-origin
+  (origin
+    (method git-fetch)
+      (uri (git-reference (url "https://github.com/justinfrankel/WDL.git")
+                          (commit %wdl-commit)))
+      (sha256 (base32 "0br0b4d230vhib5qm39ggf6m5pfipkjs4xqxkjxjnba7g0bdz7iv"))
+      (modules '((guix build utils)))
+      ;; Unbundle third party libraries which are not needed.
+      (snippet '(for-each (lambda (dir) (delete-file-recursively
+                                         (string-append "WDL/" dir)))
+                          (list "jnetlib"
+                                "libpng"
+                                "giflib"
+                                "jpeglib"
+                                "zlib")))))
+
+(define-public libswell
+    (package
+      (name "libswell")
+      (version (git-version "0" "0" %wdl-commit))
+      (source %wdl-origin)
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f
+         #:phases (modify-phases %standard-phases
+                    (delete 'configure) ;no configure script
+                    (replace 'build
+                      (lambda _
+                        (chdir "WDL")
+                        (invoke "make" "-Cswell")))
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (install-file "swell/libSwell.so"
+                                      (string-append (assoc-ref outputs
+                                                                "out")
+                                                     "/lib")))))))
+      (native-inputs (list pkg-config))
+      (inputs (list gtk+))
+      (home-page "http://www.cockos.com/wdl")
+      (synopsis "Reasonable subset of the win32 API")
+      (description
+       "SWELL is Simple Windows Emulation Layer with support for automatic
+(PHP-based) dialog and menu resource conversion and SWELL-specific win32-style
+extensions.")
+      (license license:zlib)))