]> git.pld-linux.org Git - packages/libcaca.git/blob - libcaca.spec
- added javah patch: replace javah (removed from JDK 10+) by javac -h (requires JDK 8+)
[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 Patch4:         %{name}-javah.patch
34 URL:            http://caca.zoy.org/wiki/libcaca
35 BuildRequires:  OpenGL-devel
36 BuildRequires:  autoconf >= 2.50
37 BuildRequires:  automake
38 BuildRequires:  doxygen
39 BuildRequires:  freeglut-devel >= 2.0.0
40 # not used
41 #BuildRequires: ftgl-devel >= 2.1.3
42 BuildRequires:  imlib2-devel
43 BuildRequires:  libstdc++-devel
44 BuildRequires:  libtool >= 2:1.5
45 %{?with_ncurses:BuildRequires:  ncurses-devel >= 5}
46 BuildRequires:  pkgconfig
47 BuildRequires:  rpm-build >= 4.6
48 BuildRequires:  rpmbuild(macros) >= 1.533
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 >= 1.8
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 %patch4 -p1
281
282 %build
283 %{__libtoolize}
284 %{__aclocal}
285 %{__autoconf}
286 %{__autoheader}
287 %{__automake}
288 # NOTE: as of libcaca 0.99beta19 / doxygen 1.8.7 pdflatex fails - use
289 # KPSEWHICH hack to disable PDF documentation.
290 %configure \
291         %{?with_dotnet:CSC=/usr/bin/dmcs} \
292         KPSEWHICH=/nonexisting \
293         --disable-cocoa \
294         --enable-csharp%{!?with_dotnet:=no} \
295         --enable-cxx \
296         --enable-gl \
297         --enable-java%{!?with_java:=no} \
298         --enable-ncurses%{!?with_ncurses:=no} \
299         --enable-plugins \
300         --enable-slang%{!?with_slang:=no} \
301         --enable-x11
302
303 # --disable-silent-rules doesn't work due to AM_DEFAULT_VERBOSITY=0; use V=1 instead
304 # ObjC file not used, use plain CC to link library to avoid C++/ObjC deps
305 %{__make} %{?with_java:-j1} \
306         CLASSPATH=$(pwd)/java \
307         OBJC="%{__cc}" \
308         V=1 \
309         jnidir=%{_libdir}
310
311 %install
312 rm -rf $RPM_BUILD_ROOT
313
314 %{__make} install \
315         DESTDIR=$RPM_BUILD_ROOT \
316         jnidir=%{_libdir}
317
318 # replace symlink by groff include
319 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
320 echo '.so cacafire.1' > $RPM_BUILD_ROOT%{_mandir}/man1/cacademo.1
321
322 # loadable modules
323 %{__rm} $RPM_BUILD_ROOT%{_libdir}/caca/*.{a,la}
324 %{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.la
325 # obsoleted by pkg-config
326 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcaca*.la
327 # man3 pages have too common base names to be included
328 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/*.3caca
329 # packaged as %doc in -devel
330 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libcaca-dev
331
332 %py_postclean
333
334 %clean
335 rm -rf $RPM_BUILD_ROOT
336
337 %post   -p /sbin/ldconfig
338 %postun -p /sbin/ldconfig
339
340 %post   c++ -p /sbin/ldconfig
341 %postun c++ -p /sbin/ldconfig
342
343 %post   -n java-caca -p /sbin/ldconfig
344 %postun -n java-caca -p /sbin/ldconfig
345
346 %files
347 %defattr(644,root,root,755)
348 %doc AUTHORS COPYING NEWS NOTES README THANKS
349 %attr(755,root,root) %{_bindir}/cacaclock
350 %attr(755,root,root) %{_bindir}/cacademo
351 %attr(755,root,root) %{_bindir}/cacafire
352 %attr(755,root,root) %{_bindir}/cacaplay
353 %attr(755,root,root) %{_bindir}/cacaserver
354 %attr(755,root,root) %{_libdir}/libcaca.so.*.*.*
355 %attr(755,root,root) %ghost %{_libdir}/libcaca.so.0
356 %dir %{_libdir}/caca
357 %{_datadir}/%{name}
358 %{_mandir}/man1/cacademo.1*
359 %{_mandir}/man1/cacafire.1*
360 %{_mandir}/man1/cacaplay.1*
361 %{_mandir}/man1/cacaserver.1*
362
363 %files plugin-GL
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{_libdir}/caca/libgl_plugin.so*
366
367 %files plugin-X11
368 %defattr(644,root,root,755)
369 %attr(755,root,root) %{_libdir}/caca/libx11_plugin.so*
370
371 %files img
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %{_bindir}/cacaview
374 %attr(755,root,root) %{_bindir}/img2txt
375 %{_mandir}/man1/cacaview.1*
376 %{_mandir}/man1/img2txt.1*
377
378 %files devel
379 %defattr(644,root,root,755)
380 %attr(755,root,root) %{_bindir}/caca-config
381 %attr(755,root,root) %{_libdir}/libcaca.so
382 %{_includedir}/caca.h
383 %{_includedir}/caca0.h
384 %{_includedir}/caca_conio.h
385 %{_includedir}/caca_types.h
386 %{_pkgconfigdir}/caca.pc
387 %{_mandir}/man1/caca-config.1*
388 # man3 pages have too common base names to be included
389
390 %files static
391 %defattr(644,root,root,755)
392 %{_libdir}/libcaca.a
393
394 %files c++
395 %defattr(644,root,root,755)
396 %attr(755,root,root) %{_libdir}/libcaca++.so.*.*.*
397 %attr(755,root,root) %ghost %{_libdir}/libcaca++.so.0
398
399 %files c++-devel
400 %defattr(644,root,root,755)
401 %attr(755,root,root) %{_libdir}/libcaca++.so
402 %{_includedir}/caca++.h
403 %{_pkgconfigdir}/caca++.pc
404
405 %files c++-static
406 %defattr(644,root,root,755)
407 %{_libdir}/libcaca++.a
408
409 %files apidocs
410 %defattr(644,root,root,755)
411 %doc doc/html/*
412
413 %if %{with dotnet}
414 %files -n dotnet-caca-sharp
415 %defattr(644,root,root,755)
416 %{_prefix}/lib/mono/caca-sharp-0.0
417 %{_prefix}/lib/mono/gac/caca-sharp
418 %endif
419
420 %if %{with java}
421 %files -n java-caca
422 %defattr(644,root,root,755)
423 %attr(755,root,root) %{_libdir}/libcaca-java.so.*.*.*
424 %attr(755,root,root) %ghost %{_libdir}/libcaca-java.so.0
425 %attr(755,root,root) %{_libdir}/libcaca-java.so
426 %{_javadir}/libjava.jar
427 %endif
428
429 %files -n python-caca
430 %defattr(644,root,root,755)
431 %dir %{py_sitescriptdir}/caca
432 %{py_sitescriptdir}/caca/*.py[co]
433
434 %files -n ruby-caca
435 %defattr(644,root,root,755)
436 %{ruby_vendorlibdir}/caca.rb
437 %attr(755,root,root) %{ruby_vendorarchdir}/caca.so
This page took 0.097883 seconds and 4 git commands to generate.