Sync from SUSE:SLFO:Main brltty revision 4f4a71d93c1970bde229ffff4f11634a

This commit is contained in:
Adrian Schröter 2025-02-20 09:22:40 +01:00
parent 4097233765
commit c83bc8f1ca
8 changed files with 260 additions and 151 deletions

View File

@ -24,3 +24,16 @@ to be able to have orca interact with the Braille display. It also
disallows remote users from interacting with the display. If you would
like to change this behavior, then you can edit the api-parameters
directive in /etc/brltty.conf.
Notes on Security
========================================================================
The brltty daemon runs as a dedicated service user and group account named
"brltty". While this looks got from afar, the daemon actually keeps a lot of
privileges, most notably among them:
- root group membership.
- Linux capabilities CAP_SYS_ADMIN and CAP_MKNOD.
Therefore the SUSE security team currently considers the brltty service to be
equivalent to root.

BIN
brltty-6.5.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
brltty-6.7.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,12 @@
--- brltty-6.6/Bindings/Java/Makefile.in 2024-09-26 17:16:12.903477065 +0200
+++ brltty-6.6/Bindings/Java/Makefile.in 2024-09-26 17:17:37.427440398 +0200
@@ -52,7 +52,8 @@
jar: $(JAVA_JAR_FILE)
$(JAVA_JAR_FILE): classes.made
- $(JAR) cfm $@ $(SRC_DIR)/manifest -C classes .
+ $(JAR) --date="$$(date -u -d @$${SOURCE_DATE_EPOCH:-$$(date +%s)} +%Y-%m-%dT%H:%M:%SZ)" \
+ --create --file=$@ --manifest=$(SRC_DIR)/manifest -C classes .
JAVAC_LINT_OPTIONS = cast,deprecation,fallthrough,finally,overrides,rawtypes,unchecked

View File

@ -1,6 +1,6 @@
diff -urp brltty-6.5.orig/Autostart/Udev/Makefile.in brltty-6.5/Autostart/Udev/Makefile.in
--- brltty-6.5.orig/Autostart/Udev/Makefile.in 2022-05-21 02:30:08.000000000 -0500
+++ brltty-6.5/Autostart/Udev/Makefile.in 2022-06-11 18:32:41.460215052 -0500
diff -urp brltty-6.6.orig/Autostart/Udev/Makefile.in brltty-6.6/Autostart/Udev/Makefile.in
--- brltty-6.6.orig/Autostart/Udev/Makefile.in 2023-07-17 09:55:47.000000000 -0500
+++ brltty-6.6/Autostart/Udev/Makefile.in 2023-07-27 16:08:46.862439161 -0500
@@ -17,7 +17,7 @@
###############################################################################
@ -9,5 +9,4 @@ diff -urp brltty-6.5.orig/Autostart/Udev/Makefile.in brltty-6.5/Autostart/Udev/M
+UDEV_PARENT_LOCATION = /usr/lib
#UDEV_PARENT_LOCATION = $(sysconfdir)
UDEV_SCRIPTS_DIRECTORY = $(INSTALL_ROOT)$(SCRIPTS_DIRECTORY)
Only in brltty-6.5.orig/Autostart/Udev: .Makefile.in.swp
UDEV_RULES_LOCATION = $(UDEV_PARENT_LOCATION)/udev/rules.d

View File

@ -1,3 +1,86 @@
-------------------------------------------------------------------
Thu Oct 17 18:22:43 UTC 2024 - Michael Gorse <mgorse@suse.com>
- Update to version 6.7:
+ Too many changes; please read ChangeLog
- Drop e6707d5e.patch: fixed upstream.
- API version is now 0.8.6.
-------------------------------------------------------------------
Thu Sep 26 15:29:27 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* brltty-reproducible-jar-mtime.patch
+ Use SOURCE_DATE_EPOCH for reproducible jar mtime
+ Applied if building with Java >= 17
-------------------------------------------------------------------
Wed Sep 25 10:26:16 UTC 2024 - Reinhard Max <max@suse.com>
- For the correct generation of pkgIndex.tcl it is required that
libbrlapi_tcl can runtime-link to libbrlapi at install time.
Set LD_LIBRARY_PATH to allow that.
-------------------------------------------------------------------
Tue Sep 24 13:27:31 UTC 2024 - Reinhard Max <max@suse.com>
- Work around a syntactic change to TCL_PACKAGE_PATH to fix build
with Tcl 8.6.15.
-------------------------------------------------------------------
Mon Jun 10 22:17:14 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
- Add %python3_fix_shebang_path to fix binaries dependency on
/usr/bin/python3
-------------------------------------------------------------------
Wed Dec 13 11:10:22 UTC 2023 - Matthias Gerstner <matthias.gerstner@suse.com>
- README.SUSE: add documentation about the state of security of the brltty
daemon (bsc#1214158).
-------------------------------------------------------------------
Tue Dec 12 12:12:12 UTC 2023 - ohering@suse.de
- Use ocaml-rpm-macros to track OCaml ABI
- Reduce amount of rpmlint warnings with brltty.rpmlintrc
-------------------------------------------------------------------
Thu Nov 30 22:22:22 UTC 2023 - olaf@aepfle.de
- Disable parallel build again
-------------------------------------------------------------------
Wed Aug 16 12:35:59 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Add e6707d5e.patch: brlapi: Fix python crash on connection error.
Cython 3.0 started using the new Python object finalization APIs
from PEP 442.
-------------------------------------------------------------------
Thu Jul 27 21:09:09 UTC 2023 - Michael Gorse <mgorse@suse.com>
- Update to version 6.6:
+ Too many changes; please read ChangeLog
- Update api_version.
- Rebase brltty-udev-dir.patch.
-------------------------------------------------------------------
Thu Jun 20 20:20:20 UTC 2023 - olaf@aepfle.de
- Use conditionals for sysusers_requires to allow quilt setup
- Remove workarounds for old TCL
- Enable parallel build again
-------------------------------------------------------------------
Tue Jun 20 15:14:57 UTC 2023 - Franck Bui <fbui@suse.com>
- Don't use %tmpfiles_create_package anymore.
This macro cannot work on transactional systems. However this macro was
supposed to be used only when the tmpfiles stuff was needed in advance, which
doesn't seem to be the case for brltty.
-------------------------------------------------------------------
Sat Dec 17 09:09:09 UTC 2022 - olaf@aepfle.de

2
brltty.rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
addFilter("devel-file-in-non-devel-package")
addFilter("static-library-without-debuginfo")

View File

@ -1,7 +1,7 @@
#
# spec file for package brltty
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,13 +16,12 @@
#
%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl/tcl%{tcl_version}}
%define api_version 0.8.4
%global _lto_cflags %_lto_cflags -ffat-lto-objects
%define api_version 0.8.6
%define sover 0_8
%define soname libbrlapi%{sover}
Name: brltty
Version: 6.5
Version: 6.7
Release: 0
# FIXME libbraille driver when libbraille is in factory
Summary: Braille display driver for Linux/Unix
@ -30,11 +29,13 @@ License: LGPL-2.1-or-later
Group: System/Daemons
URL: https://brltty.app/
Source0: https://brltty.app/archive/%{name}-%{version}.tar.xz
Source0: https://brltty.app/archive/%name-%version.tar.xz
Source1: README.SUSE
Source2: %name.rpmlintrc
Patch0: brltty-udev-dir.patch
Patch2: brltty-reproducible-jar-mtime.patch
Requires(pre): system-user-brltty = %{version}-%{release}
Requires(pre): system-user-brltty = %version-%release
BuildRequires: bison
BuildRequires: doxygen
@ -47,8 +48,9 @@ BuildRequires: jpackage-utils
BuildRequires: libbraille-devel
BuildRequires: ncurses-devel
BuildRequires: ocaml
BuildRequires: ocaml-rpm-macros >= 20231101
BuildRequires: pkg-config
BuildRequires: python-rpm-macros
BuildRequires: python-rpm-macros > 20240101
BuildRequires: python3
BuildRequires: python3-Cython
BuildRequires: python3-devel
@ -79,7 +81,7 @@ complete screen review functionality.
%package driver-at-spi2
Summary: AT-SPI 2 driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and at-spi2-core)
%description driver-at-spi2
@ -93,7 +95,7 @@ This package contains the AT-SPI 2 screen driver.
%package driver-brlapi
Summary: BrlAPI driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and %{soname})
%description driver-brlapi
@ -107,7 +109,7 @@ This package contains the BrlAPI braille driver.
%package driver-libbraille
Summary: Libbraille driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and libbraille)
%description driver-libbraille
@ -121,7 +123,7 @@ This package contains the libbraille braille driver.
%package driver-espeak
Summary: ESpeak driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and espeak-ng-compat)
%description driver-espeak
@ -135,7 +137,7 @@ This package contains the eSpeak speech driver.
%package driver-speech-dispatcher
Summary: Speech Dispatcher driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and libspeechd2)
%description driver-speech-dispatcher
@ -149,7 +151,7 @@ This package contains the Speech Dispatcher speech driver.
%package driver-xwindow
Summary: XWindow driver for BRLTTY
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (brltty and xorg-x11-server)
%description driver-xwindow
@ -161,9 +163,9 @@ complete screen review functionality.
This package contains the XWindow braille driver.
%package udev-generic
Summary: BRLTTY Udev rules for braille devices that use a generic USB to serial adapter.
Summary: BRLTTY Udev rules for braille devices that use a generic USB to serial adapter
Group: System/Daemons
Requires: %{name} = %{version}-%{release}
Requires: %name = %version-%release
%description udev-generic
This package provides additional rules for managing BRLTTY via Udev.
@ -173,7 +175,7 @@ Install this package in order to support braille devices that use a generic USB
%package utils
Summary: Braille display driver for Linux/Unix
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
%description utils
BRLTTY is a background process (daemon) which provides access to the
@ -186,7 +188,7 @@ This package contain various utilities related to BRLTTY.
%package -n xbrlapi
Summary: X BrlAPI helper
Group: System/Daemons
Requires: %{name} = %{version}
Requires: %name = %version
Supplements: (%{soname} and xorg-x11-server)
%description -n xbrlapi
@ -199,7 +201,7 @@ Requires(post): coreutils
#!BuildIgnore: group(brlapi)
Requires(post): group(brlapi)
Requires(post): util-linux
Recommends: %{name}
Recommends: %name
%description -n %{soname}
BrlAPI is a service provided by the brltty daemon.
@ -216,7 +218,7 @@ sent to the application, rather than to brltty.
%package -n brlapi-devel
Summary: Library to use BRLTTY from applications -- Development Files
Group: Development/Libraries/C and C++
Requires: %{soname} = %{version}
Requires: %{soname} = %version
%description -n brlapi-devel
BrlAPI is a service provided by the brltty daemon.
@ -309,7 +311,7 @@ Requires(pre): group(audio)
Requires(pre): group(input)
BuildArch: noarch
BuildRequires: sysuser-tools
%sysusers_requires
%?sysusers_requires
%description -n system-user-brltty
System user for the Braille display driver for Linux/Unix
@ -317,45 +319,56 @@ System user for the Braille display driver for Linux/Unix
%lang_package
%prep
%autosetup -p1
%setup
%patch -P 0 -p1
# The "--date" option was added into jar in OpenJDK 17
%if %{?pkg_vcmp:%pkg_vcmp java-devel >= 17}%{!?pkg_vcmp:0}
%patch -P 2 -p1
%endif
%build
%sysusers_generate_pre Autostart/Systemd/sysusers system-user-brltty %{name}.conf
cp %{_sourcedir}/README.SUSE .
%sysusers_generate_pre Autostart/Systemd/sysusers system-user-brltty %name.conf
cp %_sourcedir/README.SUSE .
# Fix "wrong-file-end-of-line-encoding" rpmlint warning
sed -i 's/\r$//' Documents/Manual-BRLTTY/Portuguese/BRLTTY.txt
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
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
for i in -I%_libdir/jvm/java/include{,/linux}; do
java_inc="$java_inc $i"
done
export PYTHON=/usr/bin/python3
%configure CPPFLAGS="$java_inc" \
--with-install-root="%{buildroot}" \
--with-tables-directory=%{_datadir}/%{name} \
--libexecdir=%_libexecdir \
--with-tables-directory=%_datadir/%name \
--disable-stripping
make -j1 # not parallel build safe
make TCL_DIR=%tcl_archdir
%install
# For the correct generation of pkgIndex.tcl
export LD_LIBRARY_PATH=$PWD/Programs
sed -i "s=/usr/libexec/brltty-systemd-wrapper=%_libexecdir/brltty-systemd-wrapper=" Autostart/Systemd/brltty@.service
make install install-systemd install-udev install-polkit DESTDIR="%buildroot"
%find_lang %{name}
%make_install install-systemd install-udev install-polkit INSTALL_ROOT="%buildroot" TCL_DIR=%tcl_archdir
for exe in %buildroot%_bindir/*
do
sed -i~ '1{s@%_bindir/env[[:blank:]]\+@%_bindir/@}' "${exe}"
diff -u "$_"~ "$_" || :
rm -f "${exe}~"
done
%find_lang %name
sed -i "s/#api-parameters Auth=polkit/api-parameters Auth=polkit/" Documents/brltty.conf
install -D -m644 Documents/brltty.conf %{buildroot}%{_sysconfdir}/brltty.conf
install -D -m644 Documents/brltty.conf %buildroot%_sysconfdir/brltty.conf
# ghost brlapi.key
touch %{buildroot}%{_sysconfdir}/brlapi.key
# Don't include source files in binary package
rm -f %{buildroot}%{_libdir}/ocaml/brlapi/brlapi.{mli,cmxa}
rm %{buildroot}%{_libdir}/libbrlapi.a
rm %{buildroot}%{_libdir}/ocaml/brlapi/libbrlapi_stubs.a
rm %{buildroot}/etc/X11/Xsession.d/90xbrlapi # TODO: install this somewhere?
touch %buildroot%_sysconfdir/brlapi.key
# OCaml
%ocaml_create_file_list
#
rm %buildroot%_libdir/libbrlapi.a
rm %buildroot/etc/X11/Xsession.d/90xbrlapi # TODO: install this somewhere?
# fix missing executable bits
test ! -x %{buildroot}%{_bindir}/brltty-config.sh
chmod a+x %{buildroot}%{_bindir}/brltty-config.sh
test ! -x %buildroot%_bindir/brltty-config.sh
chmod a+x %buildroot%_bindir/brltty-config.sh
# clean up the manuals:
rm Documents/Manual-*/*/{*.mk,Makefile*,*.sgml}
mv Documents/BrlAPIref/html Documents/BrlAPIref/BrlAPIref
@ -369,59 +382,47 @@ while read file; do
done
# disable xbrlapi gdm autostart, there is already orca
rm -f %{buildroot}%{_datadir}/gdm/greeter/autostart/xbrlapi.desktop
rm -f %buildroot%_datadir/gdm/greeter/autostart/xbrlapi.desktop
install -Dm0644 Autostart/AppStream/org.a11y.brltty.metainfo.xml \
%{buildroot}%{_datadir}/metainfo/org.a11y.brltty.metainfo.xml
%buildroot%_datadir/metainfo/org.a11y.brltty.metainfo.xml
%fdupes -s %{buildroot}%{_mandir}
%fdupes -s %{buildroot}
%python3_fix_shebang_path %{buildroot}%{_datadir}/brltty/Contraction/latex-access.ctb
# fix brp-tcl wrong location for Tcl files - This was fixed in the TCL 8.6.11 package
mkdir -p %{buildroot}%{tcl_sitearch}
%if %{pkg_vcmp tcl < 8.6.11}
mv %{buildroot}%{_libdir}/brlapi-%{api_version} %{buildroot}%{tcl_sitearch}/
%else
# this move is possibly not needed at all anymore, but to keep the old layout, we do it
mv %{buildroot}%{_libdir}/tcl/brlapi-%{api_version} %{buildroot}%{tcl_sitearch}/
%endif
%fdupes -s %buildroot%_mandir
%fdupes -s %buildroot
%pre -n system-user-brltty -f system-user-brltty.pre
%post -n %{soname}
if [ ! -e %{_sysconfdir}/brlapi.key ]; then
mcookie > %{_sysconfdir}/brlapi.key
chgrp brlapi %{_sysconfdir}/brlapi.key
chmod 0640 %{_sysconfdir}/brlapi.key
if [ ! -e %_sysconfdir/brlapi.key ]; then
mcookie > %_sysconfdir/brlapi.key
chgrp brlapi %_sysconfdir/brlapi.key
chmod 0640 %_sysconfdir/brlapi.key
fi
/sbin/ldconfig
%postun -n %{soname} -p /sbin/ldconfig
%pre
%if %{defined tmpfiles_create_package}
%tmpfiles_create_package %{name} %{buildroot}%{_tmpfilesdir}/%{name}.conf
%endif
%service_add_pre %{name}.path
%service_add_pre %name.path
%post
%if ! %{defined tmpfiles_create_package}
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%endif
%service_add_post %{name}.path
%tmpfiles_create %_tmpfilesdir/%name.conf
%service_add_post %name.path
# Remove any messages that could've been in place about the upgrade
rm -f %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
rm -f %_localstatedir/adm/update-messages/%name-%version-%release-something
if [ -f /usr/bin/lsusb ]; then
lsusb 2>/dev/null |grep -q 0403:6001
if [ $? -eq 0 ]; then
cat >> %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something << EOF
cat >> %_localstatedir/adm/update-messages/%name-%version-%release-something << EOF
WARNING: The SUSE brltty package no longer enables certain USB
refreshable Braille displays by default, and it appears that you may have
one of these displays attached. If so, then you may need to edit
%{_udevrulesdir}/90-brltty-device.rules.
%_udevrulesdir/90-brltty-device.rules.
If your device is a standard USB-to-serial converter, rather than a
refreshable Braille display, then you can ignore this message.
See /usr/share/doc/packages/brltty/README.SUSE for more information.
@ -431,130 +432,129 @@ EOF
fi
%preun
%service_del_preun %{name}.path
%service_del_preun %name.path
%postun
%service_del_postun %{name}.path
%service_del_postun %name.path
# Remove the /var/adm updatemsg that was hand-created and thus not on filelist
rm -f %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
rm -f %_localstatedir/adm/update-messages/%name-%version-%release-something
%files
%license LICENSE-LGPL
%doc README README.SUSE Documents/ChangeLog Documents/CONTRIBUTORS Documents/HISTORY Documents/README.Bluetooth Documents/TODO
%doc Documents/Manual-BRLTTY/English
%config(noreplace) %{_sysconfdir}/brltty.conf
%{_datadir}/brltty/
%{_bindir}/brltty
%{_bindir}/brltty-clip
%{_bindir}/brltty-atb
%{_bindir}/brltty-cldr
%{_bindir}/brltty-config.sh
%{_bindir}/brltty-ctb
%{_bindir}/brltty-genkey
%{_bindir}/brltty-hid
%{_bindir}/brltty-ktb
%{_bindir}/brltty-lscmds
%{_bindir}/brltty-lsinc
%{_bindir}/brltty-mkuser
%{_bindir}/brltty-morse
%{_bindir}/brltty-prologue.bash
%{_bindir}/brltty-prologue.lua
%{_bindir}/brltty-prologue.tcl
%{_bindir}/brltty-prologue.sh
%{_bindir}/brltty-setcaps
%{_bindir}/brltty-trtxt
%{_bindir}/brltty-ttb
%{_bindir}/brltty-ttysize
%{_bindir}/brltty-tune
%{_bindir}/eutp
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/org.a11y.%{name}.metainfo.xml
%{_datadir}/polkit-1/actions/org.a11y.brlapi.policy
%{_datadir}/polkit-1/rules.d/org.a11y.brlapi.rules
%{_libdir}/brltty/
%{_libexecdir}/brltty/
%{_mandir}/man1/brltty.1*
%{_mandir}/man1/eutp.1.gz
%{_tmpfilesdir}/%{name}.conf
%{_udevrulesdir}/90-%{name}-hid.rules
%{_udevrulesdir}/90-%{name}-uinput.rules
%{_udevrulesdir}/90-%{name}-usb-customized.rules
%{_unitdir}/%{name}.path
%{_unitdir}/%{name}@.path
%{_unitdir}/%{name}-device@.service
%{_unitdir}/%{name}@.service
%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
%ghost %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-something
%config(noreplace) %_sysconfdir/brltty.conf
%_datadir/brltty/
%_bindir/brltty
%_bindir/brltty-clip
%_bindir/brltty-atb
%_bindir/brltty-cldr
%_bindir/brltty-config.sh
%_bindir/brltty-ctb
%_bindir/brltty-genkey
%_bindir/brltty-hid
%_bindir/brltty-ktb
%_bindir/brltty-lscmds
%_bindir/brltty-lsinc
%_bindir/brltty-mkuser
%_bindir/brltty-morse
%_bindir/brltty-prologue.bash
%_bindir/brltty-prologue.lua
%_bindir/brltty-prologue.tcl
%_bindir/brltty-prologue.sh
%_bindir/brltty-setcaps
%_bindir/brltty-term
%_bindir/brltty-trtxt
%_bindir/brltty-ttb
%_bindir/brltty-ttysize
%_bindir/brltty-tune
%_bindir/eutp
%dir %_datadir/metainfo
%_datadir/metainfo/org.a11y.%name.metainfo.xml
%_datadir/polkit-1/actions/org.a11y.brlapi.policy
%_datadir/polkit-1/rules.d/org.a11y.brlapi.rules
%_libdir/brltty/
%_libexecdir/brltty/
%_mandir/man1/brltty.1*
%_mandir/man1/eutp.1.gz
%_tmpfilesdir/%name.conf
%_udevrulesdir/90-%name-hid.rules
%_udevrulesdir/90-%name-uinput.rules
%_udevrulesdir/90-%name-usb-customized.rules
%_unitdir/%name.path
%_unitdir/%name@.path
%_unitdir/%name-device@.service
%_unitdir/%name@.service
%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
%ghost %_localstatedir/adm/update-messages/%name-%version-%release-something
%files driver-at-spi2
%{_libdir}/brltty/libbrlttyxa2.so
%_libdir/brltty/libbrlttyxa2.so
%files driver-brlapi
%doc Drivers/Braille/BrlAPI/README
%{_libdir}/brltty/libbrlttybba.so
%_libdir/brltty/libbrlttybba.so
%files driver-libbraille
%{_libdir}/brltty/libbrlttyblb.so
%_libdir/brltty/libbrlttyblb.so
%files driver-espeak
%doc Drivers/Speech/eSpeak/README
%{_libdir}/brltty/libbrlttyses.so
%_libdir/brltty/libbrlttyses.so
%files driver-speech-dispatcher
%doc Drivers/Speech/SpeechDispatcher/README
%{_libdir}/brltty/libbrlttyssd.so
%_libdir/brltty/libbrlttyssd.so
%files driver-xwindow
%doc Drivers/Braille/XWindow/README
%{_libdir}/brltty/libbrlttybxw.so
%_libdir/brltty/libbrlttybxw.so
%files udev-generic
%{_udevrulesdir}/90-%{name}-usb-generic.rules
%_udevrulesdir/90-%name-usb-generic.rules
%files utils
%{_bindir}/vstp
%{_mandir}/man1/vstp.1*
%_bindir/vstp
%_mandir/man1/vstp.1*
%files -n xbrlapi
%{_bindir}/xbrlapi
%{_mandir}/man1/xbrlapi.1*
%_bindir/xbrlapi
%_mandir/man1/xbrlapi.1*
%files -n %{soname}
%doc Documents/Manual-BrlAPI/
%{_libdir}/libbrlapi.so.*
%ghost %{_sysconfdir}/brlapi.key
%_libdir/libbrlapi.so.*
%ghost %_sysconfdir/brlapi.key
%files -n brlapi-devel
%{_includedir}/brltty/
%{_includedir}/brlapi*.h
%{_libdir}/libbrlapi.so
%{_libdir}/pkgconfig/brltty.pc
%doc %{_mandir}/man3/brlapi_*
%_includedir/brltty/
%_includedir/brlapi*.h
%_libdir/libbrlapi.so
%_libdir/pkgconfig/brltty.pc
%doc %_mandir/man3/brlapi_*
%files -n brlapi-java
%{_jnidir}/libbrlapi_java.so
%{_javadir}/brlapi.jar
%files -n ocaml-brlapi
%{_libdir}/ocaml/brlapi/
%{_libdir}/ocaml/stublibs/dllbrlapi_stubs.so*
%files -n ocaml-brlapi -f %name.files.devel
%files -n python3-brlapi
%{python3_sitearch}/brlapi.cpython*.so
%{python3_sitearch}/Brlapi-*.egg-info
%files -n tcl-brlapi
%{tcl_sitearch}/brlapi-%{api_version}/
%_libdir/tcl/brlapi-%{api_version}/
%files -n system-user-brltty
%{_sysusersdir}/%{name}.conf
%_sysusersdir/%name.conf
%files lang -f %{name}.lang
%files lang -f %name.lang
%doc Documents/Manual-BRLTTY/French
%doc Documents/Manual-BRLTTY/Portuguese