# TODO:
-# - check BR
-# - more packages (bindings)
+# - what is that huge %post script?
+# - ocaml bcond is useless now:
+# Cannot find ocamlfind.
+# BrlAPI Caml bindings will be compiled but not installed.
+# - check java stuff
+# - create bcond to build with minimal deps (wo ncurses,gpm,at-spi*)
#
+# warning: Installed (but unpackaged) file(s) found:
+# /usr/lib/ocaml/brlapi/META
+# /usr/lib/ocaml/brlapi/brlapi.cma
+# /usr/lib/ocaml/brlapi/brlapi.cmi
+# /usr/lib/ocaml/brlapi/brlapi.cmxa
+# /usr/lib/ocaml/brlapi/brlapi.mli
+# /usr/lib/ocaml/brlapi/libbrlapi_stubs.a
+# /usr/lib/ocaml/stublibs/dllbrlapi_stubs.so
+# /usr/lib/ocaml/stublibs/dllbrlapi_stubs.so.owner
+# /usr/share/man/man1/xbrlapi.1.gz
+#
+# Conditional build:
+%bcond_without apidocs # documentation generated with doxygen
+%bcond_with java # java bindings
+%bcond_with ocaml # ocaml bindings (NFY)
+%bcond_without python # python bindings
+%bcond_without tcl # tcl bindings
+%bcond_without x # build X11-based utilities
+#
+%include /usr/lib/rpm/macros.java
Summary: Braille display driver for Linux/Unix
Summary(pl.UTF-8): Sterownik do wyświetlaczy Braille'a
Name: brltty
-Version: 3.9
-Release: 1
+Version: 4.2
+Release: 0.1
Group: Daemons
License: GPL
-URL: http://mielke.cc/brltty/
Source0: http://mielke.cc/brltty/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 7ce54ba2d38b7c220870e8c781f36743
-BuildRequires: autoconf >= 2.53
+# Source0-md5: 192af5e634210616928496645e392097
+Patch0: %{name}-stat.patch
+URL: http://mielke.cc/brltty/
+BuildRequires: at-spi-devel
+BuildRequires: autoconf >= 2.62
BuildRequires: automake
BuildRequires: bison
#BuildRequires: bluez-devel
-#BuildRequires: doxygen
-#BuildRequires: libtool
-#BuildRequires: gpm-devel
-#BuildRequires: java-?
-#BuildRequires: libusb-devel
-#BuildRequires: ncurses-devel
-#BuildRequires: ocaml-devel
-#BuildRequires: pkgconfig
-#BuildRequires: python-devel
-#BuildRequires: tcl-devel
-#BuildRequires: xorg-lib-libX*
+%{?with_apidocs:BuildRequires: doxygen}
+BuildRequires: gpm-devel
+%{?with_java:BuildRequires: jdk}
+BuildRequires: ncurses-devel
+%{?with_ocaml:BuildRequires: ocaml}
+BuildRequires: pkgconfig
+%{?with_python:BuildRequires: python-Pyrex}
+%{?with_java:BuildRequires: rpm-javaprov}
+%{?with_python:BuildRequires: rpm-pythonprov}
+%{?with_tcl:BuildRequires: tcl}
+%{?with_x:BuildRequires: xorg-lib-libXaw-devel}
+%{?with_x:BuildRequires: xorg-lib-libXtst-devel}
+# libbrlttyblb
+#BR: libbraile-devel (-lllibbraile <braille.h>)
+# libbrlttysfl
+BuildRequires: flite-devel
+# libbrlttysmp
+#BR: Mikropuhe-devel (-lmikropuhe <mpwrfile.h>)
+# libbrlttyssd
+#BuildRequires: speech-dispatcher-devel
+# libbrlttyssw
+#BR: Swift-devel (-lswift <swift.h>)
+# libbrlttysth
+#BR: Theta-devel (-ltheta <theta.h>)
+# libbrlttysvv
+#BR: ViaVoice-devel (-lviavoice <eci.h>)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%description -n brlapi-static -l pl.UTF-8
Ten pakiet zawiera statyczną wersję biblioteki BrlAPI.
+%package -n brlapi-apidocs
+Summary: BrlAPI documentation
+Summary(pl.UTF-8): Documentacja BrlAPI
+Group: Documentation
+
+%description -n brlapi-apidocs
+Documentation for BrlAPI in HTML format generated from brltty
+sources by doxygen.
+
+%description -n brlapi-apidocs -l pl.UTF-8
+Dokumentacja BrlAPI w formacie HTML generowane ze
+źrodeł brltty przez doxygen.
+
+%package -n java-brlapi
+Summary: BrlAPI library for Java
+Summary(pl.UTF-8): Biblioteka BrlAPI dla Javy
+Group: Libraries
+Requires: brlapi = %{version}-%{release}
+
+%description -n java-brlapi
+BrlAPI library for Java.
+
+%description -n java-brlapi -l pl.UTF-8
+Biblioteka BrlAPI dla Javy.
+
+%package -n python-brlapi
+Summary: Python interface to BrlAPI
+Summary(pl.UTF-8): Pythonowy interfejs do BrlAPI
+Group: Libraries
+Requires: brlapi = %{version}-%{release}
+
+%description -n python-brlapi
+Python interface to BrlAPI.
+
+%description -n python-brlapi -l pl.UTF-8
+Pythonowy interfejs do BrlAPI.
+
+%package -n brlapi-tcl
+Summary: BrlAPI library for Tcl
+Summary(pl.UTF-8): Biblioteka BrlAPI dla Tcl
+Group: Libraries
+Requires: brlapi = %{version}-%{release}
+
+%description -n brlapi-tcl
+BrlAPI library for Tcl.
+
+%description -n brlapi-tcl -l pl.UTF-8
+Biblioteka BrlAPI dla Tcl.
+
%prep
%setup -q
+%patch0 -p1
%build
-%{__aclocal}
-%{__autoconf}
-cp -f /usr/share/automake/config.sub acdir
+CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
%configure \
--with-install-root="$RPM_BUILD_ROOT" \
- --disable-tainted-components \
+ %{!?with_java:--disable-java-bindings} \
--enable-api
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install
+%{__make} -j1 install
install Documents/brltty.conf $RPM_BUILD_ROOT%{_sysconfdir}
%clean
%files
%defattr(644,root,root,755)
%doc Documents/{Manual-BRLTTY/English/BRLTTY*,ChangeLog,HISTORY,TODO}
-%doc doc/{Bindings,Bootdisks,BrailleDrivers,BrailleTables,ContractionTables,Patches,README,SpeechDrivers}
+%doc doc/{Bindings,Bootdisks,Drivers,Patches,Tables,README,nsistrings.txt}
%attr(755,root,root) %{_bindir}/brltty
%attr(755,root,root) %{_bindir}/brltty-install
%attr(755,root,root) %{_bindir}/brltty-config
%attr(755,root,root) %{_bindir}/vstp
-#attr(755,root,root) %{_bindir}/xbrlapi
+%{?with_x:%attr(755,root,root) %{_bindir}/xbrlapi}
%dir %{_libdir}/brltty
%attr(755,root,root) %{_libdir}/brltty/libbrlttybal.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttybat.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttybvo.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttybvr.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttybvs.so
+%{?with_x:%attr(755,root,root) %{_libdir}/brltty/libbrlttybxw.so}
%attr(755,root,root) %{_libdir}/brltty/libbrlttysal.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttysbl.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttyscb.so
-%attr(755,root,root) %{_libdir}/brltty/libbrlttyses.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttysfl.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttysfv.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttysgs.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttyxas.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttyxlx.so
%attr(755,root,root) %{_libdir}/brltty/libbrlttyxsc.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttybhm.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttybmt.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttybpg.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttybsk.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttysxs.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttyses.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttyxa2.so
+%attr(755,root,root) %{_libdir}/brltty/libbrlttyssd.so
+
%{_sysconfdir}/brltty
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/brltty.conf
%{_mandir}/man1/brltty.1*
%{_mandir}/man1/vstp.1*
+%{?with_x:%{_mandir}/man1/xbrlapi.1*}
%files -n brlapi
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libbrlapi.so.0.5
-%attr(755,root,root) %{_libdir}/libbrlapi.so.0.5.1
-%doc Documents/Manual-BrlAPI/English/BrlAPI*
+%attr(755,root,root) %{_libdir}/libbrlapi.so.0.5.5
+%attr(755,root,root) %ghost %{_libdir}/libbrlapi.so.0.5
%files -n brlapi-devel
%defattr(644,root,root,755)
-%doc Documents/BrlAPIref Documents/README.Gnopernicus
+%doc Documents/Manual-BrlAPI/English/BrlAPI*
%attr(755,root,root) %{_libdir}/libbrlapi.so
%{_includedir}/brltty
%{_includedir}/brlapi*.h
%files -n brlapi-static
%defattr(644,root,root,755)
%{_libdir}/libbrlapi.a
+
+%if %{with apidocs}
+%files -n brlapi-apidocs
+%defattr(644,root,root,755)
+%doc Documents/BrlAPIref/html/*
+%endif
+
+%if %{with java}
+%files -n java-brlapi
+%defattr(644,root,root,755)
+%{_libdir}/java/libbrlapi_java.so
+%{_javadir}/brlapi.jar
+%endif
+
+%if %{with python}
+%files -n python-brlapi
+%defattr(644,root,root,755)
+%{py_sitedir}/Brlapi-*.egg-info
+%attr(755,root,root) %{py_sitedir}/brlapi.so
+%endif
+
+%if %{with tcl}
+%files -n brlapi-tcl
+%defattr(644,root,root,755)
+%dir %{_libdir}/brlapi-0.5.5
+%attr(755,root,root) %{_libdir}/brlapi-0.5.5/libbrlapi_tcl.so
+%{_libdir}/brlapi-0.5.5/pkgIndex.tcl
+%endif