]> git.pld-linux.org Git - packages/libcaca.git/blob - libcaca.spec
- fix building with mono 4.x
[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     7
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         %{?with_dotnet:CSC=/usr/bin/dmcs} \
274         --enable-csharp%{!?with_dotnet:=no} \
275         --enable-cxx \
276         --enable-gl \
277         --enable-java%{!?with_java:=no} \
278         --disable-ncurses \
279         --enable-plugins \
280         --enable-slang \
281         --enable-x11
282
283 # --disable-silent-rules doesn't work due to AM_DEFAULT_VERBOSITY=0; use V=1 instead
284 # ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
285 %{__make} %{?with_java:-j1} \
286         CLASSPATH=$(pwd)/java \
287         OBJC="%{__cc}" \
288         V=1 \
289         jnidir=%{_libdir}
290
291 %install
292 rm -rf $RPM_BUILD_ROOT
293
294 %{__make} install \
295         DESTDIR=$RPM_BUILD_ROOT \
296         jnidir=%{_libdir}
297
298 # replace symlink by groff include
299 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
300 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
301
302 # loadable modules
303 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
304 %{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.la
305 %if %{with java}
306 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca-java.la
307 %endif
308 # man3 pages have too common base names to be included
309 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
310 # packaged as %doc in -devel
311 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libcaca-dev
312
313 %py_postclean
314
315 %clean
316 rm -rf $RPM_BUILD_ROOT
317
318 %post   -p /sbin/ldconfig
319 %postun -p /sbin/ldconfig
320
321 %post   c++ -p /sbin/ldconfig
322 %postun c++ -p /sbin/ldconfig
323
324 %post   -n java-caca -p /sbin/ldconfig
325 %postun -n java-caca -p /sbin/ldconfig
326
327 %files
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 %dir %{_libdir}/caca
338 %{_datadir}/%{name}
339 %{_mandir}/man1/cacademo.1*
340 %{_mandir}/man1/cacafire.1*
341 %{_mandir}/man1/cacaplay.1*
342 %{_mandir}/man1/cacaserver.1*
343
344 %files plugin-GL
345 %defattr(644,root,root,755)
346 %attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
347
348 %files plugin-X11
349 %defattr(644,root,root,755)
350 %attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
351
352 %files img
353 %defattr(644,root,root,755)
354 %attr(755,root,root) %{_bindir}/cacaview
355 %attr(755,root,root) %{_bindir}/img2txt
356 %{_mandir}/man1/cacaview.1*
357 %{_mandir}/man1/img2txt.1*
358
359 %files devel
360 %defattr(644,root,root,755)
361 %doc doc/html/*
362 %attr(755,root,root) %{_bindir}/caca-config
363 %attr(755,root,root) %{_libdir}/libcaca.so
364 %{_libdir}/libcaca.la
365 %{_includedir}/caca.h
366 %{_includedir}/caca0.h
367 %{_includedir}/caca_conio.h
368 %{_includedir}/caca_types.h
369 %{_pkgconfigdir}/caca.pc
370 %{_mandir}/man1/caca-config.1*
371 # man3 pages have too common base names to be included
372
373 %files static
374 %defattr(644,root,root,755)
375 %{_libdir}/libcaca.a
376
377 %files c++
378 %defattr(644,root,root,755)
379 %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
381
382 %files c++-devel
383 %defattr(644,root,root,755)
384 %attr(755,root,root) %{_libdir}/libcaca++.so
385 %{_libdir}/libcaca++.la
386 %{_includedir}/caca++.h
387 %{_pkgconfigdir}/caca++.pc
388
389 %files c++-static
390 %defattr(644,root,root,755)
391 %{_libdir}/libcaca++.a
392
393 %if %{with dotnet}
394 %files -n dotnet-caca-sharp
395 %defattr(644,root,root,755)
396 %{_prefix}/lib/mono/caca-sharp-0.0
397 %{_prefix}/lib/mono/gac/caca-sharp
398 %endif
399
400 %if %{with java}
401 %files -n java-caca
402 %defattr(644,root,root,755)
403 %attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
404 %attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
405 %attr(755,root,root) %{_libdir}/libcaca-java.so
406 %{_javadir}/libjava.jar
407 %endif
408
409 %files -n python-caca
410 %defattr(644,root,root,755)
411 %dir %{py_sitescriptdir}/caca
412 %{py_sitescriptdir}/caca/*.py[co]
413
414 %files -n ruby-caca
415 %defattr(644,root,root,755)
416 %{ruby_vendorlibdir}/caca.rb
417 %attr(755,root,root) %{ruby_vendorarchdir}/caca.so
This page took 0.690821 seconds and 4 git commands to generate.