X-Git-Url: https://git.pld-linux.org/?p=packages%2Flibcaca.git;a=blobdiff_plain;f=libcaca.spec;h=31f56ca064c75af462d5842cf642459fc9f64119;hp=edecccbb71c58022a66bb6f20f3f54334e4d5f18;hb=HEAD;hpb=d1a20e7c19a348711499eb33315c7e5cfaf36efa diff --git a/libcaca.spec b/libcaca.spec index edecccb..31f56ca 100644 --- a/libcaca.spec +++ b/libcaca.spec @@ -1,45 +1,76 @@ # # Conditional build: -%bcond_without dotnet # don't build mono plugin -# -%ifnarch %{ix86} %{x8664} alpha arm hppa ia64 mips ppc s390 s390x sparc sparcv9 +%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 -%{?with_dotnet:%include /usr/lib/rpm/macros.mono} +%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 Version: 0.99 -%define subver beta16 -Release: 0.%{subver}.1 -License: WTFPL +Release: 0.%{subver}.%{rel} +License: WTFPL v2 Group: Libraries -Source0: http://libcaca.zoy.org/files/libcaca/%{name}-%{version}.%{subver}.tar.gz -# Source0-md5: 3953bf4a803747b63a99f50125563151 -Patch0: install.patch -URL: http://libcaca.zoy.org/ +#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 -%{?with_dotnet:BuildRequires: mono-csharp} -BuildRequires: rpmbuild(macros) >= 1.272 -BuildRequires: rpmbuild(monoautodeps) -BuildRequires: ruby-devel -BuildRequires: slang-devel >= 2.0.0 -# shouldn't these be in doxygen requirements? -BuildRequires: tetex-fonts-jknappen -BuildRequires: tetex-makeindex -BuildRequires: tetex-metafont +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 @@ -60,10 +91,10 @@ But libcaca also has the following limitations: - 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. +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) @@ -176,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 @@ -189,12 +232,38 @@ 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} -%{?ruby_ver_requires_eq} %description -n ruby-caca Ruby bindings for libcaca. @@ -205,6 +274,10 @@ Wiązania języka Ruby do libcaca. %prep %setup -q -n %{name}-%{version}.%{subver} %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build %{__libtoolize} @@ -212,55 +285,51 @@ 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 \ - --disable-ncurses \ - --%{!?with_dotnet:dis}%{?with_dotnet:en}able-csharp \ + %{?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 \ + --enable-slang%{!?with_slang:=no} \ --enable-x11 - +# --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} \ - OBJC="%{__cc}" +%{__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 + DESTDIR=$RPM_BUILD_ROOT \ + jnidir=%{_libdir} # replace symlink by groff include -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1 +%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1 -rm -f $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la} -rm -f $RPM_BUILD_ROOT%{ruby_sitearchdir}/*.{a,la} +# 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 -f $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca -rm -rf $RPM_BUILD_ROOT%{_docdir}/libcucul-dev - -cd $RPM_BUILD_ROOT%{_libdir} -for i in libcaca*.so.*.*.*; do - ln -sf $i $(echo $i |sed 's/caca/cucul/') -done -ln -sf libcaca.a $RPM_BUILD_ROOT%{_libdir}/libcucul.a -ln -sf libcaca.la $RPM_BUILD_ROOT%{_libdir}/libcucul.la -ln -sf libcaca.so $RPM_BUILD_ROOT%{_libdir}/libcucul.so -ln -sf libcaca.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul.so.0 -ln -sf libcaca++.a $RPM_BUILD_ROOT%{_libdir}/libcucul++.a -ln -sf libcaca++.la $RPM_BUILD_ROOT%{_libdir}/libcucul++.la -ln -sf libcaca++.so $RPM_BUILD_ROOT%{_libdir}/libcucul++.so -ln -sf libcaca++.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul++.so.0 -ln -sf caca-sharp $RPM_BUILD_ROOT%{_libdir}/cucul-sharp -ln -sf caca++.h $RPM_BUILD_ROOT%{_includedir}/cucul++.h -ln -sf caca_types.h $RPM_BUILD_ROOT%{_includedir}/cucul_types.h -#ln -sf caca_types++.h $RPM_BUILD_ROOT%{_includedir}/cucul_types++.h -ln -sf caca.so $RPM_BUILD_ROOT%{ruby_sitearchdir}/cucul.so +%{__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 @@ -271,17 +340,19 @@ rm -rf $RPM_BUILD_ROOT %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 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 %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 -%attr(755,root,root) %{_libdir}/libcucul.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libcucul.so.0 %dir %{_libdir}/caca %{_datadir}/%{name} %{_mandir}/man1/cacademo.1* @@ -306,59 +377,61 @@ 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 -%attr(755,root,root) %{_libdir}/libcucul.so -%{_libdir}/libcaca.la -%{_libdir}/libcucul.la %{_includedir}/caca.h %{_includedir}/caca0.h +%{_includedir}/caca_conio.h %{_includedir}/caca_types.h -%{_includedir}/cucul.h -%{_includedir}/cucul_types.h %{_pkgconfigdir}/caca.pc -%{_pkgconfigdir}/cucul.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 -%{_libdir}/libcucul.a %files c++ %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0 -%attr(755,root,root) %{_libdir}/libcucul++.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libcucul++.so.0 %files c++-devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libcaca++.so -%attr(755,root,root) %{_libdir}/libcucul++.so -%{_libdir}/libcaca++.la -%{_libdir}/libcucul++.la %{_includedir}/caca++.h -%{_includedir}/cucul++.h %{_pkgconfigdir}/caca++.pc -%{_pkgconfigdir}/cucul++.pc %files c++-static %defattr(644,root,root,755) %{_libdir}/libcaca++.a -%{_libdir}/libcucul++.a + +%files apidocs +%defattr(644,root,root,755) +%doc doc/html/* %if %{with dotnet} %files -n dotnet-caca-sharp %defattr(644,root,root,755) -%{_libdir}/caca-sharp -%{_libdir}/cucul-sharp +%{_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_sitelibdir}/caca.rb -%attr(755,root,root) %{ruby_sitearchdir}/caca.so -%attr(755,root,root) %{ruby_sitearchdir}/cucul.so +%{ruby_vendorlibdir}/caca.rb +%attr(755,root,root) %{ruby_vendorarchdir}/caca.so