unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#32155] [PATCH 0/4] sfml updates
@ 2018-07-14 14:41 Marius Bakke
  2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
  2018-07-17 21:16 ` [bug#32155] [PATCH 0/4] sfml updates Ludovic Courtès
  0 siblings, 2 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:41 UTC (permalink / raw)
  To: 32155

This series updates sfml to the latest release, and adds some of the
"stb" <https://github.com/nothings/stb> libraries in order to unbundle
all dependencies.

Marius Bakke (4):
  gnu: sfml: Update to 2.5.0.
  gnu: Add stb-image.
  gnu: Add stb-image-write.
  gnu: sfml: Remove all bundled dependencies.

 gnu/local.mk                      |   1 +
 gnu/packages/game-development.scm |  27 ++++++--
 gnu/packages/stb.scm              | 101 ++++++++++++++++++++++++++++++
 3 files changed, 123 insertions(+), 6 deletions(-)
 create mode 100644 gnu/packages/stb.scm

-- 
2.18.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0.
  2018-07-14 14:41 [bug#32155] [PATCH 0/4] sfml updates Marius Bakke
@ 2018-07-14 14:43 ` Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 2/4] gnu: Add stb-image Marius Bakke
                     ` (2 more replies)
  2018-07-17 21:16 ` [bug#32155] [PATCH 0/4] sfml updates Ludovic Courtès
  1 sibling, 3 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:43 UTC (permalink / raw)
  To: 32155

* gnu/packages/game-development.scm (sfml): Update to 2.5.0.
[arguments]: Specify pkg-config dir in #:configure-flags.
[native-inputs]: Add PKG-CONFIG.
[inputs]: Move FLAC, FREETYPE, LIBVORBIS and OPENAL ...
[propagated-inputs]: ... here.  New field.
---
 gnu/packages/game-development.scm | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index fde139c0b..4610e389b 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -440,7 +440,7 @@ clone.")
 (define-public sfml
   (package
     (name "sfml")
-    (version "2.3.2")
+    (version "2.5.0")
     (source (origin
               (method url-fetch)
               ;; Do not fetch the archives from
@@ -451,24 +451,29 @@ clone.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm"))))
+                "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
-       (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE")
+       (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE"
+             "-DSFML_OS_PKGCONFIG_DIR=lib/pkgconfig")
        #:tests? #f)) ; no tests
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("mesa" ,mesa)
        ("glew" ,glew)
-       ("flac" ,flac)
-       ("libvorbis" ,libvorbis)
        ("libx11" ,libx11)
        ("xcb-util-image" ,xcb-util-image)
        ("libxrandr" ,libxrandr)
        ("eudev" ,eudev)
-       ("freetype" ,freetype)
        ("libjpeg" ,libjpeg)
-       ("libsndfile" ,libsndfile)
+       ("libsndfile" ,libsndfile)))
+    (propagated-inputs
+     ;; In Requires.private of pkg-config files.
+     `(("flac" ,flac)
+       ("freetype" ,freetype)
+       ("libvorbis" ,libvorbis)
        ("openal" ,openal)))
     (home-page "https://www.sfml-dev.org")
     (synopsis "Simple and Fast Multimedia Library")
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 2/4] gnu: Add stb-image.
  2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
@ 2018-07-14 14:43   ` Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 3/4] gnu: Add stb-image-write Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies Marius Bakke
  2 siblings, 0 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:43 UTC (permalink / raw)
  To: 32155

* gnu/packages/stb.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
---
 gnu/local.mk         |  1 +
 gnu/packages/stb.scm | 95 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 gnu/packages/stb.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 9e875263a..5c6fc8e86 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -403,6 +403,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/sssd.scm				\
   %D%/packages/stalonetray.scm			\
   %D%/packages/statistics.scm			\
+  %D%/packages/stb.scm				\
   %D%/packages/storage.scm			\
   %D%/packages/suckless.scm			\
   %D%/packages/swig.scm				\
diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm
new file mode 100644
index 000000000..148e8dbdb
--- /dev/null
+++ b/gnu/packages/stb.scm
@@ -0,0 +1,95 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; 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 stb)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
+  #:use-module ((guix licenses) #:select (expat public-domain)))
+
+(define stb
+  ;; stb is a collection of libraries developed within the same repository.
+  ;; When updating this, remember to change versions below as appropriate.
+  (let ((commit "e6afb9cbae4064da8c3e69af3ff5c4629579c1d2")
+        (revision "0"))
+    (package
+      (name "stb")
+      (home-page "https://github.com/nothings/stb")
+      (version (git-version "0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "079nsn9bnb8c0vfq26g5l53q6gzx19a5x9q2nb55mpcljxsgxnmf"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((ice-9 ftw)
+                    (ice-9 regex)
+                    (srfi srfi-26)
+                    ,@%gnu-build-system-modules)
+         #:phases (modify-phases %standard-phases
+                    (delete 'configure)
+                    (delete 'build)
+                    (replace 'check
+                      (lambda _
+                        (invoke "make" "-C" "tests" "CC=gcc")))
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let ((out (assoc-ref outputs "out"))
+                              (files (make-regexp "\\.(c|h|md)$")))
+                          (for-each (lambda (file)
+                                      (install-file file out))
+                                    (scandir "." (cut regexp-exec files <>)))
+                          #t))))))
+      (synopsis "Single file libraries for C/C++")
+      (description
+       "This package contains a variety of small independent libraries for
+the C programming language.")
+      ;; The user can choose either license.
+      (license (list expat public-domain)))))
+
+(define (make-stb-header-package name version description)
+  (package
+    (inherit stb)
+    (name name)
+    (version version)
+    (source #f)
+    (inputs `(("stb" ,stb)))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((stb (assoc-ref %build-inputs "stb"))
+                         (lib (string-join (string-split ,name #\-) "_"))
+                         (out (assoc-ref %outputs "out")))
+                     (install-file (string-append stb "/" lib ".h")
+                                   (string-append out "/include"))
+                     #t))))
+    (description description)))
+
+(define-public stb-image
+  (make-stb-header-package
+   "stb-image" "2.19"
+   "stb-image is a small and self-contained library for image loading or
+decoding from file or memory.  A variety of formats are supported."))
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 3/4] gnu: Add stb-image-write.
  2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 2/4] gnu: Add stb-image Marius Bakke
@ 2018-07-14 14:43   ` Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies Marius Bakke
  2 siblings, 0 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:43 UTC (permalink / raw)
  To: 32155

* gnu/packages/stb.scm (stb-image-write): New public variable.
---
 gnu/packages/stb.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm
index 148e8dbdb..7abaaba6b 100644
--- a/gnu/packages/stb.scm
+++ b/gnu/packages/stb.scm
@@ -93,3 +93,9 @@ the C programming language.")
    "stb-image" "2.19"
    "stb-image is a small and self-contained library for image loading or
 decoding from file or memory.  A variety of formats are supported."))
+
+(define-public stb-image-write
+  (make-stb-header-package
+   "stb-image-write" "1.09"
+   "stb-image-write is a small library for writing image files to the
+C@tie{}@code{stdio} interface."))
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies.
  2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 2/4] gnu: Add stb-image Marius Bakke
  2018-07-14 14:43   ` [bug#32155] [PATCH 3/4] gnu: Add stb-image-write Marius Bakke
@ 2018-07-14 14:43   ` Marius Bakke
  2018-07-14 14:47     ` Marius Bakke
  2 siblings, 1 reply; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:43 UTC (permalink / raw)
  To: 32155

* gnu/packages/game-development.scm (sfml)[source](snippet): New field.
[inputs]: Add STB-IMAGE and STB-IMAGE-WRITE.
---
 gnu/packages/game-development.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 4610e389b..842894da0 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -74,6 +74,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages stb)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
@@ -451,7 +452,14 @@ clone.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"))))
+                "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"))
+              (modules '((guix build utils)
+                         (ice-9 ftw)))
+              (snippet
+               '(begin
+                  ;; Ensure system libraries are used.
+                  (delete-file-recursively "extlibs")
+                  #t))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -468,7 +476,9 @@ clone.")
        ("libxrandr" ,libxrandr)
        ("eudev" ,eudev)
        ("libjpeg" ,libjpeg)
-       ("libsndfile" ,libsndfile)))
+       ("libsndfile" ,libsndfile)
+       ("stb-image" ,stb-image)
+       ("stb-image-write" ,stb-image-write)))
     (propagated-inputs
      ;; In Requires.private of pkg-config files.
      `(("flac" ,flac)
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies.
  2018-07-14 14:43   ` [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies Marius Bakke
@ 2018-07-14 14:47     ` Marius Bakke
  0 siblings, 0 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-14 14:47 UTC (permalink / raw)
  To: 32155

[-- Attachment #1: Type: text/plain, Size: 328 bytes --]

Marius Bakke <mbakke@fastmail.com> writes:

> * gnu/packages/game-development.scm (sfml)[source](snippet): New field.
> [inputs]: Add STB-IMAGE and STB-IMAGE-WRITE.

[...]

> +              (modules '((guix build utils)
> +                         (ice-9 ftw)))

Whoops, (ice-9 ftw) is not needed (anymore ;-)).  Fixed locally.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#32155] [PATCH 0/4] sfml updates
  2018-07-14 14:41 [bug#32155] [PATCH 0/4] sfml updates Marius Bakke
  2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
@ 2018-07-17 21:16 ` Ludovic Courtès
  2018-07-17 23:18   ` bug#32155: " Marius Bakke
  1 sibling, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-07-17 21:16 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32155

Hello Marius,

Marius Bakke <mbakke@fastmail.com> skribis:

> This series updates sfml to the latest release, and adds some of the
> "stb" <https://github.com/nothings/stb> libraries in order to unbundle
> all dependencies.
>
> Marius Bakke (4):
>   gnu: sfml: Update to 2.5.0.
>   gnu: Add stb-image.
>   gnu: Add stb-image-write.
>   gnu: sfml: Remove all bundled dependencies.

It all LGTM!

> +(define (make-stb-header-package name version description)
> +  (package
> +    (inherit stb)
> +    (name name)
> +    (version version)
> +    (source #f)
> +    (inputs `(("stb" ,stb)))
> +    (build-system trivial-build-system)
> +    (arguments
> +     `(#:modules ((guix build utils))
> +       #:builder (begin
> +                   (use-modules (guix build utils))
> +                   (let ((stb (assoc-ref %build-inputs "stb"))
> +                         (lib (string-join (string-split ,name #\-) "_"))
> +                         (out (assoc-ref %outputs "out")))
> +                     (install-file (string-append stb "/" lib ".h")
> +                                   (string-append out "/include"))
> +                     #t))))
> +    (description description)))
> +
> +(define-public stb-image
> +  (make-stb-header-package
> +   "stb-image" "2.19"
> +   "stb-image is a small and self-contained library for image loading or
> +decoding from file or memory.  A variety of formats are supported."))

Not sure if it really matters here, but note that the description here
won’t be subject to translation.

To make it translatable, it would have to be embedded in a (description
"…") form.  I address that with phony macros as in
‘define-word-list-dictionary’ in aspell.scm.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#32155: [PATCH 0/4] sfml updates
  2018-07-17 21:16 ` [bug#32155] [PATCH 0/4] sfml updates Ludovic Courtès
@ 2018-07-17 23:18   ` Marius Bakke
  0 siblings, 0 replies; 8+ messages in thread
From: Marius Bakke @ 2018-07-17 23:18 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 32155-done

[-- Attachment #1: Type: text/plain, Size: 1580 bytes --]

Hello Ludo,

ludo@gnu.org (Ludovic Courtès) writes:

>> +(define (make-stb-header-package name version description)
>> +  (package
>> +    (inherit stb)
>> +    (name name)
>> +    (version version)
>> +    (source #f)
>> +    (inputs `(("stb" ,stb)))
>> +    (build-system trivial-build-system)
>> +    (arguments
>> +     `(#:modules ((guix build utils))
>> +       #:builder (begin
>> +                   (use-modules (guix build utils))
>> +                   (let ((stb (assoc-ref %build-inputs "stb"))
>> +                         (lib (string-join (string-split ,name #\-) "_"))
>> +                         (out (assoc-ref %outputs "out")))
>> +                     (install-file (string-append stb "/" lib ".h")
>> +                                   (string-append out "/include"))
>> +                     #t))))
>> +    (description description)))
>> +
>> +(define-public stb-image
>> +  (make-stb-header-package
>> +   "stb-image" "2.19"
>> +   "stb-image is a small and self-contained library for image loading or
>> +decoding from file or memory.  A variety of formats are supported."))
>
> Not sure if it really matters here, but note that the description here
> won’t be subject to translation.
>
> To make it translatable, it would have to be embedded in a (description
> "…") form.  I address that with phony macros as in
> ‘define-word-list-dictionary’ in aspell.scm.

Oh, thanks for the heads-up!  I did not know that.

I added a TODO note about it and committed.

As always, thanks a lot for reviewing! :-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-07-17 23:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-14 14:41 [bug#32155] [PATCH 0/4] sfml updates Marius Bakke
2018-07-14 14:43 ` [bug#32155] [PATCH 1/4] gnu: sfml: Update to 2.5.0 Marius Bakke
2018-07-14 14:43   ` [bug#32155] [PATCH 2/4] gnu: Add stb-image Marius Bakke
2018-07-14 14:43   ` [bug#32155] [PATCH 3/4] gnu: Add stb-image-write Marius Bakke
2018-07-14 14:43   ` [bug#32155] [PATCH 4/4] gnu: sfml: Remove all bundled dependencies Marius Bakke
2018-07-14 14:47     ` Marius Bakke
2018-07-17 21:16 ` [bug#32155] [PATCH 0/4] sfml updates Ludovic Courtès
2018-07-17 23:18   ` bug#32155: " Marius Bakke

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).