]> git.pld-linux.org Git - packages/libcaca.git/blobdiff - libcaca.spec
- added javah patch: replace javah (removed from JDK 10+) by javac -h (requires JDK 8+)
[packages/libcaca.git] / libcaca.spec
index 98aa97860a21984c541779e66d7f6f25bc93aab4..31f56ca064c75af462d5842cf642459fc9f64119 100644 (file)
+#
+# Conditional build:
+%bcond_without dotnet          # C#/Mono binding
+%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
+%undefine      with_dotnet
+%endif
+%ifarch i386
+%undefine      with_dotnet
+%endif
+
+%define                rel     1
+%define        subver  beta20
 Summary:       Graphics library that outputs text instead of pixels
-Summary(pl):   Biblioteka graficzna wy¶wietlaj±ca tekst zamiast pikseli
+Summary(pl.UTF-8):     Biblioteka graficzna wyświetlająca tekst zamiast pikseli
 Name:          libcaca
-Version:       0.5
-Release:       1
-License:       LGPL
+Version:       0.99
+Release:       0.%{subver}.%{rel}
+License:       WTFPL v2
 Group:         Libraries
-Source0:       http://sam.zoy.org/projects/libcaca/%{name}-%{version}.tar.bz2
-# Source0-md5: be42552eace04fd0c02343b8b6c6b308
-BuildRequires: XFree86-devel
-#BuildRequires:        ncurses-devel
+#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
+Patch2:                %{name}-sh.patch
+Patch3:                %{name}-plugins.patch
+Patch4:                %{name}-javah.patch
+URL:           http://caca.zoy.org/wiki/libcaca
+BuildRequires: OpenGL-devel
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake
+BuildRequires: doxygen
+BuildRequires: freeglut-devel >= 2.0.0
+# not used
+#BuildRequires:        ftgl-devel >= 2.1.3
+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: sed >= 4.0
+%{?with_slang:BuildRequires:   slang-devel >= 2.0.0}
+#BuildRequires:        texlive-fonts-jknappen
+#BuildRequires:        texlive-format-pdflatex
+#BuildRequires:        texlive-latex-ams
+#BuildRequires:        texlive-makeindex
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: zlib-devel
+%if %{with dotnet}
+BuildRequires: mono-csharp
+%endif
+%if %{with java}
+BuildRequires: jdk >= 1.8
+BuildRequires: rpm-javaprov
+# org_zoy_caca_Attribute.c:14:18: fatal error: caca.h: No such file or directory
+BuildRequires: libcaca-devel
+%endif
+%if %{with python}
+BuildRequires: python-devel >= 2.2
+BuildRequires: rpm-pythonprov
+%endif
+%if %{with ruby}
+BuildRequires: rpm-rubyprov
+BuildRequires: ruby-devel
+%endif
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                specflags       -fomit-frame-pointer
+
 %description
 The libcaca library is a graphics library that outputs text instead of
 pixels, so that it can work on older video cards or text terminals. It
 is not unlike the famous AAlib library.
 
 The differences with AAlib are the following:
-
 - 16 available colours for character output (256 colour pairs)
 - dithering of colour images
 - basic sprite primitives
 
 But libcaca also has the following limitations:
-
 - no support for brightness, contrast, gamma
 - unefficient character-choosing algorithms
 - no raw keyboard support
 
+%description -l pl.UTF-8
+Biblioteka libcaca to biblioteka graficzna wyświetlająca tekst zamiast
+pikseli, dzięki czemu może działać na starszych kartach graficznych
+oraz terminalach tekstowych. Pod tym względem jest podobna do słynnej
+biblioteki AAlib.
+
+Różnice w stosunku do AAlib są następujące:
+- 16 dostępnych kolorów dla znaków (256 par kolorów)
+- dithering kolorowych obrazów
+- proste kształty duszków (sprites)
+
+Ale libcaca ma także następujące ograniczenia:
+- brak obsługi jasności, kontrastu, korekcji gamma
+- mało wydajne algorytmy wyboru znaków
+- brak obsługi klawiatury w trybie surowym
+
+%package plugin-GL
+Summary:       GL plugin for libcaca library
+Summary(pl.UTF-8):     Wtyczka GL dla biblioteki libcaca
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      freeglut >= 2.0.0
+
+%description plugin-GL
+GL plugin for libcaca library.
+
+%description plugin-GL -l pl.UTF-8
+Wtyczka GL dla biblioteki libcaca.
+
+%package plugin-X11
+Summary:       X11 plugin for libcaca library
+Summary(pl.UTF-8):     Wtyczka X11 dla biblioteki libcaca
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+
+%description plugin-X11
+X11 plugin for libcaca library.
+
+%description plugin-X11 -l pl.UTF-8
+Wtyczka X11 dla biblioteki libcaca.
+
+%package img
+Summary:       libcaca-based image viewer and converter
+Summary(pl.UTF-8):     Przeglądarka i konwerter obrazków oparte na libcaca
+Group:         Applications/Graphics
+
+%description img
+libcaca-based image viewer and converter. They use imlib2 to load
+images.
+
+%description img -l pl.UTF-8
+Przeglądarka i konwerter obrazków oparte na libcaca. Do wczytywania
+obrazków używają biblioteki imlib2.
+
+%package devel
+Summary:       Header files for libcaca library
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki libcaca
+Group:         Development/Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      slang-devel >= 2.0.0
+
+%description devel
+Header files for libcaca library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki libcaca.
+
+%package static
+Summary:       Static libcaca library
+Summary(pl.UTF-8):     Statyczna biblioteka libcaca
+Group:         Development/Libraries
+Requires:      %{name}-devel = %{version}-%{release}
+
+%description static
+Static libcaca library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka libcaca.
+
+%package c++
+Summary:       C++ bindings for libcaca
+Summary(pl.UTF-8):     Wiązania C++ do libcaca
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+
+%description c++
+C++ bindings for libcaca.
+
+%description c++ -l pl.UTF-8
+Wiązania C++ do libcaca.
+
+%package c++-devel
+Summary:       C++ bindings for libcaca - header files
+Summary(pl.UTF-8):     Wiązania C++ do libcaca - pliki nagłówkowe
+Group:         Development/Libraries
+Requires:      %{name}-c++ = %{version}-%{release}
+Requires:      %{name}-devel = %{version}-%{release}
+Requires:      libstdc++-devel
+
+%description c++-devel
+C++ bindings for libcaca - header files.
+
+%description c++-devel -l pl.UTF-8
+Wiązania C++ do libcaca - pliki nagłówkowe.
+
+%package c++-static
+Summary:       C++ bindings for libcaca - static libraries
+Summary(pl.UTF-8):     Wiązania C++ do libcaca - biblioteki statyczne
+Group:         Development/Libraries
+Requires:      %{name}-c++-devel = %{version}-%{release}
+
+%description c++-static
+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
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      mono
+
+%description -n dotnet-caca-sharp
+C# bindings for libcaca.
+
+%description -n dotnet-caca-sharp -l pl.UTF-8
+Wiązania C# do libcaca.
+
+%package -n java-caca
+Summary:       Java bindings for libcaca
+Summary(pl.UTF-8):     Wiązania Javy do libcaca
+Group:         Libraries/Java
+Requires:      %{name} = %{version}-%{release}
+Requires:      jre
+
+%description -n java-caca
+Java bindings for libcaca.
+
+%description -n java-caca -l pl.UTF-8
+Wiązania Javy do libcaca.
+
+%package -n python-caca
+Summary:       Python bindings for libcaca
+Summary(pl.UTF-8):     Wiązania Pythona do libcaca
+Group:         Development/Languages/Python
+Requires:      %{name} = %{version}-%{release}
+# ctypes
+Requires:      python-modules
+
+%description -n python-caca
+Python bindings for libcaca.
+
+%description -n python-caca -l pl.UTF-8
+Wiązania Pythona do libcaca.
+
+%package -n ruby-caca
+Summary:       Ruby bindings for libcaca
+Summary(pl.UTF-8):     Wiązania języka Ruby do libcaca
+Group:         Development/Languages
+Requires:      %{name} = %{version}-%{release}
+
+%description -n ruby-caca
+Ruby bindings for libcaca.
+
+%description -n ruby-caca -l pl.UTF-8
+Wiązania języka Ruby do libcaca.
+
 %prep
-%setup -q
+%setup -q -n %{name}-%{version}.%{subver}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
-# TODO: fix configure, so it can find ncurses includes
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+# NOTE: as of libcaca 0.99beta19 / doxygen 1.8.7 pdflatex fails - use
+# KPSEWHICH hack to disable PDF documentation.
 %configure \
-       --prefix=%{_prefix} \
-       --enable-x11 \
-       --disable-ncurses
+       %{?with_dotnet:CSC=/usr/bin/dmcs} \
+       KPSEWHICH=/nonexisting \
+       --disable-cocoa \
+       --enable-csharp%{!?with_dotnet:=no} \
+       --enable-cxx \
+       --enable-gl \
+       --enable-java%{!?with_java:=no} \
+       --enable-ncurses%{!?with_ncurses:=no} \
+       --enable-plugins \
+       --enable-slang%{!?with_slang:=no} \
+       --enable-x11
 
-%{__make}
+# --disable-silent-rules doesn't work due to AM_DEFAULT_VERBOSITY=0; use V=1 instead
+# ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
+%{__make} %{?with_java:-j1} \
+       CLASSPATH=$(pwd)/java \
+       OBJC="%{__cc}" \
+       V=1 \
+       jnidir=%{_libdir}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
+
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT \
+       jnidir=%{_libdir}
+
+# replace symlink by groff include
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
+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
+# 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
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libcaca-dev
+
+%py_postclean
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post  -p /sbin/ldconfig
+%postun        -p /sbin/ldconfig
+
+%post  c++ -p /sbin/ldconfig
+%postun        c++ -p /sbin/ldconfig
+
+%post  -n java-caca -p /sbin/ldconfig
+%postun        -n java-caca -p /sbin/ldconfig
+
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS BUGS ChangeLog NEWS NOTES README TODO
-%attr(755,root,root) %{_bindir}/*
-%{_includedir}/*
-%{_libdir}/*
+%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
+%attr(755,root,root) %{_bindir}/cacaplay
+%attr(755,root,root) %{_bindir}/cacaserver
+%attr(755,root,root) %{_libdir}/libcaca.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcaca.so.0
+%dir %{_libdir}/caca
 %{_datadir}/%{name}
-%{_mandir}/man1/*
+%{_mandir}/man1/cacademo.1*
+%{_mandir}/man1/cacafire.1*
+%{_mandir}/man1/cacaplay.1*
+%{_mandir}/man1/cacaserver.1*
+
+%files plugin-GL
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
+
+%files plugin-X11
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
+
+%files img
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/cacaview
+%attr(755,root,root) %{_bindir}/img2txt
+%{_mandir}/man1/cacaview.1*
+%{_mandir}/man1/img2txt.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/caca-config
+%attr(755,root,root) %{_libdir}/libcaca.so
+%{_includedir}/caca.h
+%{_includedir}/caca0.h
+%{_includedir}/caca_conio.h
+%{_includedir}/caca_types.h
+%{_pkgconfigdir}/caca.pc
+%{_mandir}/man1/caca-config.1*
+# man3 pages have too common base names to be included
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libcaca.a
+
+%files c++
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
+
+%files c++-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcaca++.so
+%{_includedir}/caca++.h
+%{_pkgconfigdir}/caca++.pc
+
+%files c++-static
+%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)
+%{_prefix}/lib/mono/caca-sharp-0.0
+%{_prefix}/lib/mono/gac/caca-sharp
+%endif
+
+%if %{with java}
+%files -n java-caca
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
+%attr(755,root,root) %{_libdir}/libcaca-java.so
+%{_javadir}/libjava.jar
+%endif
+
+%files -n python-caca
+%defattr(644,root,root,755)
+%dir %{py_sitescriptdir}/caca
+%{py_sitescriptdir}/caca/*.py[co]
+
+%files -n ruby-caca
+%defattr(644,root,root,755)
+%{ruby_vendorlibdir}/caca.rb
+%attr(755,root,root) %{ruby_vendorarchdir}/caca.so
This page took 0.099176 seconds and 4 git commands to generate.