]> git.pld-linux.org Git - packages/brltty.git/blob - brltty.spec
- added missing libbrlttybfl module
[packages/brltty.git] / brltty.spec
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 # Conditional build:
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
16 #
17 Summary:        Braille display driver for Linux/Unix
18 Summary(pl.UTF-8):      Sterownik do wyświetlaczy Braille'a
19 Name:           brltty
20 Version:        3.9
21 Release:        1
22 Group:          Daemons
23 License:        GPL
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
30 BuildRequires:  bison
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)
44
45 %description
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.
51
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
58 mowy.
59
60 %package -n brlapi
61 Summary:        Application Programming Interface for BRLTTY
62 Summary(pl.UTF-8):      API do BRLTTY
63 Group:          Applications/System
64
65 %description -n brlapi
66 This package provides the run-time support for the Application
67 Programming Interface to BRLTTY.
68
69 Install this package if you have an application which directly
70 accesses a refreshable Braille display.
71
72 %description -n brlapi -l pl.UTF-8
73 Ten pakiet zawiera środowisko uruchomieniowe dla programów
74 korzystających z API BRLTTY.
75
76 Zainstaluj ten pakiet jeśli masz aplikację, która bezpośrednio używa
77 wyświetlacza Braille'a z odświeżaniem.
78
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}
84
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.
93
94 Install this package if you're developing or maintaining an
95 application which directly accesses a refreshable Braille display.
96
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.
102
103 Zainstaluj ten pakiet, jeśli tworzysz lub nadzorujesz aplikację
104 korzystającą bezpośrednio z odświeżalnych wyświetlaczy Braille'a.
105
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}
111
112 %description -n brlapi-static
113 This is package with static BrlAPI library.
114
115 %description -n brlapi-static -l pl.UTF-8
116 Ten pakiet zawiera statyczną wersję biblioteki BrlAPI.
117
118 %package -n brlapi-apidocs
119 Summary:        BrlAPI documentation
120 Summary(pl.UTF-8):      Documentacja BrlAPI
121 Group:          Documentation
122
123 %description -n brlapi-apidocs
124 Documentation for BrlAPI in HTML format generated from brltty
125 sources by doxygen.
126
127 %description -n brlapi-apidocs -l pl.UTF-8
128 Dokumentacja BrlAPI w formacie HTML generowane ze
129 źrodeł brltty przez doxygen.
130
131 %package -n brlapi-java
132 Summary:        BrlAPI library for Java
133 Summary(pl.UTF-8):      Biblioteka BrlAPI dla Javy
134 Group:          Libraries
135 Requires:       brlapi = %{version}-%{release}
136
137 %description -n brlapi-java
138 BrlAPI library for Java.
139
140 %description -n brlapi-java -l pl.UTF-8
141 Biblioteka BrlAPI dla Javy.
142
143 %package -n python-brlapi
144 Summary:        Python interface to BrlAPI
145 Summary(pl.UTF-8):      Pythonowy interfejs do BrlAPI
146 Group:          Libraries
147 Requires:       brlapi = %{version}-%{release}
148
149 %description -n python-brlapi
150 Python interface to BrlAPI.
151
152 %description -n python-brlapi -l pl.UTF-8
153 Pythonowy interfejs do BrlAPI.
154
155 %package -n brlapi-tcl
156 Summary:        BrlAPI library for Tcl
157 Summary(pl.UTF-8):      Biblioteka BrlAPI dla Tcl
158 Group:          Libraries
159 Requires:       brlapi = %{version}-%{release}
160
161 %description -n brlapi-tcl
162 BrlAPI library for Tcl.
163
164 %description -n brlapi-tcl -l pl.UTF-8
165 Biblioteka BrlAPI dla Tcl.
166
167 %prep
168 %setup -q
169
170 %build
171 %{__aclocal}
172 %{__autoconf}
173 cp -f /usr/share/automake/config.sub acdir
174 CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
175 %configure \
176         --with-install-root="$RPM_BUILD_ROOT" \
177         --disable-tainted-components \
178         %{!?with_java:--disable-java-bindings} \
179         --enable-api
180 %{__make}
181
182 directory="doc"
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`
185 do
186         mkdir -p "$directory/${file%/*}"
187         cp -rp "$file" "$directory/$file"
188 done
189
190 %install
191 rm -rf $RPM_BUILD_ROOT
192 %{__make} install
193 install Documents/brltty.conf $RPM_BUILD_ROOT%{_sysconfdir}
194
195 %clean
196 rm -rf $RPM_BUILD_ROOT
197
198 %pre
199 # The pre-install scriptlet.
200
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
203 # already exists.
204
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"
209
210 %post
211 # The post-install scriptlet.
212
213 # If BRLTTY's boot parameter has been specified then update the just installed
214 # configuration file template to reflect the options supplied thereby.
215
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"
219 new="${file}.rpmnew"
220 [ -f "${new}" ] && file="${new}"
221
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.
225 (
226         # First, set bp2cf's command line arguments.
227         set -- -u -f "${file}"
228
229 #!/bin/sh
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.
233 #
234 # Copyright (C) 1995-2003 by The BRLTTY Team. All rights reserved.
235 #
236 # BRLTTY comes with ABSOLUTELY NO WARRANTY.
237 #
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.
241 #
242 # Web Page: http://mielke.cc/brltty/
243 #
244 # This software is maintained by Dave Mielke <dave@mielke.cc>.
245 ###############################################################################
246
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.
251
252 programName="${0##*/}"
253 programMessage()
254 {
255         echo 2>&1 "${programName}: ${1}"
256 }
257 syntaxError()
258 {
259         programMessage "${1}"
260         exit 2
261 }
262 internalError()
263 {
264         programMessage "${1}"
265         exit 3
266 }
267
268 configurationFile=""
269 requestedAction=create
270 deviceTranslation=none
271 requestedParameter=""
272 OPTIND=1
273 while getopts ":f:cundop:h" option
274 do
275         case "${option}" in
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}";;
283             h)
284                 cat <<EOF
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.
295 EOF
296                 exit 0
297                 ;;
298             \?) syntaxError "unknown option: -${OPTARG}";;
299             :) syntaxError "missing value: -${OPTARG}";;
300             *) internalError "unimplemented option: -${option}";;
301         esac
302 done
303 shift "`expr $OPTIND - 1`"
304 [ "${#}" -eq 0 ] || syntaxError "too many parameters."
305
306 case "${requestedAction}" in
307     create)
308         putConfigurationLine()
309         {
310                 echo "${1}" || exit 4
311         }
312         startConfigurationFile()
313         {
314                 [ -n "${configurationFile}" ] && exec >"${configurationFile}"
315                 putConfigurationLine "`makeHeaderLine Created`"
316                 putConfigurationLine "`makeParameterLine`"
317                 putConfigurationLine ""
318         }
319         putConfigurationDirective()
320         {
321                 putConfigurationLine "${1} ${2}"
322         }
323         finalizeConfigurationFile()
324         {
325                 :
326         }
327         ;;
328     update)
329         putSedCommand()
330         {
331                 sedScript="${sedScript}
332 ${1}"
333         }
334         startConfigurationFile()
335         {
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}"
343                 fi
344                 sedScript=""
345                 putSedCommand "1i\\
346 `makeHeaderLine Updated`\\
347 `makeParameterLine`\\
348 "
349         }
350         putConfigurationDirective()
351         {
352                 value="`echo "${2}" | sed -e 's%\\([/\\]\\)%\\\\\\1%g'`"
353                 putSedCommand "/^ *#\\(${1} .*\\)/s//\\1/"
354                 putSedCommand "/^ *\\(${1}\\) .*/s//\\1 ${value}/"
355         }
356         finalizeConfigurationFile()
357         {
358                 sed -e "${sedScript}"
359                 [ -n "${outputFile}" ] && mv -f "${outputFile}" "${configurationFile}"
360         }
361         ;;
362     *) internalError "unimplemented action: ${requestedAction}";;
363 esac
364
365 translateDevice_none()
366 {
367         :
368 }
369 translateDevice_devfs()
370 {
371         minor="${device#ttyS}"
372         if [ "${minor}" != "${device}" ]; then
373                 device="tts/${minor}"
374                 return 0
375         fi
376         minor="${device#lp}"
377         if [ "${minor}" != "${device}" ]; then
378                 device="printers/${minor}"
379                 return 0
380         fi
381         programMessage "unsupported old-style device: ${device}"
382 }
383 translateDevice_old()
384 {
385         major="${device%%/*}"
386         if [ "${major}" != "${device}" ]; then
387                 minor="${device#*/}"
388                 case "${major}" in
389                     tts) devfs="ttyS${minor}";;
390                     printers) devfs="lp${minor}";;
391                 esac
392         fi
393         if [ -n "${devfs}" ]; then
394                 device="${devfs}"
395         else
396                 programMessage "unsupported devfs device: ${device}"
397         fi
398 }
399
400 makeHeaderLine()
401 {
402         echo "# ${1} by brltty-bp2cf`date +' on %Y-%m-%d at %H:%M:%S %Z (UTC%z)'`."
403 }
404 makeParameterLine()
405 {
406         echo "# Boot Parameter:${bootParameter}"
407 }
408 putConfigurationFile()
409 {
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}
416         fi
417         putConfigurationDirective "braille-device" "${device}"
418         }
419         [ -n "${textTable}" ] && putConfigurationDirective "text-table" "${textTable}"
420         finalizeConfigurationFile
421 }
422 parseBootParameter()
423 {
424         bootParameter="${bootParameter} ${1}"
425         number=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
431                         case "${number}" in
432                             1) brailleDriver="${operand}";;
433                             2) brailleDevice="${operand}";;
434                             3) textTable="${operand}";;
435                         esac
436                 fi
437                 number="`expr ${number} + 1`"
438         done
439 }
440 putBootParameter()
441 {
442         parseBootParameter "${1}"
443         putConfigurationFile
444 }
445 parseBootCommand()
446 {
447         found=false
448         while [ "${#}" -gt 0 ]; do
449                 case "${1}" in
450                     "brltty="*)
451                         found=true
452                         parseBootParameter "${1#*=}"
453                         ;;
454                 esac
455                 shift
456         done
457         "${found}" && putConfigurationFile
458 }
459
460 brailleDriver=""
461 brailleDevice=""
462 textTable=""
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}"
470 fi
471 exit 0
472 )
473
474 %post   -n brlapi -p /sbin/ldconfig
475 %postun -n brlapi -p /sbin/ldconfig
476
477 %files
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*
527
528 %files -n brlapi
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
532
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
540 %{_mandir}/man3/*
541
542 %files -n brlapi-static
543 %defattr(644,root,root,755)
544 %{_libdir}/libbrlapi.a
545
546 %if %{with apidocs}
547 %files -n brlapi-apidocs
548 %defattr(644,root,root,755)
549 %doc Documents/BrlAPIref/html/*
550 %endif
551
552 %if %{with java}
553 %files -n brlapi-java
554 %defattr(644,root,root,755)
555 %{_libdir}/java/libbrlapi_java.so
556 %{_javadir}/brlapi.jar
557 %endif
558
559 %if %{with python}
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
564 %endif
565
566 %if %{with tcl}
567 %files -n brlapi-tcl
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
572 %endif
This page took 0.155547 seconds and 4 git commands to generate.