Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package liblnk for openSUSE:Factory checked in at 2023-10-02 20:05:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/liblnk (Old) and /work/SRC/openSUSE:Factory/.liblnk.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liblnk" Mon Oct 2 20:05:08 2023 rev:26 rq:1114825 version:20230928 Changes: -------- --- /work/SRC/openSUSE:Factory/liblnk/liblnk.changes 2023-08-09 17:25:28.781464852 +0200 +++ /work/SRC/openSUSE:Factory/.liblnk.new.28202/liblnk.changes 2023-10-02 20:06:38.323176245 +0200 @@ -1,0 +2,6 @@ +Mon Oct 2 13:22:50 UTC 2023 - Jan Engelhardt <[email protected]> + +- Update to release 20230928 + * Python 3.12 support + +------------------------------------------------------------------- Old: ---- liblnk-alpha-20230716.tar.gz liblnk-alpha-20230716.tar.gz.asc New: ---- liblnk-alpha-20230928.tar.gz liblnk-alpha-20230928.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ liblnk.spec ++++++ --- /var/tmp/diff_new_pack.eJbj1M/_old 2023-10-02 20:06:39.511218970 +0200 +++ /var/tmp/diff_new_pack.eJbj1M/_new 2023-10-02 20:06:39.511218970 +0200 @@ -18,7 +18,7 @@ %define lname liblnk1 Name: liblnk -Version: 20230716 +Version: 20230928 Release: 0 Summary: Library and tools to access the Windows Shortcut File (LNK) format License: GFDL-1.3-or-later AND LGPL-3.0-or-later ++++++ liblnk-alpha-20230716.tar.gz -> liblnk-alpha-20230928.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/Makefile.am new/liblnk-20230928/Makefile.am --- old/liblnk-20230716/Makefile.am 2022-04-28 06:23:51.000000000 +0200 +++ new/liblnk-20230928/Makefile.am 2023-09-09 10:49:40.000000000 +0200 @@ -50,6 +50,9 @@ liblnk.pc.in SETUP_PY_FILES = \ + pyproject.toml \ + setup.cfg \ + setup.cfg.in \ setup.py SPEC_FILES = \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/Makefile.in new/liblnk-20230928/Makefile.in --- old/liblnk-20230716/Makefile.in 2023-07-16 08:36:51.000000000 +0200 +++ new/liblnk-20230928/Makefile.in 2023-09-30 10:35:17.000000000 +0200 @@ -119,7 +119,7 @@ CONFIG_HEADER = $(top_builddir)/common/config.h CONFIG_CLEAN_FILES = include/liblnk/definitions.h \ include/liblnk/features.h include/liblnk/types.h \ - dpkg/changelog liblnk.pc liblnk.spec + dpkg/changelog liblnk.pc liblnk.spec setup.cfg CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -204,7 +204,8 @@ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/liblnk.pc.in \ - $(srcdir)/liblnk.spec.in $(top_srcdir)/dpkg/changelog.in \ + $(srcdir)/liblnk.spec.in $(srcdir)/setup.cfg.in \ + $(top_srcdir)/dpkg/changelog.in \ $(top_srcdir)/include/liblnk/definitions.h.in \ $(top_srcdir)/include/liblnk/features.h.in \ $(top_srcdir)/include/liblnk/types.h.in ABOUT-NLS AUTHORS \ @@ -647,6 +648,9 @@ liblnk.pc.in SETUP_PY_FILES = \ + pyproject.toml \ + setup.cfg \ + setup.cfg.in \ setup.py SPEC_FILES = \ @@ -715,6 +719,8 @@ cd $(top_builddir) && $(SHELL) ./config.status $@ liblnk.spec: $(top_builddir)/config.status $(srcdir)/liblnk.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ +setup.cfg: $(top_builddir)/config.status $(srcdir)/setup.cfg.in + cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/common/config.h new/liblnk-20230928/common/config.h --- old/liblnk-20230716/common/config.h 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/common/config.h 2023-09-30 10:35:34.000000000 +0200 @@ -527,7 +527,7 @@ #define PACKAGE_NAME "liblnk" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "liblnk 20230716" +#define PACKAGE_STRING "liblnk 20230928" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "liblnk" @@ -536,7 +536,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "20230716" +#define PACKAGE_VERSION "20230928" /* The size of `int', as computed by sizeof. */ #define SIZEOF_INT 4 @@ -562,7 +562,7 @@ /* #undef STRERROR_R_CHAR_P */ /* Version number of package */ -#define VERSION "20230716" +#define VERSION "20230928" /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/configure new/liblnk-20230928/configure --- old/liblnk-20230716/configure 2023-07-16 08:36:49.000000000 +0200 +++ new/liblnk-20230928/configure 2023-09-30 10:35:16.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for liblnk 20230716. +# Generated by GNU Autoconf 2.71 for liblnk 20230928. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='liblnk' PACKAGE_TARNAME='liblnk' -PACKAGE_VERSION='20230716' -PACKAGE_STRING='liblnk 20230716' +PACKAGE_VERSION='20230928' +PACKAGE_STRING='liblnk 20230928' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1689,7 +1689,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures liblnk 20230716 to adapt to many kinds of systems. +\`configure' configures liblnk 20230928 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1760,7 +1760,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of liblnk 20230716:";; + short | recursive ) echo "Configuration of liblnk 20230928:";; esac cat <<\_ACEOF @@ -2018,7 +2018,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -liblnk configure 20230716 +liblnk configure 20230928 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2739,7 +2739,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by liblnk $as_me 20230716, which was +It was created by liblnk $as_me 20230928, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4228,7 +4228,7 @@ # Define the identity of the package. PACKAGE='liblnk' - VERSION='20230716' + VERSION='20230928' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -52235,7 +52235,7 @@ then : ax_python_progs="python${PYTHON_VERSION}" else $as_nop - ax_python_progs="python python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5" + ax_python_progs="python python3 python3.12 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5" fi for ac_prog in $ax_python_progs do @@ -52351,7 +52351,7 @@ fi if test "x${PYTHON_CONFIG}" = x then : - for ac_prog in python-config python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config + for ac_prog in python-config python3-config python3.12-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -52770,7 +52770,7 @@ if test "x${ac_cv_enable_python3}" != xno then : - ax_python3_progs="python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" + ax_python3_progs="python3 python3.12 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" for ac_prog in $ax_python3_progs do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -52837,7 +52837,7 @@ if test "x${PYTHON3_CONFIG}" = x then : - for ac_prog in python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config + for ac_prog in python3-config python3.12-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -53374,6 +53374,8 @@ ac_config_files="$ac_config_files liblnk.spec" +ac_config_files="$ac_config_files setup.cfg" + ac_config_headers="$ac_config_headers common/config.h" @@ -53988,7 +53990,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by liblnk $as_me 20230716, which was +This file was extended by liblnk $as_me 20230928, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -54056,7 +54058,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -liblnk config.status 20230716 +liblnk config.status 20230928 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -54618,6 +54620,7 @@ "liblnk/liblnk.rc") CONFIG_FILES="$CONFIG_FILES liblnk/liblnk.rc" ;; "liblnk.pc") CONFIG_FILES="$CONFIG_FILES liblnk.pc" ;; "liblnk.spec") CONFIG_FILES="$CONFIG_FILES liblnk.spec" ;; + "setup.cfg") CONFIG_FILES="$CONFIG_FILES setup.cfg" ;; "common/config.h") CONFIG_HEADERS="$CONFIG_HEADERS common/config.h" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/configure.ac new/liblnk-20230928/configure.ac --- old/liblnk-20230716/configure.ac 2023-07-16 07:57:42.000000000 +0200 +++ new/liblnk-20230928/configure.ac 2023-09-30 10:14:10.000000000 +0200 @@ -2,7 +2,7 @@ AC_INIT( [liblnk], - [20230716], + [20230928], [[email protected]]) AC_CONFIG_SRCDIR( @@ -203,6 +203,7 @@ AC_CONFIG_FILES([liblnk/liblnk.rc]) AC_CONFIG_FILES([liblnk.pc]) AC_CONFIG_FILES([liblnk.spec]) +AC_CONFIG_FILES([setup.cfg]) dnl Generate a source configuration file AC_CONFIG_HEADERS([common/config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/dpkg/changelog new/liblnk-20230928/dpkg/changelog --- old/liblnk-20230716/dpkg/changelog 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/dpkg/changelog 2023-09-30 10:35:34.000000000 +0200 @@ -1,5 +1,5 @@ -liblnk (20230716-1) unstable; urgency=low +liblnk (20230928-1) unstable; urgency=low * Auto-generated - -- Joachim Metz <[email protected]> Sun, 16 Jul 2023 08:37:01 +0200 + -- Joachim Metz <[email protected]> Sat, 30 Sep 2023 10:35:33 +0200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/include/liblnk/definitions.h new/liblnk-20230928/include/liblnk/definitions.h --- old/liblnk-20230716/include/liblnk/definitions.h 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/include/liblnk/definitions.h 2023-09-30 10:35:34.000000000 +0200 @@ -24,11 +24,11 @@ #include <liblnk/types.h> -#define LIBLNK_VERSION 20230716 +#define LIBLNK_VERSION 20230928 /* The liblnk version string */ -#define LIBLNK_VERSION_STRING "20230716" +#define LIBLNK_VERSION_STRING "20230928" /* The liblnk file access * bit 1 set to 1 for read access diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/liblnk/liblnk.rc new/liblnk-20230928/liblnk/liblnk.rc --- old/liblnk-20230716/liblnk/liblnk.rc 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/liblnk/liblnk.rc 2023-09-30 10:35:34.000000000 +0200 @@ -22,12 +22,12 @@ BLOCK "040904E4" BEGIN VALUE "FileDescription", "Library to access the Windows Shortcut File (LNK) format\0" - VALUE "FileVersion", "20230716" "\0" + VALUE "FileVersion", "20230928" "\0" VALUE "InternalName", "liblnk.dll\0" VALUE "LegalCopyright", "(C) 2009-2023, Joachim Metz <[email protected]>\0" VALUE "OriginalFilename", "liblnk.dll\0" VALUE "ProductName", "liblnk\0" - VALUE "ProductVersion", "20230716" "\0" + VALUE "ProductVersion", "20230928" "\0" VALUE "Comments", "For more information visit https://github.com/libyal/liblnk/\0" END END diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/liblnk/liblnk_definitions.h new/liblnk-20230928/liblnk/liblnk_definitions.h --- old/liblnk-20230716/liblnk/liblnk_definitions.h 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/liblnk/liblnk_definitions.h 2023-09-30 10:35:34.000000000 +0200 @@ -37,11 +37,11 @@ * for local use of liblnk */ #else -#define LIBLNK_VERSION 20230716 +#define LIBLNK_VERSION 20230928 /* The liblnk version string */ -#define LIBLNK_VERSION_STRING "20230716" +#define LIBLNK_VERSION_STRING "20230928" /* The liblnk file access * bit 1 set to 1 for read access diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/liblnk/liblnk_file.c new/liblnk-20230928/liblnk/liblnk_file.c --- old/liblnk-20230716/liblnk/liblnk_file.c 2023-07-16 07:57:45.000000000 +0200 +++ new/liblnk-20230928/liblnk/liblnk_file.c 2023-09-28 10:08:39.000000000 +0200 @@ -562,11 +562,11 @@ int access_flags, libcerror_error_t **error ) { - liblnk_internal_file_t *internal_file = NULL; - static char *function = "liblnk_file_open_file_io_handle"; - int bfio_access_flags = 0; - int file_io_handle_is_open = 0; - int file_io_handle_opened_in_library = 0; + liblnk_internal_file_t *internal_file = NULL; + static char *function = "liblnk_file_open_file_io_handle"; + uint8_t file_io_handle_opened_in_library = 0; + int bfio_access_flags = 0; + int file_io_handle_is_open = 0; if( file == NULL ) { @@ -3474,36 +3474,40 @@ { utf8_local_path_size += 1; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) - { - result = libuna_utf8_string_size_from_utf16_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - &utf8_common_path_size, - error ); - } - else - { - result = libuna_utf8_string_size_from_byte_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - &utf8_common_path_size, - error ); - } - if( result != 1 ) + if( internal_file->location_information->common_path != NULL ) { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_GET_FAILED, - "%s: unable to retrieve UTF-8 common path string size.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf8_string_size_from_utf16_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + &utf8_common_path_size, + error ); + } + else + { + result = libuna_utf8_string_size_from_byte_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + &utf8_common_path_size, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve UTF-8 common path string size.", + function ); - return( -1 ); + return( -1 ); + } + utf8_local_path_size -= 1; } - *utf8_string_size = utf8_local_path_size + utf8_common_path_size - 1; + *utf8_string_size = utf8_local_path_size + utf8_common_path_size; return( 1 ); } @@ -3678,38 +3682,41 @@ } utf8_string[ string_index++ ] = (uint8_t) '\\'; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + if( internal_file->location_information->common_path != NULL ) { - result = libuna_utf8_string_with_index_copy_from_utf16_stream( - utf8_string, - utf8_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - error ); - } - else - { - result = libuna_utf8_string_with_index_copy_from_byte_stream( - utf8_string, - utf8_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - error ); - } - if( result != 1 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_SET_FAILED, - "%s: unable to set UTF-8 common path string.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf8_string_with_index_copy_from_utf16_stream( + utf8_string, + utf8_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + error ); + } + else + { + result = libuna_utf8_string_with_index_copy_from_byte_stream( + utf8_string, + utf8_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_SET_FAILED, + "%s: unable to set UTF-8 common path string.", + function ); - return( -1 ); + return( -1 ); + } } return( 1 ); } @@ -3856,36 +3863,40 @@ { utf16_local_path_size += 1; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) - { - result = libuna_utf16_string_size_from_utf16_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - &utf16_common_path_size, - error ); - } - else - { - result = libuna_utf16_string_size_from_byte_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - &utf16_common_path_size, - error ); - } - if( result != 1 ) + if( internal_file->location_information->common_path != NULL ) { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_GET_FAILED, - "%s: unable to retrieve UTF-16 common path string size.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf16_string_size_from_utf16_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + &utf16_common_path_size, + error ); + } + else + { + result = libuna_utf16_string_size_from_byte_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + &utf16_common_path_size, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve UTF-16 common path string size.", + function ); - return( -1 ); + return( -1 ); + } + utf16_local_path_size -= 1; } - *utf16_string_size = utf16_local_path_size + utf16_common_path_size - 1; + *utf16_string_size = utf16_local_path_size + utf16_common_path_size; return( 1 ); } @@ -4060,38 +4071,41 @@ } utf16_string[ string_index++ ] = (uint16_t) '\\'; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + if( internal_file->location_information->common_path != NULL ) { - result = libuna_utf16_string_with_index_copy_from_utf16_stream( - utf16_string, - utf16_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - error ); - } - else - { - result = libuna_utf16_string_with_index_copy_from_byte_stream( - utf16_string, - utf16_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - error ); - } - if( result != 1 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_SET_FAILED, - "%s: unable to set UTF-16 common path string.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf16_string_with_index_copy_from_utf16_stream( + utf16_string, + utf16_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + error ); + } + else + { + result = libuna_utf16_string_with_index_copy_from_byte_stream( + utf16_string, + utf16_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_SET_FAILED, + "%s: unable to set UTF-16 common path string.", + function ); - return( -1 ); + return( -1 ); + } } return( 1 ); } @@ -4238,36 +4252,40 @@ { utf8_network_share_name_size += 1; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) - { - result = libuna_utf8_string_size_from_utf16_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - &utf8_common_path_size, - error ); - } - else - { - result = libuna_utf8_string_size_from_byte_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - &utf8_common_path_size, - error ); - } - if( result != 1 ) + if( internal_file->location_information->common_path != NULL ) { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_GET_FAILED, - "%s: unable to retrieve UTF-8 common path string size.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf8_string_size_from_utf16_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + &utf8_common_path_size, + error ); + } + else + { + result = libuna_utf8_string_size_from_byte_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + &utf8_common_path_size, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve UTF-8 common path string size.", + function ); - return( -1 ); + return( -1 ); + } + utf8_network_share_name_size -= 1; } - *utf8_string_size = utf8_network_share_name_size + utf8_common_path_size - 1; + *utf8_string_size = utf8_network_share_name_size + utf8_common_path_size; return( 1 ); } @@ -4442,38 +4460,41 @@ } utf8_string[ string_index++ ] = (uint8_t) '\\'; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + if( internal_file->location_information->common_path != NULL ) { - result = libuna_utf8_string_with_index_copy_from_utf16_stream( - utf8_string, - utf8_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - error ); - } - else - { - result = libuna_utf8_string_with_index_copy_from_byte_stream( - utf8_string, - utf8_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - error ); - } - if( result != 1 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_SET_FAILED, - "%s: unable to set UTF-8 common path string.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf8_string_with_index_copy_from_utf16_stream( + utf8_string, + utf8_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + error ); + } + else + { + result = libuna_utf8_string_with_index_copy_from_byte_stream( + utf8_string, + utf8_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_SET_FAILED, + "%s: unable to set UTF-8 common path string.", + function ); - return( -1 ); + return( -1 ); + } } return( 1 ); } @@ -4620,36 +4641,40 @@ { utf16_network_share_name_size += 1; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + if( internal_file->location_information->common_path != NULL ) { - result = libuna_utf16_string_size_from_utf16_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - &utf16_common_path_size, - error ); - } - else - { - result = libuna_utf16_string_size_from_byte_stream( - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - &utf16_common_path_size, - error ); - } - if( result != 1 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_GET_FAILED, - "%s: unable to retrieve UTF-16 common path string size.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf16_string_size_from_utf16_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + &utf16_common_path_size, + error ); + } + else + { + result = libuna_utf16_string_size_from_byte_stream( + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + &utf16_common_path_size, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve UTF-16 common path string size.", + function ); - return( -1 ); + return( -1 ); + } + utf16_network_share_name_size -= 1; } - *utf16_string_size = utf16_network_share_name_size + utf16_common_path_size - 1; + *utf16_string_size = utf16_network_share_name_size + utf16_common_path_size; return( 1 ); } @@ -4824,38 +4849,41 @@ } utf16_string[ string_index++ ] = (uint16_t) '\\'; } - if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) - { - result = libuna_utf16_string_with_index_copy_from_utf16_stream( - utf16_string, - utf16_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, - error ); - } - else + if( internal_file->location_information->common_path != NULL ) { - result = libuna_utf16_string_with_index_copy_from_byte_stream( - utf16_string, - utf16_string_size, - &string_index, - internal_file->location_information->common_path, - internal_file->location_information->common_path_size, - internal_file->io_handle->ascii_codepage, - error ); - } - if( result != 1 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_SET_FAILED, - "%s: unable to set UTF-16 common path string.", - function ); + if( ( internal_file->location_information->string_flags & LIBLNK_LOCATION_INFORMATION_STRING_FLAG_COMMON_PATH_IS_UNICODE ) != 0 ) + { + result = libuna_utf16_string_with_index_copy_from_utf16_stream( + utf16_string, + utf16_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + LIBUNA_ENDIAN_LITTLE | LIBUNA_UTF16_STREAM_ALLOW_UNPAIRED_SURROGATE, + error ); + } + else + { + result = libuna_utf16_string_with_index_copy_from_byte_stream( + utf16_string, + utf16_string_size, + &string_index, + internal_file->location_information->common_path, + internal_file->location_information->common_path_size, + internal_file->io_handle->ascii_codepage, + error ); + } + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_SET_FAILED, + "%s: unable to set UTF-16 common path string.", + function ); - return( -1 ); + return( -1 ); + } } return( 1 ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/liblnk/liblnk_location_information.c new/liblnk-20230928/liblnk/liblnk_location_information.c --- old/liblnk-20230716/liblnk/liblnk_location_information.c 2023-07-16 07:57:45.000000000 +0200 +++ new/liblnk-20230928/liblnk/liblnk_location_information.c 2023-09-28 10:08:39.000000000 +0200 @@ -332,7 +332,8 @@ function, common_path_offset ); } -#endif +#endif /* defined( HAVE_DEBUG_OUTPUT ) */ + if( ( location_information_header_size != 28 ) && ( location_information_header_size != 32 ) && ( location_information_header_size != 36 ) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/liblnk.spec new/liblnk-20230928/liblnk.spec --- old/liblnk-20230716/liblnk.spec 2023-07-16 08:37:02.000000000 +0200 +++ new/liblnk-20230928/liblnk.spec 2023-09-30 10:35:34.000000000 +0200 @@ -1,5 +1,5 @@ Name: liblnk -Version: 20230716 +Version: 20230928 Release: 1 Summary: Library to access the Windows Shortcut File (LNK) format Group: System Environment/Libraries @@ -94,6 +94,6 @@ %{_mandir}/man1/* %changelog -* Sun Jul 16 2023 Joachim Metz <[email protected]> 20230716-1 +* Sat Sep 30 2023 Joachim Metz <[email protected]> 20230928-1 - Auto-generated diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/lnktools/info_handle.c new/liblnk-20230928/lnktools/info_handle.c --- old/liblnk-20230716/lnktools/info_handle.c 2023-07-16 07:58:36.000000000 +0200 +++ new/liblnk-20230928/lnktools/info_handle.c 2023-09-28 14:40:26.000000000 +0200 @@ -726,41 +726,43 @@ return( -1 ); } - if( path_string_copy_from_file_entry_path( - &escaped_value_string, - &escaped_value_string_size, - value_string, - value_string_length, - error ) != 1 ) + if( value_string_length > 0 ) { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_COPY_FAILED, - "%s: unable to copy path from file entry path.", - function ); + if( path_string_copy_from_file_entry_path( + &escaped_value_string, + &escaped_value_string_size, + value_string, + value_string_length, + error ) != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_COPY_FAILED, + "%s: unable to copy path from file entry path.", + function ); + + goto on_error; + } + if( escaped_value_string == NULL ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_VALUE_MISSING, + "%s: missing escaped value string.", + function ); + + goto on_error; + } + fprintf( + info_handle->notify_stream, + "%" PRIs_SYSTEM "", + escaped_value_string ); - goto on_error; + memory_free( + escaped_value_string ); } - if( escaped_value_string == NULL ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_RUNTIME, - LIBCERROR_RUNTIME_ERROR_VALUE_MISSING, - "%s: missing escaped value string.", - function ); - - goto on_error; - } - fprintf( - info_handle->notify_stream, - "%" PRIs_SYSTEM "", - escaped_value_string ); - - memory_free( - escaped_value_string ); - return( 1 ); on_error: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/m4/python.m4 new/liblnk-20230928/m4/python.m4 --- old/liblnk-20230716/m4/python.m4 2021-11-14 14:23:54.000000000 +0100 +++ new/liblnk-20230928/m4/python.m4 2023-09-23 15:13:51.000000000 +0200 @@ -1,6 +1,6 @@ dnl Functions for Python bindings dnl -dnl Version: 20211114 +dnl Version: 20230923 dnl Function to check if the python binary is available dnl "python${PYTHON_VERSION} python python# python#.#" @@ -8,7 +8,7 @@ [AS_IF( [test "x${PYTHON_VERSION}" != x], [ax_python_progs="python${PYTHON_VERSION}"], - [ax_python_progs="python python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5"]) + [ax_python_progs="python python3 python3.12 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5"]) AC_CHECK_PROGS( [PYTHON], [$ax_python_progs]) @@ -58,7 +58,7 @@ dnl Function to check if the python3 binary is available dnl "python3 python3.#" AC_DEFUN([AX_PROG_PYTHON3], - [ax_python3_progs="python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" + [ax_python3_progs="python3 python3.12 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" AC_CHECK_PROGS( [PYTHON3], [$ax_python3_progs]) @@ -95,7 +95,7 @@ [test "x${PYTHON_CONFIG}" = x], [AC_CHECK_PROGS( [PYTHON_CONFIG], - [python-config python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config]) + [python-config python3-config python3.12-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config]) ]) AS_IF( [test "x${PYTHON_CONFIG}" = x], @@ -131,7 +131,7 @@ [test "x${PYTHON3_CONFIG}" = x], [AC_CHECK_PROGS( [PYTHON3_CONFIG], - [python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config]) + [python3-config python3.12-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config]) ]) AS_IF( [test "x${PYTHON3_CONFIG}" = x], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/pylnk/pylnk_file_object_io_handle.c new/liblnk-20230928/pylnk/pylnk_file_object_io_handle.c --- old/liblnk-20230716/pylnk/pylnk_file_object_io_handle.c 2023-07-16 07:57:46.000000000 +0200 +++ new/liblnk-20230928/pylnk/pylnk_file_object_io_handle.c 2023-09-30 09:35:47.000000000 +0200 @@ -232,13 +232,13 @@ Py_DecRef( ( *file_object_io_handle )->file_object ); - PyGILState_Release( - gil_state ); - PyMem_Free( *file_object_io_handle ); *file_object_io_handle = NULL; + + PyGILState_Release( + gil_state ); } return( 1 ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/pylnk/pylnk_string.c new/liblnk-20230928/pylnk/pylnk_string.c --- old/liblnk-20230716/pylnk/pylnk_string.c 2023-07-16 07:57:46.000000000 +0200 +++ new/liblnk-20230928/pylnk/pylnk_string.c 2023-09-28 10:08:39.000000000 +0200 @@ -164,16 +164,6 @@ goto on_error; } } - if( PyUnicode_READY( - string_object ) == -1 ) - { - PyErr_Format( - PyExc_RuntimeError, - "%s: unable to finalize string object.", - function ); - - goto on_error; - } PyMem_Free( utf32_string ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/pyproject.toml new/liblnk-20230928/pyproject.toml --- old/liblnk-20230716/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/liblnk-20230928/pyproject.toml 2023-09-09 08:53:21.000000000 +0200 @@ -0,0 +1,4 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/setup.cfg new/liblnk-20230928/setup.cfg --- old/liblnk-20230716/setup.cfg 1970-01-01 01:00:00.000000000 +0100 +++ new/liblnk-20230928/setup.cfg 2023-09-30 10:35:34.000000000 +0200 @@ -0,0 +1,15 @@ +[metadata] +name = liblnk-python +version = 20230928 +description = Python bindings module for liblnk +long_description = Python bindings module for liblnk +author = Joachim Metz +author_email = [email protected] +license = GNU Lesser General Public License v3 or later (LGPLv3+) +license_files = COPYING COPYING.LESSER +classifiers = + Development Status :: 3 - Alpha + Programming Language :: Python + +[options] +python_requires = >=3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/setup.cfg.in new/liblnk-20230928/setup.cfg.in --- old/liblnk-20230716/setup.cfg.in 1970-01-01 01:00:00.000000000 +0100 +++ new/liblnk-20230928/setup.cfg.in 2023-09-24 08:24:35.000000000 +0200 @@ -0,0 +1,15 @@ +[metadata] +name = liblnk-python +version = @VERSION@ +description = Python bindings module for liblnk +long_description = Python bindings module for liblnk +author = Joachim Metz +author_email = [email protected] +license = GNU Lesser General Public License v3 or later (LGPLv3+) +license_files = COPYING COPYING.LESSER +classifiers = + Development Status :: 3 - Alpha + Programming Language :: Python + +[options] +python_requires = >=3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/setup.py new/liblnk-20230928/setup.py --- old/liblnk-20230716/setup.py 2023-07-16 07:58:12.000000000 +0200 +++ new/liblnk-20230928/setup.py 2023-09-28 10:09:13.000000000 +0200 @@ -1,7 +1,7 @@ #!/usr/bin/env python # # Script to build and install Python-bindings. -# Version: 20230411 +# Version: 20230909 from __future__ import print_function @@ -25,44 +25,11 @@ from setuptools.command.build_ext import build_ext from setuptools.command.sdist import sdist -try: - from distutils.command.bdist_msi import bdist_msi -except ImportError: - bdist_msi = None - -try: - from setuptools.command.bdist_rpm import bdist_rpm -except ImportError: - from distutils.command.bdist import bdist as bdist_rpm - - -if not bdist_msi: - custom_bdist_msi = None -else: - class custom_bdist_msi(bdist_msi): - """Custom handler for the bdist_msi command.""" - - def run(self): - """Builds an MSI.""" - # Make a deepcopy of distribution so the following version changes - # only apply to bdist_msi. - self.distribution = copy.deepcopy(self.distribution) - - # bdist_msi does not support the library version so we add ".1" - # as a work around. - self.distribution.metadata.version = "{0:s}.1".format( - self.distribution.metadata.version) - bdist_msi.run(self) - - -class custom_bdist_rpm(bdist_rpm): - """Custom handler for the bdist_rpm command.""" - - def run(self): - """Builds a RPM.""" - print("'setup.py bdist_rpm' command not supported use 'rpmbuild' instead.") - sys.exit(1) +if (sys.version_info[0], sys.version_info[1]) < (3, 7): + print(("Unsupported Python version: {0:s}, version 3.7 or higher " + "required.").format(sys.version)) + sys.exit(1) class custom_build_ext(build_ext): @@ -218,49 +185,25 @@ """The Python module name.""" return "py{0:s}".format(self.library_name[3:]) - @property - def package_name(self): - """The package name.""" - return "{0:s}-python".format(self.library_name) - - @property - def package_description(self): - """The package description.""" - return "Python bindings module for {0:s}".format(self.library_name) - - @property - def project_url(self): - """The project URL.""" - return "https://github.com/libyal/{0:s}/".format(self.library_name) - def _ReadConfigureAc(self): """Reads configure.ac to initialize the project information.""" - file_object = open("configure.ac", "rb") - if not file_object: - raise IOError("Unable to open: configure.ac") - - found_ac_init = False - found_library_name = False - for line in file_object.readlines(): - line = line.strip() - if found_library_name: - library_version = line[1:-2] - if sys.version_info[0] >= 3: - library_version = library_version.decode("ascii") - self.library_version = library_version - break - - elif found_ac_init: - library_name = line[1:-2] - if sys.version_info[0] >= 3: - library_name = library_name.decode("ascii") - self.library_name = library_name - found_library_name = True + with open("configure.ac", "r", encoding="utf-8") as file_object: + found_ac_init = False + found_library_name = False + for line in file_object.readlines(): + line = line.strip() + if found_library_name: + library_version = line[1:-2] + self.library_version = library_version + break - elif line.startswith(b"AC_INIT"): - found_ac_init = True + elif found_ac_init: + library_name = line[1:-2] + self.library_name = library_name + found_library_name = True - file_object.close() + elif line.startswith("AC_INIT"): + found_ac_init = True if not self.library_name or not self.library_version: raise RuntimeError( @@ -271,30 +214,23 @@ if not self.library_name: raise RuntimeError("Missing library name") - file_object = open("Makefile.am", "rb") - if not file_object: - raise IOError("Unable to open: Makefile.am") - - found_subdirs = False - for line in file_object.readlines(): - line = line.strip() - if found_subdirs: - library_name, _, _ = line.partition(b" ") - if sys.version_info[0] >= 3: - library_name = library_name.decode("ascii") - - self.include_directories.append(library_name) + with open("Makefile.am", "r", encoding="utf-8") as file_object: + found_subdirs = False + for line in file_object.readlines(): + line = line.strip() + if found_subdirs: + library_name, _, _ = line.partition(" ") + + self.include_directories.append(library_name) - if library_name.startswith("lib"): - self.library_names.append(library_name) + if library_name.startswith("lib"): + self.library_names.append(library_name) - if library_name == self.library_name: - break - - elif line.startswith(b"SUBDIRS"): - found_subdirs = True + if library_name == self.library_name: + break - file_object.close() + elif line.startswith("SUBDIRS"): + found_subdirs = True if not self.include_directories or not self.library_names: raise RuntimeError( @@ -306,12 +242,8 @@ CMDCLASS = { "build_ext": custom_build_ext, - "bdist_rpm": custom_bdist_rpm, "sdist": custom_sdist} -if custom_bdist_msi: - CMDCLASS["bdist_msi"] = custom_bdist_msi - SOURCES = [] # TODO: replace by detection of MSC @@ -344,18 +276,7 @@ # TODO: find a way to detect missing python.h # e.g. on Ubuntu python-dev is not installed by python-pip -# TODO: what about description and platform in egg file - -setup( - name=project_information.package_name, - url=project_information.project_url, - version=project_information.library_version, - description=project_information.package_description, - long_description=project_information.package_description, - long_description_content_type="text/plain", - author="Joachim Metz", - author_email="[email protected]", - license="GNU Lesser General Public License v3 or later (LGPLv3+)", +setup_args = dict( cmdclass=CMDCLASS, ext_modules=[ Extension( @@ -364,8 +285,9 @@ include_dirs=project_information.include_directories, libraries=[], library_dirs=[], - sources=SOURCES, - ), - ], + sources=SOURCES + ) + ] ) +setup(**setup_args) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/tests/pylnk_test_file.py new/liblnk-20230928/tests/pylnk_test_file.py --- old/liblnk-20230716/tests/pylnk_test_file.py 2023-07-16 07:58:36.000000000 +0200 +++ new/liblnk-20230928/tests/pylnk_test_file.py 2023-09-28 14:40:15.000000000 +0200 @@ -541,6 +541,23 @@ lnk_file.close() + def test_get_data_block(self): + """Tests the get_data_block function.""" + test_source = unittest.source + if not test_source: + raise unittest.SkipTest("missing source") + + lnk_file = pylnk.file() + + lnk_file.open(test_source) + + number_of_data_blocks = lnk_file.get_number_of_data_blocks() + if number_of_data_blocks: + data_block = lnk_file.get_data_block(0) + self.assertIsNotNone(data_block) + + lnk_file.close() + if __name__ == "__main__": argument_parser = argparse.ArgumentParser() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/liblnk-20230716/tests/test_python_module.sh new/liblnk-20230928/tests/test_python_module.sh --- old/liblnk-20230716/tests/test_python_module.sh 2023-07-16 07:58:36.000000000 +0200 +++ new/liblnk-20230928/tests/test_python_module.sh 2023-09-28 14:40:15.000000000 +0200 @@ -8,7 +8,7 @@ EXIT_IGNORE=77; TEST_FUNCTIONS=""; -TEST_FUNCTIONS_WITH_INPUT="file support"; +TEST_FUNCTIONS_WITH_INPUT="data_block file support"; OPTION_SETS=""; TEST_TOOL_DIRECTORY=".";
