[packages/libcaca] - updated to 0.99.beta20, fixes: CVE-2018-20545 CVE-2018-20546 CVE-2018-20547 CVE-2018-20548 CVE-2

qboosh qboosh at pld-linux.org
Mon Dec 6 19:35:24 CET 2021


commit dc266775fc2ac8c8d99efc4f7f62804c6d24ef29
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Dec 6 19:35:47 2021 +0100

    - updated to 0.99.beta20, fixes:
      CVE-2018-20545 CVE-2018-20546 CVE-2018-20547 CVE-2018-20548 CVE-2018-20549 CVE-2021-3410 CVE-2021-30498 CVE-2021-30499
    - updated ruby-vendordir patch
    - added sh patch (remove bashism from configure)
    - added plugins patch (fix plugin symbols exporting with hidden visibility support)
    - reenabled ncurses by default (now colors work with ABI 6)
    - drop .la files

 libcaca-plugins.patch | 39 ++++++++++++++++++++++++++++++++++
 libcaca-sh.patch      | 11 ++++++++++
 libcaca.spec          | 58 ++++++++++++++++++++++++++++++++++-----------------
 ruby-vendordir.patch  | 18 ++++++++--------
 4 files changed, 98 insertions(+), 28 deletions(-)
---
diff --git a/libcaca.spec b/libcaca.spec
index 96db3ea..93b1f4f 100644
--- a/libcaca.spec
+++ b/libcaca.spec
@@ -4,16 +4,18 @@
 %bcond_without	java		# Java binding
 %bcond_without	ruby		# Ruby binding
 %bcond_without	python		# Python binding
+%bcond_without	ncurses		# ncurses driver
+%bcond_without	slang		# slang driver
 
-%ifnarch %{ix86} %{x8664} alpha arm hppa ia64 mips ppc s390 s390x sparc sparcv9
+%ifnarch %{ix86} %{x8664} alpha %{arm} hppa ia64 mips ppc s390 s390x sparc sparcv9
 %undefine	with_dotnet
 %endif
 %ifarch i386
 %undefine	with_dotnet
 %endif
 
-%define		rel	10
-%define	subver	beta19
+%define		rel	1
+%define	subver	beta20
 Summary:	Graphics library that outputs text instead of pixels
 Summary(pl.UTF-8):	Biblioteka graficzna wyświetlająca tekst zamiast pikseli
 Name:		libcaca
@@ -21,11 +23,14 @@ Version:	0.99
 Release:	0.%{subver}.%{rel}
 License:	WTFPL v2
 Group:		Libraries
-Source0:	http://caca.zoy.org/raw-attachment/wiki/libcaca/%{name}-%{version}.%{subver}.tar.gz
-# Source0-md5:	a3d4441cdef488099f4a92f4c6c1da00
+#Source0Download: https://github.com/cacalabs/libcaca/releases
+Source0:	https://github.com/cacalabs/libcaca/releases/download/v%{version}.%{subver}/%{name}-%{version}.%{subver}.tar.bz2
+# Source0-md5:	019c036ef038e7b5727b46f07fda739b
 Patch0:		%{name}-monodir.patch
 Patch1:		ruby-vendordir.patch
-URL:		http://caca.zoy.org/
+Patch2:		%{name}-sh.patch
+Patch3:		%{name}-plugins.patch
+URL:		http://caca.zoy.org/wiki/libcaca
 BuildRequires:	OpenGL-devel
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake
@@ -36,11 +41,13 @@ BuildRequires:	freeglut-devel >= 2.0.0
 BuildRequires:	imlib2-devel
 BuildRequires:	libstdc++-devel
 BuildRequires:	libtool >= 2:1.5
+%{?with_ncurses:BuildRequires:	ncurses-devel >= 5}
 BuildRequires:	pkgconfig
+BuildRequires:	rpm-build >= 4.6
 BuildRequires:	rpmbuild(macros) >= 1.533
 BuildRequires:	rpmbuild(monoautodeps)
 BuildRequires:	sed >= 4.0
-BuildRequires:	slang-devel >= 2.0.0
+%{?with_slang:BuildRequires:	slang-devel >= 2.0.0}
 #BuildRequires:	texlive-fonts-jknappen
 #BuildRequires:	texlive-format-pdflatex
 #BuildRequires:	texlive-latex-ams
@@ -200,6 +207,18 @@ C++ bindings for libcaca - static libraries.
 %description c++-static -l pl.UTF-8
 Wiązania C++ do libcaca - biblioteki statyczne.
 
+%package apidocs
+Summary:	API documentation for libcaca library
+Summary(pl.UTF-8):	Dokumentacja API biblioteki libcaca
+Group:		Documentation
+BuildArch:	noarch
+
+%description apidocs
+API documentation for libcaca library.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki libcaca.
+
 %package -n dotnet-caca-sharp
 Summary:	C# bindings for libcaca
 Summary(pl.UTF-8):	Wiązania C# do libcaca
@@ -256,6 +275,8 @@ Wiązania języka Ruby do libcaca.
 %setup -q -n %{name}-%{version}.%{subver}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %build
 %{__libtoolize}
@@ -263,20 +284,19 @@ Wiązania języka Ruby do libcaca.
 %{__autoconf}
 %{__autoheader}
 %{__automake}
-# NOTE: ncurses driver builds, but there's no color when linked against
-# ABI 6. While caca defaults to ncurses this must be disabled until fixed.
 # NOTE: as of libcaca 0.99beta19 / doxygen 1.8.7 pdflatex fails - use
 # KPSEWHICH hack to disable PDF documentation.
 %configure \
-	KPSEWHICH=/nonexisting \
 	%{?with_dotnet:CSC=/usr/bin/dmcs} \
+	KPSEWHICH=/nonexisting \
+	--disable-cocoa \
 	--enable-csharp%{!?with_dotnet:=no} \
 	--enable-cxx \
 	--enable-gl \
 	--enable-java%{!?with_java:=no} \
-	--disable-ncurses \
+	--enable-ncurses%{!?with_ncurses:=no} \
 	--enable-plugins \
-	--enable-slang \
+	--enable-slang%{!?with_slang:=no} \
 	--enable-x11
 
 # --disable-silent-rules doesn't work due to AM_DEFAULT_VERBOSITY=0; use V=1 instead
@@ -301,9 +321,8 @@ echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
 # loadable modules
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
 %{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.la
-%if %{with java}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca-java.la
-%endif
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca*.la
 # man3 pages have too common base names to be included
 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
 # packaged as %doc in -devel
@@ -325,7 +344,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS COPYING ChangeLog NEWS NOTES README THANKS
+%doc AUTHORS COPYING NEWS NOTES README THANKS
 %attr(755,root,root) %{_bindir}/cacaclock
 %attr(755,root,root) %{_bindir}/cacademo
 %attr(755,root,root) %{_bindir}/cacafire
@@ -357,10 +376,8 @@ rm -rf $RPM_BUILD_ROOT
 
 %files devel
 %defattr(644,root,root,755)
-%doc doc/html/*
 %attr(755,root,root) %{_bindir}/caca-config
 %attr(755,root,root) %{_libdir}/libcaca.so
-%{_libdir}/libcaca.la
 %{_includedir}/caca.h
 %{_includedir}/caca0.h
 %{_includedir}/caca_conio.h
@@ -381,7 +398,6 @@ rm -rf $RPM_BUILD_ROOT
 %files c++-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libcaca++.so
-%{_libdir}/libcaca++.la
 %{_includedir}/caca++.h
 %{_pkgconfigdir}/caca++.pc
 
@@ -389,6 +405,10 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_libdir}/libcaca++.a
 
+%files apidocs
+%defattr(644,root,root,755)
+%doc doc/html/*
+
 %if %{with dotnet}
 %files -n dotnet-caca-sharp
 %defattr(644,root,root,755)
diff --git a/libcaca-plugins.patch b/libcaca-plugins.patch
new file mode 100644
index 0000000..fc9cf49
--- /dev/null
+++ b/libcaca-plugins.patch
@@ -0,0 +1,39 @@
+--- libcaca-0.99.beta20/caca/caca_internals.h.orig	2021-10-19 15:47:32.000000000 +0200
++++ libcaca-0.99.beta20/caca/caca_internals.h	2021-12-06 17:15:52.742419166 +0100
+@@ -252,7 +252,11 @@ extern int _caca_getticks(caca_timer_t *
+ /* Internal event functions */
+ extern void _caca_handle_resize(caca_display_t *);
+ #if defined(USE_SLANG) || defined(USE_NCURSES) || defined(USE_CONIO) || defined(USE_GL)
+-extern void _push_event(caca_display_t *, caca_privevent_t *);
++extern
++#if defined(CACA_ENABLE_VISIBILITY)
++__attribute__((visibility("default")))
++#endif
++void _push_event(caca_display_t *, caca_privevent_t *);
+ extern int _pop_event(caca_display_t *, caca_privevent_t *);
+ #endif
+ 
+--- libcaca-0.99.beta20/caca/driver/gl.c.orig	2015-01-17 12:51:01.000000000 +0100
++++ libcaca-0.99.beta20/caca/driver/gl.c	2021-12-06 17:16:26.072238603 +0100
+@@ -604,6 +604,9 @@ static void gl_compute_font(caca_display
+  * Driver initialisation
+  */
+ 
++#if defined(CACA_ENABLE_VISIBILITY)
++__attribute__((visibility("default")))
++#endif
+ int gl_install(caca_display_t *dp)
+ {
+ #if defined(HAVE_GETENV) && defined(GLUT_XLIB_IMPLEMENTATION)
+--- libcaca-0.99.beta20/caca/driver/x11.c.orig	2017-04-21 15:33:16.000000000 +0200
++++ libcaca-0.99.beta20/caca/driver/x11.c	2021-12-06 17:17:57.918407696 +0100
+@@ -966,6 +966,9 @@ static void x11_put_glyph(caca_display_t
+  * Driver initialisation
+  */
+ 
++#if defined(CACA_ENABLE_VISIBILITY)
++__attribute__((visibility("default")))
++#endif
+ int x11_install(caca_display_t *dp)
+ {
+ #if defined HAVE_GETENV
diff --git a/libcaca-sh.patch b/libcaca-sh.patch
new file mode 100644
index 0000000..a016958
--- /dev/null
+++ b/libcaca-sh.patch
@@ -0,0 +1,11 @@
+--- libcaca-0.99.beta20/configure.ac.orig	2021-12-05 21:19:06.371427650 +0100
++++ libcaca-0.99.beta20/configure.ac	2021-12-05 21:23:03.620142363 +0100
+@@ -269,7 +269,7 @@ if test "${enable_cocoa}" != "no"; then
+    [ac_cv_my_have_cocoa="yes"])
+   CFLAGS="$save_CFLAGS"
+   if test "${ac_cv_my_have_cocoa}" = "yes"; then
+-    [[[ "$target_os" =~ [0-9]+ ]]] && darwin_ver="${BASH_REMATCH[[0]]}"
++    darwin_ver="$(echo "$target_os}" | sed -ne 's/.*\([0-9]\+\).*/\1/p')"
+     case x${target} in
+     xpowerpc*darwin*)
+       # 10.3 needed to link with X11
diff --git a/ruby-vendordir.patch b/ruby-vendordir.patch
index 2c615d0..58f3084 100644
--- a/ruby-vendordir.patch
+++ b/ruby-vendordir.patch
@@ -1,13 +1,13 @@
---- libcaca-0.99.beta19/configure.ac~	2014-05-16 22:07:53.000000000 +0300
-+++ libcaca-0.99.beta19/configure.ac	2014-07-28 10:58:16.493153286 +0300
-@@ -467,8 +467,8 @@
+--- libcaca-0.99.beta20/configure.ac.orig	2021-12-05 21:13:36.396548611 +0100
++++ libcaca-0.99.beta20/configure.ac	2021-12-05 21:15:11.839364886 +0100
+@@ -491,8 +491,8 @@ if test "${enable_ruby}" != "no"; then
    if test "${RUBY}" != "no"; then
-     RUBY_CFLAGS="$(ruby -r mkmf -e 'conf = RbConfig::CONFIG.merge("hdrdir" => $hdrdir, "arch_hdrdir" => $arch_hdrdir); print RbConfig::expand("#$INCFLAGS", conf)')"
-     RUBY_LIBS="-L$(ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"libdir"@:>@') -l$(ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"RUBY_SO_NAME"@:>@')"
--    RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"sitearchdir"@:>@'`
--    RUBY_SITELIBDIR=`ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"sitelibdir"@:>@'`
-+    RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"vendorarchdir"@:>@'`
-+    RUBY_SITELIBDIR=`ruby -r rbconfig -e 'print RbConfig::CONFIG@<:@"vendorlibdir"@:>@'`
+     RUBY_CFLAGS="$("${RUBY}" -r mkmf -e 'conf = RbConfig::CONFIG.merge("hdrdir" => $hdrdir, "arch_hdrdir" => $arch_hdrdir); print RbConfig::expand("#$INCFLAGS", conf)')"
+     RUBY_LIBS="-L$("${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"libdir"@:>@') -l$("${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"RUBY_SO_NAME"@:>@')"
+-    RUBY_SITEARCHDIR=`"${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"sitearchdir"@:>@'`
+-    RUBY_SITELIBDIR=`"${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"sitelibdir"@:>@'`
++    RUBY_SITEARCHDIR=`"${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"vendorarchdir"@:>@'`
++    RUBY_SITELIBDIR=`"${RUBY}" -r rbconfig -e 'print RbConfig::CONFIG@<:@"vendorlibdir"@:>@'`
      AC_SUBST(RUBY_CFLAGS)
      AC_SUBST(RUBY_LIBS)
      AC_SUBST(RUBY_SITEARCHDIR)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libcaca.git/commitdiff/dc266775fc2ac8c8d99efc4f7f62804c6d24ef29



More information about the pld-cvs-commit mailing list