diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml new file mode 100644 index 0000000..c0d808d --- /dev/null +++ b/.github/workflows/build_macos.yml @@ -0,0 +1,37 @@ +# Build from source. +name: build_macos +on: [push, pull_request] +permissions: read-all +jobs: + build_ubuntu: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-12 + configure_options: '' + - os: macos-13 + configure_options: '' + - os: macos-14 + configure_options: '' + - os: macos-15 + configure_options: '' + steps: + - uses: actions/checkout@v4 + - name: Install build dependencies + run: | + brew update -q + brew install -q autoconf automake gettext gnu-sed libtool pkg-config || true + brew link --force gettext + ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize + - name: Download test data + run: | + if test -x "synctestdata.sh"; then ./synctestdata.sh; fi + - name: Building from source + env: + CC: ${{ matrix.compiler }} + run: | + tests/build.sh ${{ matrix.configure_options }} + - name: Run tests + run: | + tests/runtests.sh diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml index d98d681..d2937bd 100644 --- a/.github/workflows/build_wheel.yml +++ b/.github/workflows/build_wheel.yml @@ -8,8 +8,6 @@ jobs: strategy: matrix: include: - - python-version: '3.7' - toxenv: 'py37' - python-version: '3.8' toxenv: 'py38' - python-version: '3.9' @@ -20,6 +18,8 @@ jobs: toxenv: 'py311' - python-version: '3.12' toxenv: 'py312' + - python-version: '3.13' + toxenv: 'py313' steps: - uses: actions/checkout@v4 - name: Install build dependencies diff --git a/appveyor.yml b/appveyor.yml index 5f0b043..6288332 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -81,7 +81,7 @@ environment: PYTHON_PATH: "C:\\Python311-x64" - TARGET: macos-x64-clang BUILD_ENVIRONMENT: xcode - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 CC: clang CFLAGS: "-I/usr/local/include" @@ -89,7 +89,7 @@ environment: CONFIGURE_OPTIONS: "" - TARGET: macos-x64-gcc BUILD_ENVIRONMENT: xcode - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 CC: gcc CFLAGS: "-I/usr/local/include" @@ -97,7 +97,7 @@ environment: CONFIGURE_OPTIONS: "" - TARGET: macos-x64-gcc-python BUILD_ENVIRONMENT: xcode - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma PYTHON: "/usr/local/opt/python@3.11/bin/python3" PYTHON_CONFIG: "/usr/local/opt/python@3.11/bin/python3-config" HOMEBREW_NO_INSTALL_CLEANUP: 1 @@ -107,7 +107,7 @@ environment: CONFIGURE_OPTIONS: "--enable-python" - TARGET: macos-pkgbuild BUILD_ENVIRONMENT: xcode - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma PYTHON: "/usr/local/opt/python@3.11/bin/python3" PYTHON_CONFIG: "/usr/local/opt/python@3.11/bin/python3-config" HOMEBREW_NO_INSTALL_CLEANUP: 1 @@ -175,36 +175,48 @@ environment: PYTHON: "C:\\Python312-x64\\python.exe" PYTHON_VERSION: 3.12 TOXENV: py312 - - TARGET: macos-tox-py38 + - TARGET: windows-tox-py313-32bit BUILD_ENVIRONMENT: python-tox - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey - HOMEBREW_NO_INSTALL_CLEANUP: 1 - PYTHON_VERSION: 3.8 - TOXENV: py38 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + PYTHON: "C:\\Python313\\python.exe" + PYTHON_VERSION: 3.13 + TOXENV: py313 + - TARGET: windows-tox-py313-64bit + BUILD_ENVIRONMENT: python-tox + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + PYTHON: "C:\\Python313-x64\\python.exe" + PYTHON_VERSION: 3.13 + TOXENV: py313 - TARGET: macos-tox-py39 BUILD_ENVIRONMENT: python-tox - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 PYTHON_VERSION: 3.9 TOXENV: py39 - TARGET: macos-tox-py310 BUILD_ENVIRONMENT: python-tox - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 PYTHON_VERSION: 3.10 TOXENV: py310 - TARGET: macos-tox-py311 BUILD_ENVIRONMENT: python-tox - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 PYTHON_VERSION: 3.11 TOXENV: py311 - TARGET: macos-tox-py312 BUILD_ENVIRONMENT: python-tox - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma HOMEBREW_NO_INSTALL_CLEANUP: 1 PYTHON_VERSION: 3.12 TOXENV: py312 + - TARGET: macos-tox-py313 + BUILD_ENVIRONMENT: python-tox + APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma + HOMEBREW_NO_INSTALL_CLEANUP: 1 + PYTHON_VERSION: 3.13 + TOXENV: py313 - TARGET: linux-tox-py310 BUILD_ENVIRONMENT: python-tox APPVEYOR_BUILD_WORKER_IMAGE: ubuntu2204 diff --git a/autogen.ps1 b/autogen.ps1 index fd3f68b..f39c5f1 100644 --- a/autogen.ps1 +++ b/autogen.ps1 @@ -1,12 +1,12 @@ # Script to generate the necessary files for a msvscpp build # -# Version: 20240306 +# Version: 20241014 $WinFlex = "..\win_flex_bison\win_flex.exe" $WinBison = "..\win_flex_bison\win_bison.exe" -$Library = Get-Content -Path configure.ac | select -skip 3 -first 1 | % { $_ -Replace " \[","" } | % { $_ -Replace "\],","" } -$Version = Get-Content -Path configure.ac | select -skip 4 -first 1 | % { $_ -Replace " \[","" } | % { $_ -Replace "\],","" } +$Library = Get-Content -Path configure.ac | select -skip 3 -first 1 | % { $_ -Replace " \[","" } | % { $_ -Replace "\],","" } +$Version = Get-Content -Path configure.ac | select -skip 4 -first 1 | % { $_ -Replace " \[","" } | % { $_ -Replace "\],","" } $Prefix = ${Library}.Substring(3) Get-Content -Path "include\${Library}.h.in" | Out-File -Encoding ascii "include\${Library}.h" diff --git a/autogen.sh b/autogen.sh index 83f54ea..bd307d2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,32 +1,38 @@ #!/bin/sh -# Script to generate ./configure using the autotools +# Script to generate configure and Makefile using the autotools. # -# Version: 20230405 +# Version: 20241013 EXIT_SUCCESS=0; EXIT_FAILURE=1; -BINDIR="/usr/bin"; +BINDIR=`which aclocal`; +BINDIR=`dirname ${BINDIR}`; -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/usr/bin"; then - BINDIR="/usr/local/bin"; + BINDIR="/usr/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/usr/local/bin"; then BINDIR="/usr/local/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/opt/local/bin"; then # Default location of MacPorts installed binaries. BINDIR="/opt/local/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/opt/homebrew/bin"; +then + # Default location of Homebrew installed binaries. + BINDIR="/opt/homebrew/bin"; +fi +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/mingw32/bin"; then # Default location of 32-bit MSYS2-MinGW installed binaries. BINDIR="/mingw32/bin"; fi -if ! test -x "${BINDIR}/aclocal"; +if ! test -x "${BINDIR}/aclocal" && test "${BINDIR}" != "/mingw64/bin"; then # Default location of 64-bit MSYS2-MinGW installed binaries. BINDIR="/mingw64/bin"; @@ -91,35 +97,30 @@ else exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOCONF}"; then echo "Unable to find: autoconf"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOHEADER}"; then echo "Unable to find: autoheader"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOMAKE}"; then echo "Unable to find: automake"; exit ${EXIT_FAILURE}; fi - if ! test -x "${AUTOPOINT}"; then echo "Unable to find: autopoint"; exit ${EXIT_FAILURE}; fi - if ! test -x "${LIBTOOLIZE}"; then echo "Unable to find: libtoolize"; diff --git a/configure.ac b/configure.ac index fdde178..fbb1ec5 100644 --- a/configure.ac +++ b/configure.ac @@ -1,12 +1,12 @@ AC_PREREQ([2.71]) AC_INIT( - [libhmac], - [20240923], - [joachim.metz@gmail.com]) + [libhmac], + [20241028], + [joachim.metz@gmail.com]) AC_CONFIG_SRCDIR( - [include/libhmac.h.in]) + [include/libhmac.h.in]) AM_INIT_AUTOMAKE([gnu 1.6 tar-ustar]) AM_EXTRA_RECURSIVE_TARGETS([sources splint]) @@ -122,28 +122,28 @@ CFLAGS="$CFLAGS -Wall"; dnl Check if requires and build requires should be set in spec file AS_IF( - [test "x$ac_cv_libcerror" = xyes || test "x$ac_cv_libcthreads" = xyes || test "x$ac_cv_libcrypto" != xno], - [AC_SUBST( - [libhmac_spec_requires], - [Requires:]) - ]) + [test "x$ac_cv_libcerror" = xyes || test "x$ac_cv_libcthreads" = xyes || test "x$ac_cv_libcrypto" != xno], + [AC_SUBST( + [libhmac_spec_requires], + [Requires:]) + ]) AS_IF( - [test "x$ac_cv_libclocale" = xyes || test "x$ac_cv_libcnotify" = xyes || test "x$ac_cv_libcsplit" = xyes || test "x$ac_cv_libuna" = xyes || test "x$ac_cv_libcfile" = xyes || test "x$ac_cv_libcpath" = xyes], - [AC_SUBST( - [libhmac_spec_tools_build_requires], - [BuildRequires:]) - ]) + [test "x$ac_cv_libclocale" = xyes || test "x$ac_cv_libcnotify" = xyes || test "x$ac_cv_libcsplit" = xyes || test "x$ac_cv_libuna" = xyes || test "x$ac_cv_libcfile" = xyes || test "x$ac_cv_libcpath" = xyes], + [AC_SUBST( + [libhmac_spec_tools_build_requires], + [BuildRequires:]) + ]) dnl Set the date for the dpkg files AC_SUBST( - [DPKG_DATE], - [`date -R 2> /dev/null`]) + [DPKG_DATE], + [`date -R 2> /dev/null`]) dnl Set the date for the spec file AC_SUBST( - [SPEC_DATE], - [`date +"%a %b %e %Y" 2> /dev/null`]) + [SPEC_DATE], + [`date +"%a %b %e %Y" 2> /dev/null`]) dnl Generate Makefiles AC_CONFIG_FILES([Makefile]) diff --git a/libhmac/libhmac_sha512_context.c b/libhmac/libhmac_sha512_context.c index 773acd1..7bb7b14 100644 --- a/libhmac/libhmac_sha512_context.c +++ b/libhmac/libhmac_sha512_context.c @@ -1267,11 +1267,11 @@ int libhmac_sha512_context_finalize( return( -1 ); } - /* Add padding with a size of 120 mod 128 + /* Add padding with a size of 112 mod 128 */ number_of_blocks = 1; - if( internal_context->block_offset > 119 ) + if( internal_context->block_offset > 111 ) { number_of_blocks += 1; } diff --git a/m4/common.m4 b/m4/common.m4 index c2ea816..c229b79 100644 --- a/m4/common.m4 +++ b/m4/common.m4 @@ -1,6 +1,6 @@ dnl Checks for common headers and functions dnl -dnl Version: 20240513 +dnl Version: 20241013 dnl Function to test if a certain feature was disabled AC_DEFUN([AX_COMMON_ARG_DISABLE], @@ -113,7 +113,7 @@ AC_DEFUN([AX_COMMON_CHECK_ENABLE_VERBOSE_OUTPUT], ac_cv_enable_verbose_output=yes]) ]) -dnl Function to detect whether static executables support should be enabled +dnl Function to detect whether wide character type support should be enabled AC_DEFUN([AX_COMMON_CHECK_ENABLE_WIDE_CHARACTER_TYPE], [AX_COMMON_ARG_ENABLE( [wide-character-type], diff --git a/setup.cfg.in b/setup.cfg.in index e89da21..c935d38 100644 --- a/setup.cfg.in +++ b/setup.cfg.in @@ -13,4 +13,4 @@ classifiers = Programming Language :: Python [options] -python_requires = >=3.7 +python_requires = >=3.8 diff --git a/tox.ini b/tox.ini index 2e47be1..1bdcf01 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = auditwheel,py3{7,8,9,10,11,12} +envlist = auditwheel,py3{8,9,10,11,12,13} [testenv] usedevelop = True