]> git.pld-linux.org Git - packages/brltty.git/blame_incremental - brltty.spec
- release 5
[packages/brltty.git] / brltty.spec
... / ...
CommitLineData
1# TODO:
2# - what is that huge %post script?
3# - ocaml bcond is useless now:
4# Cannot find ocamlfind.
5# BrlAPI Caml bindings will be compiled but not installed.
6# - check java stuff
7# - create bcond to build with minimal deps (wo ncurses,gpm,at-spi*)
8#
9# warning: Installed (but unpackaged) file(s) found:
10# /usr/lib/ocaml/brlapi/META
11# /usr/lib/ocaml/brlapi/brlapi.cma
12# /usr/lib/ocaml/brlapi/brlapi.cmi
13# /usr/lib/ocaml/brlapi/brlapi.cmxa
14# /usr/lib/ocaml/brlapi/brlapi.mli
15# /usr/lib/ocaml/brlapi/libbrlapi_stubs.a
16# /usr/lib/ocaml/stublibs/dllbrlapi_stubs.so
17# /usr/lib/ocaml/stublibs/dllbrlapi_stubs.so.owner
18# /usr/share/man/man1/xbrlapi.1.gz
19#
20# Conditional build:
21%bcond_without apidocs # documentation generated with doxygen
22%bcond_with java # java bindings
23%bcond_with ocaml # ocaml bindings (NFY)
24%bcond_without python # python bindings
25%bcond_without tcl # tcl bindings
26%bcond_without x # build X11-based utilities
27#
28%include /usr/lib/rpm/macros.java
29Summary: Braille display driver for Linux/Unix
30Summary(pl.UTF-8): Sterownik do wyświetlaczy Braille'a
31Name: brltty
32Version: 3.10
33Release: 5
34Group: Daemons
35License: GPL
36Source0: http://mielke.cc/brltty/releases/%{name}-%{version}.tar.gz
37# Source0-md5: d52f332a29e00495d166e7f45403fa9d
38Patch0: %{name}-ac.patch
39URL: http://mielke.cc/brltty/
40BuildRequires: at-spi-devel
41BuildRequires: autoconf >= 2.62
42BuildRequires: automake
43BuildRequires: bison
44#BuildRequires: bluez-devel
45%{?with_apidocs:BuildRequires: doxygen}
46BuildRequires: gpm-devel
47%{?with_java:BuildRequires: jdk}
48BuildRequires: ncurses-devel
49%{?with_ocaml:BuildRequires: ocaml}
50BuildRequires: pkgconfig
51%{?with_python:BuildRequires: python-Pyrex}
52%{?with_java:BuildRequires: rpm-javaprov}
53%{?with_python:BuildRequires: rpm-pythonprov}
54%{?with_tcl:BuildRequires: tcl}
55%{?with_x:BuildRequires: xorg-lib-libXaw-devel}
56%{?with_x:BuildRequires: xorg-lib-libXtst-devel}
57# libbrlttyblb
58#BR: libbraile-devel (-lllibbraile <braille.h>)
59# libbrlttysfl
60BuildRequires: flite-devel
61# libbrlttysmp
62#BR: Mikropuhe-devel (-lmikropuhe <mpwrfile.h>)
63# libbrlttyssd
64#BuildRequires: speech-dispatcher-devel
65# libbrlttyssw
66#BR: Swift-devel (-lswift <swift.h>)
67# libbrlttysth
68#BR: Theta-devel (-ltheta <theta.h>)
69# libbrlttysvv
70#BR: ViaVoice-devel (-lviavoice <eci.h>)
71BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72
73%description
74BRLTTY is a background process (daemon) which provides access to the
75Linux/Unix console (when in text mode) for a blind person using a
76refreshable Braille display. It drives the Braille display, and
77provides complete screen review functionality. Some speech capability
78has also been incorporated.
79
80%description -l pl.UTF-8
81BRLTTY jest demonem, który udostępnia dostęp do linuksowej konsoli (w
82trybie tekstowym) dla niewidomych używających wyświetlaczy Braille'a z
83odświeżaniem (refreshable Braille display). BRLTTY steruje
84wyświetlaczem Braille'a i dostarcza funkcjonalność całkowitego
85przeglądu ekranu. Do tego pakietu została włączona możliwość syntezy
86mowy.
87
88%package -n brlapi
89Summary: Application Programming Interface for BRLTTY
90Summary(pl.UTF-8): API do BRLTTY
91Group: Applications/System
92
93%description -n brlapi
94This package provides the run-time support for the Application
95Programming Interface to BRLTTY.
96
97Install this package if you have an application which directly
98accesses a refreshable Braille display.
99
100%description -n brlapi -l pl.UTF-8
101Ten pakiet zawiera środowisko uruchomieniowe dla programów
102korzystających z API BRLTTY.
103
104Zainstaluj ten pakiet jeśli masz aplikację, która bezpośrednio używa
105wyświetlacza Braille'a z odświeżaniem.
106
107%package -n brlapi-devel
108Summary: Headers and documentation for BrlAPI
109Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do BrlAPI
110Group: Development/Libraries
111Requires: brlapi = %{version}-%{release}
112
113%description -n brlapi-devel
114This package provides the header files, shared object linker
115reference, and reference documentation for BrlAPI (the Application
116Programming Interface to BRLTTY). It enables the implementation of
117applications which take direct advantage of a refreshable Braille
118display in order to present information in ways which are more
119appropriate for blind users and/or to provide user interfaces which
120are more specifically atuned to their needs.
121
122Install this package if you're developing or maintaining an
123application which directly accesses a refreshable Braille display.
124
125%description -n brlapi-devel -l pl.UTF-8
126Ten pakiet zawiera pliki nagłówkowe oraz dokumentację do BrlAPI (API
127do BRLTTY). BrlAPI pozwala implementować aplikacje, które bezpośrednio
128korzystają z wyświetlaczy Braille'a dostarczając interfejs użytkownika
129bardziej przystosowany dla osób niewidomych.
130
131Zainstaluj ten pakiet, jeśli tworzysz lub nadzorujesz aplikację
132korzystającą bezpośrednio z odświeżalnych wyświetlaczy Braille'a.
133
134%package -n brlapi-static
135Summary: Static BrlAPI library
136Summary(pl.UTF-8): Statyczna biblioteka BrlAPI
137Group: Development/Libraries
138Requires: brlapi-devel = %{version}-%{release}
139
140%description -n brlapi-static
141This is package with static BrlAPI library.
142
143%description -n brlapi-static -l pl.UTF-8
144Ten pakiet zawiera statyczną wersję biblioteki BrlAPI.
145
146%package -n brlapi-apidocs
147Summary: BrlAPI documentation
148Summary(pl.UTF-8): Documentacja BrlAPI
149Group: Documentation
150
151%description -n brlapi-apidocs
152Documentation for BrlAPI in HTML format generated from brltty
153sources by doxygen.
154
155%description -n brlapi-apidocs -l pl.UTF-8
156Dokumentacja BrlAPI w formacie HTML generowane ze
157źrodeł brltty przez doxygen.
158
159%package -n java-brlapi
160Summary: BrlAPI library for Java
161Summary(pl.UTF-8): Biblioteka BrlAPI dla Javy
162Group: Libraries
163Requires: brlapi = %{version}-%{release}
164
165%description -n java-brlapi
166BrlAPI library for Java.
167
168%description -n java-brlapi -l pl.UTF-8
169Biblioteka BrlAPI dla Javy.
170
171%package -n python-brlapi
172Summary: Python interface to BrlAPI
173Summary(pl.UTF-8): Pythonowy interfejs do BrlAPI
174Group: Libraries
175Requires: brlapi = %{version}-%{release}
176
177%description -n python-brlapi
178Python interface to BrlAPI.
179
180%description -n python-brlapi -l pl.UTF-8
181Pythonowy interfejs do BrlAPI.
182
183%package -n brlapi-tcl
184Summary: BrlAPI library for Tcl
185Summary(pl.UTF-8): Biblioteka BrlAPI dla Tcl
186Group: Libraries
187Requires: brlapi = %{version}-%{release}
188
189%description -n brlapi-tcl
190BrlAPI library for Tcl.
191
192%description -n brlapi-tcl -l pl.UTF-8
193Biblioteka BrlAPI dla Tcl.
194
195%prep
196%setup -q
197%patch0 -p1
198
199%build
200%{__aclocal}
201%{__autoconf}
202cp -f /usr/share/automake/config.sub acdir
203CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
204%configure \
205 --with-install-root="$RPM_BUILD_ROOT" \
206 --disable-tainted-components \
207 %{!?with_java:--disable-java-bindings} \
208 --enable-api
209%{__make}
210
211directory="doc"
212mkdir -p "$directory"
213for file in `find . \( -path "./$directory" -o -path ./Documents \) -prune -o \( -name 'README*' -o -name '*.txt' -o -name '*.html' -o -name '*.sgml' -o \( -path "./Bootdisks/*" -type f -perm +ugo=x \) \) -print`
214do
215 mkdir -p "$directory/${file%/*}"
216 cp -rp "$file" "$directory/$file"
217done
218
219%install
220rm -rf $RPM_BUILD_ROOT
221%{__make} -j1 install
222install Documents/brltty.conf $RPM_BUILD_ROOT%{_sysconfdir}
223
224%clean
225rm -rf $RPM_BUILD_ROOT
226
227%pre
228# The pre-install scriptlet.
229
230# If a configuration file already exists then rpm installs the new one as
231# <path>.rpmnew. If this is done then the .rpmnew file is overwritten if it
232# already exists.
233
234# There's no explicit way to tell if a configuration file has been installed
235# as itself or as a .rpmnew file. The way we'll figure it out, therefore, is by
236# erasing the .rpmnew file now so that we can see if it gets created later.
237rm -f "%{_sysconfdir}/brltty.conf.rpmnew"
238
239%post
240# The post-install scriptlet.
241
242# If BRLTTY's boot parameter has been specified then update the just installed
243# configuration file template to reflect the options supplied thereby.
244
245# First, we need to determine which file to update. If there's a .rpmnew file
246# then update it since a previous configuration file must already have existed.
247file="%{_sysconfdir}/brltty.conf"
248new="${file}.rpmnew"
249[ -f "${new}" ] && file="${new}"
250
251# Update the configuration file template via the Bootdisks/bp2cf script.
252# Include it right within this scriptlet so that it needn't be installed.
253# Imbed it within a subshell to ensure that it won't impact this scriptlet.
254(
255 # First, set bp2cf's command line arguments.
256 set -- -u -f "${file}"
257
258#!/bin/sh
259###############################################################################
260# BRLTTY - A background process providing access to the Linux console (when in
261# text mode) for a blind person using a refreshable Braille display.
262#
263# Copyright (C) 1995-2003 by The BRLTTY Team. All rights reserved.
264#
265# BRLTTY comes with ABSOLUTELY NO WARRANTY.
266#
267# This is free software, placed under the terms of the
268# GNU General Public License, as published by the Free Software
269# Foundation. Please see the file COPYING for details.
270#
271# Web Page: http://mielke.cc/brltty/
272#
273# This software is maintained by Dave Mielke <dave@mielke.cc>.
274###############################################################################
275
276# Convert the boot parameter to configuration file directives.
277# If /proc is mounted then use the brltty= boot parameter in /proc/cmdline.
278# If /proc is not mounted then use the brltty environment variable.
279# Invoke with -h for usage information.
280
281programName="${0##*/}"
282programMessage()
283{
284 echo 2>&1 "${programName}: ${1}"
285}
286syntaxError()
287{
288 programMessage "${1}"
289 exit 2
290}
291internalError()
292{
293 programMessage "${1}"
294 exit 3
295}
296
297configurationFile=""
298requestedAction=create
299deviceTranslation=none
300requestedParameter=""
301OPTIND=1
302while getopts ":f:cundop:h" option
303do
304 case "${option}" in
305 f) configurationFile="${OPTARG}";;
306 c) requestedAction=create;;
307 u) requestedAction=update;;
308 n) deviceTranslation=none;;
309 d) deviceTranslation=devfs;;
310 o) deviceTranslation=old;;
311 p) requestedParameter="${OPTARG}";;
312 h)
313 cat <<EOF
314Usage: ${programName} [option ...]
315-f file The configuration file to create/update.
316-c Create the configuration file (write to stdout if no -f).
317-u Update the configuration file (copying from stdin to stdout if no -f).
318-n Do not translate device paths.
319-d Do old-style to devfs device path translation.
320-o Do devfs to old-style device path translation.
321-p [driver][,[device][,[table]]]
322 Explicitly specify the boot parameter.
323-h Display this usage summary.
324EOF
325 exit 0
326 ;;
327 \?) syntaxError "unknown option: -${OPTARG}";;
328 :) syntaxError "missing value: -${OPTARG}";;
329 *) internalError "unimplemented option: -${option}";;
330 esac
331done
332shift "`expr $OPTIND - 1`"
333[ "${#}" -eq 0 ] || syntaxError "too many parameters."
334
335case "${requestedAction}" in
336 create)
337 putConfigurationLine()
338 {
339 echo "${1}" || exit 4
340 }
341 startConfigurationFile()
342 {
343 [ -n "${configurationFile}" ] && exec >"${configurationFile}"
344 putConfigurationLine "`makeHeaderLine Created`"
345 putConfigurationLine "`makeParameterLine`"
346 putConfigurationLine ""
347 }
348 putConfigurationDirective()
349 {
350 putConfigurationLine "${1} ${2}"
351 }
352 finalizeConfigurationFile()
353 {
354 :
355 }
356 ;;
357 update)
358 putSedCommand()
359 {
360 sedScript="${sedScript}
361${1}"
362 }
363 startConfigurationFile()
364 {
365 if [ -n "${configurationFile}" ]; then
366 [ -e "${configurationFile}" ] || syntaxError "file not found: ${configurationFile}"
367 [ -f "${configurationFile}" ] || syntaxError "not a file: ${configurationFile}"
368 [ -r "${configurationFile}" ] || syntaxError "file not readable: ${configurationFile}"
369 [ -w "${configurationFile}" ] || syntaxError "file not writable: ${configurationFile}"
370 outputFile="${configurationFile}.new"
371 exec <"${configurationFile}" >"${outputFile}"
372 fi
373 sedScript=""
374 putSedCommand "1i\\
375`makeHeaderLine Updated`\\
376`makeParameterLine`\\
377"
378 }
379 putConfigurationDirective()
380 {
381 value="`echo "${2}" | sed -e 's%\\([/\\]\\)%\\\\\\1%g'`"
382 putSedCommand "/^ *#\\(${1} .*\\)/s//\\1/"
383 putSedCommand "/^ *\\(${1}\\) .*/s//\\1 ${value}/"
384 }
385 finalizeConfigurationFile()
386 {
387 sed -e "${sedScript}"
388 [ -n "${outputFile}" ] && mv -f "${outputFile}" "${configurationFile}"
389 }
390 ;;
391 *) internalError "unimplemented action: ${requestedAction}";;
392esac
393
394translateDevice_none()
395{
396 :
397}
398translateDevice_devfs()
399{
400 minor="${device#ttyS}"
401 if [ "${minor}" != "${device}" ]; then
402 device="tts/${minor}"
403 return 0
404 fi
405 minor="${device#lp}"
406 if [ "${minor}" != "${device}" ]; then
407 device="printers/${minor}"
408 return 0
409 fi
410 programMessage "unsupported old-style device: ${device}"
411}
412translateDevice_old()
413{
414 major="${device%%/*}"
415 if [ "${major}" != "${device}" ]; then
416 minor="${device#*/}"
417 case "${major}" in
418 tts) devfs="ttyS${minor}";;
419 printers) devfs="lp${minor}";;
420 esac
421 fi
422 if [ -n "${devfs}" ]; then
423 device="${devfs}"
424 else
425 programMessage "unsupported devfs device: ${device}"
426 fi
427}
428
429makeHeaderLine()
430{
431 echo "# ${1} by brltty-bp2cf`date +' on %Y-%m-%d at %H:%M:%S %Z (UTC%z)'`."
432}
433makeParameterLine()
434{
435 echo "# Boot Parameter:${bootParameter}"
436}
437putConfigurationFile()
438{
439 startConfigurationFile
440 [ -n "${brailleDriver}" ] && putConfigurationDirective "braille-driver" "${brailleDriver}"
441 [ -n "${brailleDevice}" ] && {
442 device="`echo "${brailleDevice}" | sed -e 's%//*%/%g' -e 's%^/dev/%%'`"
443 if [ "${device#/}" = "${device}" ]; then
444 translateDevice_${deviceTranslation}
445 fi
446 putConfigurationDirective "braille-device" "${device}"
447 }
448 [ -n "${textTable}" ] && putConfigurationDirective "text-table" "${textTable}"
449 finalizeConfigurationFile
450}
451parseBootParameter()
452{
453 bootParameter="${bootParameter} ${1}"
454 number=1
455 while [ "${number}" -le 3 ]; do
456 cut="cut -d, -f${number}"
457 [ "${number}" -gt 1 ] && cut="${cut} -s"
458 operand="`echo ${1} | ${cut}`"
459 if [ -n "${operand}" ]; then
460 case "${number}" in
461 1) brailleDriver="${operand}";;
462 2) brailleDevice="${operand}";;
463 3) textTable="${operand}";;
464 esac
465 fi
466 number="`expr ${number} + 1`"
467 done
468}
469putBootParameter()
470{
471 parseBootParameter "${1}"
472 putConfigurationFile
473}
474parseBootCommand()
475{
476 found=false
477 while [ "${#}" -gt 0 ]; do
478 case "${1}" in
479 "brltty="*)
480 found=true
481 parseBootParameter "${1#*=}"
482 ;;
483 esac
484 shift
485 done
486 "${found}" && putConfigurationFile
487}
488
489brailleDriver=""
490brailleDevice=""
491textTable=""
492bootCommandFile="/proc/cmdline"
493if [ -n "${requestedParameter}" ]; then
494 putBootParameter "${requestedParameter}"
495elif [ -f "${bootCommandFile}" ]; then
496 parseBootCommand `cat "${bootCommandFile}"`
497elif [ -n "${brltty}" ]; then
498 putBootParameter "${brltty}"
499fi
500exit 0
501)
502
503%post -n brlapi -p /sbin/ldconfig
504%postun -n brlapi -p /sbin/ldconfig
505
506%files
507%defattr(644,root,root,755)
508%doc Documents/{Manual-BRLTTY/English/BRLTTY*,ChangeLog,HISTORY,TODO}
509%doc doc/{Bindings,Bootdisks,BrailleDrivers,BrailleTables,ContractionTables,Patches,README,SpeechDrivers}
510%attr(755,root,root) %{_bindir}/brltty
511%attr(755,root,root) %{_bindir}/brltty-install
512%attr(755,root,root) %{_bindir}/brltty-config
513%attr(755,root,root) %{_bindir}/vstp
514%{?with_x:%attr(755,root,root) %{_bindir}/xbrlapi}
515%dir %{_libdir}/brltty
516%attr(755,root,root) %{_libdir}/brltty/libbrlttybal.so
517%attr(755,root,root) %{_libdir}/brltty/libbrlttybat.so
518%attr(755,root,root) %{_libdir}/brltty/libbrlttybba.so
519%attr(755,root,root) %{_libdir}/brltty/libbrlttybbd.so
520%attr(755,root,root) %{_libdir}/brltty/libbrlttybbl.so
521%attr(755,root,root) %{_libdir}/brltty/libbrlttybbm.so
522%attr(755,root,root) %{_libdir}/brltty/libbrlttybbn.so
523%attr(755,root,root) %{_libdir}/brltty/libbrlttybbs.so
524%attr(755,root,root) %{_libdir}/brltty/libbrlttybcb.so
525%attr(755,root,root) %{_libdir}/brltty/libbrlttybec.so
526%attr(755,root,root) %{_libdir}/brltty/libbrlttybeu.so
527%attr(755,root,root) %{_libdir}/brltty/libbrlttybfs.so
528%attr(755,root,root) %{_libdir}/brltty/libbrlttybht.so
529%attr(755,root,root) %{_libdir}/brltty/libbrlttybil.so
530%attr(755,root,root) %{_libdir}/brltty/libbrlttyblt.so
531%attr(755,root,root) %{_libdir}/brltty/libbrlttybmb.so
532%attr(755,root,root) %{_libdir}/brltty/libbrlttybmd.so
533%attr(755,root,root) %{_libdir}/brltty/libbrlttybmn.so
534%attr(755,root,root) %{_libdir}/brltty/libbrlttybpm.so
535%attr(755,root,root) %{_libdir}/brltty/libbrlttybtn.so
536%attr(755,root,root) %{_libdir}/brltty/libbrlttybts.so
537%attr(755,root,root) %{_libdir}/brltty/libbrlttybtt.so
538%attr(755,root,root) %{_libdir}/brltty/libbrlttybvd.so
539%attr(755,root,root) %{_libdir}/brltty/libbrlttybvo.so
540%attr(755,root,root) %{_libdir}/brltty/libbrlttybvr.so
541%attr(755,root,root) %{_libdir}/brltty/libbrlttybvs.so
542%{?with_x:%attr(755,root,root) %{_libdir}/brltty/libbrlttybxw.so}
543%attr(755,root,root) %{_libdir}/brltty/libbrlttysal.so
544%attr(755,root,root) %{_libdir}/brltty/libbrlttysbl.so
545%attr(755,root,root) %{_libdir}/brltty/libbrlttyscb.so
546%attr(755,root,root) %{_libdir}/brltty/libbrlttyses.so
547%attr(755,root,root) %{_libdir}/brltty/libbrlttysfl.so
548%attr(755,root,root) %{_libdir}/brltty/libbrlttysfv.so
549%attr(755,root,root) %{_libdir}/brltty/libbrlttysgs.so
550%attr(755,root,root) %{_libdir}/brltty/libbrlttyxas.so
551%attr(755,root,root) %{_libdir}/brltty/libbrlttyxlx.so
552%attr(755,root,root) %{_libdir}/brltty/libbrlttyxsc.so
553%{_sysconfdir}/brltty
554%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/brltty.conf
555%{_mandir}/man1/brltty.1*
556%{_mandir}/man1/vstp.1*
557
558%files -n brlapi
559%defattr(644,root,root,755)
560%attr(755,root,root) %{_libdir}/libbrlapi.so.0.5.2
561%attr(755,root,root) %ghost %{_libdir}/libbrlapi.so.0.5
562
563%files -n brlapi-devel
564%defattr(644,root,root,755)
565%doc Documents/README.Gnopernicus
566%doc Documents/Manual-BrlAPI/English/BrlAPI*
567%attr(755,root,root) %{_libdir}/libbrlapi.so
568%{_includedir}/brltty
569%{_includedir}/brlapi*.h
570%{_mandir}/man3/*
571
572%files -n brlapi-static
573%defattr(644,root,root,755)
574%{_libdir}/libbrlapi.a
575
576%if %{with apidocs}
577%files -n brlapi-apidocs
578%defattr(644,root,root,755)
579%doc Documents/BrlAPIref/html/*
580%endif
581
582%if %{with java}
583%files -n java-brlapi
584%defattr(644,root,root,755)
585%{_libdir}/java/libbrlapi_java.so
586%{_javadir}/brlapi.jar
587%endif
588
589%if %{with python}
590%files -n python-brlapi
591%defattr(644,root,root,755)
592%{py_sitedir}/Brlapi-*.egg-info
593%attr(755,root,root) %{py_sitedir}/brlapi.so
594%endif
595
596%if %{with tcl}
597%files -n brlapi-tcl
598%defattr(644,root,root,755)
599%dir %{_libdir}/brlapi-0.5.2
600%attr(755,root,root) %{_libdir}/brlapi-0.5.2/libbrlapi_tcl.so
601%{_libdir}/brlapi-0.5.2/pkgIndex.tcl
602%endif
This page took 0.028634 seconds and 4 git commands to generate.