.gear/rules | 2 + .gear/tags/list | 1 + configure.ac | 23 ++----- include/cdio/types.h | 23 +------ lib/driver/cdtext.c | 20 +++++- libcdio.spec | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 216 insertions(+), 42 deletions(-) diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..316fcbf --- /dev/null +++ b/.gear/rules @@ -0,0 +1,2 @@ +tar: release-@version@:. +diff: release-@version@:. . diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..7182a6f --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +9c7a2779846da161279bc1501e83c849cf89a594 release-2.1.0 diff --git a/configure.ac b/configure.ac index 5f9f9e7..8186827 100644 --- a/configure.ac +++ b/configure.ac @@ -27,6 +27,8 @@ AC_CANONICAL_HOST AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIR([m4]) +PKG_PROG_PKG_CONFIG + # Enable silent build rules by default (Automake v1.11 or later). # Disable by either passing --disable-silent-rules to configure or passing V=1 to make m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], @@ -192,7 +194,8 @@ AC_DEFINE(LIBCDIO_CONFIG_H, 1, dnl headers AC_HEADER_STDC -AC_CHECK_HEADERS(alloca.h errno.h fcntl.h glob.h limits.h pwd.h stdbool.h) +AC_CHECK_HEADERS(stdbool.h, [], [AC_MSG_ERROR(["Couldn't find or include stdbool.h"])]) +AC_CHECK_HEADERS(alloca.h errno.h fcntl.h glob.h limits.h pwd.h) AC_CHECK_HEADERS(stdarg.h stdbool.h stdio.h sys/cdio.h sys/param.h \ sys/time.h sys/timeb.h sys/utsname.h) AC_STRUCT_TIMEZONE @@ -424,16 +427,6 @@ int has_timeout=sizeof(test.timeout);], cd_drivers="${cd_drivers}, GNU/Linux" fi ;; - bsdi*) - AC_CHECK_HEADERS(dvd.h, [have_bsdi_dvd_h="yes"]) - if test "x$have_bsdi_dvd_h" = "xyes" ; then - AC_DEFINE([HAVE_BSDI_CDROM], [1], - [Define 1 if you have BSDI-type CD-ROM support]) - LIBS="$LIBS -ldvd -lcdrom" - LIBCDIO_LIBS="$LIBCDIO_LIBS -lcdrom" - cd_drivers="${cd_drivers}, BSDI" - fi - ;; sunos*|sun*|solaris*) AC_DEFINE([HAVE_SOLARIS_CDROM], [1], [Define 1 if you have Solaris CD-ROM support]) @@ -508,15 +501,7 @@ int has_timeout=sizeof(test.timeout);], [Define 1 if you have NetBSD CD-ROM support]) # LIBS="$LIBS -lcam" cd_drivers="${cd_drivers}, NetBSD " - enable_cdda_player="no" ;; - os2*) - AC_DEFINE([HAVE_OS2_CDROM], [1], - [Define 1 if you have OS/2 CD-ROM support]) - LT_NO_UNDEFINED="-no-undefined" - LDFLAGS="$LDFLAGS -Zbin-files" - cd_drivers="${cd_drivers}, OS2 " - ;; *) AC_MSG_WARN([Don't have OS CD-reading support for ${host_os}...]) AC_MSG_WARN([Will use generic support.]) diff --git a/include/cdio/types.h b/include/cdio/types.h index fd73578..dc0f90c 100644 --- a/include/cdio/types.h +++ b/include/cdio/types.h @@ -27,6 +27,8 @@ #ifdef __cplusplus extern "C" { +#else +# include #endif /* __cplusplus */ /* If is not available on your platform please @@ -103,27 +105,6 @@ typedef uint8_t ubyte; # endif #endif -#ifndef __cplusplus - -/* All the stdbool.h seem to define those */ -#ifndef __bool_true_false_are_defined -#define __bool_true_false_are_defined 1 - -#undef bool -#undef true -#undef false - -#ifdef _Bool -#define bool _Bool -#else -#define bool unsigned char -#endif -#define true 1 -#define false 0 - -#endif /* __bool_true_false_are_defined */ -#endif /*C++*/ - /* some GCC optimizations -- gcc 2.5+ */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) diff --git a/lib/driver/cdtext.c b/lib/driver/cdtext.c index 868cef5..a80d597 100644 --- a/lib/driver/cdtext.c +++ b/lib/driver/cdtext.c @@ -713,17 +713,33 @@ cdtext_data_init(cdtext_t *p_cdtext, uint8_t *wdata, size_t i_data) /* determine encoding */ switch (blocksize.charcode){ case CDTEXT_CHARCODE_ISO_8859_1: - /* default */ charset = (char *) "ISO-8859-1"; break; case CDTEXT_CHARCODE_ASCII: - charset = (char *) "ASCII"; + /* ASCII is a subset of ISO-8859-1. Some CDs announce it but then + * have 8-bit characters in their text. Trying ISO-8859-1 gives + * more hope for a readable result than telling iconv to be picky. + */ + charset = (char *) "ISO-8859-1"; break; case CDTEXT_CHARCODE_SHIFT_JIS: charset = (char *) "SHIFT_JIS"; break; + default: + /* Do not let charset pass here as NULL */ + cdio_warn("CD-TEXT: Unknown character set code %u.\n", + (unsigned int) blocksize.charcode); + charset = (char *) "ISO-8859-1"; } + cdio_debug("CD-TEXT character set: code=%u , name=%s , chosen=%s\n", + (unsigned int) blocksize.charcode, + blocksize.charcode == 0 ? "ISO-8859-1" : + blocksize.charcode == 1 ? "ASCII" : + blocksize.charcode == 0x80 ? "SHIFT_JIS" : + "", + charset); + /* set track numbers */ p_cdtext->block[i_block].first_track = blocksize.i_first_track; p_cdtext->block[i_block].last_track = blocksize.i_last_track; diff --git a/libcdio.spec b/libcdio.spec new file mode 100644 index 0000000..78a3e7c --- /dev/null +++ b/libcdio.spec @@ -0,0 +1,189 @@ +%def_enable cddb + +Name: libcdio +Version: 2.1.0 +Release: alt1 + +Summary: CD-ROM/CD-image access library +License: GPLv3+ +Group: System/Libraries +Url: http://www.gnu.org/software/%name/ +Packager: Valery Inozemtsev + +#Source: ftp://ftp.gnu.org/gnu/libcdio/%name-%version.tar.gz +# git://git.sv.gnu.org/libcdio.git +Source: %name-%version.tar +Patch: %name-%version-%release.patch + +BuildRequires: gcc-c++ libncurses-devel help2man makeinfo +%{?_enable_cddb:BuildRequires: libcddb-devel} + +%description +This library is to encapsulate CD-ROM reading and control. Applications +wishing to be oblivious of the OS- and device-dependant properties of a +CD-ROM can use this library. + +%package -n libcdio++ +Summary: C++ wrappers to the CD-ROM/CD-image access library +Group: System/Libraries +Requires: %name = %version-%release + +%description -n libcdio++ +These C++ libraries provide object-oriented wrappers to the libcdio APIs. + +%package devel +Summary: %name development files +Group: Development/C +Requires: %name = %version-%release + +%description devel +This package provides %name development files. + +%package -n libcdio++-devel +Summary: Development files for libcdio C++ wrappers +Group: Development/C++ +Requires: libcdio++ = %version-%release +Requires: %name-devel = %version-%release + +%description -n libcdio++-devel +This package provides development files for C++ wrappers to libcdio APIs. + +%package utils +Summary: A simple utilities which read and displayings CD info. +Group: File tools +Requires: %name = %version-%release + +%description utils +This package provides simple utilities which read and displayings CD +info. + +%prep +%setup +%patch -p1 + +%build +%autoreconf +%configure \ + %{subst_enable cddb} \ + --enable-maintainer-mode \ + --disable-static +%make_build + +%install +%makeinstall_std + +%files +%doc AUTHORS README NEWS* THANKS TODO +%_libdir/*.so.* +%_infodir/%name.info* +%exclude %_libdir/*++.so.* + +%files devel +%_includedir/cdio +%_libdir/*.so +%_pkgconfigdir/*.pc +%exclude %_libdir/*++.so +%exclude %_pkgconfigdir/*++.pc + +%files -n libcdio++ +%_libdir/*++.so.* + +%files -n libcdio++-devel +%_includedir/cdio++ +%_libdir/*++.so +%_pkgconfigdir/*++.pc + +%files utils +%_bindir/* +%_man1dir/*.1* + +%changelog +* Thu Dec 05 2019 Yuri N. Sedunov 2.1.0-alt1 +- 2.1.0 + +* Mon Jan 15 2018 Yuri N. Sedunov 2.0.0-alt1.1 +- merged lost changes + +* Fri Jan 12 2018 Yuri N. Sedunov 2.0.0-alt1 +- 2.0.0 + +* Thu Mar 16 2017 Michael Shigorin 0.94-alt1.1 +- BOOTSTRAP: introduce cddb knob (on by default); + breaks libcdio <-> libcddb BR loop + +* Mon Nov 14 2016 Yuri N. Sedunov 0.94-alt1 +- 0.94 + +* Mon Nov 30 2015 Yuri N. Sedunov 0.93-alt1.1 +- buildreqs: added makeinfo + +* Mon Jul 20 2015 Yuri N. Sedunov 0.93-alt1 +- 0.93 (0.94_4f41eb68) + +* Mon Apr 25 2011 Dmitry V. Levin 0.82-alt4 +- Rebuilt for more debuginfo. + +* Mon Apr 25 2011 Dmitry V. Levin 0.82-alt3 +- Updated license information. +- Rebuilt for debuginfo. + +* Fri Nov 05 2010 Valery Inozemtsev 0.82-alt2 +- rebuild + +* Thu Nov 05 2009 Valery Inozemtsev 0.82-alt1 +- 0.82 + +* Wed Sep 09 2009 Valery Inozemtsev 0.81-alt2 +- Endless loop when no CD-rom drives (closes: #21508) + +* Tue Aug 25 2009 Valery Inozemtsev 0.81-alt1 +- 0.81 + +* Mon Oct 27 2008 Pavlov Konstantin 0.79-alt2 +- Fix FTBFS with gcc 4.3. + +* Tue Dec 04 2007 Pavlov Konstantin 0.79-alt1 +- 0.79. + +* Tue Nov 07 2006 Pavlov Konstantin 0.78.2-alt1 +- 0.78.2. + +* Sun Oct 29 2006 Pavlov Konstantin 0.78.1-alt1 +- 0.78.1. +- Merge patches into source tree. + +* Thu Oct 19 2006 Pavlov Konstantin 0.77-alt1 +- Rebuild with newer libcddb. + +* Tue May 30 2006 Pavlov Konstantin 0.77-alt0.2 +- Added help2man to buildrequires. +- linux-libc-headers. + +* Sun May 28 2006 Mikhail Zabaluev 0.77-alt0.1 +- Release 0.77 +- Patch0: corrected interlibrary linkage issues +- Patch1 retired, not needed now +- Added packages for the C++ libraries +- Disable vcd to break a circular build dependency +- Do not test for cdparanoia during configure +- Buildreq + +* Tue Mar 21 2006 Pavlov Konstantin 0.76-alt3 +- Fixed build (linking with -lm). +- Building with libcddb & libvcd. + +* Fri Feb 03 2006 Pavlov Konstantin 0.76-alt2 +- Compressed ChangeLog (fixes #8972). + +* Wed Nov 30 2005 Pavlov Konstantin 0.76-alt1 +- 0.76 release. +- Fixed some errors in spec. + +* Tue Jul 12 2005 Yuri N. Sedunov 0.74-alt1 +- 0.74 + +* Thu Jul 22 2004 Yuri N. Sedunov 0.69-alt1 +- 0.69 + +* Tue Jan 06 2004 Yuri N. Sedunov 0.65-alt1 +- First build for Sisyphus.