Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libcaca for openSUSE:Factory checked in at 2026-05-21 18:25:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libcaca (Old) and /work/SRC/openSUSE:Factory/.libcaca.new.2084 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcaca" Thu May 21 18:25:19 2026 rev:53 rq:1354090 version:0.99.beta20+git.1776622070.7c8e333 Changes: -------- --- /work/SRC/openSUSE:Factory/libcaca/libcaca.changes 2025-02-28 17:38:27.698413774 +0100 +++ /work/SRC/openSUSE:Factory/.libcaca.new.2084/libcaca.changes 2026-05-21 18:25:28.869982206 +0200 @@ -1,0 +2,17 @@ +Fri May 15 22:18:02 UTC 2026 - [email protected] + +- Updated to version 0.99.beta20+git.1776622070.7c8e333: + * Switched to typed Ruby wrapping. + * Simplified caca_create_display call. + * Do not used _caca_alloc2d in the Ruby extension. + * Prevented Init_caca from being hidden. + * Reverted 156781dd67d024dc067010ef8640d0b91c5c3356. + * Switched from MiniTest to Minitest. + * Prevented undefined behaviour in overflow check (CVE-2026-42046 bsc1264984). + * Fixed a crash on 0 sized font in img2txt. + * Fixed an error message in img2txt. + * Fixed handling of zero sized image in img2txt. +- Rewrited the SPEC file to correctly generate Python packages in + all available versions. + +------------------------------------------------------------------- Old: ---- libcaca-0.99.beta20.tar.gz New: ---- _service _servicedata libcaca-0.99.beta20+git.1776622070.7c8e333.tar.xz pyproject.toml ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libcaca.spec ++++++ --- /var/tmp/diff_new_pack.tZG0qK/_old 2026-05-21 18:25:29.878023608 +0200 +++ /var/tmp/diff_new_pack.tZG0qK/_new 2026-05-21 18:25:29.878023608 +0200 @@ -1,7 +1,7 @@ # # spec file for package libcaca # -# 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,14 +17,17 @@ Name: libcaca -Version: 0.99.beta20 +Version: 0.99.beta20+git.1776622070.7c8e333 Release: 0 Summary: Library for Colour ASCII Art, text mode graphics License: WTFPL Group: Development/Languages/C and C++ URL: http://caca.zoy.org -Source0: https://github.com/cacalabs/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz +# Source0: https://github.com/cacalabs/%%{name}/releases/download/v%%{version}/%%{name}-%%{version}.tar.gz +Source0: %{name}-%{version}.tar.xz Source1: baselibs.conf +# bugno [email protected] +Source2: pyproject.toml Patch0: %{name}-X11_test.patch Patch1: %{name}-ruby_am_cflags.patch Patch2: %{name}-ruby_vendor_install.patch @@ -37,6 +40,9 @@ Patch9: bsc1197028-correctly-handle-zero-width-or-height-images.patch Patch10: %{name}-autoconf-2.69.patch Patch11: %{name}-0.99.beta20-gcc14.patch +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: doxygen BuildRequires: fdupes BuildRequires: freeglut-devel @@ -45,7 +51,6 @@ BuildRequires: ncurses-devel BuildRequires: pkgconfig BuildRequires: python-rpm-macros -BuildRequires: python3-setuptools BuildRequires: ruby-devel BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glu) @@ -53,6 +58,8 @@ BuildRequires: pkgconfig(slang) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(zlib) +%define python_subpackage_only 1 +%python_subpackages %description libcaca is the Colour AsCii Art library. It provides high level @@ -82,13 +89,13 @@ This package contains the header files and static libraries needed to compile applications or shared objects that use libcaca. -%package -n python3-caca +%package -n python-caca Summary: Python3 support for %{name} Group: Development/Languages/Python Requires: %{name} = %{version} BuildArch: noarch -%description -n python3-caca +%description -n python-caca This package contains all that is needed to use libcaca from python3. %package -n libcaca0-plugins @@ -131,11 +138,16 @@ %prep %autosetup -p1 + +cp %{SOURCE2} python/ + RUBY="ruby-`echo %{rb_ver} | sed 's|\.[^\.]*$||'`" find . -type f -exec sed -i "s|ruby-1.9|$RUBY|" \{\} \; pushd python #Change python script headers to python3 for i in `grep -rl "/usr/bin/env python"`;do sed -i '1s/^#!.*/#!\/usr\/bin\/python3/' ${i} ;done +# Remove setup.py as we use pyproject.toml +rm -f setup.py popd %build @@ -155,15 +167,23 @@ --enable-conio=no \ --enable-plugins \ --enable-java=no \ - --enable-python + --enable-python=no %make_build +pushd python +%pyproject_wheel +popd + %install %make_install find %{buildroot} -type f -name "*.la" -delete -print +pushd python +%pyproject_install +popd + %fdupes -s %{buildroot}%{_mandir}/ -%fdupes -s %{buildroot}%{python3_sitelib} +%fdupes -s %{buildroot}%{_prefix}/lib/python* %post -n libcaca0 -p /sbin/ldconfig %postun -n libcaca0 -p /sbin/ldconfig @@ -191,8 +211,9 @@ %{rb_vendorarch}/* %{rb_vendorlib}/caca.rb -%files -n python3-caca -%{python3_sitelib}/* +%files %{python_files caca} +%{python_sitelib}/caca +%{python_sitelib}/caca-*.dist-info %files -n libcaca0-plugins %dir %{_libdir}/caca ++++++ _service ++++++ <?xml version="1.0"?> <services> <service name="tar_scm" mode="manual"> <param name="url">https://github.com/cacalabs/libcaca.git</param> <param name="versionprefix">0.99.beta20+git</param> <param name="revision">main</param> <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="changesauthor">[email protected]</param> </service> <service name="recompress" mode="manual"> <param name="compression">xz</param> <param name="file">*.tar</param> </service> <service mode="manual" name="set_version"/> </services> ++++++ _servicedata ++++++ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/cacalabs/libcaca.git</param> <param name="changesrevision">7c8e3338a1bda8a34297d16ac546c43548e4864d</param></service></servicedata> (No newline at EOF) ++++++ bsc1197028-correctly-handle-zero-width-or-height-images.patch ++++++ --- /var/tmp/diff_new_pack.tZG0qK/_old 2026-05-21 18:25:29.966027221 +0200 +++ /var/tmp/diff_new_pack.tZG0qK/_new 2026-05-21 18:25:29.978027714 +0200 @@ -1,8 +1,12 @@ -Index: libcaca-da28e9684ef445ac8d42745644336b8a75c01855/src/img2txt.c +--- + src/img2txt.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/src/img2txt.c =================================================================== ---- libcaca-da28e9684ef445ac8d42745644336b8a75c01855.orig/src/img2txt.c -+++ libcaca-da28e9684ef445ac8d42745644336b8a75c01855/src/img2txt.c -@@ -177,7 +177,13 @@ int main(int argc, char **argv) +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/src/img2txt.c 2026-05-16 00:21:08.412048470 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/src/img2txt.c 2026-05-16 00:21:13.547761159 +0200 +@@ -189,7 +189,13 @@ } /* Assume a 6×10 font */ @@ -17,8 +21,8 @@ { cols = 60; lines = cols * i->h * font_width / i->w / font_height; -@@ -214,7 +220,7 @@ int main(int argc, char **argv) - export = caca_export_canvas_to_memory(cv, format?format:"ansi", &len); +@@ -226,7 +232,7 @@ + export = caca_export_canvas_to_memory(cv, format, &len); if(!export) { - fprintf(stderr, "%s: Can't export to format '%s'\n", argv[0], format); ++++++ libcaca-0.99.beta20-gcc14.patch ++++++ --- /var/tmp/diff_new_pack.tZG0qK/_old 2026-05-21 18:25:30.002028700 +0200 +++ /var/tmp/diff_new_pack.tZG0qK/_new 2026-05-21 18:25:30.006028865 +0200 @@ -1,60 +1,153 @@ index 5dc66ab..826d4d8 100644 ---- a/ruby/caca-canvas.c -+++ b/ruby/caca-canvas.c -@@ -16,6 +16,7 @@ +--- + configure.ac | 4 ++-- + ruby/Makefile.am | 2 +- + ruby/caca-canvas.c | 1 + + ruby/caca-display.c | 3 ++- + ruby/caca-dither.c | 3 ++- + ruby/caca-event.c | 1 + + ruby/caca-event.h | 1 - + ruby/caca-font.c | 3 ++- + ruby/caca.c | 2 ++ + ruby/common.h | 2 +- + 10 files changed, 14 insertions(+), 8 deletions(-) + +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/configure.ac +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/configure.ac 2026-05-16 01:08:49.212054665 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/configure.ac 2026-05-16 01:08:49.224645534 +0200 +@@ -391,8 +391,8 @@ + # Optimizations + CFLAGS="${CFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" + # Code qui fait des warnings == code de porc == deux baffes dans ta gueule +-CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare" +-CXXFLAGS="${CXXFLAGS} -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow -Wsign-compare" ++CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare" ++CXXFLAGS="${CXXFLAGS} -Wall -Wpointer-arith -Wcast-align -Wshadow -Wsign-compare" + + dnl Visibility annotations... + saved_CFLAGS="$CFLAGS" +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/Makefile.am +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/Makefile.am 2026-05-16 01:08:49.108576641 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/Makefile.am 2026-05-16 01:08:49.225012435 +0200 +@@ -12,7 +12,7 @@ + endif + endif + +-AM_CFLAGS = -Wno-strict-prototypes -Wno-missing-prototypes ++AM_CFLAGS = -Wno-strict-prototypes -Wno-missing-prototypes -Wno-cast-qual + + caca_la_CPPFLAGS = -I$(top_srcdir)/caca -I../caca $(RUBY_CFLAGS) + caca_la_SOURCES = caca.c \ +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-canvas.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-canvas.c 2026-05-16 01:08:45.314658272 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-canvas.c 2026-05-16 01:08:49.225294257 +0200 +@@ -14,6 +14,7 @@ + #include <ruby.h> + #include <caca.h> #include <errno.h> ++#include "caca-canvas.h" #include "caca-dither.h" #include "caca-font.h" -+#include "caca_internals.h" + #include "caca_internals.h" +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-display.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-display.c 2026-05-16 01:08:45.318982906 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-display.c 2026-05-16 01:08:49.225491418 +0200 +@@ -13,12 +13,13 @@ + #include <caca.h> + #include <errno.h> + #include "caca-event.h" ++#include "caca-display.h" + #include "caca-canvas.h" #include "common.h" - VALUE cCanvas; -@@ -143,7 +143,7 @@ static VALUE put_str(VALUE self, VALUE x - return self; - } + VALUE cDisplay; --static VALUE get_attr(VALUE self, VALUE x, VALUE y) -+static VALUE get_attr(VALUE self, VALUE x, VALUE y, VALUE) +-void display_free(void *display) ++static void display_free(void *display) { - unsigned long int ch; - ch = caca_get_attr(_SELF, NUM2INT(x), NUM2INT(y)); -@@ -454,7 +454,7 @@ static VALUE fill_triangle(VALUE self, V - return self; + caca_free_display((caca_display_t *)display); } +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-dither.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-dither.c 2026-05-16 01:08:45.323013194 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-dither.c 2026-05-16 01:08:49.225670125 +0200 +@@ -12,11 +12,12 @@ + #include <ruby.h> + #include <caca.h> + #include <errno.h> ++#include "caca-dither.h" + #include "common.h" --static VALUE fill_triangle_textured(VALUE self, VALUE coords, VALUE texture, VALUE uv) -+static VALUE fill_triangle_textured(VALUE self, VALUE coords, VALUE texture, VALUE uv, VALUE) + VALUE cDither; + +-void dither_free(void *dither) ++static void dither_free(void *dither) { - caca_canvas_t *ctexture; - int i, l; -index ac29daf..36020a9 100644 ---- a/ruby/caca-display.c -+++ b/ruby/caca-display.c -@@ -226,7 +226,7 @@ static VALUE get_event(VALUE self, VALUE event_mask, VALUE timeout) - return e; + caca_free_dither((caca_dither_t *)dither); } +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-event.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-event.c 2026-05-16 01:08:45.327343468 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-event.c 2026-05-16 01:08:49.225823434 +0200 +@@ -13,6 +13,7 @@ + #include <ruby.h> + #include <caca.h> + #include <errno.h> ++#include "caca-event.h" + #include "common.h" --static VALUE driver_list(void) -+static VALUE driver_list(VALUE) + VALUE cEvent; +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-event.h +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-event.h 2026-05-16 01:08:45.329576428 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-event.h 2026-05-16 01:09:32.532902321 +0200 +@@ -18,7 +18,6 @@ + extern VALUE cEvent; + extern VALUE cEventKeyPress; + extern VALUE cEventKeyRelease; +-extern VALUE cEventMouse; + extern VALUE cEventMousePress; + extern VALUE cEventMouseRelease; + extern VALUE cEventMouseMotion; +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-font.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca-font.c 2026-05-16 01:08:45.331684853 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca-font.c 2026-05-16 01:08:49.225967386 +0200 +@@ -12,11 +12,12 @@ + #include <ruby.h> + #include <caca.h> + #include <errno.h> ++#include "caca-font.h" + #include "common.h" + + VALUE cFont; + +-void font_free(void *font) ++static void font_free(void *font) { - VALUE ary; - char const* const* list; -index 705f928..c5f5d27 100644 ---- a/ruby/caca-font.c -+++ b/ruby/caca-font.c -@@ -41,7 +41,7 @@ static VALUE font_initialize(VALUE self, VALUE name) - return self; + caca_free_font((caca_font_t *)font); + } +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca.c +=================================================================== +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/caca.c 2026-05-16 01:08:45.335244024 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/caca.c 2026-05-16 01:08:49.226118891 +0200 +@@ -24,6 +24,8 @@ + return rb_str_new2(caca_get_version()); } --static VALUE font_list(void) -+static VALUE font_list(VALUE) - { - VALUE ary; - char const* const* list; -Index: libcaca-0.99.beta20/ruby/common.h ++void Init_caca(void); ++ + #if defined CACA_ENABLE_VISIBILITY + extern __attribute__((visibility("default"))) + #endif +Index: libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/common.h =================================================================== ---- libcaca-0.99.beta20.orig/ruby/common.h -+++ libcaca-0.99.beta20/ruby/common.h +--- libcaca-0.99.beta20+git.1776622070.7c8e333.orig/ruby/common.h 2026-05-16 01:08:45.337209640 +0200 ++++ libcaca-0.99.beta20+git.1776622070.7c8e333/ruby/common.h 2026-05-16 01:08:49.226267502 +0200 @@ -16,7 +16,7 @@ #define _SELF (DATA_PTR(self)) ++++++ pyproject.toml ++++++ [build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "caca" version = "0.99.beta20" authors = [ {name = "Alex Foulon", email = "[email protected]"} ] description = "Python bindings for libcaca - Colour ASCII-Art library" readme = "README" requires-python = ">=3.6" license = "WTFPL" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Multimedia :: Graphics", "Topic :: Software Development :: Libraries :: Python Modules", ] [project.urls] Homepage = "https://libcaca.zoy.org/" [tool.setuptools] packages = ["caca"] package-dir = {caca = "caca"}
