libcaca/libcaca.spec

222 lines
6.8 KiB
RPMSpec

#
# spec file for package libcaca
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: libcaca
Version: 0.99.beta20
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
Source1: baselibs.conf
Patch0: %{name}-X11_test.patch
Patch1: %{name}-ruby_am_cflags.patch
Patch2: %{name}-ruby_vendor_install.patch
Patch3: %{name}-0.99.beta16-missing-GLU.patch
Patch4: caca-no-build-date.patch
Patch5: %{name}-0.99-texbuild.patch
Patch6: %{name}-ncurses6.patch
Patch7: Bug1143286_libcaca_configure_ac_chg_for_lto.patch
Patch8: bsc1184751-add-space-for-NUL-byte.patch
Patch9: bsc1197028-correctly-handle-zero-width-or-height-images.patch
Patch10: %{name}-autoconf-2.69.patch
Patch11: %{name}-0.99.beta20-gcc14.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: freeglut-devel
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: python3-setuptools
BuildRequires: ruby-devel
BuildRequires: pkgconfig(ftgl)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(imlib2)
BuildRequires: pkgconfig(slang)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(zlib)
%description
libcaca is the Colour AsCii Art library. It provides high level
functions for colour text drawing, simple primitives for line, polygon
and ellipse drawing, as well as powerful image to text conversion
routines.
%package -n %{name}0
Summary: Library for Colour ASCII Art, text mode graphics
Group: Development/Languages/C and C++
Provides: %{name} = %{version}
Obsoletes: %{name} < %{version}
%description -n libcaca0
libcaca is the Colour AsCii Art library. It provides high level
functions for colour text drawing, simple primitives for line, polygon
and ellipse drawing, as well as powerful image to text conversion
routines.
%package devel
Summary: Library for Colour ASCII Art, text mode graphics
Group: Development/Languages/C and C++
Requires: %{name} = %{version}
Requires: %{name}0-plugins = %{version}
%description devel
This package contains the header files and static libraries needed to
compile applications or shared objects that use libcaca.
%package -n python3-caca
Summary: Python3 support for %{name}
Group: Development/Languages/Python
Requires: %{name} = %{version}
BuildArch: noarch
%description -n python3-caca
This package contains all that is needed to use libcaca from python3.
%package -n libcaca0-plugins
Summary: Plugins for %{name}
Group: Development/Languages/C and C++
Requires: %{name} = %{version}
%description -n libcaca0-plugins
This package contains gl and x11 plugins for caca.
%package ruby
Summary: Ruby bindings for %{name}
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
Requires: ruby
%description ruby
All that is needed to use libcaca from ruby code.
%package -n caca-utils
Summary: Colour ASCII Art Text mode graphics utilities based on libcaca
Group: Amusements/Toys/Graphics
Requires: imlib2-loaders
Requires: toilet
%description -n caca-utils
This package contains utilities and demonstration programs for libcaca,
the Colour AsCii Art library.
cacaview is a simple image viewer for the terminal. It opens most image
formats such as JPEG, PNG, GIF etc. and renders them on the terminal
using ASCII art. The user can zoom and scroll the image, set the
dithering method or enable anti-aliasing.
cacaball is a tiny graphic program that renders animated ASCII
metaballs on the screen, cacafire is a port of AALib's aafire and
displays burning ASCII art flames, and cacademo is a simple application
that shows the libcaca rendering features such as line and ellipses
drawing, triangle filling and sprite blitting.
%prep
%autosetup -p1
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
popd
%build
autoreconf -fvi
export CFLAGS="$CFLAGS %{optflags} -I../caca/"
export CXXFLAGS="$CXXFLAGS %{optflags}"
%configure \
--enable-slang \
--enable-ncurses \
--enable-x11 \
--enable-imlib2 \
--enable-gl \
--enable-csharp=no \
--enable-doc \
--enable-shared=yes \
--enable-static=no \
--enable-conio=no \
--enable-plugins \
--enable-java=no \
--enable-python
%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%fdupes -s %{buildroot}%{_mandir}/
%fdupes -s %{buildroot}%{python3_sitelib}
%post -n libcaca0 -p /sbin/ldconfig
%postun -n libcaca0 -p /sbin/ldconfig
%post -n libcaca0-plugins -p /sbin/ldconfig
%postun -n libcaca0-plugins -p /sbin/ldconfig
%files -n libcaca0
%doc AUTHORS NEWS NOTES README THANKS
%license COPYING
%{_libdir}/*.so.*
%files devel
%{_datadir}/doc/libcaca-dev
%dir %{_libdir}/caca
%{_libdir}/*.so
%{_libdir}/caca/libx11_plugin.so
%{_libdir}/caca/libgl_plugin.so
%{_bindir}/caca-config
%{_libdir}/pkgconfig/*.pc
%{_includedir}/*
%{_mandir}/man1/caca-config.1%{?ext_man}
%{_mandir}/man3/*
%files ruby
%{rb_vendorarch}/*
%{rb_vendorlib}/caca.rb
%files -n python3-caca
%{python3_sitelib}/*
%files -n libcaca0-plugins
%dir %{_libdir}/caca
%{_libdir}/caca/libgl_plugin.so.0
%{_libdir}/caca/libgl_plugin.so.0.0.0
%{_libdir}/caca/libx11_plugin.so.0
%{_libdir}/caca/libx11_plugin.so.0.0.0
%files -n caca-utils
%{_bindir}/cacademo
%{_bindir}/cacafire
%{_bindir}/cacaview
%{_bindir}/cacaplay
%{_bindir}/cacaclock
%{_bindir}/cacaserver
%{_bindir}/img2txt
%{_datadir}/%{name}
%{_mandir}/man1/cacademo.1%{?ext_man}
%{_mandir}/man1/cacafire.1%{?ext_man}
%{_mandir}/man1/cacaview.1%{?ext_man}
%{_mandir}/man1/cacaplay.1%{?ext_man}
%{_mandir}/man1/cacaserver.1%{?ext_man}
%{_mandir}/man1/img2txt.1%{?ext_man}
%changelog