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 URL: http://libcaca.zoy.org/
28 BuildRequires: OpenGL-devel
29 BuildRequires: autoconf >= 2.50
30 BuildRequires: automake
31 BuildRequires: doxygen
32 BuildRequires: freeglut-devel >= 2.0.0
34 #BuildRequires: ftgl-devel >= 2.1.3
35 BuildRequires: imlib2-devel
36 %{?with_java:BuildRequires: jdk}
37 BuildRequires: libstdc++-devel
38 BuildRequires: libtool >= 2:1.5
39 %{?with_dotnet:BuildRequires: mono-csharp}
40 BuildRequires: python-devel >= 2.2
41 BuildRequires: pkgconfig
42 BuildRequires: rpmbuild(macros) >= 1.533
43 BuildRequires: rpmbuild(monoautodeps)
44 BuildRequires: ruby-devel
45 BuildRequires: sed >= 4.0
46 BuildRequires: slang-devel >= 2.0.0
47 # shouldn't these be in doxygen requirements?
48 BuildRequires: tetex-fonts-jknappen
49 BuildRequires: tetex-makeindex
50 BuildRequires: tetex-metafont
51 BuildRequires: xorg-lib-libX11-devel
52 BuildRequires: zlib-devel
53 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55 %define specflags -fomit-frame-pointer
58 The libcaca library is a graphics library that outputs text instead of
59 pixels, so that it can work on older video cards or text terminals. It
60 is not unlike the famous AAlib library.
62 The differences with AAlib are the following:
63 - 16 available colours for character output (256 colour pairs)
64 - dithering of colour images
65 - basic sprite primitives
67 But libcaca also has the following limitations:
68 - no support for brightness, contrast, gamma
69 - unefficient character-choosing algorithms
70 - no raw keyboard support
72 %description -l pl.UTF-8
73 Biblioteka libcaca to biblioteka graficzna wyświetlająca tekst zamiast
74 pikseli, dzięki czemu może działać na starszych kartach graficznych
75 oraz terminalach tekstowych. Pod tym względem jest podobna do słynnej
78 Różnice w stosunku do AAlib są następujące:
79 - 16 dostępnych kolorów dla znaków (256 par kolorów)
80 - dithering kolorowych obrazów
81 - proste kształty duszków (sprites)
83 Ale libcaca ma także następujące ograniczenia:
84 - brak obsługi jasności, kontrastu, korekcji gamma
85 - mało wydajne algorytmy wyboru znaków
86 - brak obsługi klawiatury w trybie surowym
89 Summary: GL plugin for libcaca library
90 Summary(pl.UTF-8): Wtyczka GL dla biblioteki libcaca
92 Requires: %{name} = %{version}-%{release}
93 Requires: freeglut >= 2.0.0
95 %description plugin-GL
96 GL plugin for libcaca library.
98 %description plugin-GL -l pl.UTF-8
99 Wtyczka GL dla biblioteki libcaca.
102 Summary: X11 plugin for libcaca library
103 Summary(pl.UTF-8): Wtyczka X11 dla biblioteki libcaca
105 Requires: %{name} = %{version}-%{release}
107 %description plugin-X11
108 X11 plugin for libcaca library.
110 %description plugin-X11 -l pl.UTF-8
111 Wtyczka X11 dla biblioteki libcaca.
114 Summary: libcaca-based image viewer and converter
115 Summary(pl.UTF-8): Przeglądarka i konwerter obrazków oparte na libcaca
116 Group: Applications/Graphics
119 libcaca-based image viewer and converter. They use imlib2 to load
122 %description img -l pl.UTF-8
123 Przeglądarka i konwerter obrazków oparte na libcaca. Do wczytywania
124 obrazków używają biblioteki imlib2.
127 Summary: Header files for libcaca library
128 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libcaca
129 Group: Development/Libraries
130 Requires: %{name} = %{version}-%{release}
131 Requires: slang-devel >= 2.0.0
134 Header files for libcaca library.
136 %description devel -l pl.UTF-8
137 Pliki nagłówkowe biblioteki libcaca.
140 Summary: Static libcaca library
141 Summary(pl.UTF-8): Statyczna biblioteka libcaca
142 Group: Development/Libraries
143 Requires: %{name}-devel = %{version}-%{release}
146 Static libcaca library.
148 %description static -l pl.UTF-8
149 Statyczna biblioteka libcaca.
152 Summary: C++ bindings for libcaca
153 Summary(pl.UTF-8): Wiązania C++ do libcaca
155 Requires: %{name} = %{version}-%{release}
158 C++ bindings for libcaca.
160 %description c++ -l pl.UTF-8
161 Wiązania C++ do libcaca.
164 Summary: C++ bindings for libcaca - header files
165 Summary(pl.UTF-8): Wiązania C++ do libcaca - pliki nagłówkowe
166 Group: Development/Libraries
167 Requires: %{name}-c++ = %{version}-%{release}
168 Requires: %{name}-devel = %{version}-%{release}
169 Requires: libstdc++-devel
171 %description c++-devel
172 C++ bindings for libcaca - header files.
174 %description c++-devel -l pl.UTF-8
175 Wiązania C++ do libcaca - pliki nagłówkowe.
178 Summary: C++ bindings for libcaca - static libraries
179 Summary(pl.UTF-8): Wiązania C++ do libcaca - biblioteki statyczne
180 Group: Development/Libraries
181 Requires: %{name}-c++-devel = %{version}-%{release}
183 %description c++-static
184 C++ bindings for libcaca - static libraries.
186 %description c++-static -l pl.UTF-8
187 Wiązania C++ do libcaca - biblioteki statyczne.
189 %package -n dotnet-caca-sharp
190 Summary: C# bindings for libcaca
191 Summary(pl.UTF-8): Wiązania C# do libcaca
193 Requires: %{name} = %{version}-%{release}
196 %description -n dotnet-caca-sharp
197 C# bindings for libcaca.
199 %description -n dotnet-caca-sharp -l pl.UTF-8
200 Wiązania C# do libcaca.
202 %package -n java-caca
203 Summary: Java bindings for libcaca
204 Summary(pl.UTF-8): Wiązania Javy do libcaca
205 Group: Libraries/Java
206 Requires: %{name} = %{version}-%{release}
209 %description -n java-caca
210 Java bindings for libcaca.
212 %description -n java-caca -l pl.UTF-8
213 Wiązania Javy do libcaca.
215 %package -n python-caca
216 Summary: Python bindings for libcaca
217 Summary(pl.UTF-8): Wiązania Pythona do libcaca
218 Group: Development/Languages/Python
219 Requires: %{name} = %{version}-%{release}
221 Requires: python-modules
223 %description -n python-caca
224 Python bindings for libcaca.
226 %description -n python-caca -l pl.UTF-8
227 Wiązania Pythona do libcaca.
229 %package -n ruby-caca
230 Summary: Ruby bindings for libcaca
231 Summary(pl.UTF-8): Wiązania języka Ruby do libcaca
232 Group: Development/Languages
233 Requires: %{name} = %{version}-%{release}
234 %{?ruby_ver_requires_eq}
236 %description -n ruby-caca
237 Ruby bindings for libcaca.
239 %description -n ruby-caca -l pl.UTF-8
240 Wiązania języka Ruby do libcaca.
243 %setup -q -n %{name}-%{version}.%{subver}
255 # NOTE: ncurses driver builds, but there's no color when linked against
256 # ABI 6. While caca defaults to ncurses this must be disabled until fixed.
259 --enable-csharp%{!?with_dotnet:=no} \
262 --enable-java%{!?with_java:=no} \
268 # ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
274 rm -rf $RPM_BUILD_ROOT
277 DESTDIR=$RPM_BUILD_ROOT \
280 # replace symlink by groff include
281 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
282 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
285 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
286 %{__rm} $RPM_BUILD_ROOT%{ruby_sitearchdir}/*.la
288 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca-java.la
290 # man3 pages have too common base names to be included
291 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
292 # packaged as %doc in -devel
293 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/lib{caca,cucul}-dev
295 cd $RPM_BUILD_ROOT%{_libdir}
296 for i in libcaca.so.*.*.* libcaca++.so.*.*.*; do
297 ln -sf $i $(echo $i |sed 's/caca/cucul/')
299 ln -sf libcaca.a $RPM_BUILD_ROOT%{_libdir}/libcucul.a
300 ln -sf libcaca.la $RPM_BUILD_ROOT%{_libdir}/libcucul.la
301 ln -sf libcaca.so $RPM_BUILD_ROOT%{_libdir}/libcucul.so
302 ln -sf libcaca.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul.so.0
303 ln -sf libcaca++.a $RPM_BUILD_ROOT%{_libdir}/libcucul++.a
304 ln -sf libcaca++.la $RPM_BUILD_ROOT%{_libdir}/libcucul++.la
305 ln -sf libcaca++.so $RPM_BUILD_ROOT%{_libdir}/libcucul++.so
306 ln -sf libcaca++.so.0 $RPM_BUILD_ROOT%{_libdir}/libcucul++.so.0
307 ln -sf caca++.h $RPM_BUILD_ROOT%{_includedir}/cucul++.h
308 ln -sf caca_types.h $RPM_BUILD_ROOT%{_includedir}/cucul_types.h
313 rm -rf $RPM_BUILD_ROOT
315 %post -p /sbin/ldconfig
316 %postun -p /sbin/ldconfig
318 %post c++ -p /sbin/ldconfig
319 %postun c++ -p /sbin/ldconfig
321 %post -n java-caca -p /sbin/ldconfig
322 %postun -n java-caca -p /sbin/ldconfig
325 %defattr(644,root,root,755)
326 %doc AUTHORS COPYING ChangeLog NEWS NOTES README THANKS
327 %attr(755,root,root) %{_bindir}/cacaclock
328 %attr(755,root,root) %{_bindir}/cacademo
329 %attr(755,root,root) %{_bindir}/cacafire
330 %attr(755,root,root) %{_bindir}/cacaplay
331 %attr(755,root,root) %{_bindir}/cacaserver
332 %attr(755,root,root) %{_libdir}/libcaca.so.*.*.*
333 %attr(755,root,root) %ghost %{_libdir}/libcaca.so.0
334 %attr(755,root,root) %{_libdir}/libcucul.so.*.*.*
335 %attr(755,root,root) %ghost %{_libdir}/libcucul.so.0
338 %{_mandir}/man1/cacademo.1*
339 %{_mandir}/man1/cacafire.1*
340 %{_mandir}/man1/cacaplay.1*
341 %{_mandir}/man1/cacaserver.1*
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
352 %defattr(644,root,root,755)
353 %attr(755,root,root) %{_bindir}/cacaview
354 %attr(755,root,root) %{_bindir}/img2txt
355 %{_mandir}/man1/cacaview.1*
356 %{_mandir}/man1/img2txt.1*
359 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_bindir}/caca-config
362 %attr(755,root,root) %{_libdir}/libcaca.so
363 %attr(755,root,root) %{_libdir}/libcucul.so
364 %{_libdir}/libcaca.la
365 %{_libdir}/libcucul.la
366 %{_includedir}/caca.h
367 %{_includedir}/caca0.h
368 %{_includedir}/caca_conio.h
369 %{_includedir}/caca_types.h
370 %{_includedir}/cucul.h
371 %{_includedir}/cucul_types.h
372 %{_pkgconfigdir}/caca.pc
373 %{_pkgconfigdir}/cucul.pc
374 %{_mandir}/man1/caca-config.1*
375 # man3 pages have too common base names to be included
378 %defattr(644,root,root,755)
380 %{_libdir}/libcucul.a
383 %defattr(644,root,root,755)
384 %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
385 %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
386 %attr(755,root,root) %{_libdir}/libcucul++.so.*.*.*
387 %attr(755,root,root) %ghost %{_libdir}/libcucul++.so.0
390 %defattr(644,root,root,755)
391 %attr(755,root,root) %{_libdir}/libcaca++.so
392 %attr(755,root,root) %{_libdir}/libcucul++.so
393 %{_libdir}/libcaca++.la
394 %{_libdir}/libcucul++.la
395 %{_includedir}/caca++.h
396 %{_includedir}/cucul++.h
397 %{_pkgconfigdir}/caca++.pc
398 %{_pkgconfigdir}/cucul++.pc
401 %defattr(644,root,root,755)
402 %{_libdir}/libcaca++.a
403 %{_libdir}/libcucul++.a
406 %files -n dotnet-caca-sharp
407 %defattr(644,root,root,755)
408 %{_prefix}/lib/mono/caca-sharp-0.0
409 %{_prefix}/lib/mono/gac/caca-sharp
410 %{_javadir}/libjava.jar
415 %defattr(644,root,root,755)
416 %attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
417 %attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
418 %attr(755,root,root) %{_libdir}/libcaca-java.so
421 %files -n python-caca
422 %defattr(644,root,root,755)
423 %dir %{py_sitescriptdir}/caca
424 %{py_sitescriptdir}/caca/*.py[co]
427 %defattr(644,root,root,755)
428 %{ruby_sitelibdir}/caca.rb
429 %attr(755,root,root) %{ruby_sitearchdir}/caca.so