3 %bcond_without dotnet # C#/Mono binding
4 %bcond_without java # Java binding
6 %ifnarch %{ix86} %{x8664} alpha arm hppa ia64 mips ppc s390 s390x sparc sparcv9
13 %{?with_dotnet:%include /usr/lib/rpm/macros.mono}
14 Summary: Graphics library that outputs text instead of pixels
15 Summary(pl.UTF-8): Biblioteka graficzna wyświetlająca tekst zamiast pikseli
19 Release: 0.%{subver}.1
22 Source0: http://libcaca.zoy.org/files/libcaca/%{name}-%{version}.%{subver}.tar.gz
23 # Source0-md5: 93d35dbdb0527d4c94df3e9a02e865cc
25 Patch1: %{name}-ruby1.9.patch
26 Patch2: %{name}-format.patch
27 Patch3: %{name}-monodir.patch
28 URL: http://libcaca.zoy.org/
29 BuildRequires: OpenGL-devel
30 BuildRequires: autoconf >= 2.50
31 BuildRequires: automake
32 BuildRequires: doxygen
33 BuildRequires: freeglut-devel >= 2.0.0
35 #BuildRequires: ftgl-devel >= 2.1.3
36 BuildRequires: imlib2-devel
37 %{?with_java:BuildRequires: jdk}
38 BuildRequires: libstdc++-devel
39 BuildRequires: libtool >= 2:1.5
40 %{?with_dotnet:BuildRequires: mono-csharp}
41 BuildRequires: python-devel >= 2.2
42 BuildRequires: pkgconfig
43 BuildRequires: rpmbuild(macros) >= 1.533
44 BuildRequires: rpmbuild(monoautodeps)
45 BuildRequires: ruby-devel
46 BuildRequires: sed >= 4.0
47 BuildRequires: slang-devel >= 2.0.0
48 BuildRequires: texlive-fonts-jknappen
49 BuildRequires: texlive-format-pdflatex
50 BuildRequires: texlive-makeindex
51 BuildRequires: texlive-latex-ams
52 BuildRequires: xorg-lib-libX11-devel
53 BuildRequires: zlib-devel
54 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56 %define specflags -fomit-frame-pointer
59 The libcaca library is a graphics library that outputs text instead of
60 pixels, so that it can work on older video cards or text terminals. It
61 is not unlike the famous AAlib library.
63 The differences with AAlib are the following:
64 - 16 available colours for character output (256 colour pairs)
65 - dithering of colour images
66 - basic sprite primitives
68 But libcaca also has the following limitations:
69 - no support for brightness, contrast, gamma
70 - unefficient character-choosing algorithms
71 - no raw keyboard support
73 %description -l pl.UTF-8
74 Biblioteka libcaca to biblioteka graficzna wyświetlająca tekst zamiast
75 pikseli, dzięki czemu może działać na starszych kartach graficznych
76 oraz terminalach tekstowych. Pod tym względem jest podobna do słynnej
79 Różnice w stosunku do AAlib są następujące:
80 - 16 dostępnych kolorów dla znaków (256 par kolorów)
81 - dithering kolorowych obrazów
82 - proste kształty duszków (sprites)
84 Ale libcaca ma także następujące ograniczenia:
85 - brak obsługi jasności, kontrastu, korekcji gamma
86 - mało wydajne algorytmy wyboru znaków
87 - brak obsługi klawiatury w trybie surowym
90 Summary: GL plugin for libcaca library
91 Summary(pl.UTF-8): Wtyczka GL dla biblioteki libcaca
93 Requires: %{name} = %{version}-%{release}
94 Requires: freeglut >= 2.0.0
96 %description plugin-GL
97 GL plugin for libcaca library.
99 %description plugin-GL -l pl.UTF-8
100 Wtyczka GL dla biblioteki libcaca.
103 Summary: X11 plugin for libcaca library
104 Summary(pl.UTF-8): Wtyczka X11 dla biblioteki libcaca
106 Requires: %{name} = %{version}-%{release}
108 %description plugin-X11
109 X11 plugin for libcaca library.
111 %description plugin-X11 -l pl.UTF-8
112 Wtyczka X11 dla biblioteki libcaca.
115 Summary: libcaca-based image viewer and converter
116 Summary(pl.UTF-8): Przeglądarka i konwerter obrazków oparte na libcaca
117 Group: Applications/Graphics
120 libcaca-based image viewer and converter. They use imlib2 to load
123 %description img -l pl.UTF-8
124 Przeglądarka i konwerter obrazków oparte na libcaca. Do wczytywania
125 obrazków używają biblioteki imlib2.
128 Summary: Header files for libcaca library
129 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libcaca
130 Group: Development/Libraries
131 Requires: %{name} = %{version}-%{release}
132 Requires: slang-devel >= 2.0.0
135 Header files for libcaca library.
137 %description devel -l pl.UTF-8
138 Pliki nagłówkowe biblioteki libcaca.
141 Summary: Static libcaca library
142 Summary(pl.UTF-8): Statyczna biblioteka libcaca
143 Group: Development/Libraries
144 Requires: %{name}-devel = %{version}-%{release}
147 Static libcaca library.
149 %description static -l pl.UTF-8
150 Statyczna biblioteka libcaca.
153 Summary: C++ bindings for libcaca
154 Summary(pl.UTF-8): Wiązania C++ do libcaca
156 Requires: %{name} = %{version}-%{release}
159 C++ bindings for libcaca.
161 %description c++ -l pl.UTF-8
162 Wiązania C++ do libcaca.
165 Summary: C++ bindings for libcaca - header files
166 Summary(pl.UTF-8): Wiązania C++ do libcaca - pliki nagłówkowe
167 Group: Development/Libraries
168 Requires: %{name}-c++ = %{version}-%{release}
169 Requires: %{name}-devel = %{version}-%{release}
170 Requires: libstdc++-devel
172 %description c++-devel
173 C++ bindings for libcaca - header files.
175 %description c++-devel -l pl.UTF-8
176 Wiązania C++ do libcaca - pliki nagłówkowe.
179 Summary: C++ bindings for libcaca - static libraries
180 Summary(pl.UTF-8): Wiązania C++ do libcaca - biblioteki statyczne
181 Group: Development/Libraries
182 Requires: %{name}-c++-devel = %{version}-%{release}
184 %description c++-static
185 C++ bindings for libcaca - static libraries.
187 %description c++-static -l pl.UTF-8
188 Wiązania C++ do libcaca - biblioteki statyczne.
190 %package -n dotnet-caca-sharp
191 Summary: C# bindings for libcaca
192 Summary(pl.UTF-8): Wiązania C# do libcaca
194 Requires: %{name} = %{version}-%{release}
197 %description -n dotnet-caca-sharp
198 C# bindings for libcaca.
200 %description -n dotnet-caca-sharp -l pl.UTF-8
201 Wiązania C# do libcaca.
203 %package -n java-caca
204 Summary: Java bindings for libcaca
205 Summary(pl.UTF-8): Wiązania Javy do libcaca
206 Group: Libraries/Java
207 Requires: %{name} = %{version}-%{release}
210 %description -n java-caca
211 Java bindings for libcaca.
213 %description -n java-caca -l pl.UTF-8
214 Wiązania Javy do libcaca.
216 %package -n python-caca
217 Summary: Python bindings for libcaca
218 Summary(pl.UTF-8): Wiązania Pythona do libcaca
219 Group: Development/Languages/Python
220 Requires: %{name} = %{version}-%{release}
222 Requires: python-modules
224 %description -n python-caca
225 Python bindings for libcaca.
227 %description -n python-caca -l pl.UTF-8
228 Wiązania Pythona do libcaca.
230 %package -n ruby-caca
231 Summary: Ruby bindings for libcaca
232 Summary(pl.UTF-8): Wiązania języka Ruby do libcaca
233 Group: Development/Languages
234 Requires: %{name} = %{version}-%{release}
235 %{?ruby_ver_requires_eq}
237 %description -n ruby-caca
238 Ruby bindings for libcaca.
240 %description -n ruby-caca -l pl.UTF-8
241 Wiązania języka Ruby do libcaca.
244 %setup -q -n %{name}-%{version}.%{subver}
257 # NOTE: ncurses driver builds, but there's no color when linked against
258 # ABI 6. While caca defaults to ncurses this must be disabled until fixed.
261 --enable-csharp%{!?with_dotnet:=no} \
264 --enable-java%{!?with_java:=no} \
270 # ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
271 %{__make} %{?with_java:-j1} \
272 CLASSPATH=$(pwd)/java \
277 rm -rf $RPM_BUILD_ROOT
280 DESTDIR=$RPM_BUILD_ROOT \
283 # replace symlink by groff include
284 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
285 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
288 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
289 %{__rm} $RPM_BUILD_ROOT%{ruby_sitearchdir}/*.la
291 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca-java.la
293 # man3 pages have too common base names to be included
294 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
295 # packaged as %doc in -devel
296 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/lib{caca,cucul}-dev
298 cd $RPM_BUILD_ROOT%{_libdir}
299 for i in libcaca.so.*.*.* libcaca++.so.*.*.*; do
300 ln -sf $i $(echo $i |sed 's/caca/cucul/')
302 ln -sf libcaca.a $RPM_BUILD_ROOT%{_libdir}/libcucul.a
303 ln -sf libcaca.la $RPM_BUILD_ROOT%{_libdir}/libcucul.la
304 ln -sf libcaca.so $RPM_BUILD_ROOT%{_libdir}/libcucul.so
305 ln -sf libcaca.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul.so.0
306 ln -sf libcaca++.a $RPM_BUILD_ROOT%{_libdir}/libcucul++.a
307 ln -sf libcaca++.la $RPM_BUILD_ROOT%{_libdir}/libcucul++.la
308 ln -sf libcaca++.so $RPM_BUILD_ROOT%{_libdir}/libcucul++.so
309 ln -sf libcaca++.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul++.so.0
310 ln -sf caca++.h $RPM_BUILD_ROOT%{_includedir}/cucul++.h
311 ln -sf caca_types.h $RPM_BUILD_ROOT%{_includedir}/cucul_types.h
316 rm -rf $RPM_BUILD_ROOT
318 %post -p /sbin/ldconfig
319 %postun -p /sbin/ldconfig
321 %post c++ -p /sbin/ldconfig
322 %postun c++ -p /sbin/ldconfig
324 %post -n java-caca -p /sbin/ldconfig
325 %postun -n java-caca -p /sbin/ldconfig
328 %defattr(644,root,root,755)
329 %doc AUTHORS COPYING ChangeLog NEWS NOTES README THANKS
330 %attr(755,root,root) %{_bindir}/cacaclock
331 %attr(755,root,root) %{_bindir}/cacademo
332 %attr(755,root,root) %{_bindir}/cacafire
333 %attr(755,root,root) %{_bindir}/cacaplay
334 %attr(755,root,root) %{_bindir}/cacaserver
335 %attr(755,root,root) %{_libdir}/libcaca.so.*.*.*
336 %attr(755,root,root) %ghost %{_libdir}/libcaca.so.0
337 %attr(755,root,root) %{_libdir}/libcucul.so.*.*.*
338 %attr(755,root,root) %ghost %{_libdir}/libcucul.so.0
341 %{_mandir}/man1/cacademo.1*
342 %{_mandir}/man1/cacafire.1*
343 %{_mandir}/man1/cacaplay.1*
344 %{_mandir}/man1/cacaserver.1*
347 %defattr(644,root,root,755)
348 %attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
351 %defattr(644,root,root,755)
352 %attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
355 %defattr(644,root,root,755)
356 %attr(755,root,root) %{_bindir}/cacaview
357 %attr(755,root,root) %{_bindir}/img2txt
358 %{_mandir}/man1/cacaview.1*
359 %{_mandir}/man1/img2txt.1*
362 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_bindir}/caca-config
365 %attr(755,root,root) %{_libdir}/libcaca.so
366 %attr(755,root,root) %{_libdir}/libcucul.so
367 %{_libdir}/libcaca.la
368 %{_libdir}/libcucul.la
369 %{_includedir}/caca.h
370 %{_includedir}/caca0.h
371 %{_includedir}/caca_conio.h
372 %{_includedir}/caca_types.h
373 %{_includedir}/cucul.h
374 %{_includedir}/cucul_types.h
375 %{_pkgconfigdir}/caca.pc
376 %{_pkgconfigdir}/cucul.pc
377 %{_mandir}/man1/caca-config.1*
378 # man3 pages have too common base names to be included
381 %defattr(644,root,root,755)
383 %{_libdir}/libcucul.a
386 %defattr(644,root,root,755)
387 %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
389 %attr(755,root,root) %{_libdir}/libcucul++.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libcucul++.so.0
393 %defattr(644,root,root,755)
394 %attr(755,root,root) %{_libdir}/libcaca++.so
395 %attr(755,root,root) %{_libdir}/libcucul++.so
396 %{_libdir}/libcaca++.la
397 %{_libdir}/libcucul++.la
398 %{_includedir}/caca++.h
399 %{_includedir}/cucul++.h
400 %{_pkgconfigdir}/caca++.pc
401 %{_pkgconfigdir}/cucul++.pc
404 %defattr(644,root,root,755)
405 %{_libdir}/libcaca++.a
406 %{_libdir}/libcucul++.a
409 %files -n dotnet-caca-sharp
410 %defattr(644,root,root,755)
411 %{_prefix}/lib/mono/caca-sharp-0.0
412 %{_prefix}/lib/mono/gac/caca-sharp
413 %{_javadir}/libjava.jar
418 %defattr(644,root,root,755)
419 %attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
420 %attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
421 %attr(755,root,root) %{_libdir}/libcaca-java.so
424 %files -n python-caca
425 %defattr(644,root,root,755)
426 %dir %{py_sitescriptdir}/caca
427 %{py_sitescriptdir}/caca/*.py[co]
430 %defattr(644,root,root,755)
431 %{ruby_sitelibdir}/caca.rb
432 %attr(755,root,root) %{ruby_sitearchdir}/caca.so