# @configure_input@
###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2014 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any
# later version. Please see the file LICENSE-GPL for details.
#
# Web Page: http://mielke.cc/brltty/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

Name: @PACKAGE_TARNAME@
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Vendor: The BRLTTY Developers
Packager: Dave Mielke <dave@mielke.cc>
URL: @PACKAGE_URL@
Source: @PACKAGE_URL@/archive/%{name}-%{version}.tar.gz

BuildRoot: %{_tmppath}/%{name}-%{version}-InstallRoot
%define _bindir /bin
%define _sbindir /sbin
%define _libdir /lib
%define _sysconfdir /etc
%define _systemddir /usr/lib/systemd/system

Requires: libicu

BuildRequires: /bin/sh
BuildRequires: /usr/bin/env
BuildRequires: autoconf >= 2.53
BuildRequires: make
BuildRequires: gcc
BuildRequires: coreutils
BuildRequires: binutils
BuildRequires: /usr/bin/awk
BuildRequires: glibc-devel
BuildRequires: tcl
BuildRequires: libicu-devel
BuildRequires: ncurses-devel
BuildRequires: linuxdoc-tools
BuildRequires: doxygen
BuildRequires: bluez-libs-devel
BuildRequires: alsa-lib-devel

AutoProv: no
Provides: brlapi-server
AutoReq: yes

Summary: Braille display driver for Linux/Unix.
%description
BRLTTY is a background process (daemon) which provides access to
the console screen (when in text mode) for a blind person using a
refreshable braille display.  It drives the braille display, and
provides complete screen review functionality.  Some speech capability
has also been incorporated.

Install this package if you use a refreshable braille display.


%package -n brltty-braille-brlapi
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

AutoProv: no
AutoReq: yes

Summary: BrlAPI braille driver for BRLTTY.
%description -n brltty-braille-brlapi
This package provides the BrlAPI braille driver for BRLTTY.

Install this package if you need to communicate with
another instance of BRLTTY which is actually in control
of the braille device.


%package -n brltty-braille-xwindow
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

BuildRequires: xorg-x11-proto-devel
BuildRequires: libX11-devel
BuildRequires: libXt-devel
BuildRequires: neXtaw-devel

AutoProv: no
AutoReq: yes

Summary: XWindow braille driver for BRLTTY.
%description -n brltty-braille-xwindow
This package provides the XWindow braille driver for BRLTTY.
This driver presents a virtual braille device within a graphical
user interface. It is primarily intended for sighted developers
who don't have access to a real braille device but still wish to
assess the accessibility of their applications.

Install this package if you would like to see how usable an
application would be by a blind person using a braille device.


%package -n brltty-speech-espeak
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: espeak

BuildRequires: espeak-devel

AutoProv: no
AutoReq: yes
Requires: espeak

Summary: eSpeak speech driver for BRLTTY.
%description -n brltty-speech-espeak
This package provides the eSpeak speech driver for BRLTTY.

Install this package if you would like to be able to use the
eSpeak text-to-speech engine.


%package -n brltty-speech-festival
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: festival

AutoProv: no
AutoReq: yes
Requires: festival

Summary: Festival speech driver for BRLTTY.
%description -n brltty-speech-festival
This package provides the Festival speech driver for BRLTTY.

Install this package if you would like to be able to use the
Festival text-to-speech engine.


%package -n brltty-speech-flite
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: flite

BuildRequires: flite-devel

AutoProv: no
AutoReq: yes
Requires: flite

Summary: Festival Lite speech driver for BRLTTY.
%description -n brltty-speech-flite
This package provides the Festival Lite speech driver for BRLTTY.

Install this package if you would like to be able to use the
Festival Lite text-to-speech engine.


%package -n brltty-speech-speechd
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: speech-dispatcher

BuildRequires: speech-dispatcher-devel

AutoProv: no
AutoReq: yes
Requires: speech-dispatcher

Summary: Speech Dispatcher speech driver for BRLTTY.
%description -n brltty-speech-speechd
This package provides the Speech Dispatcher speech driver for BRLTTY.

Install this package if you would like to be able to use the
Speech Dispatcher text-to-speech server.


%package -n brltty-screen-atspi
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: at-spi

BuildRequires: at-spi-devel

AutoProv: no
AutoReq: yes
Requires: at-spi

Summary: AT-SPI screen driver for BRLTTY.
%description -n brltty-screen-atspi
This package provides the AT-SPI screen driver for BRLTTY.

Install this package if you would like to be able to
access GTK-based applications via the Assistive
Technology Service Provider Interface.


%package -n brltty-screen-atspi2
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

Requires: dbus

BuildRequires: at-spi2-core-devel

AutoProv: no
AutoReq: yes
Requires: dbus

Summary: AT-SPI2 screen driver for BRLTTY.
%description -n brltty-screen-atspi2
This package provides the AT-SPI2 screen driver for BRLTTY.

Install this package if you would like to be able to
access graphical applications via the D-Bus port of
the Assistive Technology Service Provider Interface.


%package -n brltty-screen-screen
Version: @PACKAGE_VERSION@
Release: 1
Group: System Environment/Daemons
License: GPL

AutoProv: no
AutoReq: yes
Requires: screen

Summary: Screen screen driver for BRLTTY.
%description -n brltty-screen-screen
This package provides the Screen screen driver for BRLTTY.

Install this package if you would like to be able to
directly access session windows maintained by the
screen program.


%package -n brltty-utils
Version: @PACKAGE_VERSION@
Release: 1
Group: Development/Tools
License: GPL

BuildRequires: ncurses-devel

AutoProv: no
AutoReq: yes

Summary: Commands for maintaining BRLTTY data files.
%description -n brltty-utils
This package provides a set of commands for maintaining BRLTTY's datafiles.


%package -n brltty-devel
Version: @PACKAGE_VERSION@
Release: 1
Group: Development/Tools
License: GPL

AutoProv: no
AutoReq: yes

Summary: Headers for BRLTTY.
%description -n brltty-devel
This package provides many of the header files for BRLTTY's core, as well as
header files which define the packets and keys for several braille devices.

Install this package if you're developing or maintaining an application which
needs to (or wishes to) use functionality provided by BRLTTY's core, which
needs to interpret and/or create raw braille device packets, or which needs to
interpret key codes as delivered by BrlAPI's raw mode.


%package -n brlapi
Version: @api_release@
Release: 1
Group: System Environment/Libraries
License: LGPL

AutoProv: yes
AutoReq: yes

Summary: Appliation Programming Interface for BRLTTY.
%description -n brlapi
This package provides the run-time support for the Application
Programming Interface to BRLTTY.

Install this package if you have an application
which directly accesses a refreshable braille display.


%package -n brlapi-devel
Version: @api_release@
Release: 1
Group: Development/Libraries
License: LGPL

AutoProv: yes
AutoReq: yes

Summary: Headers, static archive, and documentation for BrlAPI.
%description -n brlapi-devel
This package provides the header files, static archive, shared object
linker reference, and reference documentation for BrlAPI (the
Application Programming Interface to BRLTTY).  It enables the
implementation of applications which take direct advantage of a
refreshable braille display in order to present information in ways
which are more appropriate for blind users and/or to provide user
interfaces which are more specifically atuned to their needs.

Install this package if you're developing or maintaining an application
which directly accesses a refreshable braille display.


%package -n brlapi-java
Version: @api_release@
Release: 1
Group: System Environment/Libraries
License: LGPL

BuildRequires: gcc-java

AutoProv: no
AutoReq: yes

Summary: Java bindings for BrlAPI.
%description -n brlapi-java
This package provides the Java bindings for BrlAPI,
which is the Application Programming Interface to BRLTTY.

Install this package if you have a Java application
which directly accesses a refreshable braille display.


%package -n brlapi-ocaml
Version: @api_release@
Release: 1
Group: System Environment/Libraries
License: LGPL

BuildRequires: ocaml
BuildRequires: ocaml-findlib

AutoProv: no
AutoReq: yes

Summary: OCaml bindings for BrlAPI.
%description -n brlapi-ocaml
This package provides the OCaml bindings for BrlAPI,
which is the Application Programming Interface to BRLTTY.

Install this package if you have an OCaml application
which directly accesses a refreshable braille display.


%package -n brlapi-python
Version: @api_release@
Release: 1
Group: System Environment/Libraries
License: LGPL

BuildRequires: python
BuildRequires: python-devel
BuildRequires: Cython

AutoProv: no
AutoReq: yes

Summary: Python bindings for BrlAPI.
%description -n brlapi-python
This package provides the Python bindings for BrlAPI,
which is the Application Programming Interface to BRLTTY.

Install this package if you have a Python application
which directly accesses a refreshable braille display.


%package -n brlapi-tcl
Version: @api_release@
Release: 1
Group: System Environment/Libraries
License: LGPL

BuildRequires: tcl
BuildRequires: tcl-devel

AutoProv: no
AutoReq: yes

Summary: Tcl bindings for BrlAPI.
%description -n brlapi-tcl
This package provides the Tcl bindings for BrlAPI,
which is the Application Programming Interface to BRLTTY.

Install this package if you have a Tcl application
which directly accesses a refreshable braille display.


%package -n brlapi-utils
Version: @api_release@
Release: 1
Group: Applications/System
License: LGPL

BuildRequires: xorg-x11-proto-devel
BuildRequires: libX11-devel
BuildRequires: libXtst-devel

AutoProv: no
AutoReq: yes

Summary: Appliation Programming Interface for BRLTTY.
%description -n brlapi-utils
This package provides a set of commands for maintaining BRLTTY's datafiles.


%prep
# %setup -n %{name}-%{version}
%setup -n @PACKAGE_TARNAME@-@PACKAGE_VERSION@

%build
%configure --disable-relocatable-install --with-install-root="${RPM_BUILD_ROOT}" --disable-gpm --without-mikropuhe --without-swift --without-theta --without-viavoice --without-libbraille --with-braille-driver=-tt,-vr
make

%install
make install install-documents install-messages
install -m 644 Documents/brltty.conf "${RPM_BUILD_ROOT}%{_sysconfdir}"
install -d "${RPM_BUILD_ROOT}%{_systemddir}"
install -m 644 Autostart/Systemd/brltty.service "${RPM_BUILD_ROOT}%{_systemddir}/brltty.service"
%find_lang %{name}

%clean
rm -fr "${RPM_BUILD_ROOT}"


%files -f %{name}.lang
%defattr(-,root,root)
%{_bindir}/brltty
%{_libdir}/brltty
%exclude %{_libdir}/brltty/libbrlttybba.so
%exclude %{_libdir}/brltty/libbrlttybxw.so
%exclude %{_libdir}/brltty/libbrlttyses.so
%exclude %{_libdir}/brltty/libbrlttysfl.so
%exclude %{_libdir}/brltty/libbrlttysfv.so
%exclude %{_libdir}/brltty/libbrlttyssd.so
%exclude %{_libdir}/brltty/libbrlttyxas.so
%exclude %{_libdir}/brltty/libbrlttyxa2.so
%exclude %{_libdir}/brltty/libbrlttyxsc.so
%{_sysconfdir}/brltty
%doc %{_mandir}/man1/brltty.1.gz
%doc %{_docdir}/*/LICENSE*
%doc %{_docdir}/*/README*
%doc %{_docdir}/*/ChangeLog
%doc %{_docdir}/*/CONTRIBUTORS
%doc %{_docdir}/*/TODO
%doc %{_docdir}/*/brltty.conf
%doc %{_docdir}/*/KeyTables
%doc %{_docdir}/*/Manual-BRLTTY
%config(noreplace) %verify(not size md5 mtime) %{_sysconfdir}/brltty.conf
%{_systemddir}/brltty.service

%files -n brltty-braille-brlapi
%{_libdir}/brltty/libbrlttybba.so

%files -n brltty-braille-xwindow
%{_libdir}/brltty/libbrlttybxw.so

%files -n brltty-speech-espeak
%{_libdir}/brltty/libbrlttyses.so

%files -n brltty-speech-festival
%{_libdir}/brltty/libbrlttysfv.so

%files -n brltty-speech-flite
%{_libdir}/brltty/libbrlttysfl.so

%files -n brltty-speech-speechd
%{_libdir}/brltty/libbrlttyssd.so

%files -n brltty-screen-atspi
%{_libdir}/brltty/libbrlttyxas.so

%files -n brltty-screen-atspi2
%{_libdir}/brltty/libbrlttyxa2.so

%files -n brltty-screen-screen
%{_libdir}/brltty/libbrlttyxsc.so

%files -n brltty-utils
%{_bindir}/brltty-*

%files -n brltty-devel
%{_includedir}/brltty

%files -n brlapi
%defattr(-,root,root)
%{_libdir}/libbrlapi.so.*
%doc %{_docdir}/*/Manual-BrlAPI

%files -n brlapi-java
@JAVA_JAR_DIR@/*
@JAVA_JNI_DIR@/*

%files -n brlapi-ocaml
@OCAMLLIB@/brlapi

%files -n brlapi-python
@PYTHON_SITE_PKG@/[bB]rlapi[-.]*

%files -n brlapi-tcl
@TCL_DIR@/brlapi-@api_release@/libbrlapi_tcl.so
@TCL_DIR@/brlapi-@api_release@/pkgIndex.tcl

%files -n brlapi-devel
%defattr(-,root,root)
%{_libdir}/libbrlapi.a
%{_libdir}/libbrlapi.so
%{_includedir}/brlapi.h
%{_includedir}/brlapi_*.h
%doc %{_mandir}/man3/*
%doc %{_docdir}/*/BrlAPIref

%files -n brlapi-utils
%{_bindir}/xbrlapi
%{_bindir}/eutp
%{_bindir}/vstp
%doc %{_mandir}/man1/xbrlapi.1.gz
%doc %{_mandir}/man1/eutp.1.gz
%doc %{_mandir}/man1/vstp.1.gz
/usr/share/gdm/greeter/autostart/xbrlapi.desktop


%changelog
* Thu Nov 6 2014 Dave Mielke <dave@mielke.cc> 5.2
+  General Fixes:
      Unexpected cursor tracking when switching virtual consoles has been resolved.
      The PASSPS2 command has (finally) been implemented.
      An infrastructure for defining custom commands has been added.
      A braille update is now forced when the braille device comes back online.
      All speech-related delays have been removed.
      Language profiles have been implemented (see README.Profiles).
      The following log categories have been added:
         brldrv  Braille Driver Events
         spkdrv  Speech Driver Events
         scrdrv  Screen Driver Events
         all     a pseudo-category that enables all categories
         -name   disable a log category (especially useful after specifying all)
+  New Commands:
      BRLKBD                 Set the braille keyboard enabled/disabled.
      PASTE_HISTORY          paste from the clipboard's history
      SET_TEXT_TABLE         directly select a text table
      SET_ATTRIBUTES_TABLE   directly select an attributes table
      SET_CONTRACTION_TABLE  directly select a contraction table
      SET_KEYBOARD_TABLE     directly select a keyboard table
      SET_LANGUAGE_PROFILE   directly select a language profile
      ALERT                  play a specific alert tune (used internally)
+  New Braille Drivers:
      The Hedo [hd] driver has been added (MobilLine and ProfilLine models).
+  Alva Braille Driver:
      The BC's Windows key has been bound to the Escape key.
      Key Repeat and Secondary Cursor Row Emulation are now automatically disabled.
      The driver has been updated to use newer core facilities.
+  BrailleMemo Braille Driver:
      The key bindings have been changed.
      The BM Smart can now connect via USB.
+  BrailleNote Braille Driver:
      The APEX is now recognized when connected via USB.
      The APEX routing keys are now handled.
      Text input in Input Mode is now supported.
+  EuroBraille Braille Driver:
      The Protocol= parameter now recognizes "esysiris".
      A number of USB connectivity issues have been resolved.
+  FreedomScientific Braille Driver:
      A number of USB connectivity issues have been resolved.
+  HandyTech Braille Driver:
      The key combination LeftSpace+Dot7 has been bound to the Backspace key.
      Support for the following new models has been added:
         Active Star 40, Modular Connect 88, Connect Braille 40
+  Iris Braille Driver:
      A possible crash when woken up in packet forward mode has been resolved.
      Key bindings have been added for the (new) PASTE_HISTORY command.
      The LatchDelay= parameter has been added.
      The driver has been updated to use newer core facilities.
+  Metec Braille Driver:
      Support for status cells has been added.
      The driver has been updated to use newer core facilities.
+  Papenmeier Braille Driver:
      Support for the Live and Live+ models has been added.
      Support for keyboards in Windows mode has been added.
      The two braille keyboard thumb keys have been remapped:
         LeftThumb now functions as the control key.
         RightThumb now functions as the left alt key.
+  TSI Braille Driver:
      Key tables (rather than hard-coded bindings) are now used.
      The repeat delay and rate can now be controlled from the preferences menu.
      The HighBaud=yes/no parameter has been added.
      The SetBaud= parameter has been added.
      The driver has been updated to use newer core facilities.
+  BrlAPI Updates:
      Now at release 0.6.3.
      Support for the XDG_VTNR environment variable has been added.
+  USB Updates:
      All endpoint I/O is now deferred until after the strings have been read.
      The strings are now encoded in UTF-8 (rather than in Latin1).
      Asynchronous endpoint input errors are now detected.
      Detaching the kernel's driver via libusb is now supported.
      Detaching the kernel's driver via libusb-1.0 is now supported.
      Reading from an endpoint via libusb-1.0 now works again.
      Native Linux support now works on big endian platforms.
      The braille driver is restarted on Linux if the serial adapter is unplugged.
+  Preferences Menu Changes:
      The "Save on Exit" selector has been moved back to the top of the root menu.
      The MENU_PREV_LEVEL command when in the root menu now exits the menu.
      File extensions are no longer shown in the table selectors.
      The Keyboard Table selector has been added.
      The Profiles submenu has been added.
      The Build Information advanced submenu has been added.
      The Tools advanced submenu has been added.
+  Text Tables:
      no-oub (Norwegian) has been renamed to no-oup.
      no-oup is now the default Norwegian table.
+  Contraction Tables:
      Unicode combining characters are now handled.
      Best fit (rather than explicit) character matching is now done.
      The "contraction" opcode no longer applies if even one non-punctuation
         character either precedes or follows the sequence.
      Updated Tables:
         de-kurzschrift (German)
         en-us-g2 (English US Grade 2)
+  Key Tables:
      Contexts can now have meaningful names.
      Including a subtable can no longer change the context of the including table.
+  Android Changes:
      The version code and version name are now set.
      The occasional crash on service startup has been resolved.
      Bluetooth devices that don't implement service discovery are now supported.
+  DOS Changes:
      The configuration file has been renamed to brltty.cfg (from brltty.con).
      The log file is now created in BRLTTY's top-level directory.
      The log file is now written cleanly.
      The "page fault on program termination" problem has been resolved.
      The mkdosarc and mkdostools scripts have been added.
+  Windows Changes:
      The mkwin script has been made much more flexible.
      brltty.inf has been renamed to brltty-libusb.inf.
      brltty.nsi has been renamed to libusb.nsi.
+  Build Changes:
      The --with-keyboard-package option has been renamed to --with-kbd-package.
      The PKG_CONFIG environment variable (pkg-config command path) is honoured.
      A patch for screen-4.2.1 has been added.
      The tables have been moved into separate subdirectories of /etc/brltty/:
         Attributes/   attributes tables
         Contraction/  contraction tables
         Input/        braille driver tables
         Keyboard/     keyboard tables
         Text/         text tables

