commit 2a79ea0297a6983bda83c2ecf7e3d5af31e8ceda Author: Marcin Krol <h...@tld-linux.org> Date: Wed May 1 13:29:43 2024 +0200
- patches from Debian Correct-realpath-test-failure.patch | 50 ++++++++++++++++ ...O_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch | 40 +++++++++++++ Use-getmntent-setmntent-for-reading-mounts.patch | 68 ++++++++++++++++++++++ libcdio.spec | 12 +++- ncursesw.patch | 17 ++++++ ...ayer.c-always-use-s-style-format-for-prin.patch | 49 ++++++++++++++++ 6 files changed, 235 insertions(+), 1 deletion(-) --- diff --git a/libcdio.spec b/libcdio.spec index 8860293..33a2896 100644 --- a/libcdio.spec +++ b/libcdio.spec @@ -14,12 +14,17 @@ Summary: GNU Compact Disc Input, Output and Control Library Summary(pl.UTF-8): Biblioteka GNU do obsługi wejścia, wyjścia i sterowania czytnikiem CD Name: libcdio Version: 2.1.0 -Release: 1 +Release: 2 License: GPL v3+ Group: Libraries Source0: http://ftp.gnu.org/gnu/libcdio/%{name}-%{version}.tar.bz2 # Source0-md5: aa7629e8f73662a762f64c444b901055 Patch0: %{name}-info.patch +Patch1: ncursesw.patch +Patch2: Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch +Patch3: src-cdda-player.c-always-use-s-style-format-for-prin.patch +Patch4: Correct-realpath-test-failure.patch +Patch5: Use-getmntent-setmntent-for-reading-mounts.patch URL: http://www.gnu.org/software/libcdio/ BuildRequires: autoconf >= 2.61 BuildRequires: automake >= 1:1.8.3 @@ -144,6 +149,11 @@ Narzędzia używające libcdio: cd-info, cd-read. %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %{__sed} -i 's, example$,,' Makefile.am diff --git a/Correct-realpath-test-failure.patch b/Correct-realpath-test-failure.patch new file mode 100644 index 0000000..15bb8ff --- /dev/null +++ b/Correct-realpath-test-failure.patch @@ -0,0 +1,50 @@ +From: "R. Bernstein" <ro...@gnu.org> +Date: Wed, 24 Aug 2022 14:34:33 -0400 +Subject: Correct realpath test failure +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +See https://savannah.gnu.org/bugs/?62948 +Patch courtesy of Martin Liška <marxin> + +(cherry picked from commit 56335fff0f21d294cd0e478d49542a43e9495ed0) +--- + test/driver/realpath.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/test/driver/realpath.c b/test/driver/realpath.c +index 289253e..cd46d62 100644 +--- a/test/driver/realpath.c ++++ b/test/driver/realpath.c +@@ -1,5 +1,7 @@ + /* -*- C -*- +- Copyright (C) 2010-2012, 2015, 2017 Rocky Bernstein <ro...@gnu.org> ++ ++ Copyright (C) 2010-2012, 2015, 2017, 2022 Rocky Bernstein ++ <ro...@gnu.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -175,16 +177,17 @@ main(int argc, const char *argv[]) + rc = check_rc(symlink(psz_symlink_file, psz_symlink_file), + "symlink", psz_symlink_file); + if (0 == rc) { +- cdio_realpath(psz_symlink_file, psz_file_check); +- if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) { ++ char *retvalue = cdio_realpath(psz_symlink_file, psz_file_check); ++ if (0 != retvalue) { ++ if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) { + fprintf(stderr, "direct cdio_realpath cycle test failed. %s vs %s\n", + psz_file_check, symlink_file); + rc = 5; + goto err_exit; ++ } ++ check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file); + } +- check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file); + } +- + } + + check_rc(unlink(psz_orig_file), "unlink", psz_orig_file); diff --git a/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch b/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch new file mode 100644 index 0000000..8b06628 --- /dev/null +++ b/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch @@ -0,0 +1,40 @@ +From 08c1768aaeea86c522c0ef1705b9b6d434ebd3ae Mon Sep 17 00:00:00 2001 +From: Chris Lamb <ch...@chris-lamb.co.uk> +Date: Fri, 28 Jul 2017 11:49:13 +0100 +Subject: [PATCH] Drop LIBCDIO_SOURCE_PATH by dropping STRIP_FROM_PATH Doxygen + setup; it's not used as FULL_PATH_NAMES = no + +--- + configure.ac | 5 ----- + doc/doxygen/Doxyfile.in | 2 +- + 2 files changed, 1 insertion(+), 6 deletions(-) + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -557,11 +557,6 @@ AC_SUBST(HAVE_SOLARIS_CDROM) + AC_SUBST(HAVE_WIN32_CDROM) + AC_SUBST(HAVE_OS2_CDROM) + +-LIBCDIO_SOURCE_PATH="`pwd`" +-AC_DEFINE_UNQUOTED(LIBCDIO_SOURCE_PATH, "$LIBCDIO_SOURCE_PATH", +- [Full path to libcdio top_sourcedir.]) +-AC_SUBST(LIBCDIO_SOURCE_PATH) +- + AC_CHECK_FUNCS( [chdir drand48 fseeko fseeko64 ftruncate geteuid getgid \ + getuid getpwuid gettimeofday lseek64 lstat memcpy memset mkstemp rand \ + seteuid setegid snprintf setenv strndup unsetenv tzset sleep \ +Index: b/doc/doxygen/Doxyfile.in +=================================================================== +--- a/doc/doxygen/Doxyfile.in ++++ b/doc/doxygen/Doxyfile.in +@@ -138,7 +138,7 @@ FULL_PATH_NAMES = NO + # If left blank the directory from which doxygen is run is used as the + # path to strip. + +-STRIP_FROM_PATH = @LIBCDIO_SOURCE_PATH@ ++STRIP_FROM_PATH = + + # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of + # the path mentioned in the documentation of a class, which tells diff --git a/Use-getmntent-setmntent-for-reading-mounts.patch b/Use-getmntent-setmntent-for-reading-mounts.patch new file mode 100644 index 0000000..764ee88 --- /dev/null +++ b/Use-getmntent-setmntent-for-reading-mounts.patch @@ -0,0 +1,68 @@ +From 0d550dc9307901edd817333a5b530241d08ad889 Mon Sep 17 00:00:00 2001 +From: Miguel Borges de Freitas <ene...@kodi.tv> +Date: Wed, 2 Feb 2022 20:47:02 +0000 +Subject: [PATCH] Use getmntent/setmntent for reading mounts + +Since fields in the mtab and fstab files are separated by +whitespace, octal escapes are used to represent the characters +space (\040), tab (\011), newline (\012), and backslash (\\) in +those files when they occur in one of the four strings in a +mntent structure. The routines addmntent() and getmntent() will +convert from string representation to escaped representation and +back. When converting from escaped representation, the sequence +\134 is also converted to a backslash. +--- + lib/driver/gnu_linux.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/lib/driver/gnu_linux.c b/lib/driver/gnu_linux.c +index 6a6aa4dd..dddf333c 100644 +--- a/lib/driver/gnu_linux.c ++++ b/lib/driver/gnu_linux.c +@@ -672,13 +672,13 @@ static int is_mounted (const char * device, char * target) { + char real_device_1[PATH_MAX]; + char real_device_2[PATH_MAX]; + +- char file_device[PATH_MAX]; +- char file_target[PATH_MAX]; ++ struct mntent *fs; ++ ++ fp = setmntent("/proc/mounts", "r"); + +- fp = fopen ( "/proc/mounts", "r"); + /* Older systems just have /etc/mtab */ + if(!fp) +- fp = fopen ( "/etc/mtab", "r"); ++ fp = setmntent("/etc/mtab", "r"); + + /* Neither /proc/mounts nor /etc/mtab could be opened, give up here */ + if(!fp) return 0; +@@ -691,19 +691,19 @@ static int is_mounted (const char * device, char * target) { + + /* Read entries */ + +- while ( fscanf(fp, "%s %s %*s %*s %*d %*d\n", file_device, file_target) != EOF ) { +- if (NULL == cdio_realpath(file_device, real_device_2)) { ++ while ((fs = getmntent(fp)) != NULL) { ++ if (NULL == cdio_realpath(fs->mnt_fsname, real_device_2)) { + cdio_debug("Problems resolving device %s: %s\n", +- file_device, strerror(errno)); ++ fs->mnt_fsname, strerror(errno)); + } + if(!strcmp(real_device_1, real_device_2)) { +- strcpy(target, file_target); +- fclose(fp); ++ strcpy(target, fs->mnt_dir); ++ endmntent(fp); + return 1; + } + + } +- fclose(fp); ++ endmntent(fp); + return 0; + } + +-- +2.30.2 + diff --git a/ncursesw.patch b/ncursesw.patch new file mode 100644 index 0000000..a0a8fca --- /dev/null +++ b/ncursesw.patch @@ -0,0 +1,17 @@ +Description: Use ncursesw instead of ncurses + +diff --git a/configure.ac b/configure.ac +index 5f9f9e78..7fcf6a64 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -668,8 +668,8 @@ fi + if test "x$enable_cdda_player" = "xyes"; then + PKG_CHECK_MODULES(CDDA_PLAYER, ncurses, + [AC_DEFINE(HAVE_KEYPAD, [1], [Define this if your libcurses has keypad])], +- [AC_CHECK_LIB(curses, keypad, +- [CDDA_PLAYER_LIBS="-lcurses"], ++ [AC_CHECK_LIB(ncursesw, keypad, ++ [CDDA_PLAYER_LIBS="-lncursesw"], + [AC_MSG_WARN([Will not build cdda-player - did not find libncurses or libcurses]) + enable_cdda_player=no])]) + fi diff --git a/src-cdda-player.c-always-use-s-style-format-for-prin.patch b/src-cdda-player.c-always-use-s-style-format-for-prin.patch new file mode 100644 index 0000000..4d3c8ab --- /dev/null +++ b/src-cdda-player.c-always-use-s-style-format-for-prin.patch @@ -0,0 +1,49 @@ +From 28bf7c73f30f9f7530cf752e31392991fdbc2f8c Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <sly...@gmail.com> +Date: Mon, 1 Nov 2021 08:00:30 +0000 +Subject: [PATCH] src/cdda-player.c: always use "%s"-style format for + printf()-style functions + +`ncuses-6.3` added printf-style function attributes and now makes +it easier to catch cases when user input is used in palce of format +string when built with CFLAGS=-Werror=format-security: + + cdda-player.c:1032:31: + error: format not a string literal and no format arguments [-Werror=format-security] + 1032 | mvprintw(i_line++, 0, line); + | ^~~~ + +Let's wrap all the missing places with "%s" format. +--- + src/cdda-player.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/cdda-player.c b/src/cdda-player.c +index 69eddee1..8834d606 100644 +--- a/src/cdda-player.c ++++ b/src/cdda-player.c +@@ -298,7 +298,7 @@ action(const char *psz_action) + psz_action); + else + snprintf(psz_action_line, sizeof(psz_action_line), "%s", "" ); +- mvprintw(LINE_ACTION, 0, psz_action_line); ++ mvprintw(LINE_ACTION, 0, "%s", psz_action_line); + clrtoeol(); + refresh(); + } +@@ -1029,10 +1029,10 @@ display_tracks(void) + } + if (sub.track == i) { + attron(A_STANDOUT); +- mvprintw(i_line++, 0, line); ++ mvprintw(i_line++, 0, "%s", line); + attroff(A_STANDOUT); + } else +- mvprintw(i_line++, 0, line); ++ mvprintw(i_line++, 0, "%s", line); + clrtoeol(); + } + } +-- +2.33.0 + ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/libcdio.git/commitdiff/2a79ea0297a6983bda83c2ecf7e3d5af31e8ceda _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit