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*)
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
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
28 %include /usr/lib/rpm/macros.java
29 Summary: Braille display driver for Linux/Unix
30 Summary(pl.UTF-8): Sterownik do wyświetlaczy Braille'a
36 Source0: http://mielke.cc/brltty/releases/%{name}-%{version}.tar.gz
37 # Source0-md5: d52f332a29e00495d166e7f45403fa9d
38 Patch0: %{name}-ac.patch
39 URL: http://mielke.cc/brltty/
40 BuildRequires: at-spi-devel
41 BuildRequires: autoconf >= 2.62
42 BuildRequires: automake
44 #BuildRequires: bluez-devel
45 %{?with_apidocs:BuildRequires: doxygen}
46 BuildRequires: gpm-devel
47 %{?with_java:BuildRequires: jdk}
48 BuildRequires: ncurses-devel
49 %{?with_ocaml:BuildRequires: ocaml}
50 BuildRequires: 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}
58 #BR: libbraile-devel (-lllibbraile <braille.h>)
60 BuildRequires: flite-devel
62 #BR: Mikropuhe-devel (-lmikropuhe <mpwrfile.h>)
64 #BuildRequires: speech-dispatcher-devel
66 #BR: Swift-devel (-lswift <swift.h>)
68 #BR: Theta-devel (-ltheta <theta.h>)
70 #BR: ViaVoice-devel (-lviavoice <eci.h>)
71 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 BRLTTY is a background process (daemon) which provides access to the
75 Linux/Unix console (when in text mode) for a blind person using a
76 refreshable Braille display. It drives the Braille display, and
77 provides complete screen review functionality. Some speech capability
78 has also been incorporated.
80 %description -l pl.UTF-8
81 BRLTTY jest demonem, który udostępnia dostęp do linuksowej konsoli (w
82 trybie tekstowym) dla niewidomych używających wyświetlaczy Braille'a z
83 odświeżaniem (refreshable Braille display). BRLTTY steruje
84 wyświetlaczem Braille'a i dostarcza funkcjonalność całkowitego
85 przeglądu ekranu. Do tego pakietu została włączona możliwość syntezy
89 Summary: Application Programming Interface for BRLTTY
90 Summary(pl.UTF-8): API do BRLTTY
91 Group: Applications/System
93 %description -n brlapi
94 This package provides the run-time support for the Application
95 Programming Interface to BRLTTY.
97 Install this package if you have an application which directly
98 accesses a refreshable Braille display.
100 %description -n brlapi -l pl.UTF-8
101 Ten pakiet zawiera środowisko uruchomieniowe dla programów
102 korzystających z API BRLTTY.
104 Zainstaluj ten pakiet jeśli masz aplikację, która bezpośrednio używa
105 wyświetlacza Braille'a z odświeżaniem.
107 %package -n brlapi-devel
108 Summary: Headers and documentation for BrlAPI
109 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do BrlAPI
110 Group: Development/Libraries
111 Requires: brlapi = %{version}-%{release}
113 %description -n brlapi-devel
114 This package provides the header files, shared object linker
115 reference, and reference documentation for BrlAPI (the Application
116 Programming Interface to BRLTTY). It enables the implementation of
117 applications which take direct advantage of a refreshable Braille
118 display in order to present information in ways which are more
119 appropriate for blind users and/or to provide user interfaces which
120 are more specifically atuned to their needs.
122 Install this package if you're developing or maintaining an
123 application which directly accesses a refreshable Braille display.
125 %description -n brlapi-devel -l pl.UTF-8
126 Ten pakiet zawiera pliki nagłówkowe oraz dokumentację do BrlAPI (API
127 do BRLTTY). BrlAPI pozwala implementować aplikacje, które bezpośrednio
128 korzystają z wyświetlaczy Braille'a dostarczając interfejs użytkownika
129 bardziej przystosowany dla osób niewidomych.
131 Zainstaluj ten pakiet, jeśli tworzysz lub nadzorujesz aplikację
132 korzystającą bezpośrednio z odświeżalnych wyświetlaczy Braille'a.
134 %package -n brlapi-static
135 Summary: Static BrlAPI library
136 Summary(pl.UTF-8): Statyczna biblioteka BrlAPI
137 Group: Development/Libraries
138 Requires: brlapi-devel = %{version}-%{release}
140 %description -n brlapi-static
141 This is package with static BrlAPI library.
143 %description -n brlapi-static -l pl.UTF-8
144 Ten pakiet zawiera statyczną wersję biblioteki BrlAPI.
146 %package -n brlapi-apidocs
147 Summary: BrlAPI documentation
148 Summary(pl.UTF-8): Documentacja BrlAPI
151 %description -n brlapi-apidocs
152 Documentation for BrlAPI in HTML format generated from brltty
155 %description -n brlapi-apidocs -l pl.UTF-8
156 Dokumentacja BrlAPI w formacie HTML generowane ze
157 źrodeł brltty przez doxygen.
159 %package -n java-brlapi
160 Summary: BrlAPI library for Java
161 Summary(pl.UTF-8): Biblioteka BrlAPI dla Javy
163 Requires: brlapi = %{version}-%{release}
165 %description -n java-brlapi
166 BrlAPI library for Java.
168 %description -n java-brlapi -l pl.UTF-8
169 Biblioteka BrlAPI dla Javy.
171 %package -n python-brlapi
172 Summary: Python interface to BrlAPI
173 Summary(pl.UTF-8): Pythonowy interfejs do BrlAPI
175 Requires: brlapi = %{version}-%{release}
177 %description -n python-brlapi
178 Python interface to BrlAPI.
180 %description -n python-brlapi -l pl.UTF-8
181 Pythonowy interfejs do BrlAPI.
183 %package -n brlapi-tcl
184 Summary: BrlAPI library for Tcl
185 Summary(pl.UTF-8): Biblioteka BrlAPI dla Tcl
187 Requires: brlapi = %{version}-%{release}
189 %description -n brlapi-tcl
190 BrlAPI library for Tcl.
192 %description -n brlapi-tcl -l pl.UTF-8
193 Biblioteka BrlAPI dla Tcl.
202 cp -f /usr/share/automake/config.sub acdir
203 CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
205 --with-install-root="$RPM_BUILD_ROOT" \
206 --disable-tainted-components \
207 %{!?with_java:--disable-java-bindings} \
212 mkdir -p "$directory"
213 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`
215 mkdir -p "$directory/${file%/*}"
216 cp -rp "$file" "$directory/$file"
220 rm -rf $RPM_BUILD_ROOT
221 %{__make} -j1 install
222 install Documents/brltty.conf $RPM_BUILD_ROOT%{_sysconfdir}
225 rm -rf $RPM_BUILD_ROOT
228 # The pre-install scriptlet.
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
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.
237 rm -f "%{_sysconfdir}/brltty.conf.rpmnew"
240 # The post-install scriptlet.
242 # If BRLTTY's boot parameter has been specified then update the just installed
243 # configuration file template to reflect the options supplied thereby.
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.
247 file="%{_sysconfdir}/brltty.conf"
249 [ -f "${new}" ] && file="${new}"
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.
255 # First, set bp2cf's command line arguments.
256 set -- -u -f "${file}"
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.
263 # Copyright (C) 1995-2003 by The BRLTTY Team. All rights reserved.
265 # BRLTTY comes with ABSOLUTELY NO WARRANTY.
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.
271 # Web Page: http://mielke.cc/brltty/
273 # This software is maintained by Dave Mielke <dave@mielke.cc>.
274 ###############################################################################
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.
281 programName="${0##*/}"
284 echo 2>&1 "${programName}: ${1}"
288 programMessage "${1}"
293 programMessage "${1}"
298 requestedAction=create
299 deviceTranslation=none
300 requestedParameter=""
302 while getopts ":f:cundop:h" option
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}";;
314 Usage: ${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.
327 \?) syntaxError "unknown option: -${OPTARG}";;
328 :) syntaxError "missing value: -${OPTARG}";;
329 *) internalError "unimplemented option: -${option}";;
332 shift "`expr $OPTIND - 1`"
333 [ "${#}" -eq 0 ] || syntaxError "too many parameters."
335 case "${requestedAction}" in
337 putConfigurationLine()
339 echo "${1}" || exit 4
341 startConfigurationFile()
343 [ -n "${configurationFile}" ] && exec >"${configurationFile}"
344 putConfigurationLine "`makeHeaderLine Created`"
345 putConfigurationLine "`makeParameterLine`"
346 putConfigurationLine ""
348 putConfigurationDirective()
350 putConfigurationLine "${1} ${2}"
352 finalizeConfigurationFile()
360 sedScript="${sedScript}
363 startConfigurationFile()
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}"
375 `makeHeaderLine Updated`\\
376 `makeParameterLine`\\
379 putConfigurationDirective()
381 value="`echo "${2}" | sed -e 's%\\([/\\]\\)%\\\\\\1%g'`"
382 putSedCommand "/^ *#\\(${1} .*\\)/s//\\1/"
383 putSedCommand "/^ *\\(${1}\\) .*/s//\\1 ${value}/"
385 finalizeConfigurationFile()
387 sed -e "${sedScript}"
388 [ -n "${outputFile}" ] && mv -f "${outputFile}" "${configurationFile}"
391 *) internalError "unimplemented action: ${requestedAction}";;
394 translateDevice_none()
398 translateDevice_devfs()
400 minor="${device#ttyS}"
401 if [ "${minor}" != "${device}" ]; then
402 device="tts/${minor}"
406 if [ "${minor}" != "${device}" ]; then
407 device="printers/${minor}"
410 programMessage "unsupported old-style device: ${device}"
412 translateDevice_old()
414 major="${device%%/*}"
415 if [ "${major}" != "${device}" ]; then
418 tts) devfs="ttyS${minor}";;
419 printers) devfs="lp${minor}";;
422 if [ -n "${devfs}" ]; then
425 programMessage "unsupported devfs device: ${device}"
431 echo "# ${1} by brltty-bp2cf`date +' on %Y-%m-%d at %H:%M:%S %Z (UTC%z)'`."
435 echo "# Boot Parameter:${bootParameter}"
437 putConfigurationFile()
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}
446 putConfigurationDirective "braille-device" "${device}"
448 [ -n "${textTable}" ] && putConfigurationDirective "text-table" "${textTable}"
449 finalizeConfigurationFile
453 bootParameter="${bootParameter} ${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
461 1) brailleDriver="${operand}";;
462 2) brailleDevice="${operand}";;
463 3) textTable="${operand}";;
466 number="`expr ${number} + 1`"
471 parseBootParameter "${1}"
477 while [ "${#}" -gt 0 ]; do
481 parseBootParameter "${1#*=}"
486 "${found}" && putConfigurationFile
492 bootCommandFile="/proc/cmdline"
493 if [ -n "${requestedParameter}" ]; then
494 putBootParameter "${requestedParameter}"
495 elif [ -f "${bootCommandFile}" ]; then
496 parseBootCommand `cat "${bootCommandFile}"`
497 elif [ -n "${brltty}" ]; then
498 putBootParameter "${brltty}"
503 %post -n brlapi -p /sbin/ldconfig
504 %postun -n brlapi -p /sbin/ldconfig
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*
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
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
572 %files -n brlapi-static
573 %defattr(644,root,root,755)
574 %{_libdir}/libbrlapi.a
577 %files -n brlapi-apidocs
578 %defattr(644,root,root,755)
579 %doc Documents/BrlAPIref/html/*
583 %files -n java-brlapi
584 %defattr(644,root,root,755)
585 %{_libdir}/java/libbrlapi_java.so
586 %{_javadir}/brlapi.jar
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
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