unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements.
@ 2023-09-07 15:43 Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 1/8] gnu: libftdi: Update package style Simon South
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:43 UTC (permalink / raw)
  To: 65807

This patch series updates and improves the package for libftdi, a library for
communicating with USB-to-serial adapter ICs from FTDI.

The patches

  - Refresh gently the formatting of the package;

  - Disable the building of example programs, which aren't installed anyway;

  - Enable the building of libftdi's ftdi_eeprom utility, its bindings for C++
    and Python, and its API documentation; and

  - Update libftdi to its latest version, 1.5.

I've kept the package in its own module as moving it to embedded.scm, where it
probably belongs, triggers the circular-dependency problem described in issue
65716.[0]

I've tested this on AArch64 and x86-64 with an FT232H module and everything
appears fine.  All of libftdi's 14 dependents continue to build with the
exception of arachne-pnr, an existing failure.[1]

[0] https://issues.guix.gnu.org/65716

[1] http://ci.guix.gnu.org/search?query=arachne-pnr

---

Simon South (8):
  gnu: libftdi: Update package style.
  gnu: libftdi: Do not build example programs.
  gnu: libftdi: Install libraries to /lib instead of /lib64.
  gnu: libftdi: Build ftdi_eeprom.
  gnu: libftdi: Build C++ bindings.
  gnu: libftdi: Build Python bindings.
  gnu: libftdi: Update to 1.5.
  gnu: libftdi: Build API documentation.

 gnu/local.mk                                  |  1 +
 gnu/packages/libftdi.scm                      | 77 ++++++++++++++++---
 .../libftdi-fix-paths-when-FTDIPP-set.patch   | 39 ++++++++++
 3 files changed, 106 insertions(+), 11 deletions(-)
 create mode 100644 gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch


base-commit: 811f4fc509a57ff14b1dd03d76fea66085e3f5e1
-- 
2.40.1





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

* [bug#65807] [PATCH 1/8] gnu: libftdi: Update package style.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 2/8] gnu: libftdi: Do not build example programs Simon South
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm: Re-order #:use-module statements.
(libftdi): Wrap long lines; reformat gently.
[license]: Use "license:" prefix.
---
 gnu/packages/libftdi.scm | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index e39e0b3d71..4cfa1d3424 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -18,12 +18,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages libftdi)
-  #:use-module (guix licenses)
+  #:use-module (guix build-system cmake)
   #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:use-module (gnu packages libusb)
-  #:use-module (guix build-system cmake))
+  #:use-module (gnu packages libusb))
 
 (define-public libftdi
   (package
@@ -32,18 +32,17 @@ (define-public libftdi
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-"
-                    version ".tar.bz2"))
+                    "http://www.intra2net.com/en/developer/libftdi/download/"
+                    "libftdi1-" version ".tar.bz2"))
               (sha256
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     (list libusb)) ; required by libftdi1.pc
+     (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
     (synopsis "FTDI USB driver with bitbang mode")
     (description
-     "libFTDI is a library to talk to FTDI chips: FT232BM,
-FT245BM, FT2232C, FT2232D, FT245R and FT232H including the popular
-bitbangmode.")
-    (license lgpl2.1)))
+     "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
+FT2232D, FT245R and FT232H including the popular bitbangmode.")
+    (license license:lgpl2.1)))
-- 
2.40.1





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

* [bug#65807] [PATCH 2/8] gnu: libftdi: Do not build example programs.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 1/8] gnu: libftdi: Update package style Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 3/8] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]: Add with "-DEXAMPLES"
configure flag.
---
 gnu/packages/libftdi.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 4cfa1d3424..ae7cbe62f2 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -20,6 +20,7 @@
 (define-module (gnu packages libftdi)
   #:use-module (guix build-system cmake)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
@@ -38,6 +39,8 @@ (define-public libftdi
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-DEXAMPLES=OFF")))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
-- 
2.40.1





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

* [bug#65807] [PATCH 3/8] gnu: libftdi: Install libraries to /lib instead of /lib64.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 1/8] gnu: libftdi: Update package style Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 2/8] gnu: libftdi: Do not build example programs Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 4/8] gnu: libftdi: Build ftdi_eeprom Simon South
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]<#:configure-flags>: Add
"-DLIB_SUFFIX".
---
 gnu/packages/libftdi.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index ae7cbe62f2..f38346d8b2 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -40,7 +40,10 @@ (define-public libftdi
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
     (arguments
-     (list #:configure-flags #~(list "-DEXAMPLES=OFF")))
+     (list
+      #:configure-flags
+      #~(list "-DEXAMPLES=OFF"
+              "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
-- 
2.40.1





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

* [bug#65807] [PATCH 4/8] gnu: libftdi: Build ftdi_eeprom.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (2 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 3/8] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 5/8] gnu: libftdi: Build C++ bindings Simon South
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]<#:configure-flags>: Add
"-DCMAKE_INSTALL_DOCDIR".
[native-inputs]: Add with pkg-config.
[inputs]: Add with libconfuse.
[license]: Add GPL version 2.
---
 gnu/packages/libftdi.scm | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index f38346d8b2..c5461bcf87 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -24,7 +24,9 @@ (define-module (gnu packages libftdi)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:use-module (gnu packages libusb))
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages textutils))
 
 (define-public libftdi
   (package
@@ -42,8 +44,14 @@ (define-public libftdi
     (arguments
      (list
       #:configure-flags
-      #~(list "-DEXAMPLES=OFF"
+      #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
+                             #$output "/share/doc/" #$name "-" #$version)
+              "-DEXAMPLES=OFF"
               "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libconfuse))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
@@ -51,4 +59,5 @@ (define-public libftdi
     (description
      "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
 FT2232D, FT245R and FT232H including the popular bitbangmode.")
-    (license license:lgpl2.1)))
+    (license (list license:gpl2         ; ftdi_eeprom
+                   license:lgpl2.1))))  ; main library
-- 
2.40.1





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

* [bug#65807] [PATCH 5/8] gnu: libftdi: Build C++ bindings.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (3 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 4/8] gnu: libftdi: Build ftdi_eeprom Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 6/8] gnu: libftdi: Build Python bindings Simon South
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

Enabling the C++ bindings allows the test suite to be run, although this fails
without access to the host's USB interface.

* gnu/packages/libftdi.scm (libftdi)[arguments]: Add #:test-target, #:tests?.
(inputs): Add boost.
---
 gnu/packages/libftdi.scm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index c5461bcf87..b5f481e9ba 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -24,6 +24,7 @@ (define-module (gnu packages libftdi)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages textutils))
@@ -47,11 +48,13 @@ (define-public libftdi
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
-              "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
+              "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+      #:test-target "check"
+      #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
      (list pkg-config))
     (inputs
-     (list libconfuse))
+     (list boost libconfuse))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
@@ -59,5 +62,5 @@ (define-public libftdi
     (description
      "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
 FT2232D, FT245R and FT232H including the popular bitbangmode.")
-    (license (list license:gpl2         ; ftdi_eeprom
+    (license (list license:gpl2         ; ftdi_eeprom, C++ bindings
                    license:lgpl2.1))))  ; main library
-- 
2.40.1





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

* [bug#65807] [PATCH 6/8] gnu: libftdi: Build Python bindings.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (4 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 5/8] gnu: libftdi: Build C++ bindings Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 7/8] gnu: libftdi: Update to 1.5 Simon South
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[outputs]: Add "python".
[arguments]<#:phases>: Add with "install-python-binding" phase.
[native-inputs]: Add python, swig.
---
 gnu/packages/libftdi.scm | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index b5f481e9ba..d9ebd4a2df 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2023 Simon South <simon@simonsouth.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,15 +19,19 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages libftdi)
+  #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages textutils))
 
 (define-public libftdi
@@ -42,6 +47,7 @@ (define-public libftdi
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
+    (outputs '("out" "python"))
     (arguments
      (list
       #:configure-flags
@@ -49,10 +55,26 @@ (define-public libftdi
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
               "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-python-binding
+            (lambda _
+              (let* ((python-version
+                      #$(version-major+minor (package-version python)))
+                     (python-lib-path
+                      (string-append "/lib/python" python-version)))
+                (mkdir-p (string-append #$output:python "/lib"))
+                (mkdir-p (string-append #$output:python "/share/libftdi"))
+                (rename-file (string-append #$output python-lib-path)
+                             (string-append #$output:python python-lib-path))
+                (rename-file (string-append #$output
+                                            "/share/libftdi/examples")
+                             (string-append #$output:python
+                                            "/share/libftdi/examples"))))))
       #:test-target "check"
       #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
-     (list pkg-config))
+     (list pkg-config python swig))
     (inputs
      (list boost libconfuse))
     (propagated-inputs
-- 
2.40.1





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

* [bug#65807] [PATCH 7/8] gnu: libftdi: Update to 1.5.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (5 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 6/8] gnu: libftdi: Build Python bindings Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 15:45 ` [bug#65807] [PATCH 8/8] gnu: libftdi: Build API documentation Simon South
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/libftdi.scm (libftdi): Update to 1.5.
[source]: Apply patch.
[arguments]<#:configure-flags>: Add "-DFTDIPP", "-DPYTHON_BINDINGS".
---
 gnu/local.mk                                  |  1 +
 gnu/packages/libftdi.scm                      | 10 +++--
 .../libftdi-fix-paths-when-FTDIPP-set.patch   | 39 +++++++++++++++++++
 3 files changed, 47 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 54aec9316a..1f1f9450ab 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1445,6 +1445,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/julia-Use-MPFR-4.2.patch	                \
+  %D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch	\
   %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch	\
   %D%/packages/patches/libobjc2-unbundle-robin-map.patch	\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index d9ebd4a2df..ae3e6cf660 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -37,7 +37,7 @@ (define-module (gnu packages libftdi)
 (define-public libftdi
   (package
     (name "libftdi")
-    (version "1.4")
+    (version "1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -45,7 +45,9 @@ (define-public libftdi
                     "libftdi1-" version ".tar.bz2"))
               (sha256
                (base32
-                "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
+                "0jdh5r499wbz83vmpskczq5m3cfc1mcv8xqisj5i95k1r3lr2w3w"))
+              (patches
+               (search-patches "libftdi-fix-paths-when-FTDIPP-set.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "python"))
     (arguments
@@ -54,7 +56,9 @@ (define-public libftdi
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
-              "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+              "-DFTDIPP=ON"
+              "-DLIB_SUFFIX=''"         ; place libraries in /lib, not /lib64
+              "-DPYTHON_BINDINGS=ON")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'install 'install-python-binding
diff --git a/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch
new file mode 100644
index 0000000000..0a81cceb26
--- /dev/null
+++ b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch
@@ -0,0 +1,39 @@
+commit cdb28383402d248dbc6062f4391b038375c52385
+Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date:   Fri Jul 17 21:25:03 2020 +0200
+
+    CMakeLists.txt: fix paths when FTDIPP is set
+    
+    Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP
+    is enabled as suggested by Aurelien Jarno in
+    http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html
+    
+    Without this change, the libftdi1.pc config file defines the include
+    path as /usr/local/include/libftdipp1 while the ftdi.h file is actually
+    installed in /usr/local/include/libftdi1
+    
+    This is an issue for example for libsigrok which will fail on:
+    
+    In file included from src/hardware/asix-sigma/protocol.c:27:
+    src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or directory
+       28 | #include <ftdi.h>
+          |          ^~~~~~~~
+    
+    Fixes:
+     - http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe
+    
+    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5aecafc..3b0b87c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -136,7 +136,7 @@ endif ()
+ 
+ add_subdirectory(src)
+ if ( FTDIPP )
+-  project(libftdipp1 C CXX)
++  project(libftdi1 C CXX)
+   add_subdirectory(ftdipp)
+ endif ()
+ if ( PYTHON_BINDINGS )
-- 
2.40.1





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

* [bug#65807] [PATCH 8/8] gnu: libftdi: Build API documentation.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (6 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 7/8] gnu: libftdi: Update to 1.5 Simon South
@ 2023-09-07 15:45 ` Simon South
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
  8 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 15:45 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[outputs]: Add "doc" output.
[arguments]<#:configure-flags>: Add "-DDOCUMENTATION".
<#:phases>: Add "install-documentation" phase.
[native-inputs]: Add doxygen, graphviz.
---
 gnu/packages/libftdi.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index ae3e6cf660..f4998cd84e 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -28,6 +28,8 @@ (define-module (gnu packages libftdi)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -49,12 +51,13 @@ (define-public libftdi
               (patches
                (search-patches "libftdi-fix-paths-when-FTDIPP-set.patch"))))
     (build-system cmake-build-system)
-    (outputs '("out" "python"))
+    (outputs '("out" "doc" "python"))
     (arguments
      (list
       #:configure-flags
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
+              "-DDOCUMENTATION=ON"
               "-DEXAMPLES=OFF"
               "-DFTDIPP=ON"
               "-DLIB_SUFFIX=''"         ; place libraries in /lib, not /lib64
@@ -74,11 +77,20 @@ (define-public libftdi
                 (rename-file (string-append #$output
                                             "/share/libftdi/examples")
                              (string-append #$output:python
-                                            "/share/libftdi/examples"))))))
+                                            "/share/libftdi/examples")))))
+          (add-after 'install-python-binding 'install-documentation
+            (lambda _
+              (let ((share (string-append #$output:doc "/share")))
+                (copy-recursively "doc/man"
+                                  (string-append share "/man"))
+                (copy-recursively "doc/html"
+                                  (string-append share "/doc/"
+                                                 #$name "-" #$version
+                                                 "/html"))))))
       #:test-target "check"
       #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
-     (list pkg-config python swig))
+     (list doxygen graphviz pkg-config python swig))
     (inputs
      (list boost libconfuse))
     (propagated-inputs
-- 
2.40.1





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

* [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements.
  2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
                   ` (7 preceding siblings ...)
  2023-09-07 15:45 ` [bug#65807] [PATCH 8/8] gnu: libftdi: Build API documentation Simon South
@ 2023-09-07 16:37 ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 1/9] gnu: libftdi: Update package style Simon South
                     ` (9 more replies)
  8 siblings, 10 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

Here's a v2 of this patch series that adds a commit updating the package's
source URL to use HTTPS instead of HTTP, silencing a warning from guix lint.
(There's always something...)

Everything else is unchanged.  Here's the original cover letter:

This patch series updates and improves the package for libftdi, a library for
communicating with USB-to-serial adapter ICs from FTDI.

The patches

  - Refresh gently the formatting of the package;

  - Disable the building of example programs, which aren't installed anyway;

  - Enable the building of libftdi's ftdi_eeprom utility, its bindings for C++
    and Python, and its API documentation; and

  - Update libftdi to its latest version, 1.5.

I've kept the package in its own module as moving it to embedded.scm, where it
probably belongs, triggers the circular-dependency problem described in issue
65716.[0]

I've tested this on AArch64 and x86-64 with an FT232H module and everything
appears fine.  All of libftdi's 14 dependents continue to build with the
exception of arachne-pnr, an existing failure.[1]

[0] https://issues.guix.gnu.org/65716

[1] http://ci.guix.gnu.org/search?query=arachne-pnr

---

Simon South (9):
  gnu: libftdi: Update package style.
  gnu: libftdi: Use HTTPS for package source.
  gnu: libftdi: Do not build example programs.
  gnu: libftdi: Install libraries to /lib instead of /lib64.
  gnu: libftdi: Build ftdi_eeprom.
  gnu: libftdi: Build C++ bindings.
  gnu: libftdi: Build Python bindings.
  gnu: libftdi: Update to 1.5.
  gnu: libftdi: Build API documentation.

 gnu/local.mk                                  |  1 +
 gnu/packages/libftdi.scm                      | 77 ++++++++++++++++---
 .../libftdi-fix-paths-when-FTDIPP-set.patch   | 39 ++++++++++
 3 files changed, 106 insertions(+), 11 deletions(-)
 create mode 100644 gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch


base-commit: 811f4fc509a57ff14b1dd03d76fea66085e3f5e1
-- 
2.40.1





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

* [bug#65807] [PATCH v2 1/9] gnu: libftdi: Update package style.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 2/9] gnu: libftdi: Use HTTPS for package source Simon South
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm: Re-order #:use-module statements.
(libftdi): Wrap long lines; reformat gently.
[license]: Use "license:" prefix.
---
 gnu/packages/libftdi.scm | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index e39e0b3d71..4cfa1d3424 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -18,12 +18,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages libftdi)
-  #:use-module (guix licenses)
+  #:use-module (guix build-system cmake)
   #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:use-module (gnu packages libusb)
-  #:use-module (guix build-system cmake))
+  #:use-module (gnu packages libusb))
 
 (define-public libftdi
   (package
@@ -32,18 +32,17 @@ (define-public libftdi
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-"
-                    version ".tar.bz2"))
+                    "http://www.intra2net.com/en/developer/libftdi/download/"
+                    "libftdi1-" version ".tar.bz2"))
               (sha256
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
     (propagated-inputs
-     (list libusb)) ; required by libftdi1.pc
+     (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
     (synopsis "FTDI USB driver with bitbang mode")
     (description
-     "libFTDI is a library to talk to FTDI chips: FT232BM,
-FT245BM, FT2232C, FT2232D, FT245R and FT232H including the popular
-bitbangmode.")
-    (license lgpl2.1)))
+     "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
+FT2232D, FT245R and FT232H including the popular bitbangmode.")
+    (license license:lgpl2.1)))
-- 
2.40.1





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

* [bug#65807] [PATCH v2 2/9] gnu: libftdi: Use HTTPS for package source.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 1/9] gnu: libftdi: Update package style Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 3/9] gnu: libftdi: Do not build example programs Simon South
                     ` (7 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[source]: Use HTTPS.
---
 gnu/packages/libftdi.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 4cfa1d3424..b881aa5cc2 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -32,7 +32,7 @@ (define-public libftdi
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.intra2net.com/en/developer/libftdi/download/"
+                    "https://www.intra2net.com/en/developer/libftdi/download/"
                     "libftdi1-" version ".tar.bz2"))
               (sha256
                (base32
-- 
2.40.1





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

* [bug#65807] [PATCH v2 3/9] gnu: libftdi: Do not build example programs.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 1/9] gnu: libftdi: Update package style Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 2/9] gnu: libftdi: Use HTTPS for package source Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 4/9] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
                     ` (6 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]: Add with "-DEXAMPLES"
configure flag.
---
 gnu/packages/libftdi.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index b881aa5cc2..74df12a354 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -20,6 +20,7 @@
 (define-module (gnu packages libftdi)
   #:use-module (guix build-system cmake)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
@@ -38,6 +39,8 @@ (define-public libftdi
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-DEXAMPLES=OFF")))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
-- 
2.40.1





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

* [bug#65807] [PATCH v2 4/9] gnu: libftdi: Install libraries to /lib instead of /lib64.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (2 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 3/9] gnu: libftdi: Do not build example programs Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 5/9] gnu: libftdi: Build ftdi_eeprom Simon South
                     ` (5 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]<#:configure-flags>: Add
"-DLIB_SUFFIX".
---
 gnu/packages/libftdi.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 74df12a354..1e97793a93 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -40,7 +40,10 @@ (define-public libftdi
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
     (arguments
-     (list #:configure-flags #~(list "-DEXAMPLES=OFF")))
+     (list
+      #:configure-flags
+      #~(list "-DEXAMPLES=OFF"
+              "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
-- 
2.40.1





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

* [bug#65807] [PATCH v2 5/9] gnu: libftdi: Build ftdi_eeprom.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (3 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 4/9] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 6/9] gnu: libftdi: Build C++ bindings Simon South
                     ` (4 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[arguments]<#:configure-flags>: Add
"-DCMAKE_INSTALL_DOCDIR".
[native-inputs]: Add with pkg-config.
[inputs]: Add with libconfuse.
[license]: Add GPL version 2.
---
 gnu/packages/libftdi.scm | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 1e97793a93..b3fb717905 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -24,7 +24,9 @@ (define-module (gnu packages libftdi)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
-  #:use-module (gnu packages libusb))
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages textutils))
 
 (define-public libftdi
   (package
@@ -42,8 +44,14 @@ (define-public libftdi
     (arguments
      (list
       #:configure-flags
-      #~(list "-DEXAMPLES=OFF"
+      #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
+                             #$output "/share/doc/" #$name "-" #$version)
+              "-DEXAMPLES=OFF"
               "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list libconfuse))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
@@ -51,4 +59,5 @@ (define-public libftdi
     (description
      "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
 FT2232D, FT245R and FT232H including the popular bitbangmode.")
-    (license license:lgpl2.1)))
+    (license (list license:gpl2         ; ftdi_eeprom
+                   license:lgpl2.1))))  ; main library
-- 
2.40.1





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

* [bug#65807] [PATCH v2 6/9] gnu: libftdi: Build C++ bindings.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (4 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 5/9] gnu: libftdi: Build ftdi_eeprom Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 7/9] gnu: libftdi: Build Python bindings Simon South
                     ` (3 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

Enabling the C++ bindings allows the test suite to be run, although this fails
without access to the host's USB interface.

* gnu/packages/libftdi.scm (libftdi)[arguments]: Add #:test-target, #:tests?.
(inputs): Add boost.
---
 gnu/packages/libftdi.scm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index b3fb717905..0a996b05e7 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -24,6 +24,7 @@ (define-module (gnu packages libftdi)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages textutils))
@@ -47,11 +48,13 @@ (define-public libftdi
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
-              "-DLIB_SUFFIX=''")))      ; place libraries in /lib, not /lib64
+              "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+      #:test-target "check"
+      #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
      (list pkg-config))
     (inputs
-     (list libconfuse))
+     (list boost libconfuse))
     (propagated-inputs
      (list libusb))                     ; required by libftdi1.pc
     (home-page "https://www.intra2net.com/en/developer/libftdi/")
@@ -59,5 +62,5 @@ (define-public libftdi
     (description
      "libFTDI is a library to talk to FTDI chips: FT232BM, FT245BM, FT2232C,
 FT2232D, FT245R and FT232H including the popular bitbangmode.")
-    (license (list license:gpl2         ; ftdi_eeprom
+    (license (list license:gpl2         ; ftdi_eeprom, C++ bindings
                    license:lgpl2.1))))  ; main library
-- 
2.40.1





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

* [bug#65807] [PATCH v2 7/9] gnu: libftdi: Build Python bindings.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (5 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 6/9] gnu: libftdi: Build C++ bindings Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 8/9] gnu: libftdi: Update to 1.5 Simon South
                     ` (2 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[outputs]: Add "python".
[arguments]<#:phases>: Add with "install-python-binding" phase.
[native-inputs]: Add python, swig.
---
 gnu/packages/libftdi.scm | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 0a996b05e7..773b0ec73e 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2023 Simon South <simon@simonsouth.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,15 +19,19 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages libftdi)
+  #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages textutils))
 
 (define-public libftdi
@@ -42,6 +47,7 @@ (define-public libftdi
                (base32
                 "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
     (build-system cmake-build-system)
+    (outputs '("out" "python"))
     (arguments
      (list
       #:configure-flags
@@ -49,10 +55,26 @@ (define-public libftdi
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
               "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-python-binding
+            (lambda _
+              (let* ((python-version
+                      #$(version-major+minor (package-version python)))
+                     (python-lib-path
+                      (string-append "/lib/python" python-version)))
+                (mkdir-p (string-append #$output:python "/lib"))
+                (mkdir-p (string-append #$output:python "/share/libftdi"))
+                (rename-file (string-append #$output python-lib-path)
+                             (string-append #$output:python python-lib-path))
+                (rename-file (string-append #$output
+                                            "/share/libftdi/examples")
+                             (string-append #$output:python
+                                            "/share/libftdi/examples"))))))
       #:test-target "check"
       #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
-     (list pkg-config))
+     (list pkg-config python swig))
     (inputs
      (list boost libconfuse))
     (propagated-inputs
-- 
2.40.1





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

* [bug#65807] [PATCH v2 8/9] gnu: libftdi: Update to 1.5.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (6 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 7/9] gnu: libftdi: Build Python bindings Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 9/9] gnu: libftdi: Build API documentation Simon South
  2023-09-14 21:38   ` bug#65807: [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Ludovic Courtès
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/libftdi.scm (libftdi): Update to 1.5.
[source]: Apply patch.
[arguments]<#:configure-flags>: Add "-DFTDIPP", "-DPYTHON_BINDINGS".
---
 gnu/local.mk                                  |  1 +
 gnu/packages/libftdi.scm                      | 10 +++--
 .../libftdi-fix-paths-when-FTDIPP-set.patch   | 39 +++++++++++++++++++
 3 files changed, 47 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 54aec9316a..1f1f9450ab 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1445,6 +1445,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch		\
   %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
   %D%/packages/patches/julia-Use-MPFR-4.2.patch	                \
+  %D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch	\
   %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch	\
   %D%/packages/patches/libobjc2-unbundle-robin-map.patch	\
   %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index 773b0ec73e..bdfc635379 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -37,7 +37,7 @@ (define-module (gnu packages libftdi)
 (define-public libftdi
   (package
     (name "libftdi")
-    (version "1.4")
+    (version "1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -45,7 +45,9 @@ (define-public libftdi
                     "libftdi1-" version ".tar.bz2"))
               (sha256
                (base32
-                "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc"))))
+                "0jdh5r499wbz83vmpskczq5m3cfc1mcv8xqisj5i95k1r3lr2w3w"))
+              (patches
+               (search-patches "libftdi-fix-paths-when-FTDIPP-set.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "python"))
     (arguments
@@ -54,7 +56,9 @@ (define-public libftdi
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
               "-DEXAMPLES=OFF"
-              "-DLIB_SUFFIX=''")        ; place libraries in /lib, not /lib64
+              "-DFTDIPP=ON"
+              "-DLIB_SUFFIX=''"         ; place libraries in /lib, not /lib64
+              "-DPYTHON_BINDINGS=ON")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'install 'install-python-binding
diff --git a/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch
new file mode 100644
index 0000000000..0a81cceb26
--- /dev/null
+++ b/gnu/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch
@@ -0,0 +1,39 @@
+commit cdb28383402d248dbc6062f4391b038375c52385
+Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date:   Fri Jul 17 21:25:03 2020 +0200
+
+    CMakeLists.txt: fix paths when FTDIPP is set
+    
+    Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP
+    is enabled as suggested by Aurelien Jarno in
+    http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html
+    
+    Without this change, the libftdi1.pc config file defines the include
+    path as /usr/local/include/libftdipp1 while the ftdi.h file is actually
+    installed in /usr/local/include/libftdi1
+    
+    This is an issue for example for libsigrok which will fail on:
+    
+    In file included from src/hardware/asix-sigma/protocol.c:27:
+    src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or directory
+       28 | #include <ftdi.h>
+          |          ^~~~~~~~
+    
+    Fixes:
+     - http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe
+    
+    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5aecafc..3b0b87c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -136,7 +136,7 @@ endif ()
+ 
+ add_subdirectory(src)
+ if ( FTDIPP )
+-  project(libftdipp1 C CXX)
++  project(libftdi1 C CXX)
+   add_subdirectory(ftdipp)
+ endif ()
+ if ( PYTHON_BINDINGS )
-- 
2.40.1





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

* [bug#65807] [PATCH v2 9/9] gnu: libftdi: Build API documentation.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (7 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 8/9] gnu: libftdi: Update to 1.5 Simon South
@ 2023-09-07 16:37   ` Simon South
  2023-09-14 21:38   ` bug#65807: [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Ludovic Courtès
  9 siblings, 0 replies; 20+ messages in thread
From: Simon South @ 2023-09-07 16:37 UTC (permalink / raw)
  To: 65807

* gnu/packages/libftdi.scm (libftdi)[outputs]: Add "doc" output.
[arguments]<#:configure-flags>: Add "-DDOCUMENTATION".
<#:phases>: Add "install-documentation" phase.
[native-inputs]: Add doxygen, graphviz.
---
 gnu/packages/libftdi.scm | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm
index bdfc635379..02efcbbbc0 100644
--- a/gnu/packages/libftdi.scm
+++ b/gnu/packages/libftdi.scm
@@ -28,6 +28,8 @@ (define-module (gnu packages libftdi)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -49,12 +51,13 @@ (define-public libftdi
               (patches
                (search-patches "libftdi-fix-paths-when-FTDIPP-set.patch"))))
     (build-system cmake-build-system)
-    (outputs '("out" "python"))
+    (outputs '("out" "doc" "python"))
     (arguments
      (list
       #:configure-flags
       #~(list (string-append "-DCMAKE_INSTALL_DOCDIR="
                              #$output "/share/doc/" #$name "-" #$version)
+              "-DDOCUMENTATION=ON"
               "-DEXAMPLES=OFF"
               "-DFTDIPP=ON"
               "-DLIB_SUFFIX=''"         ; place libraries in /lib, not /lib64
@@ -74,11 +77,20 @@ (define-public libftdi
                 (rename-file (string-append #$output
                                             "/share/libftdi/examples")
                              (string-append #$output:python
-                                            "/share/libftdi/examples"))))))
+                                            "/share/libftdi/examples")))))
+          (add-after 'install-python-binding 'install-documentation
+            (lambda _
+              (let ((share (string-append #$output:doc "/share")))
+                (copy-recursively "doc/man"
+                                  (string-append share "/man"))
+                (copy-recursively "doc/html"
+                                  (string-append share "/doc/"
+                                                 #$name "-" #$version
+                                                 "/html"))))))
       #:test-target "check"
       #:tests? #f))                     ; tests fail without access to USB
     (native-inputs
-     (list pkg-config python swig))
+     (list doxygen graphviz pkg-config python swig))
     (inputs
      (list boost libconfuse))
     (propagated-inputs
-- 
2.40.1





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

* bug#65807: [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements.
  2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
                     ` (8 preceding siblings ...)
  2023-09-07 16:37   ` [bug#65807] [PATCH v2 9/9] gnu: libftdi: Build API documentation Simon South
@ 2023-09-14 21:38   ` Ludovic Courtès
  9 siblings, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2023-09-14 21:38 UTC (permalink / raw)
  To: Simon South; +Cc: 65807-done

Hello,

Simon South <simon@simonsouth.net> skribis:

>   gnu: libftdi: Update package style.
>   gnu: libftdi: Use HTTPS for package source.
>   gnu: libftdi: Do not build example programs.
>   gnu: libftdi: Install libraries to /lib instead of /lib64.
>   gnu: libftdi: Build ftdi_eeprom.
>   gnu: libftdi: Build C++ bindings.
>   gnu: libftdi: Build Python bindings.
>   gnu: libftdi: Update to 1.5.
>   gnu: libftdi: Build API documentation.

Applied, thanks!

Ludo’.




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

end of thread, other threads:[~2023-09-14 21:39 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-07 15:43 [bug#65807] [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 1/8] gnu: libftdi: Update package style Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 2/8] gnu: libftdi: Do not build example programs Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 3/8] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 4/8] gnu: libftdi: Build ftdi_eeprom Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 5/8] gnu: libftdi: Build C++ bindings Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 6/8] gnu: libftdi: Build Python bindings Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 7/8] gnu: libftdi: Update to 1.5 Simon South
2023-09-07 15:45 ` [bug#65807] [PATCH 8/8] gnu: libftdi: Build API documentation Simon South
2023-09-07 16:37 ` [bug#65807] [PATCH v2 0/9] gnu: libftdi: Update to 1.5; other improvements Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 1/9] gnu: libftdi: Update package style Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 2/9] gnu: libftdi: Use HTTPS for package source Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 3/9] gnu: libftdi: Do not build example programs Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 4/9] gnu: libftdi: Install libraries to /lib instead of /lib64 Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 5/9] gnu: libftdi: Build ftdi_eeprom Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 6/9] gnu: libftdi: Build C++ bindings Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 7/9] gnu: libftdi: Build Python bindings Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 8/9] gnu: libftdi: Update to 1.5 Simon South
2023-09-07 16:37   ` [bug#65807] [PATCH v2 9/9] gnu: libftdi: Build API documentation Simon South
2023-09-14 21:38   ` bug#65807: [PATCH 0/8] gnu: libftdi: Update to 1.5; other improvements Ludovic Courtès

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