LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File brltty.spec of Package brltty (Project openSUSE:Factory)

#
# spec file for package brltty
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl/tcl%{tcl_version}}
%define api_version 0.5.6

Name:           brltty
Version:        4.3
Release:        0
# FIXME libbraille driver when libbraille is in factory
Summary:        Braille display driver for Linux/Unix
License:        GPL-2.0+
Group:          System/Daemons
Url:            http://mielke.cc/brltty/
Source0:        %{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM brltty-cppflags.patch -- Taken from Fedora, to fix build of java bindings
Patch0:         brltty-cppflags.patch
# PATCH-FIX-UPSTREAM brltty-python-prefix.patch vuntz@opensuse.org -- Correctly install the python bindings
Patch1:         brltty-python-prefix.patch
# PATCH-FIX-OPENSUSE brltty-java-jni-dir.patch vuntz@opensuse.org -- Install java file in correct paths (openSUSE use %{_lib})
Patch2:         brltty-java-jni-dir.patch

BuildRequires:  alsa-devel
BuildRequires:  at-spi-devel
BuildRequires:  bison
BuildRequires:  bluez-devel
BuildRequires:  dbus-1-devel
BuildRequires:  espeak-devel
BuildRequires:  fdupes
%if 0%{?suse_version} > 1130
BuildRequires:  gpm-devel
%else
BuildRequires:  gpm
%endif
BuildRequires:  java-devel
BuildRequires:  jpackage-utils
BuildRequires:  libbraille-devel
BuildRequires:  libicu-devel
BuildRequires:  libspeechd-devel
BuildRequires:  libusb-1_0-devel
BuildRequires:  ncurses-devel
BuildRequires:  ocaml
BuildRequires:  pyrex
BuildRequires:  python-devel
# BuildRequires:  subversion
BuildRequires:  tcl-devel
BuildRequires:  xorg-x11-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

%package driver-at-spi
Summary:        AT-SPI driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:at-spi)

%description driver-at-spi
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the AT-SPI screen driver.

%package driver-at-spi2
Summary:        AT-SPI 2 driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:at-spi2-core)

%description driver-at-spi2
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the AT-SPI 2 screen driver.

%package driver-brlapi
Summary:        BrlAPI driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:libbrlapi0_5)

%description driver-brlapi
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the BrlAPI braille driver.

%package driver-libbraille
Summary:        Libbraille driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:libbraille)

%description driver-libbraille
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the libbraille braille driver.

%package driver-espeak
Summary:        eSpeak driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:espeak)

%description driver-espeak
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the eSpeak speech driver.

%package driver-speech-dispatcher
Summary:        Speech Dispatcher driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:libspeechd2)

%description driver-speech-dispatcher
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the Speech Dispatcher speech driver.

%package driver-xwindow
Summary:        XWindow driver for BRLTTY
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(brltty:xorg-x11-server)

%description driver-xwindow
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contains the XWindow braille driver.

%package utils
Summary:        Braille display driver for Linux/Unix
Group:          System/Daemons
Requires:       %{name} = %{version}

%description utils
BRLTTY is a background process (daemon) which provides access to the
Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display and provides
complete screen review functionality.

This package contain various utilities related to BRLTTY.

%package -n xbrlapi
Summary:        X BrlAPI helper
Group:          System/Daemons
Requires:       %{name} = %{version}
Supplements:    packageand(libbrlapi0_5:xorg-x11-server)

%description -n xbrlapi
The xbrlapi utility is a helper to have BrlAPI work on a X system.

%package -n libbrlapi0_5
Summary:        Library to use BRLTTY from applications
Group:          System/Daemons
Recommends:     %{name}

%description -n libbrlapi0_5
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.

%package -n brlapi-devel
Summary:        Library to use BRLTTY from applications -- Development Files
Group:          System/Daemons
Requires:       libbrlapi0_5 = %{version}

%description -n brlapi-devel
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.

%package -n brlapi-java
Summary:        Library to use BRLTTY from applications -- Java Bindings
Group:          System/Daemons
Requires:       java
Requires:       jpackage-utils

%description -n brlapi-java
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.

%package -n ocaml-brlapi
Summary:        Library to use BRLTTY from applications -- OCaml Bindings
Group:          System/Daemons
Requires:       ocaml

%description -n ocaml-brlapi
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.

%package -n python-brlapi
Summary:        Library to use BRLTTY from applications -- Python Bindings
Group:          System/Daemons
%py_requires

%description -n python-brlapi
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.

%package -n tcl-brlapi
Summary:        Library to use BRLTTY from applications -- Tcl Bindings
Group:          System/Daemons
Requires:       tcl

%description -n tcl-brlapi
BrlAPI is a service provided by the brltty daemon.

Its purpose is to allow programmers to write applications that take
advantage of a braille terminal in order to deliver a blind user
suitable information for his/her specific needs.

While an application communicates with the braille terminal, everything
brltty sends to the braille terminal in the application's console is
ignored, whereas each piece of data coming from the braille terminal is
sent to the application, rather than to brltty.


%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1

%build
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
for i in -I%{_libdir}/jvm/java/include{,/linux}; do
      java_inc="$java_inc $i"
done
%configure  CPPFLAGS="$java_inc" \
        --disable-static \
        --with-install-root="%{buildroot}" \
        --disable-stripping
%__make -j1 # not parallel build safe

%install
%makeinstall
install -D -m644 Documents/brltty.conf %{buildroot}%{_sysconfdir}/brltty.conf
%{__rm} %{buildroot}%{_libdir}/libbrlapi.a
%{__rm} %{buildroot}%{_libdir}/ocaml/brlapi/libbrlapi_stubs.a
# fix missing executable bits
test ! -x %{buildroot}%{_bindir}/brltty-config
chmod a+x %{buildroot}%{_bindir}/brltty-config
# clean up the manuals:
rm Documents/Manual-*/*/{*.mk,*.made,Makefile*,*.sgml,*-[0-9]*.html}
mv Documents/BrlAPIref/html Documents/BrlAPIref/BrlAPIref
# group all the documentation in a doc subdirectory:
find . \( -path ./doc -o -path ./Documents \) -prune -o \
  \( -name 'README*' -o -name '*.txt' -o -name '*.html' -o \
     -name '*.sgml' -o -name '*.patch' -o \
     \( -path './Bootdisks/*' -type f -perm +ugo=x \) \) -print |
while read file; do
   mkdir -p doc/${file%/*} && cp -rp $file doc/$file || exit 1
done
%fdupes -s %{buildroot}%{_mandir}

# fix brp-tcl wrong location for Tcl files
%{__mkdir} -p %{buildroot}%{tcl_sitearch}
%{__mv} %{buildroot}%{_libdir}/brlapi-%{api_version} %{buildroot}%{tcl_sitearch}/

%clean
%{__rm} -rf %{buildroot}

%post -n libbrlapi0_5 -p /sbin/ldconfig

%postun -n libbrlapi0_5 -p /sbin/ldconfig

%files
%defattr(-, root, root)
%doc LICENSE-GPL LICENSE-LGPL README Documents/ChangeLog Documents/CONTRIBUTORS Documents/HISTORY Documents/README.Bluetooth Documents/TODO
%doc Documents/Manual-BRLTTY/
%doc doc/*
%config(noreplace) %{_sysconfdir}/brltty.conf
%{_sysconfdir}/brltty/
%{_bindir}/brltty
%{_bindir}/brltty-config
%{_bindir}/brltty-install
%{_libdir}/brltty/
%doc %{_mandir}/man1/brltty.1*
%exclude %{_libdir}/brltty/libbrlttybba.so
%exclude %{_libdir}/brltty/libbrlttyblb.so
%exclude %{_libdir}/brltty/libbrlttybxw.so
%exclude %{_libdir}/brltty/libbrlttyses.so
%exclude %{_libdir}/brltty/libbrlttyssd.so
%exclude %{_libdir}/brltty/libbrlttyxa2.so
%exclude %{_libdir}/brltty/libbrlttyxas.so

%files driver-at-spi
%defattr(-, root, root)
%{_libdir}/brltty/libbrlttyxas.so

%files driver-at-spi2
%defattr(-, root, root)
%{_libdir}/brltty/libbrlttyxa2.so

%files driver-brlapi
%defattr(-, root, root)
%doc Drivers/Braille/BrlAPI/README
%{_libdir}/brltty/libbrlttybba.so

%files driver-libbraille
%defattr(-, root, root)
%{_libdir}/brltty/libbrlttyblb.so

%files driver-espeak
%defattr(-, root, root)
%doc Drivers/Speech/eSpeak/README
%{_libdir}/brltty/libbrlttyses.so

%files driver-speech-dispatcher
%defattr(-, root, root)
%doc Drivers/Speech/SpeechDispatcher/README
%{_libdir}/brltty/libbrlttyssd.so

%files driver-xwindow
%defattr(-, root, root)
%doc Drivers/Braille/XWindow/README
%{_libdir}/brltty/libbrlttybxw.so

%files utils
%defattr(-, root, root)
%{_bindir}/vstp
%doc %{_mandir}/man1/vstp.1*

%files -n xbrlapi
%defattr(-, root, root)
%{_bindir}/xbrlapi
%doc %{_mandir}/man1/xbrlapi.1*

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

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

%files -n brlapi-java
%defattr(-, root, root)
%{_jnidir}/libbrlapi_java.so
%{_javadir}/brlapi.jar

%files -n ocaml-brlapi
%defattr(-, root, root)
%{_libdir}/ocaml/brlapi/
%{_libdir}/ocaml/stublibs/dllbrlapi_stubs.so*

%files -n python-brlapi
%defattr(-, root, root)
%{python_sitearch}/brlapi.so
%{python_sitearch}/Brlapi-*.egg-info

%files -n tcl-brlapi
%defattr(-, root, root)
%{tcl_sitearch}/brlapi-%{api_version}/

%changelog