Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libftdi1 for openSUSE:Factory 
checked in at 2024-10-15 14:57:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libftdi1 (Old)
 and      /work/SRC/openSUSE:Factory/.libftdi1.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libftdi1"

Tue Oct 15 14:57:50 2024 rev:23 rq:1207954 version:1.5.42+git.de9f01e

Changes:
--------
--- /work/SRC/openSUSE:Factory/libftdi1/libftdi1.changes        2023-03-25 
18:55:08.870598525 +0100
+++ /work/SRC/openSUSE:Factory/.libftdi1.new.19354/libftdi1.changes     
2024-10-15 14:58:00.803704096 +0200
@@ -1,0 +2,17 @@
+Mon May 13 13:19:55 UTC 2024 - [email protected]
+
+- Update to version 1.5.42+git.de9f01e:
+  * CMake: bump the minimal required version to 3.5
+  * python: move from distutils to sysconfig
+  * CMake: use ${PC_LIBUSB_LIBRARIES} instead of a library name
+  * CMake: fix multiarch support
+  * CMake: make the project compatible with building as a subproject
+  * ftdipp/CMakeLists.txt: remove VIM modline settings
+  * CMake: rework subdirectory handling
+  * CMake: rework findlibusb module
+  * CMake: report CMake version
+  * CMake: use dedicated recipe for documentation generation
+D 0001-Fix-race-during-build-of-python-bindings.patch
+Patch got integrated mainline
+
+-------------------------------------------------------------------

Old:
----
  0001-Fix-race-during-build-of-python-bindings.patch
  libftdi1-1.5.12+git.0684c1b.obscpio

New:
----
  _servicedata
  libftdi1-1.5.42+git.de9f01e.obscpio

BETA DEBUG BEGIN:
  Old:  * CMake: use dedicated recipe for documentation generation
D 0001-Fix-race-during-build-of-python-bindings.patch
Patch got integrated mainline
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libftdi1.spec ++++++
--- /var/tmp/diff_new_pack.pDJWsB/_old  2024-10-15 14:58:01.655739531 +0200
+++ /var/tmp/diff_new_pack.pDJWsB/_new  2024-10-15 14:58:01.655739531 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libftdi1
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,15 +19,13 @@
 %define sover -2
 %define libname %{name}%{sover}
 Name:           libftdi1
-Version:        1.5.12+git.0684c1b
+Version:        1.5.42+git.de9f01e
 Release:        0
 Summary:        Library to program and control the FTDI USB controller
 License:        LGPL-2.1-only AND GPL-2.0-only AND 
GPL-2.0-with-classpath-exception
 Group:          Hardware/Other
 URL:            https://www.intra2net.com/en/developer/libftdi
 Source:         libftdi1-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM: 
http://developer.intra2net.com/mailarchive/html/libftdi/2023/msg00005.html
-Patch1:         0001-Fix-race-during-build-of-python-bindings.patch
 BuildRequires:  cmake >= 2.8
 BuildRequires:  doxygen
 BuildRequires:  gcc-c++

++++++ _service ++++++
--- /var/tmp/diff_new_pack.pDJWsB/_old  2024-10-15 14:58:01.691741028 +0200
+++ /var/tmp/diff_new_pack.pDJWsB/_new  2024-10-15 14:58:01.695741195 +0200
@@ -1,5 +1,5 @@
 <services>
-  <service name="obs_scm" mode="localonly">
+  <service name="obs_scm" mode="manual">
     <param name="url">git://developer.intra2net.com/libftdi</param>
     <param name="scm">git</param>
     <param name="changesgenerate">enable</param>
@@ -8,7 +8,7 @@
     <param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@+git.%h</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>
-  <service name="set_version" mode="localonly"/>
+  <service name="set_version" mode="manual"/>
   <service name="tar" mode="buildtime"/>
   <service name="recompress" mode="buildtime">
     <param name="file">*.tar</param>

++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
                <param name="url">git://developer.intra2net.com/libftdi</param>
              <param 
name="changesrevision">de9f01ece34d2fe6e842e0250a38f4b16eda2429</param></service></servicedata>
(No newline at EOF)

++++++ libftdi1-1.5.12+git.0684c1b.obscpio -> 
libftdi1-1.5.42+git.de9f01e.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/.editorconfig 
new/libftdi1-1.5.42+git.de9f01e/.editorconfig
--- old/libftdi1-1.5.12+git.0684c1b/.editorconfig       1970-01-01 
01:00:00.000000000 +0100
+++ new/libftdi1-1.5.42+git.de9f01e/.editorconfig       2023-12-21 
16:14:35.000000000 +0100
@@ -0,0 +1,16 @@
+root = true
+
+[*]
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = false
+
+[{CMakeLists.txt,*.cmake}]
+indent_style = space
+indent_size = 2
+tab_width = 2
+
+[{*.c,*.h}]
+indent_style = space
+indent_size = 4
+tab_width = 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/CMakeLists.txt      2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/CMakeLists.txt      2023-12-21 
16:14:35.000000000 +0100
@@ -1,3 +1,7 @@
+cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
+
+message(STATUS "CMake version: ${CMAKE_VERSION}")
+
 # Project
 project(libftdi1 C)
 set(MAJOR_VERSION 1)
@@ -5,14 +9,30 @@
 set(PACKAGE libftdi1)
 set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION})
 set(VERSION ${VERSION_STRING})
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+
+# Support new if() IN_LIST operator
+if(POLICY CMP0057)
+  cmake_policy(SET CMP0057 NEW)
+endif()
+
+# Included scripts do automatic cmake_policy() PUSH and POP
+if(POLICY CMP0011)
+  cmake_policy(SET CMP0011 NEW)
+endif()
+
+# Target link properties INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES
+# and INTERFACE_LINK_DEPENDS are now transitive over private dependencies
+# of static libraries
+if(POLICY CMP0099)
+  cmake_policy(SET CMP0099 NEW)
+endif()
 
 # CMake
 if("${CMAKE_BUILD_TYPE}" STREQUAL "")
-   set(CMAKE_BUILD_TYPE     RelWithDebInfo)
+  set(CMAKE_BUILD_TYPE     RelWithDebInfo)
 endif("${CMAKE_BUILD_TYPE}" STREQUAL "")
 set(CMAKE_COLOR_MAKEFILE ON)
-cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
 
 add_definitions(-Wall)
 
@@ -21,11 +41,11 @@
 # Debug build
 message("-- Build type: ${CMAKE_BUILD_TYPE}")
 if(${CMAKE_BUILD_TYPE} STREQUAL Debug)
-   add_definitions(-DDEBUG)
+  add_definitions(-DDEBUG)
 endif(${CMAKE_BUILD_TYPE} STREQUAL Debug)
 
-# find libusb
-find_package ( USB1 REQUIRED )
+# Find libusb
+find_package ( LibUSB REQUIRED )
 include_directories ( ${LIBUSB_INCLUDE_DIR} )
 
 # Find Boost
@@ -50,7 +70,7 @@
 set(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
 set(CPACK_COMPONENT_HEADERS_GROUP    "Development")
 
-# guess LIB_SUFFIX, don't take debian multiarch into account 
+# guess LIB_SUFFIX, don't take debian multiarch into account
 if ( NOT DEFINED LIB_SUFFIX )
   if( CMAKE_SYSTEM_NAME MATCHES "Linux"
       AND NOT CMAKE_CROSSCOMPILING
@@ -64,9 +84,9 @@
 
 if(NOT APPLE)
   if(CMAKE_SIZEOF_VOID_P EQUAL 4)
-      SET(PACK_ARCH "")
-    else(CMAKE_SIZEOF_VOID_P EQUAL 8)
-      SET(PACK_ARCH .x86_64)
+    SET(PACK_ARCH "")
+  else(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    SET(PACK_ARCH .x86_64)
   endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
 else(NOT APPLE)
   SET(PACK_ARCH "")
@@ -76,8 +96,8 @@
 set(CPACK_PACKAGE_VERSION              ${VERSION_STRING})
 set(CPACK_PACKAGE_CONTACT              "Intra2net AG 
<[email protected]>")
 set(CPACK_PACKAGE_DESCRIPTION          "libftdi1 library.")
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY  ${CPACK_PACKAGE_DESCRIPTION}
-                                       )
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY  ${CPACK_PACKAGE_DESCRIPTION})
+
 # Package settings
 if ( UNIX )
   set(CPACK_GENERATOR                    "DEB;RPM")
@@ -97,7 +117,7 @@
   set ( CPACK_NSIS_MODIFY_PATH             ON )
 endif ()
 
-set(CPACK_RESOURCE_FILE_LICENSE        ${CMAKE_SOURCE_DIR}/LICENSE)
+set(CPACK_RESOURCE_FILE_LICENSE        ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
 
 set(CPACK_SOURCE_GENERATOR             TGZ)
 set(CPACK_SOURCE_IGNORE_FILES          "\\\\.git;~$;build/")
@@ -112,47 +132,37 @@
 set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${VERSION_STRING})
 add_custom_target(dist
     COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
-            | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-
-if ( DOCUMENTATION )
-   find_package ( Doxygen REQUIRED)
+      | bzip2 > ${PROJECT_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
 
-   # Copy doxy.config.in
-   set(top_srcdir ${CMAKE_SOURCE_DIR})
-   configure_file(${CMAKE_SOURCE_DIR}/doc/Doxyfile.in 
${CMAKE_BINARY_DIR}/Doxyfile )
-   configure_file(${CMAKE_SOURCE_DIR}/doc/Doxyfile.xml.in 
${CMAKE_BINARY_DIR}/Doxyfile.xml )
-
-   # Run doxygen
-   add_custom_command(
-    OUTPUT ${CMAKE_BINARY_DIR}/doc/html/index.html
-    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/doc
-    COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
-    DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers}
-   )
+add_subdirectory(src)
+add_subdirectory(packages)
 
-   add_custom_target(docs ALL DEPENDS ${CMAKE_BINARY_DIR}/doc/html/index.html)
-endif ()
+if ( DOCUMENTATION )
+  add_subdirectory(doc)
+endif ( DOCUMENTATION )
 
-add_subdirectory(src)
 if ( FTDIPP )
   project(libftdi1 C CXX)
   add_subdirectory(ftdipp)
-endif ()
+endif ( FTDIPP )
+
 if ( PYTHON_BINDINGS )
-add_subdirectory(python)
-endif ()
+  add_subdirectory(python)
+endif ( PYTHON_BINDINGS )
+
 if ( FTDI_EEPROM )
   add_subdirectory(ftdi_eeprom)
-endif ()
+endif ( FTDI_EEPROM )
+
 if ( EXAMPLES )
   add_subdirectory(examples)
-endif ()
-add_subdirectory(packages)
+endif ( EXAMPLES )
+
 if ( BUILD_TESTS )
   project(libftdi1 C CXX)
   add_subdirectory(test)
-endif ()
+endif ( BUILD_TESTS )
 
 # PkgConfig
 set(prefix      ${CMAKE_INSTALL_PREFIX})
@@ -160,16 +170,16 @@
 set(includedir  ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
 
 if(${UNIX})
-   set(libdir      ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+  set(libdir      ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
 endif(${UNIX})
 if(${WIN32})
-   set(libdir      ${CMAKE_INSTALL_PREFIX}/bin)
+  set(libdir      ${CMAKE_INSTALL_PREFIX}/bin)
 endif(${WIN32})
 
-configure_file(${CMAKE_SOURCE_DIR}/libftdi1.pc.in 
${CMAKE_BINARY_DIR}/libftdi1.pc @ONLY)
-configure_file(${CMAKE_SOURCE_DIR}/libftdipp1.pc.in 
${CMAKE_BINARY_DIR}/libftdipp1.pc @ONLY)
-install(FILES ${CMAKE_BINARY_DIR}/libftdi1.pc ${CMAKE_BINARY_DIR}/libftdipp1.pc
-        DESTINATION lib${LIB_SUFFIX}/pkgconfig)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libftdi1.pc.in 
${CMAKE_CURRENT_BINARY_DIR}/libftdi1.pc @ONLY)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libftdipp1.pc.in 
${CMAKE_CURRENT_BINARY_DIR}/libftdipp1.pc @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libftdi1.pc 
${CMAKE_CURRENT_BINARY_DIR}/libftdipp1.pc
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
 if (UNIX OR MINGW)
   configure_file ( libftdi1-config.in 
${CMAKE_CURRENT_BINARY_DIR}/libftdi1-config @ONLY )
@@ -179,7 +189,7 @@
 
 # config script install path
 if ( NOT DEFINED LIBFTDI_CMAKE_CONFIG_DIR )
-  set ( LIBFTDI_CMAKE_CONFIG_DIR lib${LIB_SUFFIX}/cmake/libftdi1 )
+  set ( LIBFTDI_CMAKE_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/libftdi1 )
 endif ()
 
 set ( LIBFTDI_INCLUDE_DIR ${includedir} )
@@ -203,39 +213,33 @@
 
 set ( LIBFTDI_USE_FILE 
${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake )
 
-if(CMAKE_VERSION VERSION_LESS 2.8.8) 
-  configure_file ( cmake/LibFTDI1Config.cmake.in 
${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake @ONLY )
-  configure_file ( cmake/LibFTDI1ConfigVersion.cmake.in 
${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake @ONLY )
-else ()
-  include(CMakePackageConfigHelpers)
+include(CMakePackageConfigHelpers)
 
-  configure_package_config_file (
-    cmake/LibFTDI1Config.cmake.in
-    ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
-    INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
-    PATH_VARS
-      LIBFTDI_USE_FILE
-      LIBFTDI_ROOT_DIR
-      LIBFTDI_INCLUDE_DIR
-      LIBFTDI_INCLUDE_DIRS
-      LIBFTDI_LIBRARY_DIRS
-    NO_CHECK_REQUIRED_COMPONENTS_MACRO
-  )
-  write_basic_package_version_file (
-    LibFTDI1ConfigVersion.cmake 
-    VERSION ${LIBFTDI_VERSION_STRING} 
-    COMPATIBILITY AnyNewerVersion
-  )
-endif ()
+configure_package_config_file (
+  cmake/LibFTDI1Config.cmake.in
+  ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
+  INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
+  PATH_VARS
+    LIBFTDI_USE_FILE
+    LIBFTDI_ROOT_DIR
+    LIBFTDI_INCLUDE_DIR
+    LIBFTDI_INCLUDE_DIRS
+    LIBFTDI_LIBRARY_DIRS
+  NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+write_basic_package_version_file (
+  LibFTDI1ConfigVersion.cmake
+  VERSION ${LIBFTDI_VERSION_STRING}
+  COMPATIBILITY AnyNewerVersion
+)
 
-
-install ( FILES 
-            ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
-            ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake
-            cmake/UseLibFTDI1.cmake
-
-          DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
-        )
+install (
+  FILES
+    ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
+    ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake
+    cmake/UseLibFTDI1.cmake
+  DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
+)
 
 include(CPack)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/cmake/FindLibUSB.cmake 
new/libftdi1-1.5.42+git.de9f01e/cmake/FindLibUSB.cmake
--- old/libftdi1-1.5.12+git.0684c1b/cmake/FindLibUSB.cmake      1970-01-01 
01:00:00.000000000 +0100
+++ new/libftdi1-1.5.42+git.de9f01e/cmake/FindLibUSB.cmake      2023-12-21 
16:14:35.000000000 +0100
@@ -0,0 +1,38 @@
+# - Try to find the libusb library
+# Once done this defines
+#
+#  LIBUSB_FOUND - system has libusb
+#  LIBUSB_INCLUDE_DIR - the libusb include directory
+#  LIBUSB_LIBRARIES - Link these to use libusb
+
+# Copyright (c) 2006, 2008  Laurent Montel, <[email protected]>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
+
+  # in cache already
+  set(LIBUSB_FOUND TRUE)
+
+else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
+  # use pkg-config to get the directories and then use these values
+  # in the FIND_PATH() and FIND_LIBRARY() calls
+  find_package(PkgConfig)
+  pkg_check_modules(PC_LIBUSB libusb-1.0)
+
+  find_path(LIBUSB_INCLUDE_DIR libusb.h
+    PATH_SUFFIXES libusb-1.0
+    PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
+
+  find_library(LIBUSB_LIBRARIES NAMES ${PC_LIBUSB_LIBRARIES}
+    PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
+
+  include(FindPackageHandleStandardArgs)
+  find_package_handle_standard_args(
+    LibUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR
+  )
+
+  mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
+
+endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/cmake/FindUSB1.cmake 
new/libftdi1-1.5.42+git.de9f01e/cmake/FindUSB1.cmake
--- old/libftdi1-1.5.12+git.0684c1b/cmake/FindUSB1.cmake        2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/cmake/FindUSB1.cmake        1970-01-01 
01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-# - Try to find the freetype library
-# Once done this defines
-#
-#  LIBUSB_FOUND - system has libusb
-#  LIBUSB_INCLUDE_DIR - the libusb include directory
-#  LIBUSB_LIBRARIES - Link these to use libusb
-
-# Copyright (c) 2006, 2008  Laurent Montel, <[email protected]>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-
-if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
-
-  # in cache already
-  set(LIBUSB_FOUND TRUE)
-
-else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
-  # use pkg-config to get the directories and then use these values
-  # in the FIND_PATH() and FIND_LIBRARY() calls
-  find_package(PkgConfig)
-  pkg_check_modules(PC_LIBUSB libusb-1.0)
-
-  FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
-    PATH_SUFFIXES libusb-1.0
-    PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-
-  FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0
-    PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
-
-  include(FindPackageHandleStandardArgs)
-  FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES 
LIBUSB_INCLUDE_DIR)
-
-  MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
-
-endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/doc/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/doc/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/doc/CMakeLists.txt  1970-01-01 
01:00:00.000000000 +0100
+++ new/libftdi1-1.5.42+git.de9f01e/doc/CMakeLists.txt  2023-12-21 
16:14:35.000000000 +0100
@@ -0,0 +1,26 @@
+find_package ( Doxygen REQUIRED )
+
+# Copy doxy.config.in
+configure_file(
+  ${PROJECT_SOURCE_DIR}/doc/Doxyfile.in
+  ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+)
+
+configure_file(
+  ${PROJECT_SOURCE_DIR}/doc/Doxyfile.xml.in
+  ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.xml
+)
+
+# Run doxygen
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html
+  COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+  COMMENT "Generating API documentation"
+  DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers}
+)
+
+add_custom_target(
+  docs ALL
+  COMMENT "Documentation target docs"
+  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/index.html
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/doc/Doxyfile.in 
new/libftdi1-1.5.42+git.de9f01e/doc/Doxyfile.in
--- old/libftdi1-1.5.12+git.0684c1b/doc/Doxyfile.in     2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/doc/Doxyfile.in     2023-12-21 
16:14:35.000000000 +0100
@@ -58,7 +58,7 @@
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = doc
+OUTPUT_DIRECTORY       = @CMAKE_CURRENT_BINARY_DIR@
 
 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format 
and
@@ -230,12 +230,6 @@
 
 ALIASES                =
 
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST              =
-
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
sources
 # only. Doxygen will then generate output that is more tailored for C. For
 # instance, some of the names that are used will be different. The list of all
@@ -765,8 +759,8 @@
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @top_srcdir@/src \
-                         @top_srcdir@/ftdipp
+INPUT                  = @PROJECT_SOURCE_DIR@/src \
+                         @PROJECT_SOURCE_DIR@/ftdipp
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -839,7 +833,7 @@
 # that contain example code fragments that are included (see the \include
 # command).
 
-EXAMPLE_PATH           = @top_srcdir@/examples
+EXAMPLE_PATH           = @PROJECT_SOURCE_DIR@/examples
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -1006,13 +1000,6 @@
 
 ALPHABETICAL_INDEX     = NO
 
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX    = 5
-
 # In case all classes in a project start with a common prefix, all classes will
 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
 # can be used to specify a prefix (or a list of prefixes) that should be 
ignored
@@ -1615,7 +1602,7 @@
 # The default value is: a4.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-PAPER_TYPE             = a4wide
+PAPER_TYPE             = a4
 
 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
 # that should be included in the LaTeX output. The package can be specified 
just
@@ -2072,12 +2059,6 @@
 
 EXTERNAL_PAGES         = YES
 
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH              = /usr/bin/perl
-
 #---------------------------------------------------------------------------
 # Configuration options related to the dot tool
 #---------------------------------------------------------------------------
@@ -2091,15 +2072,6 @@
 
 CLASS_DIAGRAMS         = YES
 
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
 # You can include diagrams made with dia in doxygen documentation. Doxygen will
 # then run dia to produce the diagram and insert it in the documentation. The
 # DIA_PATH tag allows you to specify the directory where the dia binary 
resides.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/doc/Doxyfile.xml.in 
new/libftdi1-1.5.42+git.de9f01e/doc/Doxyfile.xml.in
--- old/libftdi1-1.5.12+git.0684c1b/doc/Doxyfile.xml.in 2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/doc/Doxyfile.xml.in 2023-12-21 
16:14:35.000000000 +0100
@@ -2,7 +2,7 @@
 
 # xml generation only
 # keep settings but shut off all other generation
-@INCLUDE = Doxyfile
+@INCLUDE = doc/Doxyfile
 
 GENERATE_TODOLIST      = NO
 GENERATE_TESTLIST      = NO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/examples/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/examples/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/examples/CMakeLists.txt     2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/examples/CMakeLists.txt     2023-12-21 
16:14:35.000000000 +0100
@@ -1,7 +1,7 @@
 # Includes
 include_directories( ${CMAKE_CURRENT_SOURCE_DIR}
-               ${CMAKE_CURRENT_BINARY_DIR}
-               )
+  ${CMAKE_CURRENT_BINARY_DIR}
+)
 
 # Targets
 add_executable(simple simple.c)
@@ -16,7 +16,7 @@
 add_executable(eeprom eeprom.c)
 add_executable(async async.c)
 if(NOT MINGW)
-    add_executable(purge_test purge_test.c)
+  add_executable(purge_test purge_test.c)
 endif(NOT MINGW)
 
 # Linkage
@@ -32,20 +32,21 @@
 target_link_libraries(eeprom ftdi1)
 target_link_libraries(async ftdi1)
 if(NOT MINGW)
-    target_link_libraries(purge_test ftdi1)
+  target_link_libraries(purge_test ftdi1)
 endif(NOT MINGW)
 
 # libftdi++ examples
 if( FTDIPP )
-       include_directories(BEFORE ${CMAKE_SOURCE_DIR}/ftdipp
-                       ${Boost_INCLUDE_DIRS})
+  include_directories(BEFORE ${PROJECT_SOURCE_DIR}/ftdipp
+    ${Boost_INCLUDE_DIRS}
+  )
 
-       # Target
-       add_executable(find_all_pp find_all_pp.cpp)
+  # Target
+  add_executable(find_all_pp find_all_pp.cpp)
 
-       # Linkage
-       target_link_libraries(find_all_pp ftdipp1)
+  # Linkage
+  target_link_libraries(find_all_pp ftdipp1)
 endif( FTDIPP )
 
 # Source includes
-include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src)
+include_directories(BEFORE ${PROJECT_SOURCE_DIR}/src)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libftdi1-1.5.12+git.0684c1b/examples/cmake_example/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/examples/cmake_example/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/examples/cmake_example/CMakeLists.txt       
2021-05-04 18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/examples/cmake_example/CMakeLists.txt       
2023-12-21 16:14:35.000000000 +0100
@@ -1,4 +1,4 @@
-cmake_minimum_required ( VERSION 2.8 )
+cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
 
 project ( example C )
 
@@ -9,5 +9,5 @@
 target_link_libraries( example ${LIBFTDI_LIBRARIES} )
 
 install ( TARGETS example
-          DESTINATION bin )
-          
+          DESTINATION bin
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/examples/eeprom.c 
new/libftdi1-1.5.42+git.de9f01e/examples/eeprom.c
--- old/libftdi1-1.5.12+git.0684c1b/examples/eeprom.c   2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/examples/eeprom.c   2023-12-21 
16:14:35.000000000 +0100
@@ -90,6 +90,8 @@
         return EXIT_FAILURE;
     }
 
+    ftdi->module_detach_mode = AUTO_DETACH_REATACH_SIO_MODULE;
+
     while ((i = getopt(argc, argv, "d::ev:p:l:P:S:w")) != -1)
     {
         switch (i)
@@ -151,14 +153,14 @@
         if (res > 1)
         {
             int i = 1;
-            fprintf(stderr, "%d FTDI devices found: Only Readout on EEPROM 
done. ",res);
+            fprintf(stderr, "%d FTDI devices found: Only Readout on EEPROM 
done. \n",res);
             fprintf(stderr, "Use VID/PID/desc/serial to select device\n");
             for (curdev = devlist; curdev != NULL; curdev= curdev->next, i++)
             {
                 f = ftdi_usb_open_dev(ftdi,  curdev->dev);
                 if (f<0)
                 {
-                    fprintf(stderr, "Unable to open device %d: (%s)",
+                    fprintf(stderr, "Unable to open device %d: (%s)\n",
                             i, ftdi_get_error_string(ftdi));
                     continue;
                 }
@@ -175,7 +177,7 @@
             f = ftdi_usb_open_dev(ftdi,  devlist[0].dev);
             if (f<0)
             {
-                fprintf(stderr, "Unable to open device %d: (%s)",
+                fprintf(stderr, "Unable to open device %d: (%s)\n",
                         i, ftdi_get_error_string(ftdi));
             }
         }
@@ -200,7 +202,7 @@
             fprintf(stderr, "\n");
             fprintf(stderr, "unable to open ftdi device: %d (%s)\n",
                     f, ftdi_get_error_string(ftdi));
-            
+
             retval = -1;
             goto done;
         }
@@ -210,7 +212,7 @@
         f = ftdi_erase_eeprom(ftdi); /* needed to determine EEPROM chip type */
         if (f < 0)
         {
-            fprintf(stderr, "Erase failed: %s",
+            fprintf(stderr, "Erase failed: %s\n",
                     ftdi_get_error_string(ftdi));
             retval =  -2;
             goto done;
@@ -277,7 +279,7 @@
         f=(ftdi_eeprom_build(ftdi));
         if (f < 0)
         {
-            fprintf(stderr, "Erase failed: %s",
+            fprintf(stderr, "Erase failed: %s\n",
                     ftdi_get_error_string(ftdi));
             retval = -2;
             goto done;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libftdi1-1.5.12+git.0684c1b/ftdi_eeprom/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/ftdi_eeprom/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/ftdi_eeprom/CMakeLists.txt  2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/ftdi_eeprom/CMakeLists.txt  2023-12-21 
16:14:35.000000000 +0100
@@ -27,7 +27,7 @@
 set ( EEPROM_MINOR_VERSION 17 )
 set ( EEPROM_VERSION_STRING ${EEPROM_MAJOR_VERSION}.${EEPROM_MINOR_VERSION} )
 
-include_directories ( BEFORE ${CMAKE_SOURCE_DIR}/src )
+include_directories ( BEFORE ${PROJECT_SOURCE_DIR}/src )
 include_directories ( BEFORE ${CMAKE_CURRENT_BINARY_DIR} )
 
 configure_file(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/ftdipp/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/ftdipp/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/ftdipp/CMakeLists.txt       2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/ftdipp/CMakeLists.txt       2023-12-21 
16:14:35.000000000 +0100
@@ -1,13 +1,12 @@
-# vim: ts=2:sw=2:sts=2
-
 # Targets
 set(cpp_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.cpp CACHE INTERNAL "List of 
cpp sources" )
 set(cpp_headers ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.hpp CACHE INTERNAL "List of 
cpp headers" )
 
 # Includes
 include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
-       ${CMAKE_CURRENT_SOURCE_DIR}
-       ${CMAKE_SOURCE_DIR}/src)
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${PROJECT_SOURCE_DIR}/src
+)
 
 include_directories(${Boost_INCLUDE_DIRS})
 
@@ -24,24 +23,24 @@
 target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
 
 install ( TARGETS ftdipp1
-                                       RUNTIME DESTINATION bin
-                                       LIBRARY DESTINATION lib${LIB_SUFFIX}
-                                       ARCHIVE DESTINATION lib${LIB_SUFFIX}
-                               )
+          RUNTIME DESTINATION bin
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
 
 # Static library
 if ( STATICLIBS )
-       add_library(ftdipp1-static STATIC ${cpp_sources})
-       set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
-       set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-
-       install ( TARGETS ftdipp1-static
-                                               ARCHIVE DESTINATION 
lib${LIB_SUFFIX}
-                                               COMPONENT staticlibs
-                                       )
+  add_library(ftdipp1-static STATIC ${cpp_sources})
+  set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
+  set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+
+  install ( TARGETS ftdipp1-static
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            COMPONENT staticlibs
+  )
 endif ()
 
 install ( FILES ${cpp_headers}
-                                       DESTINATION include/${PROJECT_NAME}
-                                       COMPONENT headers
-                               )
+          DESTINATION include/${PROJECT_NAME}
+          COMPONENT headers
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/packages/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/packages/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/packages/CMakeLists.txt     2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/packages/CMakeLists.txt     2023-12-21 
16:14:35.000000000 +0100
@@ -1,19 +1,19 @@
 # Debian
 if("${PACKAGE}" STREQUAL "Debian")
 
-   # Settings
-   set(REVISION                           0)
-   set(CPACK_GENERATOR                    "DEB" PARENT_SCOPE)
-   set(CPACK_PACKAGE_VERSION              ${CPACK_PACKAGE_VERSION}-${REVISION} 
PARENT_SCOPE)
+  # Settings
+  set(REVISION                           0)
+  set(CPACK_GENERATOR                    "DEB" PARENT_SCOPE)
+  set(CPACK_PACKAGE_VERSION              ${CPACK_PACKAGE_VERSION}-${REVISION} 
PARENT_SCOPE)
 
-   # Dependencies
-   set(CPACK_DEBIAN_PACKAGE_DEPENDS       "libusb-1.0-0" PARENT_SCOPE)
-   set(DEBIAN_PACKAGE_BUILDS_DEPENDS      "cmake, libusb2-dev" PARENT_SCOPE)
+  # Dependencies
+  set(CPACK_DEBIAN_PACKAGE_DEPENDS       "libusb-1.0-0" PARENT_SCOPE)
+  set(DEBIAN_PACKAGE_BUILDS_DEPENDS      "cmake, libusb2-dev" PARENT_SCOPE)
 
-   # Bundles
-   message("-- Installing udev rules to /etc/udev/rules.d")
-   install(FILES 99-libftdi.rules
-           DESTINATION /etc/udev/rules.d)
+  # Bundles
+  message("-- Installing udev rules to /etc/udev/rules.d")
+  install(FILES 99-libftdi.rules
+          DESTINATION /etc/udev/rules.d)
 
 endif("${PACKAGE}" STREQUAL "Debian")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/python/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/python/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/python/CMakeLists.txt       2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/python/CMakeLists.txt       2023-12-21 
16:14:35.000000000 +0100
@@ -18,14 +18,14 @@
 find_package ( PythonLibs REQUIRED )
 
 include ( UseSWIG )
-include_directories ( BEFORE ${CMAKE_SOURCE_DIR}/src )
+include_directories ( BEFORE ${PROJECT_SOURCE_DIR}/src )
 include_directories ( ${PYTHON_INCLUDE_DIRS} )
 link_directories ( ${CMAKE_CURRENT_BINARY_DIR}/../src )
 
 if ( DOCUMENTATION )
   set(CMAKE_SWIG_FLAGS -DDOXYGEN=${DOXYGEN_FOUND})
   # manually add dependency for new cmake / swig versions
-  set_property(SOURCE ftdi1.i PROPERTY DEPENDS ftdi1_doc.i)
+  set_property(SOURCE ftdi1.i PROPERTY DEPENDS doc_i)
 endif()
 if(NOT CMAKE_VERSION VERSION_LESS 3.8.0)
   swig_add_library ( ftdi1 LANGUAGE python SOURCES ftdi1.i )
@@ -42,7 +42,7 @@
 
 set_target_properties ( ${SWIG_MODULE_ftdi1_REAL_NAME} PROPERTIES NO_SONAME ON 
)
 
-execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import 
sysconfig; print( sysconfig.get_python_lib( plat_specific=True, 
prefix='${CMAKE_INSTALL_PREFIX}' ) )"
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print( 
sysconfig.get_path( 'platlib', vars={'platbase': '${CMAKE_INSTALL_PREFIX}'} ) )"
                   OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
                   OUTPUT_STRIP_TRAILING_WHITESPACE )
 
@@ -55,25 +55,29 @@
 install ( TARGETS ${SWIG_MODULE_ftdi1_REAL_NAME} LIBRARY DESTINATION 
${PYTHON_MODULE_PATH} )
 
 if ( DOCUMENTATION )
-    # Run doxygen to only generate the xml
-    add_custom_command ( OUTPUT ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml
-        COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/doc
-        COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile.xml
-        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-        DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers}
-    )
-
-    # generate .i from doxygen .xml
-    add_custom_command ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i
-        COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py 
-n
-            ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml
-            ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i
-        DEPENDS ${CMAKE_BINARY_DIR}/doc/xml/ftdi_8c.xml
-    )
-    add_custom_target ( doc_i DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i )
-    add_dependencies( ${SWIG_MODULE_ftdi1_REAL_NAME} doc_i )
+  # Run doxygen to only generate the xml
+  add_custom_command ( OUTPUT ${PROJECT_BINARY_DIR}/doc/xml/ftdi_8c.xml
+    COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/doc/Doxyfile.xml
+    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+    COMMENT "Generating ftdi_8c.xml"
+    DEPENDS ${c_headers};${c_sources};${cpp_sources};${cpp_headers}
+  )
+
+  # generate .i from doxygen .xml
+  add_custom_command ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i
+    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py -n
+      ${PROJECT_BINARY_DIR}/doc/xml/ftdi_8c.xml
+      ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i
+    COMMENT "Generating ftdi1_doc.i from ftdi_8c.xml"
+    DEPENDS ${PROJECT_BINARY_DIR}/doc/xml/ftdi_8c.xml
+  )
+  add_custom_target ( doc_i
+    COMMENT "Python API bindings documentation"
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ftdi1_doc.i
+  )
+  add_dependencies( ${SWIG_MODULE_ftdi1_REAL_NAME} doc_i )
 
-endif ()
+endif ( DOCUMENTATION )
 
 set ( LIBFTDI_PYTHON_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/${PYTHON_MODULE_PATH} 
)
 set ( LIBFTDI_PYTHON_MODULE_PATH ${LIBFTDI_PYTHON_MODULE_PATH} PARENT_SCOPE ) 
# for ftdiconfig.cmake
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libftdi1-1.5.12+git.0684c1b/python/examples/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/python/examples/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/python/examples/CMakeLists.txt      
2021-05-04 18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/python/examples/CMakeLists.txt      
2023-12-21 16:14:35.000000000 +0100
@@ -1,5 +1,4 @@
 install ( FILES simple.py complete.py cbus.py
           DESTINATION share/libftdi/examples
-          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ 
-        )
-
+          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/src/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/src/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/src/CMakeLists.txt  2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/src/CMakeLists.txt  2023-12-21 
16:14:35.000000000 +0100
@@ -1,7 +1,7 @@
 # Includes
 include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
-                     ${CMAKE_CURRENT_SOURCE_DIR}
-                     )
+                      ${CMAKE_CURRENT_SOURCE_DIR}
+)
 
 # Version information
 set(SNAPSHOT_VERSION "unknown")
@@ -9,7 +9,7 @@
                 OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
                 RESULT_VARIABLE GIT_DESCRIBE_RESULT
                 OUTPUT_STRIP_TRAILING_WHITESPACE
-                )
+)
 if(${GIT_DESCRIBE_RESULT} STREQUAL 0)
   set(SNAPSHOT_VERSION ${GIT_DESCRIBE_OUTPUT})
 endif ()
@@ -34,9 +34,9 @@
 
 install ( TARGETS ftdi1
           RUNTIME DESTINATION bin
-          LIBRARY DESTINATION lib${LIB_SUFFIX}
-          ARCHIVE DESTINATION lib${LIB_SUFFIX}
-        )
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
 
 if ( STATICLIBS )
   add_library(ftdi1-static STATIC ${c_sources})
@@ -44,12 +44,12 @@
   set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1")
   set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
   install ( TARGETS ftdi1-static
-            ARCHIVE DESTINATION lib${LIB_SUFFIX}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
             COMPONENT staticlibs
-          )
+  )
 endif ()
 
 install ( FILES ${c_headers}
           DESTINATION include/${PROJECT_NAME}
           COMPONENT headers
-        )
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/src/ftdi.c 
new/libftdi1-1.5.42+git.de9f01e/src/ftdi.c
--- old/libftdi1-1.5.12+git.0684c1b/src/ftdi.c  2021-05-04 18:51:15.000000000 
+0200
+++ new/libftdi1-1.5.42+git.de9f01e/src/ftdi.c  2023-12-21 16:14:35.000000000 
+0100
@@ -83,7 +83,7 @@
 
     \retval  0: all fine
     \retval -1: couldn't allocate read buffer
-    \retval -2: couldn't allocate struct  buffer
+    \retval -2: couldn't allocate struct buffer
     \retval -3: libusb_init() failed
 
     \remark This should be called before all functions
@@ -112,7 +112,7 @@
         ftdi_error_return(-3, "libusb_init() failed");
 
     ftdi_set_interface(ftdi, INTERFACE_ANY);
-    ftdi->bitbang_mode = 1; /* when bitbang is enabled this holds the number 
of the mode  */
+    ftdi->bitbang_mode = 1; /* when bitbang is enabled this holds the number 
of the mode */
 
     eeprom = (struct ftdi_eeprom *)malloc(sizeof(struct ftdi_eeprom));
     if (eeprom == 0)
@@ -298,7 +298,7 @@
 /**
     Finds all ftdi devices with given VID:PID on the usb bus. Creates a new
     ftdi_device_list which needs to be deallocated by ftdi_list_free() after
-    use.  With VID:PID 0:0, search for the default devices
+    use. With VID:PID 0:0, search for the default devices
     (0x403:0x6001, 0x403:0x6010, 0x403:0x6011, 0x403:0x6014, 0x403:0x6015)
 
     \param ftdi pointer to ftdi_context
@@ -639,7 +639,7 @@
         ftdi_error_return(-12, "libusb_get_configuration () failed");
     // set configuration (needed especially for windows)
     // tolerate EBUSY: one device with one configuration, but two interfaces
-    //    and libftdi sessions to both interfaces (e.g. FT2232)
+    // and libftdi sessions to both interfaces (e.g. FT2232)
     if (desc.bNumConfigurations > 0 && cfg != cfg0)
     {
         if (libusb_set_configuration(ftdi->usb_dev, cfg0) < 0)
@@ -1316,7 +1316,7 @@
     return best_baud;
 }
 
-/*  ftdi_to_clkbits Convert a requested baudrate for a given system clock  and 
predivisor
+/*  ftdi_to_clkbits Convert a requested baudrate for a given system clock and 
predivisor
                     to encoded divisor and the achievable baudrate
     Function is only used internally
     \internal
@@ -2218,6 +2218,24 @@
 }
 
 /**
+    Set module detach mode.
+
+    \param ftdi pointer to ftdi_context
+    \param mode detach mode to use.
+
+    \retval  0: all fine
+    \retval -1: can't enable bitbang mode
+*/
+int ftdi_set_module_detach_mode(struct ftdi_context *ftdi, enum 
ftdi_module_detach_mode mode)
+{
+    if (ftdi == NULL)
+        ftdi_error_return(-1, "FTDI context invalid");
+
+    ftdi->module_detach_mode = mode;
+    return 0;
+}
+
+/**
     Disable bitbang mode.
 
     \param ftdi pointer to ftdi_context
@@ -3049,7 +3067,7 @@
     // Dynamic content
     // Strings start at 0x94 (TYPE_AM, TYPE_BM)
     // 0x96 (TYPE_2232C), 0x98 (TYPE_R) and 0x9a (TYPE_x232H)
-    // 0xa0 (TYPE_232H)
+    // 0xa0 (TYPE_232H, TYPE_230X)
     i = 0;
     switch (ftdi->type)
     {
@@ -3072,7 +3090,7 @@
             i = 0xa0;
             break;
     }
-    /* Wrap around 0x80 for 128 byte EEPROMS (Internale and 93x46) */
+    /* Wrap around 0x80 for 128 byte EEPROMS (Internal and 93x46) */
     eeprom_size_mask = eeprom->size -1;
     free_end = i & eeprom_size_mask;
 
@@ -3125,6 +3143,8 @@
         i++;
         output[i & eeprom_size_mask] = eeprom->is_not_pnp; /* as seen when 
written with FTD2XX */
         i++;
+        output[i & eeprom_size_mask] = 0x00;
+        i++;
     }
 
     if (ftdi->type > TYPE_AM) /* use_serial not used in AM devices */
@@ -3136,7 +3156,7 @@
     }
 
     /* Bytes and Bits specific to (some) types
-       Write linear, as this allows easier fixing*/
+       Write linear, as this allows easier fixing */
     switch (ftdi->type)
     {
         case TYPE_AM:
@@ -3208,7 +3228,7 @@
 
             if (eeprom->external_oscillator)
                 output[0x00] |= 0x02;
-            output[0x01] = 0x40; /* Hard coded Endpoint Size*/
+            output[0x01] = 0x40; /* Hard coded Endpoint Size */
 
             if (eeprom->suspend_pull_downs)
                 output[0x0A] |= 0x4;
@@ -3440,7 +3460,7 @@
         case TYPE_230X:
             output[0x00] = 0x80; /* Actually, leave the default value */
             /*FIXME: Make DBUS & CBUS Control configurable*/
-            output[0x0c] = 0;    /* DBUS drive 4mA, CBUS drive 4 mA like 
factory default */
+            output[0x0c] = 0;    /* DBUS drive 4mA, CBUS drive 4mA like 
factory default */
             for (j = 0; j <= 6; j++)
             {
                 output[0x1a + j] = eeprom->cbus_function[j];
@@ -3503,6 +3523,8 @@
                 i = 0x50;
             }
             value = data;
+            output[i * 2] = data;
+            output[(i * 2) + 1] = data >> 8;
         }
         else {
             value = output[i*2];
@@ -3876,11 +3898,18 @@
                     (eeprom->data_order)?"LSB":"MSB",
                     (eeprom->flow_control)?"":"No ");
         }
-        if ((ftdi->type == TYPE_2232H) || (ftdi->type == TYPE_4232H))
+        if ((ftdi->type == TYPE_2232H) || (ftdi->type == TYPE_4232H) || 
(ftdi->type == TYPE_2232C))
             fprintf(stdout,"Channel B has Mode %s%s%s\n",
                     channel_mode[eeprom->channel_b_type],
                     (eeprom->channel_b_driver)?" VCP":"",
                     (eeprom->high_current_b)?" High Current IO":"");
+        if (ftdi->type == TYPE_4232H)
+        {
+            fprintf(stdout,"Channel C has Mode UART%s\n",
+                    (eeprom->channel_c_driver)?" VCP":"");
+            fprintf(stdout,"Channel D has Mode UART%s\n",
+                    (eeprom->channel_d_driver)?" VCP":"");
+        }
         if (((ftdi->type == TYPE_BM) || (ftdi->type == TYPE_2232C)) &&
                 eeprom->use_usb_version)
             fprintf(stdout,"Use explicit USB Version 
%04x\n",eeprom->usb_version);
@@ -4172,6 +4201,9 @@
         case EXTERNAL_OSCILLATOR:
             *value = ftdi->eeprom->external_oscillator;
             break;
+        case USER_DATA_ADDR:
+            *value = ftdi->eeprom->user_data_addr;
+            break;
         default:
             ftdi_error_return(-1, "Request for unknown EEPROM value");
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/src/ftdi.h 
new/libftdi1-1.5.42+git.de9f01e/src/ftdi.h
--- old/libftdi1-1.5.12+git.0684c1b/src/ftdi.h  2021-05-04 18:51:15.000000000 
+0200
+++ new/libftdi1-1.5.42+git.de9f01e/src/ftdi.h  2023-12-21 16:14:35.000000000 
+0100
@@ -520,6 +520,7 @@
     int ftdi_init(struct ftdi_context *ftdi);
     struct ftdi_context *ftdi_new(void);
     int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface 
interface);
+    int ftdi_set_module_detach_mode(struct ftdi_context *ftdi, enum 
ftdi_module_detach_mode mode);
 
     void ftdi_deinit(struct ftdi_context *ftdi);
     void ftdi_free(struct ftdi_context *ftdi);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/src/ftdi_stream.c 
new/libftdi1-1.5.42+git.de9f01e/src/ftdi_stream.c
--- old/libftdi1-1.5.12+git.0684c1b/src/ftdi_stream.c   2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/src/ftdi_stream.c   2023-12-21 
16:14:35.000000000 +0100
@@ -241,7 +241,8 @@
     {
         FTDIProgressInfo  *progress = &state.progress;
         const double progressInterval = 1.0;
-        struct timeval timeout = { 0, ftdi->usb_read_timeout * 1000};
+        struct timeval timeout = { ftdi->usb_read_timeout / 1000,
+            (ftdi->usb_read_timeout % 1000) * 1000 };
         struct timeval now;
 
         int err = libusb_handle_events_timeout(ftdi->usb_ctx, &timeout);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libftdi1-1.5.12+git.0684c1b/test/CMakeLists.txt 
new/libftdi1-1.5.42+git.de9f01e/test/CMakeLists.txt
--- old/libftdi1-1.5.12+git.0684c1b/test/CMakeLists.txt 2021-05-04 
18:51:15.000000000 +0200
+++ new/libftdi1-1.5.42+git.de9f01e/test/CMakeLists.txt 2023-12-21 
16:14:35.000000000 +0100
@@ -2,7 +2,7 @@
 
 enable_testing()
 
-INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/src ${Boost_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(BEFORE ${PROJECT_SOURCE_DIR}/src ${Boost_INCLUDE_DIRS})
 
 set(cpp_tests basic.cpp baudrate.cpp)
 

++++++ libftdi1.obsinfo ++++++
--- /var/tmp/diff_new_pack.pDJWsB/_old  2024-10-15 14:58:01.871748515 +0200
+++ /var/tmp/diff_new_pack.pDJWsB/_new  2024-10-15 14:58:01.875748681 +0200
@@ -1,6 +1,5 @@
 name: libftdi1
-version: 1.5.12+git.0684c1b
-mtime: 1620147075
-commit: 0684c1b1be9ccb893829c20a8505c91e101bbf43
-
+version: 1.5.42+git.de9f01e
+mtime: 1703171675
+commit: de9f01ece34d2fe6e842e0250a38f4b16eda2429
 

Reply via email to