Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libdiscid for openSUSE:Factory checked in at 2026-07-17 01:44:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libdiscid (Old) and /work/SRC/openSUSE:Factory/.libdiscid.new.24530 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libdiscid" Fri Jul 17 01:44:22 2026 rev:32 rq:1366147 version:0.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libdiscid/libdiscid.changes 2025-05-30 17:22:21.147834883 +0200 +++ /work/SRC/openSUSE:Factory/.libdiscid.new.24530/libdiscid.changes 2026-07-17 01:45:18.824957077 +0200 @@ -1,0 +2,25 @@ +Thu Jul 9 13:08:44 UTC 2026 - Yunus Acar <[email protected]> + +- Update Source URL. +- Switch to declarative cmake build. + * Update libdiscid-no-crypto.patch for the cmake build system and + rename to use-openssl.patch. +- Drop baselibs.conf, as its not used/needed anymore. +- Update to version 0.7.0: + * Add DISCID_USE_HTTPS build flag: If set, the functions + discid_get_submission_url and discid_get_webservice_url will + generate URLs using the HTTPS protocol instead of HTTP. This + might break existing applications that rely on the exact URL + structure being returned, hence this flag is disabled by + default. NOTE: DISCID_USE_HTTPS will become the default in + a future release. Please update your software to not rely on + the exact URL structure being returned. + * CMake: Fix pkg-config .pc file not being relocatable + * Autotools: Fix "make docs" not including examples + * Mac: Fix compiler warning about deprecated use of IOMasterPort + * Fix compiler warnings about use of strncpy + * Consistently use CRLF for newlines in versioninfo.rc + * Provide Windows ARM64 binary builds +- Trim whitespace in .changes file. + +------------------------------------------------------------------- @@ -194 +218,0 @@ - Old: ---- baselibs.conf libdiscid-0.6.5.tar.gz libdiscid-no-crypto.patch New: ---- libdiscid-0.7.0.tar.gz use-openssl.patch ----------(Old B)---------- Old:- Switch to declarative cmake build. * Update libdiscid-no-crypto.patch for the cmake build system and rename to use-openssl.patch. ----------(Old E)---------- ----------(New B)---------- New: * Update libdiscid-no-crypto.patch for the cmake build system and rename to use-openssl.patch. - Drop baselibs.conf, as its not used/needed anymore. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libdiscid.spec ++++++ --- /var/tmp/diff_new_pack.CyELvx/_old 2026-07-17 01:45:19.700986636 +0200 +++ /var/tmp/diff_new_pack.CyELvx/_new 2026-07-17 01:45:19.700986636 +0200 @@ -1,7 +1,7 @@ # # spec file for package libdiscid # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,21 +17,24 @@ %define libname libdiscid0 + Name: libdiscid -Version: 0.6.5 +Version: 0.7.0 Release: 0 Summary: Library for gathering DiscIDs and ISRCs from audio CDs License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ URL: https://musicbrainz.org/doc/libdiscid -Source: http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/%{name}-%{version}.tar.gz -Source1000: baselibs.conf -# PATCH-FEATURE-OPENSUSE libdiscid-no-crypto.patch -Patch0: libdiscid-no-crypto.patch -BuildRequires: libtool -BuildRequires: openssl-devel +Source: https://data.metabrainz.org/pub/musicbrainz/%{name}/%{name}-%{version}.tar.gz +# PATCH-FEATURE-OPENSUSE use-openssl.patch +Patch0: use-openssl.patch + +BuildRequires: cmake BuildRequires: pkgconfig BuildRequires: pkgconfig(libmusicbrainz5) +BuildRequires: pkgconfig(libopenssl) + +BuildSystem: cmake %description libdiscid is a C library for creating MusicBrainz and freedb DiscIDs @@ -66,32 +69,14 @@ Additionally, it provides a submission URL for adding the DiscID to the database and gathers ISRCs and the MCN from disc. -%prep -%autosetup -p1 - -%build -autoreconf -fiv -%configure \ - --disable-silent-rules \ - --disable-static -%make_build - -%install -%make_install -find %{buildroot} -type f -name "*.la" -delete -print - -%check -%make_build check - -%post -n %{libname} -p /sbin/ldconfig -%postun -n %{libname} -p /sbin/ldconfig +%ldconfig_scriptlets -n %{libname} %files -n %{libname} -%{_libdir}/libdiscid.so.0* +%{_libdir}/libdiscid.so.* %files devel -%dir %{_includedir}/discid -%{_includedir}/discid/*.h %{_libdir}/libdiscid.so %{_libdir}/pkgconfig/libdiscid.pc +%dir %{_includedir}/discid +%{_includedir}/discid/discid.h ++++++ libdiscid-0.6.5.tar.gz -> libdiscid-0.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/CMakeLists.txt new/libdiscid-0.7.0/CMakeLists.txt --- old/libdiscid-0.6.5/CMakeLists.txt 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/CMakeLists.txt 2026-07-08 08:04:44.000000000 +0200 @@ -10,8 +10,11 @@ # MINOR is increased when features are added to the API # PATCH is increase for all other releases SET(libdiscid_MAJOR 0) -SET(libdiscid_MINOR 6) -SET(libdiscid_PATCH 5) +SET(libdiscid_MINOR 7) +SET(libdiscid_PATCH 0) + +# Build options +OPTION(ENABLE_USE_HTTPS "Enable creating HTTPS URLs" OFF) SET(libdiscid_VERSION ${libdiscid_MAJOR}.${libdiscid_MINOR}.${libdiscid_PATCH}) @@ -38,13 +41,16 @@ SET(PACKAGE ${PROJECT_NAME}) SET(VERSION ${PROJECT_VERSION}) SET(PACKAGE_STRING "${PACKAGE} ${VERSION}") -SET(includedir ${INCLUDE_INSTALL_DIR}) -SET(libdir ${LIB_INSTALL_DIR}) - -CONFIGURE_FILE(libdiscid.pc.in libdiscid.pc) -CONFIGURE_FILE(versioninfo.rc.in versioninfo.rc) -CONFIGURE_FILE(Doxyfile.in Doxyfile) -CONFIGURE_FILE(include/discid/discid.h.in include/discid/discid.h) +SET(srcdir ${CMAKE_SOURCE_DIR}) +SET(prefix ${CMAKE_INSTALL_PREFIX}) +SET(exec_prefix \$\{prefix\}) +SET(includedir \$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}) +SET(libdir \$\{exec_prefix\}/${CMAKE_INSTALL_LIBDIR}) + +CONFIGURE_FILE(libdiscid.pc.in libdiscid.pc @ONLY) +CONFIGURE_FILE(versioninfo.rc.in versioninfo.rc @ONLY NEWLINE_STYLE CRLF) +CONFIGURE_FILE(Doxyfile.in Doxyfile @ONLY) +CONFIGURE_FILE(include/discid/discid.h.in include/discid/discid.h @ONLY) # normalizing operating systems IF(CMAKE_SYSTEM_NAME MATCHES "Linux") @@ -107,6 +113,9 @@ ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/include ${MUSICBRAINZ5_INCLUDE_DIRS}) +IF(ENABLE_USE_HTTPS) + TARGET_COMPILE_DEFINITIONS(libdiscid PUBLIC DISCID_USE_HTTPS) +ENDIF() ADD_EXECUTABLE(discid examples/discid.c) TARGET_LINK_LIBRARIES(discid libdiscid) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/COPYING new/libdiscid-0.7.0/COPYING --- old/libdiscid-0.6.5/COPYING 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/COPYING 2026-07-08 08:04:44.000000000 +0200 @@ -1,8 +1,8 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -10,7 +10,7 @@ as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -112,7 +112,7 @@ former contains code derived from the library, whereas the latter must be combined with the library in order to run. - GNU LESSER GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other @@ -146,7 +146,7 @@ on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. - + 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an @@ -432,7 +432,7 @@ of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. @@ -455,7 +455,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries @@ -484,8 +484,7 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see <https://www.gnu.org/licenses/>. Also add information on how to contact you by electronic and paper mail. @@ -496,9 +495,7 @@ Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice + <signature of Moe Ghoul>, 1 April 1990 + Moe Ghoul, President of Vice That's all there is to it! - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/ChangeLog new/libdiscid-0.7.0/ChangeLog --- old/libdiscid-0.6.5/ChangeLog 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/ChangeLog 2026-07-08 08:04:44.000000000 +0200 @@ -1,9 +1,24 @@ libdiscid ChangeLog: -------------------- +libdiscid-0.7.0: + +- Add DISCID_USE_HTTPS build flag: If set, the functions discid_get_submission_url + and discid_get_webservice_url will generate URLs using the HTTPS protocol instead + of HTTP. This might break existing applications that rely on the exact URL + structure being returned, hence this flag is disabled by default. + NOTE: DISCID_USE_HTTPS will become the default in a future release. Please + update your software to not rely on the exact URL structure being returned. +- CMake: Fix pkg-config .pc file not being relocatable +- Autotools: Fix "make docs" not including examples +- Mac: Fix compiler warning about deprecated use of IOMasterPort +- Fix compiler warnings about use of strncpy +- Consistently use CRLF for newlines in versioninfo.rc +- Provide Windows ARM64 binary builds + libdiscid-0.6.5: -- CMake: Restore includedir and libdir +- CMake: Fix broken pkg-config by restoring includedir and libdir - Code sign Windows and macOS binaries libdiscid-0.6.4: @@ -133,4 +148,3 @@ libdiscid-0.1.0: - Initial public release. - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/Doxyfile.in new/libdiscid-0.7.0/Doxyfile.in --- old/libdiscid-0.6.5/Doxyfile.in 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/Doxyfile.in 2026-07-08 08:04:44.000000000 +0200 @@ -15,4 +15,4 @@ MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES HTML_TIMESTAMP = NO -EXAMPLE_PATH = "@CMAKE_SOURCE_DIR@/examples/" +EXAMPLE_PATH = "@srcdir@/examples/" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/INSTALL new/libdiscid-0.7.0/INSTALL --- old/libdiscid-0.6.5/INSTALL 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/INSTALL 2026-07-08 08:04:44.000000000 +0200 @@ -29,6 +29,30 @@ make docs + +Compiler flags +-------------- + +The following defines can be used to change the build: + +DISCID_USE_HTTPS: If set, the functions discid_get_submission_url and + discid_get_webservice_url will generate URLs using the HTTPS protocol instead + of HTTP. This might break existing applications that rely on the exact URL + structure being returned. + +To enable this feature when using CMake, change the cmake command from above to: + + cmake -DENABLE_USE_HTTPS=ON .. + +To enable this feature when using Autotools, change the configure command from above to: + + ../configure --enable-use-https=yes + +NOTE: Having DISCID_USE_HTTPS enabled will become the default in a future release. + Please prepare your code to not rely on the specific URL protocol for URLs + generated by libdiscid. + + Building from git repository ---------------------------- If you fetched the source with git, you should either @@ -36,6 +60,7 @@ or have autoconf, automake and libtool installed and do ./autogen.sh before doing the usual build. + Tips for Windows ---------------- For most systems cmake and autotools work (nearly) "out of the box". @@ -51,6 +76,7 @@ cmake -G "NMake Makefiles" .. nmake + Notes for BSD ------------- With Cmake builds the library version/soname will work the same as on Linux. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/Makefile.am new/libdiscid-0.7.0/Makefile.am --- old/libdiscid-0.6.5/Makefile.am 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/Makefile.am 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# License along with this library; if not, see +# <https://www.gnu.org/licenses/>. # EXTRA_DIST = libdiscid.pc.in Doxyfile.in CMakeLists.txt config-cmake.h.in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/Makefile.in new/libdiscid-0.7.0/Makefile.in --- old/libdiscid-0.6.5/Makefile.in 2025-05-21 12:20:18.000000000 +0200 +++ new/libdiscid-0.7.0/Makefile.in 2026-07-08 08:04:47.000000000 +0200 @@ -31,8 +31,8 @@ # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# License along with this library; if not, see +# <https://www.gnu.org/licenses/>. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/config.h.in new/libdiscid-0.7.0/config.h.in --- old/libdiscid-0.6.5/config.h.in 2025-05-21 12:20:17.000000000 +0200 +++ new/libdiscid-0.7.0/config.h.in 2026-07-08 08:04:46.000000000 +0200 @@ -3,6 +3,9 @@ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD +/* Define to 1 if use_https is enabled */ +#undef DISCID_USE_HTTPS + /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/configure new/libdiscid-0.7.0/configure --- old/libdiscid-0.6.5/configure 2025-05-21 12:20:18.000000000 +0200 +++ new/libdiscid-0.7.0/configure 2026-07-08 08:04:47.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libdiscid 0.6.5. +# Generated by GNU Autoconf 2.71 for libdiscid 0.7.0. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -618,8 +618,8 @@ # Identity of this package. PACKAGE_NAME='libdiscid' PACKAGE_TARNAME='libdiscid' -PACKAGE_VERSION='0.6.5' -PACKAGE_STRING='libdiscid 0.6.5' +PACKAGE_VERSION='0.7.0' +PACKAGE_STRING='libdiscid 0.7.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -808,6 +808,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +enable_use_https enable_silent_rules enable_dependency_tracking enable_shared @@ -1376,7 +1377,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 libdiscid 0.6.5 to adapt to many kinds of systems. +\`configure' configures libdiscid 0.7.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1447,7 +1448,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libdiscid 0.6.5:";; + short | recursive ) echo "Configuration of libdiscid 0.7.0:";; esac cat <<\_ACEOF @@ -1455,6 +1456,7 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-use-https Enable creating HTTPS URLs --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking @@ -1557,7 +1559,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libdiscid configure 0.6.5 +libdiscid configure 0.7.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2007,7 +2009,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libdiscid $as_me 0.6.5, which was +It was created by libdiscid $as_me 0.7.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2763,6 +2765,16 @@ +# Check whether --enable-use_https was given. +if test ${enable_use_https+y} +then : + enableval=$enable_use_https; use_https=$enableval +else $as_nop + use_https=no + +fi + + ac_config_headers="$ac_config_headers config.h" @@ -3281,7 +3293,7 @@ # Define the identity of the package. PACKAGE='libdiscid' - VERSION='0.6.5' + VERSION='0.7.0' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -4820,8 +4832,8 @@ libdiscid_MAJOR=0 -libdiscid_MINOR=6 -libdiscid_PATCH=5 +libdiscid_MINOR=7 +libdiscid_PATCH=0 libdiscid_VERSION_LT=${libdiscid_MAJOR}:${libdiscid_MINOR}:${libdiscid_PATCH} libdiscid_VERSION_RC=${libdiscid_MAJOR},${libdiscid_MINOR},${libdiscid_PATCH},0 @@ -4917,7 +4929,11 @@ printf "%s\n" "#define libdiscid_EXPORTS /**/" >>confdefs.h +if test "x$use_https" = "xyes"; then +printf "%s\n" "#define DISCID_USE_HTTPS 1" >>confdefs.h + +fi case "${host_cpu}-${host_os}" in *-haiku*) os=haiku;; @@ -15457,7 +15473,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libdiscid $as_me 0.6.5, which was +This file was extended by libdiscid $as_me 0.7.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15525,7 +15541,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libdiscid config.status 0.6.5 +libdiscid config.status 0.7.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/configure.ac new/libdiscid-0.7.0/configure.ac --- old/libdiscid-0.6.5/configure.ac 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/configure.ac 2026-07-08 08:04:44.000000000 +0200 @@ -7,12 +7,18 @@ # MINOR is increased when features are added to the API # PATCH is increase for all other releases define(MAJOR, 0) -define(MINOR, 6) -define(PATCH, 5) +define(MINOR, 7) +define(PATCH, 0) # currently the sole purpose of the project is the library, # so we use the library version also as project version AC_INIT([libdiscid],[MAJOR.MINOR.PATCH]) +AC_ARG_ENABLE([use_https], + AS_HELP_STRING([--enable-use-https], [Enable creating HTTPS URLs]), + [use_https=$enableval], + [use_https=no] +) + AC_CONFIG_SRCDIR([src/disc.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([build-aux]) # where to put config.guess etc. @@ -42,7 +48,9 @@ AC_CANONICAL_HOST AC_DEFINE(libdiscid_EXPORTS, [], "the header is used to create the library") - +if test "x$use_https" = "xyes"; then + AC_DEFINE([DISCID_USE_HTTPS], [1], [Define to 1 if use_https is enabled]) +fi case "${host_cpu}-${host_os}" in *-haiku*) os=haiku;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/examples/disc_metadata.c new/libdiscid-0.7.0/examples/disc_metadata.c --- old/libdiscid-0.6.5/examples/disc_metadata.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/examples/disc_metadata.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/examples/discid.c new/libdiscid-0.7.0/examples/discid.c --- old/libdiscid-0.6.5/examples/discid.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/examples/discid.c 2026-07-08 08:04:44.000000000 +0200 @@ -4,20 +4,20 @@ Copyright (C) 2013 Johannes Dewender, Laurent Monin Copyright (C) 2006 Matthias Friedrich - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #ifdef _MSC_VER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/examples/discisrc.c new/libdiscid-0.7.0/examples/discisrc.c --- old/libdiscid-0.6.5/examples/discisrc.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/examples/discisrc.c 2026-07-08 08:04:44.000000000 +0200 @@ -3,20 +3,20 @@ MusicBrainz -- The Internet music metadatabase Copyright (C) 2006 Matthias Friedrich - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/include/discid/discid.h new/libdiscid-0.7.0/include/discid/discid.h --- old/libdiscid-0.6.5/include/discid/discid.h 2025-05-21 12:20:22.000000000 +0200 +++ new/libdiscid-0.7.0/include/discid/discid.h 2026-07-08 08:05:02.000000000 +0200 @@ -17,8 +17,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #ifndef MUSICBRAINZ_DISC_ID_H @@ -51,9 +51,9 @@ #endif #define DISCID_VERSION_MAJOR 0 -#define DISCID_VERSION_MINOR 6 -#define DISCID_VERSION_PATCH 5 -#define DISCID_VERSION_NUM 605 +#define DISCID_VERSION_MINOR 7 +#define DISCID_VERSION_PATCH 0 +#define DISCID_VERSION_NUM 700 #ifdef __cplusplus extern "C" { @@ -108,7 +108,8 @@ * - <a href="https://tickets.musicbrainz.org/browse/LIB">MusicBrainz Bug Tracker</a> * - <a href="https://musicbrainz.org/doc/libdiscid">libdiscid Documentation</a> * - <a href="https://github.com/metabrainz/libdiscid">Github Repository</a> - * - IRC: <a href="https://musicbrainz.org/doc/Communication/IRC">\#metabrainz on Libera.Chat</a> + * - <a href="https://musicbrainz.org/doc/Communication/ChatBrainz">Matrix, IRC, Discord</a> + * - <a href="https://community.metabrainz.org/c/musicbrainz/devel">Community Forums</a> * */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/include/discid/discid.h.in new/libdiscid-0.7.0/include/discid/discid.h.in --- old/libdiscid-0.6.5/include/discid/discid.h.in 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/include/discid/discid.h.in 2026-07-08 08:04:44.000000000 +0200 @@ -17,8 +17,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #ifndef MUSICBRAINZ_DISC_ID_H @@ -108,7 +108,8 @@ * - <a href="https://tickets.musicbrainz.org/browse/LIB">MusicBrainz Bug Tracker</a> * - <a href="https://musicbrainz.org/doc/libdiscid">libdiscid Documentation</a> * - <a href="https://github.com/metabrainz/libdiscid">Github Repository</a> - * - IRC: <a href="https://musicbrainz.org/doc/Communication/IRC">\#metabrainz on Libera.Chat</a> + * - <a href="https://musicbrainz.org/doc/Communication/ChatBrainz">Matrix, IRC, Discord</a> + * - <a href="https://community.metabrainz.org/c/musicbrainz/devel">Community Forums</a> * */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/include/discid/discid_private.h new/libdiscid-0.7.0/include/discid/discid_private.h --- old/libdiscid-0.6.5/include/discid/discid_private.h 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/include/discid/discid_private.h 2026-07-08 08:04:44.000000000 +0200 @@ -3,20 +3,20 @@ MusicBrainz -- The Internet music metadatabase Copyright (C) 2006 Matthias Friedrich - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. $Id$ @@ -27,8 +27,18 @@ #ifndef MUSICBRAINZ_DISC_ID_PRIVATE_H #define MUSICBRAINZ_DISC_ID_PRIVATE_H +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + #include "discid/discid.h" +#ifdef DISCID_USE_HTTPS +#define MB_URL_PROTOCOL "https" +#else +#define MB_URL_PROTOCOL "http" +#endif + /* Length of toc string, "xxx+xxx" + 100 tracks 7 bytes each ("+xxxxxx") * The highest possible offset is 90 minutes * 60 seconds/minute * 75 frames/second = 405000. * That is 6 digits plus one plus sign = 7 characters per track. @@ -52,10 +62,10 @@ #define MB_MAX_URL_LENGTH (MB_URL_PREFIX_LENGTH + MB_DISC_ID_LENGTH + MB_TOC_STRING_LENGTH) /* The URL that can be used for submitting DiscIDs (no parameters yet) */ -#define MB_SUBMISSION_URL "http://musicbrainz.org/cdtoc/attach" +#define MB_SUBMISSION_URL MB_URL_PROTOCOL"://musicbrainz.org/cdtoc/attach" /* The URL that can be used for retrieving XML for a CD */ -#define MB_WEBSERVICE_URL "http://musicbrainz.org/ws/1/release" +#define MB_WEBSERVICE_URL MB_URL_PROTOCOL"://musicbrainz.org/ws/1/release" /* Maximum length of a Media Catalogue Number string */ #define MCN_STR_LENGTH 13 @@ -117,7 +127,7 @@ /* - * This should return the name of the default/preferred CDROM/DVD device + * This should return the name of the default/preferred CDROM/DVD device * on this operating system. It has to be in a format usable for the second * parameter of mb_disc_read_unportable(). */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/base64.c new/libdiscid-0.7.0/src/base64.c --- old/libdiscid-0.6.5/src/base64.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/base64.c 2026-07-08 08:04:44.000000000 +0200 @@ -3,20 +3,20 @@ MusicBrainz -- The Internet music metadatabase Copyright (C) 2000 Robert Kaye - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. $Id$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/base64.h new/libdiscid-0.7.0/src/base64.h --- old/libdiscid-0.6.5/src/base64.h 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/base64.h 2026-07-08 08:04:44.000000000 +0200 @@ -3,20 +3,20 @@ MusicBrainz -- The Internet music metadatabase Copyright (C) 2000 Robert Kaye - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. $Id$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc.c new/libdiscid-0.7.0/src/disc.c --- old/libdiscid-0.6.5/src/disc.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc.c 2026-07-08 08:04:44.000000000 +0200 @@ -5,20 +5,20 @@ Copyright (C) 2006 Matthias Friedrich Copyright (C) 2000 Robert Kaye Copyright (C) 1999 Marc E E van Woerkom - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_bsd.c new/libdiscid-0.7.0/src/disc_bsd.c --- old/libdiscid-0.6.5/src/disc_bsd.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_bsd.c 2026-07-08 08:04:44.000000000 +0200 @@ -18,8 +18,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ @@ -78,7 +78,7 @@ rte.data = &te[0]; rte.data_len = sizeof te; rte.starting_track = toc->first_track_num; - + if (ioctl(fd, CDIOREADTOCENTRYS, &rte) < 0) return 0; /* error */ @@ -122,12 +122,12 @@ if ( ioctl(fd, CDIOCREADSUBCHANNEL, &rsc) < 0 ) perror ("Warning: Unable to read the disc's media catalog number"); else { - if (sci.what.media_catalog.mc_valid) - strncpy( disc->mcn, - (const char *) sci.what.media_catalog.mc_number, - MCN_STR_LENGTH ); - else - memset( disc->mcn, 0, MCN_STR_LENGTH ); + if (sci.what.media_catalog.mc_valid) { + memcpy(disc->mcn, sci.what.media_catalog.mc_number, MCN_STR_LENGTH); + disc->mcn[MCN_STR_LENGTH] = '\0'; + } else { + memset(disc->mcn, 0, MCN_STR_LENGTH+1); + } } } @@ -146,12 +146,14 @@ if ( ioctl(fd, CDIOCREADSUBCHANNEL, &rsc) < 0 ) perror ("Warning: Unable to read track info (ISRC)"); else { - if (sci.what.track_info.ti_valid) - strncpy( disc->isrc[track_num], - (const char *) sci.what.track_info.ti_number, - ISRC_STR_LENGTH ); - else - memset( disc->isrc[track_num], 0, ISRC_STR_LENGTH ); + if (sci.what.track_info.ti_valid) { + memcpy(disc->isrc[track_num], + sci.what.track_info.ti_number, + ISRC_STR_LENGTH); + disc->isrc[track_num][ISRC_STR_LENGTH] = '\0'; + } else { + memset(disc->isrc[track_num], 0, ISRC_STR_LENGTH+1); + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_darwin.c new/libdiscid-0.7.0/src/disc_darwin.c --- old/libdiscid-0.6.5/src/disc_darwin.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_darwin.c 2026-07-08 08:04:44.000000000 +0200 @@ -5,20 +5,20 @@ Copyright (C) 2013 Johannes Dewender Copyright (C) 2006 Robert Kaye Copyright (C) 1999 Marc E E van Woerkom - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. ----------------------------------------------------------------------------*/ @@ -39,21 +39,24 @@ #include "discid/discid_private.h" #include "unix.h" +#include <Availability.h> + +// For compatibility with macOS < 12.0 +#if !defined(__MAC_12_0) || (__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_12_0) +#define kIOMainPortDefault kIOMasterPortDefault +#endif + #define MB_DEFAULT_DEVICE "1" /* first disc drive (empty or not) */ #define TOC_BUFFER_LEN 2048 static int find_cd_block_devices(io_iterator_t *device_iterator) { - mach_port_t master_port; CFMutableDictionaryRef matching_dictionary; - if (IOMasterPort(MACH_PORT_NULL, &master_port) != KERN_SUCCESS) - return 0; - matching_dictionary = IOServiceMatching(kIOCDBlockStorageDeviceClass); - if (IOServiceGetMatchingServices(master_port, matching_dictionary, + if (IOServiceGetMatchingServices(kIOMainPortDefault, matching_dictionary, device_iterator) != KERN_SUCCESS) return 0; else @@ -124,7 +127,8 @@ if(ioctl(fd, DKIOCCDREADMCN, &cd_read_mcn) == -1) { fprintf(stderr, "Warning: Unable to read the disc's media catalog number.\n"); } else { - strncpy( disc->mcn, cd_read_mcn.mcn, MCN_STR_LENGTH ); + memcpy(disc->mcn, cd_read_mcn.mcn, MCN_STR_LENGTH); + disc->mcn[MCN_STR_LENGTH] = '\0'; } } @@ -138,7 +142,8 @@ fprintf(stderr, "Warning: Unable to read the international standard recording code (ISRC) for track %i\n", track); return; } else { - strncpy( disc->isrc[track], cd_read_isrc.isrc, ISRC_STR_LENGTH ); + memcpy(disc->isrc[track], cd_read_isrc.isrc, ISRC_STR_LENGTH); + disc->isrc[track][ISRC_STR_LENGTH] = '\0'; } } @@ -153,7 +158,7 @@ } } -char *mb_disc_get_default_device_unportable(void) +char *mb_disc_get_default_device_unportable(void) { return MB_DEFAULT_DEVICE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_generic.c new/libdiscid-0.7.0/src/disc_generic.c --- old/libdiscid-0.6.5/src/disc_generic.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_generic.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_haiku.c new/libdiscid-0.7.0/src/disc_haiku.c --- old/libdiscid-0.6.5/src/disc_haiku.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_haiku.c 2026-07-08 08:04:44.000000000 +0200 @@ -20,14 +20,10 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> #include <fcntl.h> #include <assert.h> #include <unistd.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_linux.c new/libdiscid-0.7.0/src/disc_linux.c --- old/libdiscid-0.6.5/src/disc_linux.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_linux.c 2026-07-08 08:04:44.000000000 +0200 @@ -6,20 +6,20 @@ Copyright (C) 2006 Matthias Friedrich Copyright (C) 2000 Robert Kaye Copyright (C) 1999 Marc E E van Woerkom - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdlib.h> @@ -164,9 +164,8 @@ if(ioctl(fd, CDROM_GET_MCN, &mcn) == -1) { fprintf(stderr, "Warning: Unable to read the disc's media catalog number.\n"); } else { - strncpy( disc->mcn, - (const char *)mcn.medium_catalog_number, - MCN_STR_LENGTH ); + memcpy(disc->mcn, mcn.medium_catalog_number, MCN_STR_LENGTH); + disc->mcn[MCN_STR_LENGTH] = '\0'; } } @@ -235,8 +234,8 @@ for (i = 0; i < ISRC_STR_LENGTH; i++) { buffer[i] = data[9 + i]; } - buffer[ISRC_STR_LENGTH] = 0; - strncpy(disc->isrc[track_num], buffer, ISRC_STR_LENGTH); + buffer[ISRC_STR_LENGTH] = '\0'; + memcpy(disc->isrc[track_num], buffer, ISRC_STR_LENGTH+1); } /* data[21:23] = zero, AFRAME, reserved */ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_solaris.c new/libdiscid-0.7.0/src/disc_solaris.c --- old/libdiscid-0.6.5/src/disc_solaris.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_solaris.c 2026-07-08 08:04:44.000000000 +0200 @@ -6,21 +6,20 @@ Copyright (C) 2006 Matthias Friedrich Copyright (C) 2000 Robert Kaye Copyright (C) 1999 Marc E E van Woerkom - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdlib.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/disc_win32.c new/libdiscid-0.7.0/src/disc_win32.c --- old/libdiscid-0.6.5/src/disc_win32.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/disc_win32.c 2026-07-08 08:04:44.000000000 +0200 @@ -3,20 +3,20 @@ MusicBrainz -- The Internet music metadatabase Copyright (C) 2007-2008 Lukas Lalinsky - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. ----------------------------------------------------------------------------*/ @@ -101,8 +101,8 @@ if (bResult == FALSE) { fprintf(stderr, "Warning: Unable to read the disc's media catalog number.\n"); } else { - strncpy(disc->mcn, (char *) data.MediaCatalog.MediaCatalog, - MCN_STR_LENGTH); + memcpy(disc->mcn, data.MediaCatalog.MediaCatalog, MCN_STR_LENGTH); + disc->mcn[MCN_STR_LENGTH] = '\0'; } } @@ -121,8 +121,8 @@ if (bResult == FALSE) { fprintf(stderr, "Warning: Unable to read the international standard recording code (ISRC) for track %i\n", track); } else { - strncpy(disc->isrc[track], (char *) data.TrackIsrc.TrackIsrc, - ISRC_STR_LENGTH); + memcpy(disc->isrc[track], data.TrackIsrc.TrackIsrc, ISRC_STR_LENGTH); + disc->isrc[track][ISRC_STR_LENGTH] = '\0'; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/toc.c new/libdiscid-0.7.0/src/toc.c --- old/libdiscid-0.6.5/src/toc.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/toc.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/unix.c new/libdiscid-0.7.0/src/unix.c --- old/libdiscid-0.6.5/src/unix.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/unix.c 2026-07-08 08:04:44.000000000 +0200 @@ -17,8 +17,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdlib.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/src/unix.h new/libdiscid-0.7.0/src/unix.h --- old/libdiscid-0.6.5/src/unix.h 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/src/unix.h 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test.c new/libdiscid-0.7.0/test/test.c --- old/libdiscid-0.6.5/test/test.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test.h new/libdiscid-0.7.0/test/test.h --- old/libdiscid-0.6.5/test/test.h 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test.h 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test_core.c new/libdiscid-0.7.0/test/test_core.c --- old/libdiscid-0.6.5/test/test_core.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test_core.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> @@ -88,7 +88,7 @@ announce("discid_free"); discid_free(d); evaluate(1); /* only segfaults etc. would "show" */ - + return !test_result(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test_put.c new/libdiscid-0.7.0/test/test_put.c --- old/libdiscid-0.6.5/test/test_put.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test_put.c 2026-07-08 08:04:44.000000000 +0200 @@ -16,14 +16,15 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> #include <string.h> #include <discid/discid.h> +#include <discid/discid_private.h> #include "test.h" @@ -100,14 +101,14 @@ /* MusicBrainz web submit URL */ announce("discid_get_submission_url"); - expected = "http://musicbrainz.org/cdtoc/attach?id=xUp1F2NkfP8s8jaeFn_Av3jNEI4-&tracks=22&toc=1+22+303602+150+9700+25887+39297+53795+63735+77517+94877+107270+123552+135522+148422+161197+174790+192022+205545+218010+228700+239590+255470+266932+288750"; + expected = MB_URL_PROTOCOL "://musicbrainz.org/cdtoc/attach?id=xUp1F2NkfP8s8jaeFn_Av3jNEI4-&tracks=22&toc=1+22+303602+150+9700+25887+39297+53795+63735+77517+94877+107270+123552+135522+148422+161197+174790+192022+205545+218010+228700+239590+255470+266932+288750"; evaluate(equal_str(discid_get_submission_url(d), expected)); announce("discid_get_error_msg"); evaluate(strlen(discid_get_error_msg(d)) == 0); discid_free(d); - + return !test_result(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test_read.c new/libdiscid-0.7.0/test/test_read.c --- old/libdiscid-0.6.5/test/test_read.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test_read.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/test/test_read_full.c new/libdiscid-0.7.0/test/test_read_full.c --- old/libdiscid-0.6.5/test/test_read_full.c 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/test/test_read_full.c 2026-07-08 08:04:44.000000000 +0200 @@ -15,8 +15,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + License along with this library; if not, see + <https://www.gnu.org/licenses/>. --------------------------------------------------------------------------- */ #include <stdio.h> @@ -45,18 +45,18 @@ d = discid_new(); announce("discid_has_feature"); - feature_mcn = discid_has_feature(DISCID_FEATURE_MCN); - feature_isrc = discid_has_feature(DISCID_FEATURE_ISRC); - evaluate((feature_mcn == 0 || feature_mcn == 1) + feature_mcn = discid_has_feature(DISCID_FEATURE_MCN); + feature_isrc = discid_has_feature(DISCID_FEATURE_ISRC); + evaluate((feature_mcn == 0 || feature_mcn == 1) && (feature_isrc == 0 || feature_isrc == 1)); announce("discid_read"); if (!discid_read(d, device)) { printf("SKIP\n"); - announce("discid_get_error_msg"); - error_msg = discid_get_error_msg(d); - evaluate(strlen(error_msg) > 0); + announce("discid_get_error_msg"); + error_msg = discid_get_error_msg(d); + evaluate(strlen(error_msg) > 0); printf("\t%s\n\n", error_msg); discid_free(d); @@ -107,7 +107,7 @@ } announce("discid_get_error_msg"); - evaluate(strlen(discid_get_error_msg(d)) == 0); + evaluate(strlen(discid_get_error_msg(d)) == 0); discid_free(d); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/versioninfo.rc new/libdiscid-0.7.0/versioninfo.rc --- old/libdiscid-0.6.5/versioninfo.rc 2025-05-21 12:20:22.000000000 +0200 +++ new/libdiscid-0.7.0/versioninfo.rc 2026-07-08 08:05:02.000000000 +0200 @@ -1,10 +1,10 @@ #include <winver.h> -#define VER_FILEVERSION 0,6,5,0 -#define VER_FILEVERSION_STR "0.6.5\0" +#define VER_FILEVERSION 0,7,0,0 +#define VER_FILEVERSION_STR "0.7.0\0" -#define VER_PRODUCTVERSION 0,6,5,0 -#define VER_PRODUCTVERSION_STR "0.6.5\0" +#define VER_PRODUCTVERSION 0,7,0,0 +#define VER_PRODUCTVERSION_STR "0.7.0\0" VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION @@ -20,7 +20,7 @@ VALUE "FileDescription", "MusicBrainz disc ID library\0" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "discid\0" - VALUE "LegalCopyright", "2006-2023 MetaBrainz Foundation\0" + VALUE "LegalCopyright", "2006-2026 MetaBrainz Foundation\0" VALUE "OriginalFilename", "discid.dll\0" VALUE "ProductName", "libdiscid\0" VALUE "ProductVersion", VER_PRODUCTVERSION_STR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libdiscid-0.6.5/versioninfo.rc.in new/libdiscid-0.7.0/versioninfo.rc.in --- old/libdiscid-0.6.5/versioninfo.rc.in 2025-05-21 12:20:16.000000000 +0200 +++ new/libdiscid-0.7.0/versioninfo.rc.in 2026-07-08 08:04:44.000000000 +0200 @@ -20,7 +20,7 @@ VALUE "FileDescription", "MusicBrainz disc ID library\0" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "discid\0" - VALUE "LegalCopyright", "2006-2023 MetaBrainz Foundation\0" + VALUE "LegalCopyright", "2006-2026 MetaBrainz Foundation\0" VALUE "OriginalFilename", "discid.dll\0" VALUE "ProductName", "libdiscid\0" VALUE "ProductVersion", VER_PRODUCTVERSION_STR ++++++ use-openssl.patch ++++++ Subject: use openssl for sha1 Upstream: no =================================================================== --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ ELSEIF(libdiscid_OS STREQUAL "generic") ELSE() # unix platforms are the standard/default case SET(libdiscid_OSDEP_SRCS src/toc.c src/unix.c src/disc_${libdiscid_OS}.c) + FIND_PACKAGE(OpenSSL REQUIRED) IF(libdiscid_OS STREQUAL "darwin") # Extra libraries needed FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation) FIND_LIBRARY(IOKIT_LIBRARY IOKit) @@ -104,8 +105,8 @@ IF(NOT MUSICBRAINZ5_FOUND) SET(MUSICBRAINZ5_INCLUDE_DIRS "") ENDIF() -ADD_LIBRARY(libdiscid SHARED ${libdiscid_OSDEP_SRCS} ${libdiscid_RCS} src/base64.c src/disc.c src/sha1.c) -TARGET_LINK_LIBRARIES(libdiscid ${libdiscid_OSDEP_LIBS}) +ADD_LIBRARY(libdiscid SHARED ${libdiscid_OSDEP_SRCS} ${libdiscid_RCS} src/base64.c src/disc.c) +TARGET_LINK_LIBRARIES(libdiscid ${libdiscid_OSDEP_LIBS} OpenSSL::Crypto) SET_TARGET_PROPERTIES(libdiscid PROPERTIES OUTPUT_NAME discid VERSION ${libdiscid_VERSION} ================================================================== --- a/src/disc.c +++ b/src/disc.c @@ -33,8 +33,8 @@ #include <string.h> #include <assert.h> #include <limits.h> +#include <openssl/evp.h> -#include "sha1.h" #include "base64.h" #include "discid/discid.h" @@ -361,31 +361,35 @@ char *discid_get_version_string(void) { * The DiscID is placed in the provided string buffer. */ static void create_disc_id(mb_disc_private *d, char buf[]) { - SHA_INFO sha; - unsigned char digest[20], *base64; - unsigned long size; + unsigned char *base64; + unsigned long size; + unsigned char digest[EVP_MAX_MD_SIZE]; char tmp[17]; /* for 8 hex digits (16 to avoid trouble) */ int i; + EVP_MD_CTX *sha; + unsigned int sha_len; assert(d != NULL); assert(d->success); - sha_init(&sha); + sha = EVP_MD_CTX_create(); + EVP_DigestInit_ex(sha, EVP_sha1(), NULL); sprintf(tmp, "%02X", d->first_track_num); - sha_update(&sha, (unsigned char *) tmp, strlen(tmp)); + EVP_DigestUpdate(sha, (unsigned char *) tmp, strlen(tmp)); sprintf(tmp, "%02X", d->last_track_num); - sha_update(&sha, (unsigned char *) tmp, strlen(tmp)); + EVP_DigestUpdate(sha, (unsigned char *) tmp, strlen(tmp)); for (i = 0; i < 100; i++) { sprintf(tmp, "%08X", d->track_offsets[i]); - sha_update(&sha, (unsigned char *) tmp, strlen(tmp)); + EVP_DigestUpdate(sha, (unsigned char *) tmp, strlen(tmp)); } - sha_final(digest, &sha); - - base64 = rfc822_binary(digest, sizeof(digest), &size); + EVP_DigestFinal_ex(sha, digest, &sha_len); + EVP_MD_CTX_destroy(sha); + + base64 = rfc822_binary(digest, sha_len , &size); memcpy(buf, base64, size); buf[size] = '\0';
