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.
7 # - create bcond to build with minimal deps (wo ncurses,gpm,at-spi*)
10 %bcond_without apidocs # documentation generated with doxygen
11 %bcond_with java # java bindings
12 %bcond_with ocaml # ocaml bindings (NFY)
13 %bcond_without python # python bindings
14 %bcond_without tcl # tcl bindings
15 %bcond_without x # build X11-based utilities
17 Summary: Braille display driver for Linux/Unix
18 Summary(pl.UTF-8): Sterownik do wyświetlaczy Braille'a
24 Source0: http://mielke.cc/brltty/releases/%{name}-%{version}.tar.gz
25 # Source0-md5: 7ce54ba2d38b7c220870e8c781f36743
26 URL: http://mielke.cc/brltty/
27 BuildRequires: at-spi-devel
28 BuildRequires: autoconf >= 2.53
29 BuildRequires: automake
31 #BuildRequires: bluez-devel
32 %{?with_apidocs:BuildRequires: doxygen}
33 BuildRequires: gpm-devel
34 %{?with_java:BuildRequires: jdk}
35 BuildRequires: ncurses-devel
36 %{?with_ocaml:BuildRequires: ocaml}
37 BuildRequires: pkgconfig
38 %{?with_python:BuildRequires: python-Pyrex}
39 %{?with_python:BuildRequires: rpm-pythonprov}
40 %{?with_tcl:BuildRequires: tcl}
41 %{?with_x:BuildRequires: xorg-lib-libXaw-devel}
42 %{?with_x:BuildRequires: xorg-lib-libXtst-devel}
43 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 BRLTTY is a background process (daemon) which provides access to the
47 Linux/Unix console (when in text mode) for a blind person using a
48 refreshable Braille display. It drives the Braille display, and
49 provides complete screen review functionality. Some speech capability
50 has also been incorporated.
52 %description -l pl.UTF-8
53 BRLTTY jest demonem, który udostępnia dostęp do linuksowej konsoli (w
54 trybie tekstowym) dla niewidomych używających wyświetlaczy Braille'a z
55 odświeżaniem (refreshable Braille display). BRLTTY steruje
56 wyświetlaczem Braille'a i dostarcza funkcjonalność całkowitego
57 przeglądu ekranu. Do tego pakietu została włączona możliwość syntezy
61 Summary: Application Programming Interface for BRLTTY
62 Summary(pl.UTF-8): API do BRLTTY
63 Group: Applications/System
65 %description -n brlapi
66 This package provides the run-time support for the Application
67 Programming Interface to BRLTTY.
69 Install this package if you have an application which directly
70 accesses a refreshable Braille display.
72 %description -n brlapi -l pl.UTF-8
73 Ten pakiet zawiera środowisko uruchomieniowe dla programów
74 korzystających z API BRLTTY.
76 Zainstaluj ten pakiet jeśli masz aplikację, która bezpośrednio używa
77 wyświetlacza Braille'a z odświeżaniem.
79 %package -n brlapi-devel
80 Summary: Headers and documentation for BrlAPI
81 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do BrlAPI
82 Group: Development/Libraries
83 Requires: brlapi = %{version}-%{release}
85 %description -n brlapi-devel
86 This package provides the header files, shared object linker
87 reference, and reference documentation for BrlAPI (the Application
88 Programming Interface to BRLTTY). It enables the implementation of
89 applications which take direct advantage of a refreshable Braille
90 display in order to present information in ways which are more
91 appropriate for blind users and/or to provide user interfaces which
92 are more specifically atuned to their needs.
94 Install this package if you're developing or maintaining an
95 application which directly accesses a refreshable Braille display.
97 %description -n brlapi-devel -l pl.UTF-8
98 Ten pakiet zawiera pliki nagłówkowe oraz dokumentację do BrlAPI (API
99 do BRLTTY). BrlAPI pozwala implementować aplikacje, które bezpośrednio
100 korzystają z wyświetlaczy Braille'a dostarczając interfejs użytkownika
101 bardziej przystosowany dla osób niewidomych.
103 Zainstaluj ten pakiet, jeśli tworzysz lub nadzorujesz aplikację
104 korzystającą bezpośrednio z odświeżalnych wyświetlaczy Braille'a.
106 %package -n brlapi-static
107 Summary: Static BrlAPI library
108 Summary(pl.UTF-8): Statyczna biblioteka BrlAPI
109 Group: Development/Libraries
110 Requires: brlapi-devel = %{version}-%{release}
112 %description -n brlapi-static
113 This is package with static BrlAPI library.
115 %description -n brlapi-static -l pl.UTF-8
116 Ten pakiet zawiera statyczną wersję biblioteki BrlAPI.
118 %package -n brlapi-apidocs
119 Summary: BrlAPI documentation
120 Summary(pl.UTF-8): Documentacja BrlAPI
123 %description -n brlapi-apidocs
124 Documentation for BrlAPI in HTML format generated from brltty
127 %description -n brlapi-apidocs -l pl.UTF-8
128 Dokumentacja BrlAPI w formacie HTML generowane ze
129 źrodeł brltty przez doxygen.
131 %package -n brlapi-java
132 Summary: BrlAPI library for Java
133 Summary(pl.UTF-8): Biblioteka BrlAPI dla Javy
135 Requires: brlapi = %{version}-%{release}
137 %description -n brlapi-java
138 BrlAPI library for Java.
140 %description -n brlapi-java -l pl.UTF-8
141 Biblioteka BrlAPI dla Javy.
143 %package -n python-brlapi
144 Summary: Python interface to BrlAPI
145 Summary(pl.UTF-8): Pythonowy interfejs do BrlAPI
147 Requires: brlapi = %{version}-%{release}
149 %description -n python-brlapi
150 Python interface to BrlAPI.
152 %description -n python-brlapi -l pl.UTF-8
153 Pythonowy interfejs do BrlAPI.
155 %package -n brlapi-tcl
156 Summary: BrlAPI library for Tcl
157 Summary(pl.UTF-8): Biblioteka BrlAPI dla Tcl
159 Requires: brlapi = %{version}-%{release}
161 %description -n brlapi-tcl
162 BrlAPI library for Tcl.
164 %description -n brlapi-tcl -l pl.UTF-8
165 Biblioteka BrlAPI dla Tcl.
173 cp -f /usr/share/automake/config.sub acdir
174 CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
176 --with-install-root="$RPM_BUILD_ROOT" \
177 --disable-tainted-components \
178 %{!?with_java:--disable-java-bindings} \
183 mkdir -p "$directory"
184 for 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`
186 mkdir -p "$directory/${file%/*}"
187 cp -rp "$file" "$directory/$file"
191 rm -rf $RPM_BUILD_ROOT
193 install Documents/brltty.conf $RPM_BUILD_ROOT%{_sysconfdir}
196 rm -rf $RPM_BUILD_ROOT
199 # The pre-install scriptlet.
201 # If a configuration file already exists then rpm installs the new one as
202 # <path>.rpmnew. If this is done then the .rpmnew file is overwritten if it
205 # There's no explicit way to tell if a configuration file has been installed
206 # as itself or as a .rpmnew file. The way we'll figure it out, therefore, is by
207 # erasing the .rpmnew file now so that we can see if it gets created later.
208 rm -f "%{_sysconfdir}/brltty.conf.rpmnew"
211 # The post-install scriptlet.
213 # If BRLTTY's boot parameter has been specified then update the just installed
214 # configuration file template to reflect the options supplied thereby.
216 # First, we need to determine which file to update. If there's a .rpmnew file
217 # then update it since a previous configuration file must already have existed.
218 file="%{_sysconfdir}/brltty.conf"
220 [ -f "${new}" ] && file="${new}"
222 # Update the configuration file template via the Bootdisks/bp2cf script.
223 # Include it right within this scriptlet so that it needn't be installed.
224 # Imbed it within a subshell to ensure that it won't impact this scriptlet.
226 # First, set bp2cf's command line arguments.
227 set -- -u -f "${file}"
230 ###############################################################################
231 # BRLTTY - A background process providing access to the Linux console (when in
232 # text mode) for a blind person using a refreshable Braille display.
234 # Copyright (C) 1995-2003 by The BRLTTY Team. All rights reserved.
236 # BRLTTY comes with ABSOLUTELY NO WARRANTY.
238 # This is free software, placed under the terms of the
239 # GNU General Public License, as published by the Free Software
240 # Foundation. Please see the file COPYING for details.
242 # Web Page: http://mielke.cc/brltty/
244 # This software is maintained by Dave Mielke <dave@mielke.cc>.
245 ###############################################################################
247 # Convert the boot parameter to configuration file directives.
248 # If /proc is mounted then use the brltty= boot parameter in /proc/cmdline.
249 # If /proc is not mounted then use the brltty environment variable.
250 # Invoke with -h for usage information.
252 programName="${0##*/}"
255 echo 2>&1 "${programName}: ${1}"
259 programMessage "${1}"
264 programMessage "${1}"
269 requestedAction=create
270 deviceTranslation=none
271 requestedParameter=""
273 while getopts ":f:cundop:h" option
276 f) configurationFile="${OPTARG}";;
277 c) requestedAction=create;;
278 u) requestedAction=update;;
279 n) deviceTranslation=none;;
280 d) deviceTranslation=devfs;;
281 o) deviceTranslation=old;;
282 p) requestedParameter="${OPTARG}";;
285 Usage: ${programName} [option ...]
286 -f file The configuration file to create/update.
287 -c Create the configuration file (write to stdout if no -f).
288 -u Update the configuration file (copying from stdin to stdout if no -f).
289 -n Do not translate device paths.
290 -d Do old-style to devfs device path translation.
291 -o Do devfs to old-style device path translation.
292 -p [driver][,[device][,[table]]]
293 Explicitly specify the boot parameter.
294 -h Display this usage summary.
298 \?) syntaxError "unknown option: -${OPTARG}";;
299 :) syntaxError "missing value: -${OPTARG}";;
300 *) internalError "unimplemented option: -${option}";;
303 shift "`expr $OPTIND - 1`"
304 [ "${#}" -eq 0 ] || syntaxError "too many parameters."
306 case "${requestedAction}" in
308 putConfigurationLine()
310 echo "${1}" || exit 4
312 startConfigurationFile()
314 [ -n "${configurationFile}" ] && exec >"${configurationFile}"
315 putConfigurationLine "`makeHeaderLine Created`"
316 putConfigurationLine "`makeParameterLine`"
317 putConfigurationLine ""
319 putConfigurationDirective()
321 putConfigurationLine "${1} ${2}"
323 finalizeConfigurationFile()
331 sedScript="${sedScript}
334 startConfigurationFile()
336 if [ -n "${configurationFile}" ]; then
337 [ -e "${configurationFile}" ] || syntaxError "file not found: ${configurationFile}"
338 [ -f "${configurationFile}" ] || syntaxError "not a file: ${configurationFile}"
339 [ -r "${configurationFile}" ] || syntaxError "file not readable: ${configurationFile}"
340 [ -w "${configurationFile}" ] || syntaxError "file not writable: ${configurationFile}"
341 outputFile="${configurationFile}.new"
342 exec <"${configurationFile}" >"${outputFile}"
346 `makeHeaderLine Updated`\\
347 `makeParameterLine`\\
350 putConfigurationDirective()
352 value="`echo "${2}" | sed -e 's%\\([/\\]\\)%\\\\\\1%g'`"
353 putSedCommand "/^ *#\\(${1} .*\\)/s//\\1/"
354 putSedCommand "/^ *\\(${1}\\) .*/s//\\1 ${value}/"
356 finalizeConfigurationFile()
358 sed -e "${sedScript}"
359 [ -n "${outputFile}" ] && mv -f "${outputFile}" "${configurationFile}"
362 *) internalError "unimplemented action: ${requestedAction}";;
365 translateDevice_none()
369 translateDevice_devfs()
371 minor="${device#ttyS}"
372 if [ "${minor}" != "${device}" ]; then
373 device="tts/${minor}"
377 if [ "${minor}" != "${device}" ]; then
378 device="printers/${minor}"
381 programMessage "unsupported old-style device: ${device}"
383 translateDevice_old()
385 major="${device%%/*}"
386 if [ "${major}" != "${device}" ]; then
389 tts) devfs="ttyS${minor}";;
390 printers) devfs="lp${minor}";;
393 if [ -n "${devfs}" ]; then
396 programMessage "unsupported devfs device: ${device}"
402 echo "# ${1} by brltty-bp2cf`date +' on %Y-%m-%d at %H:%M:%S %Z (UTC%z)'`."
406 echo "# Boot Parameter:${bootParameter}"
408 putConfigurationFile()
410 startConfigurationFile
411 [ -n "${brailleDriver}" ] && putConfigurationDirective "braille-driver" "${brailleDriver}"
412 [ -n "${brailleDevice}" ] && {
413 device="`echo "${brailleDevice}" | sed -e 's%//*%/%g' -e 's%^/dev/%%'`"
414 if [ "${device#/}" = "${device}" ]; then
415 translateDevice_${deviceTranslation}
417 putConfigurationDirective "braille-device" "${device}"
419 [ -n "${textTable}" ] && putConfigurationDirective "text-table" "${textTable}"
420 finalizeConfigurationFile
424 bootParameter="${bootParameter} ${1}"
426 while [ "${number}" -le 3 ]; do
427 cut="cut -d, -f${number}"
428 [ "${number}" -gt 1 ] && cut="${cut} -s"
429 operand="`echo ${1} | ${cut}`"
430 if [ -n "${operand}" ]; then
432 1) brailleDriver="${operand}";;
433 2) brailleDevice="${operand}";;
434 3) textTable="${operand}";;
437 number="`expr ${number} + 1`"
442 parseBootParameter "${1}"
448 while [ "${#}" -gt 0 ]; do
452 parseBootParameter "${1#*=}"
457 "${found}" && putConfigurationFile
463 bootCommandFile="/proc/cmdline"
464 if [ -n "${requestedParameter}" ]; then
465 putBootParameter "${requestedParameter}"
466 elif [ -f "${bootCommandFile}" ]; then
467 parseBootCommand `cat "${bootCommandFile}"`
468 elif [ -n "${brltty}" ]; then
469 putBootParameter "${brltty}"
474 %post -n brlapi -p /sbin/ldconfig
475 %postun -n brlapi -p /sbin/ldconfig
478 %defattr(644,root,root,755)
479 %doc Documents/{Manual-BRLTTY/English/BRLTTY*,ChangeLog,HISTORY,TODO}
480 %doc doc/{Bindings,Bootdisks,BrailleDrivers,BrailleTables,ContractionTables,Patches,README,SpeechDrivers}
481 %attr(755,root,root) %{_bindir}/brltty
482 %attr(755,root,root) %{_bindir}/brltty-install
483 %attr(755,root,root) %{_bindir}/brltty-config
484 %attr(755,root,root) %{_bindir}/vstp
485 %{?with_x:%attr(755,root,root) %{_bindir}/xbrlapi}
486 %dir %{_libdir}/brltty
487 %attr(755,root,root) %{_libdir}/brltty/libbrlttybal.so
488 %attr(755,root,root) %{_libdir}/brltty/libbrlttybat.so
489 %attr(755,root,root) %{_libdir}/brltty/libbrlttybba.so
490 %attr(755,root,root) %{_libdir}/brltty/libbrlttybbd.so
491 %attr(755,root,root) %{_libdir}/brltty/libbrlttybbl.so
492 %attr(755,root,root) %{_libdir}/brltty/libbrlttybbm.so
493 %attr(755,root,root) %{_libdir}/brltty/libbrlttybbn.so
494 %attr(755,root,root) %{_libdir}/brltty/libbrlttybcb.so
495 %attr(755,root,root) %{_libdir}/brltty/libbrlttybec.so
496 %attr(755,root,root) %{_libdir}/brltty/libbrlttybeu.so
497 %attr(755,root,root) %{_libdir}/brltty/libbrlttybfl.so
498 %attr(755,root,root) %{_libdir}/brltty/libbrlttybfs.so
499 %attr(755,root,root) %{_libdir}/brltty/libbrlttybht.so
500 %attr(755,root,root) %{_libdir}/brltty/libbrlttybil.so
501 %attr(755,root,root) %{_libdir}/brltty/libbrlttyblt.so
502 %attr(755,root,root) %{_libdir}/brltty/libbrlttybmb.so
503 %attr(755,root,root) %{_libdir}/brltty/libbrlttybmd.so
504 %attr(755,root,root) %{_libdir}/brltty/libbrlttybmn.so
505 %attr(755,root,root) %{_libdir}/brltty/libbrlttybpm.so
506 %attr(755,root,root) %{_libdir}/brltty/libbrlttybtn.so
507 %attr(755,root,root) %{_libdir}/brltty/libbrlttybts.so
508 %attr(755,root,root) %{_libdir}/brltty/libbrlttybtt.so
509 %attr(755,root,root) %{_libdir}/brltty/libbrlttybvd.so
510 %attr(755,root,root) %{_libdir}/brltty/libbrlttybvo.so
511 %attr(755,root,root) %{_libdir}/brltty/libbrlttybvr.so
512 %attr(755,root,root) %{_libdir}/brltty/libbrlttybvs.so
513 %{?with_x:%attr(755,root,root) %{_libdir}/brltty/libbrlttybxw.so}
514 %attr(755,root,root) %{_libdir}/brltty/libbrlttysal.so
515 %attr(755,root,root) %{_libdir}/brltty/libbrlttysbl.so
516 %attr(755,root,root) %{_libdir}/brltty/libbrlttyscb.so
517 %attr(755,root,root) %{_libdir}/brltty/libbrlttyses.so
518 %attr(755,root,root) %{_libdir}/brltty/libbrlttysfv.so
519 %attr(755,root,root) %{_libdir}/brltty/libbrlttysgs.so
520 %attr(755,root,root) %{_libdir}/brltty/libbrlttyxas.so
521 %attr(755,root,root) %{_libdir}/brltty/libbrlttyxlx.so
522 %attr(755,root,root) %{_libdir}/brltty/libbrlttyxsc.so
523 %{_sysconfdir}/brltty
524 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/brltty.conf
525 %{_mandir}/man1/brltty.1*
526 %{_mandir}/man1/vstp.1*
529 %defattr(644,root,root,755)
530 %attr(755,root,root) %{_libdir}/libbrlapi.so.0.5.1
531 %attr(755,root,root) %ghost %{_libdir}/libbrlapi.so.0.5
533 %files -n brlapi-devel
534 %defattr(644,root,root,755)
535 %doc Documents/README.Gnopernicus
536 %doc Documents/Manual-BrlAPI/English/BrlAPI*
537 %attr(755,root,root) %{_libdir}/libbrlapi.so
538 %{_includedir}/brltty
539 %{_includedir}/brlapi*.h
542 %files -n brlapi-static
543 %defattr(644,root,root,755)
544 %{_libdir}/libbrlapi.a
547 %files -n brlapi-apidocs
548 %defattr(644,root,root,755)
549 %doc Documents/BrlAPIref/html/*
553 %files -n brlapi-java
554 %defattr(644,root,root,755)
555 %{_libdir}/java/libbrlapi_java.so
556 %{_javadir}/brlapi.jar
560 %files -n python-brlapi
561 %defattr(644,root,root,755)
562 %{py_sitedir}/Brlapi-*.egg-info
563 %attr(755,root,root) %{py_sitedir}/brlapi.so
568 %defattr(644,root,root,755)
569 %dir %{_libdir}/brlapi-0.5.1
570 %attr(755,root,root) %{_libdir}/brlapi-0.5.1/libbrlapi_tcl.so
571 %{_libdir}/brlapi-0.5.1/pkgIndex.tcl