Subject: [bug#30034] [PATCH] Update guile-bytestructures to 1.0.1.

From: Amirouche Boubekki <[email-masked]>
Date: Mon, 08 Jan 2018 23:53:59 +0100

Becarful guix depends on guile-git which depends on 
guile-bytestructures.

From c7a3daeb78b2085034f8b8a06dcd4340606c7a9d Mon Sep 17 00:00:00 2001
From: amirouche <[email-masked]>
Date: Mon, 8 Jan 2018 22:30:10 +0100
Subject: [PATCH] gnu: guile-bytestructures: Update to 1.0.1.

* gnu/package/guile.scm (guile-bytestructures): Update to 1.0.1.
  [source]: use tarball from github instead of git.
  [build-system] use gnu build system.
  [arguments] no specific arguments required.
  [navitve-inputs] add pkg-config.
---
 gnu/local.mk                                       |  2 +-
 gnu/packages/guile.scm                             | 88 ++--------------------
 .../patches/guile-bytestructures-name-clash.patch  | 31 --------
 3 files changed, 9 insertions(+), 112 deletions(-)
 delete mode 100644 gnu/packages/patches/guile-bytestructures-name-clash.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 98cad3635..e8cabc81d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -16,6 +16,7 @@
 # Copyright © 2017 Clément Lassieur <[email-masked]>
 # Copyright © 2017 Mathieu Othacehe <[email-masked]>
 # Copyright © 2017 Gábor Boskovits <[email-masked]>
+# Copyright © 2018 Amirouche Boubekki <[email-masked]>
 #
 # This file is part of GNU Guix.
 #
@@ -721,7 +722,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gspell-dash-test.patch			\
   %D%/packages/patches/guile-1.8-cpp-4.5.patch			\
   %D%/packages/patches/guile-2.2-default-utf8.patch		\
-  %D%/packages/patches/guile-bytestructures-name-clash.patch	\
   %D%/packages/patches/guile-default-utf8.patch			\
   %D%/packages/patches/guile-linux-syscalls.patch		\
   %D%/packages/patches/guile-present-coding.patch		\
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 887e360a3..a778bbf45 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1658,90 +1658,18 @@ is no support for parsing block and inline level HTML.")
 (define-public guile-bytestructures
   (package
     (name "guile-bytestructures")
-    (version "20170402.91d042e")
+    (version "1.0.1")
     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/TaylanUB/scheme-bytestructures")
-                    (commit "91d042e3427e1d7740b604b6296c616cf2eec13d")))
-              (file-name (string-append name "-" version "-checkout"))
+              (method url-fetch)
+              (uri (string-append "https://github.com/TaylanUB/scheme-bytestructures"
+                                  "/releases/download/v" version
+                                  "/bytestructures-" version ".tar.gz"))
               (sha256
                (base32
-                "04lgh0nk6ddnwgh20hnz4pyhczaik0xbd50kikjsxcwcl46shavb"))
-              (patches (search-patches "guile-bytestructures-name-clash.patch"))))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils)
-                      (ice-9 ftw)
-                      (ice-9 match)
-                      (ice-9 popen)
-                      (ice-9 rdelim))
-         ;; Unpack.
-         (setenv "PATH"
-                 (string-join (list (assoc-ref %build-inputs "tar")
-                                    (assoc-ref %build-inputs "xz"))
-                              "/bin:" 'suffix))
-         (system* "tar" "xf" (assoc-ref %build-inputs "source"))
-         (match (scandir ".")
-           (("." ".." directory)
-            (chdir directory)))
-
-         (let* ((out (assoc-ref %outputs "out"))
-                (guile (assoc-ref %build-inputs "guile"))
-                (effective (read-line
-                            (open-pipe* OPEN_READ
-                                        (string-append guile "/bin/guile")
-                                        "-c" "(display (effective-version))")))
-                (module-dir (string-append out "/share/guile/site/"
-                                           effective))
-                (object-dir (string-append out "/lib/guile/" effective
-                                           "/site-ccache"))
-                (source (getcwd))
-                (doc (string-append out "/share/doc/scheme-bytestructures"))
-                (sld-files (with-directory-excursion source
-                             (find-files "bytestructures/r7" "\\.exports.sld$")))
-                (scm-files (filter (lambda (path)
-                                     (not (string-prefix? "bytestructures/r7" path)))
-                                   (with-directory-excursion source
-                                     (find-files "bytestructures" "\\.scm$"))))
-                (guild (string-append (assoc-ref %build-inputs "guile")
-                                      "/bin/guild")))
-           ;; Make installation directories.
-           (mkdir-p doc)
-
-           ;; Compile .scm files and install.
-           (chdir source)
-           (setenv "GUILE_AUTO_COMPILE" "0")
-           (for-each (lambda (file)
-                       (let* ((dest-file (string-append module-dir "/"
-                                                        file))
-                              (go-file (string-append object-dir "/"
-                                                      (substring file 0
-                                                                 (string-rindex file #\.))
-                                                      ".go")))
-                         ;; Install source module.
-                         (mkdir-p (dirname dest-file))
-                         (copy-file file dest-file)
-
-                         ;; Install compiled module.
-                         (mkdir-p (dirname go-file))
-                         (unless (zero? (system* guild "compile"
-                                                 "-L" source
-                                                 "-o" go-file
-                                                 file))
-                           (error (format #f "Failed to compile ~s to ~s!"
-                                          file go-file)))))
-                     (append sld-files scm-files))
-
-           ;; Also copy over the README.
-           (install-file "README.md" doc)
-           #t))))
+                "1lnfcy65mqj823lamy2n2vaghdz0g7mj011bgnhmd6hwpnaidnh2"))))
+    (build-system gnu-build-system)
     (native-inputs
-     `(("tar" ,tar)
-       ("xz" ,xz)))
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("guile" ,guile-2.2)))
     (home-page "https://github.com/TaylanUB/scheme-bytestructures")
diff --git a/gnu/packages/patches/guile-bytestructures-name-clash.patch b/gnu/packages/patches/guile-bytestructures-name-clash.patch
deleted file mode 100644
index ac834dd50..000000000
--- a/gnu/packages/patches/guile-bytestructures-name-clash.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-This patch works around a name clash between the 'cstring-pointer' module and
-the 'cstring-module' variable that occurs in Guile 2.0:
-
-  ice-9/boot-9.scm:109:20: re-exporting local variable: cstring-pointer
-
---- guile-bytestructures-20170402.91d042e-checkout/bytestructures/guile.scm	2017-07-25 17:04:32.858289986 +0200
-+++ guile-bytestructures-20170402.91d042e-checkout/bytestructures/guile.scm	2017-07-25 17:04:41.130244725 +0200
-@@ -1,6 +1,6 @@
- (define-module (bytestructures guile))
- 
--(import
-+(use-modules
-  (bytestructures guile base)
-  (bytestructures guile vector)
-  (bytestructures guile struct)
-@@ -8,7 +8,7 @@
-  (bytestructures guile pointer)
-  (bytestructures guile numeric)
-  (bytestructures guile string)
-- (bytestructures guile cstring-pointer))
-+ ((bytestructures guile cstring-pointer) #:prefix cstr:))
- (re-export
-  make-bytestructure-descriptor
-  bytestructure-descriptor?
-@@ -75,5 +75,5 @@
- 
-  bs:string
- 
-- cstring-pointer
-+ cstr:cstring-pointer
-  )
-- 
2.14.1