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