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