expat update would be good
Brian Inglis
Brian.Inglis@Shaw.ca
Sun Mar 5 23:08:52 GMT 2023
On 2023-03-05 13:25, Marco Atzeri via Cygwin wrote:
> On 05.03.2023 20:24, Brian Inglis via Cygwin wrote:
>> [Xpost to cygwin in case apps not monitored]
>> On 2023-03-05 08:00, Marco Atzeri via Cygwin-apps wrote:
>>> On 13.02.2022 21:34, Brian Inglis wrote:
>>>> [posting to apps to be less public]
>>>> https://nvd.nist.gov/vuln/detail/CVE-2022-23990
>>>> expat < 2.4.4
>>
>>> ping ?
>>> In addition the cmake import library have some issues also
>>
>> Been a year since I hinted!
>>
>> Fixed releases build okay for me 2.4.1/5/9 up to current 2.5.0.
>> See:
>>
>> https://cygwin.com/cgi-bin2/jobs.cgi?id=5541
>> https://github.com/cygwin/scallywag/actions/runs/4337543797
>> https://github.com/cygwin/scallywag/actions/runs/4337543797/jobs/7573650090
>>
>> What are you seeing?
> building latest gdal I was forced to add a line on expact.c
> $ grep private /usr/lib/pkgconfig/expat.pc
> Libs.private: -liconv
Do not see any need for libiconv/-devel in any expat? See attached.
> and move away
> /usr/lib/make/expat-2.4.1
> as the settings are wrong and cmake complains about missing files
> $ grep -H "so.1" *.cmake
> expat-noconfig.cmake: IMPORTED_LOCATION_NOCONFIG
> "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.1"
> expat-noconfig.cmake: IMPORTED_SONAME_NOCONFIG "libexpat.so.1"
> expat-noconfig.cmake:list(APPEND _IMPORT_CHECK_FILES_FOR_expat::expat
> "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.1" )
Fixed in 2.5.0 - see attached.
> If Doug does not reply, are you considering to adopt expat ?
No - I do not use it and do not maintain anything which uses it:
$ cygcheck-dep -qn libexpat{1,-devel} expat
libexpat1: is needed for ( avahi cmake dbus dbus-bash-completion dri-drivers
expat gdb git graphviz lftp libaprutil1 libexpat-devel libfontconfig1 libgdal20
libgdal26 libgdal28 libgdal29 libgdal30 libgdal31 libgvc6 libwx_baseu2.8_0
perl-XML-Parser python27 python36 python37 python38 python39 rats subversion
tcl-tcldot )
libexpat-devel: is needed for ( libfontconfig-devel )
expat: is needed for ( )
If Doug does not have time, you seem the most appropriate candidate, as cmake,
gdal, python maintainer, if you could manage? Or put out a CFA on apps?
For testing your latest builds, just pull source, and change VERSION=2.5.0, add
LICENSE=MIT, and BUILD_REQUIRES="gettext-devel docbook2X" in case the former is
needed, as there are .Po files used: not sure if po4a should also be added for
other files?
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
-------------- next part --------------
--- a/usr/lib/pkgconfig/expat.pc 2023-03-05 15:55:08.783121700 -0700
+++ b/usr/lib/pkgconfig/expat.pc 2023-03-05 11:08:55.000000000 -0700
@@ -4,8 +4,9 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: expat
-Version: 2.4.1
+Version: 2.5.0
Description: expat XML parser
-URL: http://www.libexpat.org
+URL: https://libexpat.github.io/
Libs: -L${libdir} -lexpat
+Libs.private:
Cflags: -I${includedir}
-------------- next part --------------
diff -pu --color --strip-trailing-cr /usr/lib/cmake/expat-2.4.1/expat.cmake /usr/lib/cmake/expat-2.5.0/expat.cmake
--- /usr/lib/cmake/expat-2.4.1/expat.cmake 2021-07-23 13:09:25.000000000 -0600
+++ /usr/lib/cmake/expat-2.5.0/expat.cmake 2023-03-05 11:08:55.000000000 -0700
@@ -1,10 +1,13 @@
# Generated by CMake
-if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
- message(FATAL_ERROR "CMake >= 2.6.0 required")
+if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
+ message(FATAL_ERROR "CMake >= 2.8.0 required")
+endif()
+if(CMAKE_VERSION VERSION_LESS "2.8.3")
+ message(FATAL_ERROR "CMake >= 2.8.3 required")
endif()
cmake_policy(PUSH)
-cmake_policy(VERSION 2.6...3.18)
+cmake_policy(VERSION 2.8.3...3.22)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------
@@ -13,32 +16,34 @@ cmake_policy(VERSION 2.6...3.18)
set(CMAKE_IMPORT_FILE_VERSION 1)
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
-set(_targetsDefined)
-set(_targetsNotDefined)
-set(_expectedTargets)
-foreach(_expectedTarget expat::expat)
- list(APPEND _expectedTargets ${_expectedTarget})
- if(NOT TARGET ${_expectedTarget})
- list(APPEND _targetsNotDefined ${_expectedTarget})
- endif()
- if(TARGET ${_expectedTarget})
- list(APPEND _targetsDefined ${_expectedTarget})
+set(_cmake_targets_defined "")
+set(_cmake_targets_not_defined "")
+set(_cmake_expected_targets "")
+foreach(_cmake_expected_target IN ITEMS expat::expat)
+ list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
+ if(TARGET "${_cmake_expected_target}")
+ list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
+ else()
+ list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
endif()
endforeach()
-if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
- unset(_targetsDefined)
- unset(_targetsNotDefined)
- unset(_expectedTargets)
- set(CMAKE_IMPORT_FILE_VERSION)
+unset(_cmake_expected_target)
+if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
+ unset(_cmake_targets_defined)
+ unset(_cmake_targets_not_defined)
+ unset(_cmake_expected_targets)
+ unset(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
return()
endif()
-if(NOT "${_targetsDefined}" STREQUAL "")
- message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
+if(NOT _cmake_targets_defined STREQUAL "")
+ string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
+ string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
+ message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
endif()
-unset(_targetsDefined)
-unset(_targetsNotDefined)
-unset(_expectedTargets)
+unset(_cmake_targets_defined)
+unset(_cmake_targets_not_defined)
+unset(_cmake_expected_targets)
# Compute the installation prefix relative to this file.
@@ -55,24 +60,30 @@ add_library(expat::expat SHARED IMPORTED
set_target_properties(expat::expat PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ INTERFACE_LINK_LIBRARIES "m"
)
+if(CMAKE_VERSION VERSION_LESS 2.8.12)
+ message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
+endif()
+
# Load information for each installed configuration.
-get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-file(GLOB CONFIG_FILES "${_DIR}/expat-*.cmake")
-foreach(f ${CONFIG_FILES})
- include(${f})
+file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/expat-*.cmake")
+foreach(_cmake_config_file IN LISTS _cmake_config_files)
+ include("${_cmake_config_file}")
endforeach()
+unset(_cmake_config_file)
+unset(_cmake_config_files)
# Cleanup temporary variables.
set(_IMPORT_PREFIX)
# Loop over all imported files and verify that they actually exist
-foreach(target ${_IMPORT_CHECK_TARGETS} )
- foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
- if(NOT EXISTS "${file}" )
- message(FATAL_ERROR "The imported target \"${target}\" references the file
- \"${file}\"
+foreach(_cmake_target IN LISTS _cmake_import_check_targets)
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
+ if(NOT EXISTS "${_cmake_file}")
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
+ \"${_cmake_file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
@@ -82,9 +93,11 @@ but not all the files it references.
")
endif()
endforeach()
- unset(_IMPORT_CHECK_FILES_FOR_${target})
+ unset(_cmake_file)
+ unset("_cmake_import_check_files_for_${_cmake_target}")
endforeach()
-unset(_IMPORT_CHECK_TARGETS)
+unset(_cmake_target)
+unset(_cmake_import_check_targets)
# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.
diff -pu --color --strip-trailing-cr /usr/lib/cmake/expat-2.4.1/expat-config-version.cmake /usr/lib/cmake/expat-2.5.0/expat-config-version.cmake
--- /usr/lib/cmake/expat-2.4.1/expat-config-version.cmake 2021-07-23 13:09:25.000000000 -0600
+++ /usr/lib/cmake/expat-2.5.0/expat-config-version.cmake 2023-03-05 11:08:55.000000000 -0700
@@ -9,16 +9,19 @@
# The variable CVF_VERSION must be set before calling configure_file().
-set(PACKAGE_VERSION "2.4.1")
+set(PACKAGE_VERSION "2.5.0")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
- if("2.4.1" MATCHES "^([0-9]+)\\.")
+ if("2.5.0" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
+ endif()
else()
- set(CVF_VERSION_MAJOR "2.4.1")
+ set(CVF_VERSION_MAJOR "2.5.0")
endif()
if(PACKAGE_FIND_VERSION_RANGE)
diff -pu --color --strip-trailing-cr /usr/lib/cmake/expat-2.4.1/expat-noconfig.cmake /usr/lib/cmake/expat-2.5.0/expat-noconfig.cmake
--- /usr/lib/cmake/expat-2.4.1/expat-noconfig.cmake 2021-07-23 13:09:25.000000000 -0600
+++ /usr/lib/cmake/expat-2.5.0/expat-noconfig.cmake 2023-03-05 11:08:55.000000000 -0700
@@ -1,19 +1,19 @@
#----------------------------------------------------------------
-# Generated CMake target import file.
+# Generated CMake target import file for configuration "NoConfig".
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
-# Import target "expat::expat" for configuration ""
+# Import target "expat::expat" for configuration "NoConfig"
set_property(TARGET expat::expat APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG)
set_target_properties(expat::expat PROPERTIES
- IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.1"
- IMPORTED_SONAME_NOCONFIG "libexpat.so.1"
+ IMPORTED_IMPLIB_NOCONFIG "${_IMPORT_PREFIX}/lib/libexpat.dll.a"
+ IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/bin/cygexpat-1.dll"
)
-list(APPEND _IMPORT_CHECK_TARGETS expat::expat )
-list(APPEND _IMPORT_CHECK_FILES_FOR_expat::expat "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.1" )
+list(APPEND _cmake_import_check_targets expat::expat )
+list(APPEND _cmake_import_check_files_for_expat::expat "${_IMPORT_PREFIX}/lib/libexpat.dll.a" "${_IMPORT_PREFIX}/bin/cygexpat-1.dll" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
More information about the Cygwin
mailing list