]> git.pld-linux.org Git - packages/libcaca.git/blob - libcaca.spec
- updated to 0.99.beta20, fixes:
[packages/libcaca.git] / libcaca.spec
1 #
2 # Conditional build:
3 %bcond_without  dotnet          # C#/Mono binding
4 %bcond_without  java            # Java binding
5 %bcond_without  ruby            # Ruby binding
6 %bcond_without  python          # Python binding
7 %bcond_without  ncurses         # ncurses driver
8 %bcond_without  slang           # slang driver
9
10 %ifnarch %{ix86} %{x8664} alpha %{arm} hppa ia64 mips ppc s390 s390x sparc sparcv9
11 %undefine       with_dotnet
12 %endif
13 %ifarch i386
14 %undefine       with_dotnet
15 %endif
16
17 %define         rel     1
18 %define subver  beta20
19 Summary:        Graphics library that outputs text instead of pixels
20 Summary(pl.UTF-8):      Biblioteka graficzna wyświetlająca tekst zamiast pikseli
21 Name:           libcaca
22 Version:        0.99
23 Release:        0.%{subver}.%{rel}
24 License:        WTFPL v2
25 Group:          Libraries
26 #Source0Download: https://github.com/cacalabs/libcaca/releases
27 Source0:        https://github.com/cacalabs/libcaca/releases/download/v%{version}.%{subver}/%{name}-%{version}.%{subver}.tar.bz2
28 # Source0-md5:  019c036ef038e7b5727b46f07fda739b
29 Patch0:         %{name}-monodir.patch
30 Patch1:         ruby-vendordir.patch
31 Patch2:         %{name}-sh.patch
32 Patch3:         %{name}-plugins.patch
33 URL:            http://caca.zoy.org/wiki/libcaca
34 BuildRequires:  OpenGL-devel
35 BuildRequires:  autoconf >= 2.50
36 BuildRequires:  automake
37 BuildRequires:  doxygen
38 BuildRequires:  freeglut-devel >= 2.0.0
39 # not used
40 #BuildRequires: ftgl-devel >= 2.1.3
41 BuildRequires:  imlib2-devel
42 BuildRequires:  libstdc++-devel
43 BuildRequires:  libtool >= 2:1.5
44 %{?with_ncurses:BuildRequires:  ncurses-devel >= 5}
45 BuildRequires:  pkgconfig
46 BuildRequires:  rpm-build >= 4.6
47 BuildRequires:  rpmbuild(macros) >= 1.533
48 BuildRequires:  rpmbuild(monoautodeps)
49 BuildRequires:  sed >= 4.0
50 %{?with_slang:BuildRequires:    slang-devel >= 2.0.0}
51 #BuildRequires: texlive-fonts-jknappen
52 #BuildRequires: texlive-format-pdflatex
53 #BuildRequires: texlive-latex-ams
54 #BuildRequires: texlive-makeindex
55 BuildRequires:  xorg-lib-libX11-devel
56 BuildRequires:  zlib-devel
57 %if %{with dotnet}
58 BuildRequires:  mono-csharp
59 %endif
60 %if %{with java}
61 BuildRequires:  jdk
62 BuildRequires:  rpm-javaprov
63 # org_zoy_caca_Attribute.c:14:18: fatal error: caca.h: No such file or directory
64 BuildRequires:  libcaca-devel
65 %endif
66 %if %{with python}
67 BuildRequires:  python-devel >= 2.2
68 BuildRequires:  rpm-pythonprov
69 %endif
70 %if %{with ruby}
71 BuildRequires:  rpm-rubyprov
72 BuildRequires:  ruby-devel
73 %endif
74 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
76 %define         specflags       -fomit-frame-pointer
77
78 %description
79 The libcaca library is a graphics library that outputs text instead of
80 pixels, so that it can work on older video cards or text terminals. It
81 is not unlike the famous AAlib library.
82
83 The differences with AAlib are the following:
84 - 16 available colours for character output (256 colour pairs)
85 - dithering of colour images
86 - basic sprite primitives
87
88 But libcaca also has the following limitations:
89 - no support for brightness, contrast, gamma
90 - unefficient character-choosing algorithms
91 - no raw keyboard support
92
93 %description -l pl.UTF-8
94 Biblioteka libcaca to biblioteka graficzna wyświetlająca tekst zamiast
95 pikseli, dzięki czemu może działać na starszych kartach graficznych
96 oraz terminalach tekstowych. Pod tym względem jest podobna do słynnej
97 biblioteki AAlib.
98
99 Różnice w stosunku do AAlib są następujące:
100 - 16 dostępnych kolorów dla znaków (256 par kolorów)
101 - dithering kolorowych obrazów
102 - proste kształty duszków (sprites)
103
104 Ale libcaca ma także następujące ograniczenia:
105 - brak obsługi jasności, kontrastu, korekcji gamma
106 - mało wydajne algorytmy wyboru znaków
107 - brak obsługi klawiatury w trybie surowym
108
109 %package plugin-GL
110 Summary:        GL plugin for libcaca library
111 Summary(pl.UTF-8):      Wtyczka GL dla biblioteki libcaca
112 Group:          Libraries
113 Requires:       %{name} = %{version}-%{release}
114 Requires:       freeglut >= 2.0.0
115
116 %description plugin-GL
117 GL plugin for libcaca library.
118
119 %description plugin-GL -l pl.UTF-8
120 Wtyczka GL dla biblioteki libcaca.
121
122 %package plugin-X11
123 Summary:        X11 plugin for libcaca library
124 Summary(pl.UTF-8):      Wtyczka X11 dla biblioteki libcaca
125 Group:          Libraries
126 Requires:       %{name} = %{version}-%{release}
127
128 %description plugin-X11
129 X11 plugin for libcaca library.
130
131 %description plugin-X11 -l pl.UTF-8
132 Wtyczka X11 dla biblioteki libcaca.
133
134 %package img
135 Summary:        libcaca-based image viewer and converter
136 Summary(pl.UTF-8):      Przeglądarka i konwerter obrazków oparte na libcaca
137 Group:          Applications/Graphics
138
139 %description img
140 libcaca-based image viewer and converter. They use imlib2 to load
141 images.
142
143 %description img -l pl.UTF-8
144 Przeglądarka i konwerter obrazków oparte na libcaca. Do wczytywania
145 obrazków używają biblioteki imlib2.
146
147 %package devel
148 Summary:        Header files for libcaca library
149 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki libcaca
150 Group:          Development/Libraries
151 Requires:       %{name} = %{version}-%{release}
152 Requires:       slang-devel >= 2.0.0
153
154 %description devel
155 Header files for libcaca library.
156
157 %description devel -l pl.UTF-8
158 Pliki nagłówkowe biblioteki libcaca.
159
160 %package static
161 Summary:        Static libcaca library
162 Summary(pl.UTF-8):      Statyczna biblioteka libcaca
163 Group:          Development/Libraries
164 Requires:       %{name}-devel = %{version}-%{release}
165
166 %description static
167 Static libcaca library.
168
169 %description static -l pl.UTF-8
170 Statyczna biblioteka libcaca.
171
172 %package c++
173 Summary:        C++ bindings for libcaca
174 Summary(pl.UTF-8):      Wiązania C++ do libcaca
175 Group:          Libraries
176 Requires:       %{name} = %{version}-%{release}
177
178 %description c++
179 C++ bindings for libcaca.
180
181 %description c++ -l pl.UTF-8
182 Wiązania C++ do libcaca.
183
184 %package c++-devel
185 Summary:        C++ bindings for libcaca - header files
186 Summary(pl.UTF-8):      Wiązania C++ do libcaca - pliki nagłówkowe
187 Group:          Development/Libraries
188 Requires:       %{name}-c++ = %{version}-%{release}
189 Requires:       %{name}-devel = %{version}-%{release}
190 Requires:       libstdc++-devel
191
192 %description c++-devel
193 C++ bindings for libcaca - header files.
194
195 %description c++-devel -l pl.UTF-8
196 Wiązania C++ do libcaca - pliki nagłówkowe.
197
198 %package c++-static
199 Summary:        C++ bindings for libcaca - static libraries
200 Summary(pl.UTF-8):      Wiązania C++ do libcaca - biblioteki statyczne
201 Group:          Development/Libraries
202 Requires:       %{name}-c++-devel = %{version}-%{release}
203
204 %description c++-static
205 C++ bindings for libcaca - static libraries.
206
207 %description c++-static -l pl.UTF-8
208 Wiązania C++ do libcaca - biblioteki statyczne.
209
210 %package apidocs
211 Summary:        API documentation for libcaca library
212 Summary(pl.UTF-8):      Dokumentacja API biblioteki libcaca
213 Group:          Documentation
214 BuildArch:      noarch
215
216 %description apidocs
217 API documentation for libcaca library.
218
219 %description apidocs -l pl.UTF-8
220 Dokumentacja API biblioteki libcaca.
221
222 %package -n dotnet-caca-sharp
223 Summary:        C# bindings for libcaca
224 Summary(pl.UTF-8):      Wiązania C# do libcaca
225 Group:          Libraries
226 Requires:       %{name} = %{version}-%{release}
227 Requires:       mono
228
229 %description -n dotnet-caca-sharp
230 C# bindings for libcaca.
231
232 %description -n dotnet-caca-sharp -l pl.UTF-8
233 Wiązania C# do libcaca.
234
235 %package -n java-caca
236 Summary:        Java bindings for libcaca
237 Summary(pl.UTF-8):      Wiązania Javy do libcaca
238 Group:          Libraries/Java
239 Requires:       %{name} = %{version}-%{release}
240 Requires:       jre
241
242 %description -n java-caca
243 Java bindings for libcaca.
244
245 %description -n java-caca -l pl.UTF-8
246 Wiązania Javy do libcaca.
247
248 %package -n python-caca
249 Summary:        Python bindings for libcaca
250 Summary(pl.UTF-8):      Wiązania Pythona do libcaca
251 Group:          Development/Languages/Python
252 Requires:       %{name} = %{version}-%{release}
253 # ctypes
254 Requires:       python-modules
255
256 %description -n python-caca
257 Python bindings for libcaca.
258
259 %description -n python-caca -l pl.UTF-8
260 Wiązania Pythona do libcaca.
261
262 %package -n ruby-caca
263 Summary:        Ruby bindings for libcaca
264 Summary(pl.UTF-8):      Wiązania języka Ruby do libcaca
265 Group:          Development/Languages
266 Requires:       %{name} = %{version}-%{release}
267
268 %description -n ruby-caca
269 Ruby bindings for libcaca.
270
271 %description -n ruby-caca -l pl.UTF-8
272 Wiązania języka Ruby do libcaca.
273
274 %prep
275 %setup -q -n %{name}-%{version}.%{subver}
276 %patch0 -p1
277 %patch1 -p1
278 %patch2 -p1
279 %patch3 -p1
280
281 %build
282 %{__libtoolize}
283 %{__aclocal}
284 %{__autoconf}
285 %{__autoheader}
286 %{__automake}
287 # NOTE: as of libcaca 0.99beta19 / doxygen 1.8.7 pdflatex fails - use
288 # KPSEWHICH hack to disable PDF documentation.
289 %configure \
290         %{?with_dotnet:CSC=/usr/bin/dmcs} \
291         KPSEWHICH=/nonexisting \
292         --disable-cocoa \
293         --enable-csharp%{!?with_dotnet:=no} \
294         --enable-cxx \
295         --enable-gl \
296         --enable-java%{!?with_java:=no} \
297         --enable-ncurses%{!?with_ncurses:=no} \
298         --enable-plugins \
299         --enable-slang%{!?with_slang:=no} \
300         --enable-x11
301
302 # --disable-silent-rules doesn't work due to AM_DEFAULT_VERBOSITY=0; use V=1 instead
303 # ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
304 %{__make} %{?with_java:-j1} \
305         CLASSPATH=$(pwd)/java \
306         OBJC="%{__cc}" \
307         V=1 \
308         jnidir=%{_libdir}
309
310 %install
311 rm -rf $RPM_BUILD_ROOT
312
313 %{__make} install \
314         DESTDIR=$RPM_BUILD_ROOT \
315         jnidir=%{_libdir}
316
317 # replace symlink by groff include
318 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
319 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
320
321 # loadable modules
322 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
323 %{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.la
324 # obsoleted by pkg-config
325 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca*.la
326 # man3 pages have too common base names to be included
327 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
328 # packaged as %doc in -devel
329 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libcaca-dev
330
331 %py_postclean
332
333 %clean
334 rm -rf $RPM_BUILD_ROOT
335
336 %post   -p /sbin/ldconfig
337 %postun -p /sbin/ldconfig
338
339 %post   c++ -p /sbin/ldconfig
340 %postun c++ -p /sbin/ldconfig
341
342 %post   -n java-caca -p /sbin/ldconfig
343 %postun -n java-caca -p /sbin/ldconfig
344
345 %files
346 %defattr(644,root,root,755)
347 %doc AUTHORS COPYING NEWS NOTES README THANKS
348 %attr(755,root,root) %{_bindir}/cacaclock
349 %attr(755,root,root) %{_bindir}/cacademo
350 %attr(755,root,root) %{_bindir}/cacafire
351 %attr(755,root,root) %{_bindir}/cacaplay
352 %attr(755,root,root) %{_bindir}/cacaserver
353 %attr(755,root,root) %{_libdir}/libcaca.so.*.*.*
354 %attr(755,root,root) %ghost %{_libdir}/libcaca.so.0
355 %dir %{_libdir}/caca
356 %{_datadir}/%{name}
357 %{_mandir}/man1/cacademo.1*
358 %{_mandir}/man1/cacafire.1*
359 %{_mandir}/man1/cacaplay.1*
360 %{_mandir}/man1/cacaserver.1*
361
362 %files plugin-GL
363 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
365
366 %files plugin-X11
367 %defattr(644,root,root,755)
368 %attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
369
370 %files img
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_bindir}/cacaview
373 %attr(755,root,root) %{_bindir}/img2txt
374 %{_mandir}/man1/cacaview.1*
375 %{_mandir}/man1/img2txt.1*
376
377 %files devel
378 %defattr(644,root,root,755)
379 %attr(755,root,root) %{_bindir}/caca-config
380 %attr(755,root,root) %{_libdir}/libcaca.so
381 %{_includedir}/caca.h
382 %{_includedir}/caca0.h
383 %{_includedir}/caca_conio.h
384 %{_includedir}/caca_types.h
385 %{_pkgconfigdir}/caca.pc
386 %{_mandir}/man1/caca-config.1*
387 # man3 pages have too common base names to be included
388
389 %files static
390 %defattr(644,root,root,755)
391 %{_libdir}/libcaca.a
392
393 %files c++
394 %defattr(644,root,root,755)
395 %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
397
398 %files c++-devel
399 %defattr(644,root,root,755)
400 %attr(755,root,root) %{_libdir}/libcaca++.so
401 %{_includedir}/caca++.h
402 %{_pkgconfigdir}/caca++.pc
403
404 %files c++-static
405 %defattr(644,root,root,755)
406 %{_libdir}/libcaca++.a
407
408 %files apidocs
409 %defattr(644,root,root,755)
410 %doc doc/html/*
411
412 %if %{with dotnet}
413 %files -n dotnet-caca-sharp
414 %defattr(644,root,root,755)
415 %{_prefix}/lib/mono/caca-sharp-0.0
416 %{_prefix}/lib/mono/gac/caca-sharp
417 %endif
418
419 %if %{with java}
420 %files -n java-caca
421 %defattr(644,root,root,755)
422 %attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
423 %attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
424 %attr(755,root,root) %{_libdir}/libcaca-java.so
425 %{_javadir}/libjava.jar
426 %endif
427
428 %files -n python-caca
429 %defattr(644,root,root,755)
430 %dir %{py_sitescriptdir}/caca
431 %{py_sitescriptdir}/caca/*.py[co]
432
433 %files -n ruby-caca
434 %defattr(644,root,root,755)
435 %{ruby_vendorlibdir}/caca.rb
436 %attr(755,root,root) %{ruby_vendorarchdir}/caca.so
This page took 0.082168 seconds and 4 git commands to generate.