[BRLTTY] Packaging questions
Didier Spaier
didier at slint.fr
Wed Oct 25 13:38:02 EDT 2017
(I sent this answer to Peter only at first, sorry).
Hello Peter,
nice to meet you on this list too ;)
Le 25/10/2017 à 17:57, Peter Vágner a écrit :
> After reading about these two issues related to the relativelly new polkit
> authorization / authentification support [1], [2] I wanted to suggest that
> Arch linux brltty package should be modernized to take advantage of new
> features and integrate better with the rest of the system.
> However in the process I've discovered even more issues and I think I'm
> getting lost in the chain of dependencies.
I don't see links associated to the number under brackets like [1].
Maybe you forgot to append them?
> Currently arch linux packages are built in chroot so only the dependencies
> listed inside the PKGBUILD script are picked by the build system
> configuration (that is autotools in brltty's case). There is an exception
> to this though. Packages that are part of base and base-devel groups of
> packages are all installed. So all base packages can be used as a runtime
> dependencies and all base-devel packages can be used as a build time
> dependencies.
> Currently these are specified as runtime dependencies: libxaw gpm icu tcl
> bluez-libs espeak
> And these as build time dependencies: at-spi2-core tcl speech-dispatcher
> cython
>
> Configure is ran like this on arch linux
> ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
> --mandir=/usr/share/man \
> --with-tables-directory=/usr/share/brltty \
> --with-screen-driver=lx \
> --enable-gpm \
> --disable-java-bindings \
> Should this be reconsidered? I assume linux driver is specific to linux and
> there are drivers for other platforms such as Android or Windows that are
> not suitable for linux for example. Should we rather rely on auto detection
> here? At-spi2 driver might be clashing with orca. Are there cases where
> it's usefull? What about screen driver? When using linux driver and running
> screen on a tty is the screen output accessible to brltty or should both
> drivers be in use in such a case? Or is the screen screen driver only
> suitable when running on a mac as indicated by many of the email list
> discussions?
Well, I don't know the Arch build system but generally speaking it's
safe no to include options unless you want to exclude some stuff from the
package, and configure will just build according to the installed deps
at that time in the host system. Let me give two examples.
1) In the installed Slint that you know the package is configured so:
cut here
# Let's help to find the headers shipped with speech-dispatcher
CPPFLAGS="-I/usr/include -I/usr/include/speech-dispatcher" \
PYTHON=/usr/bin/python3 \
./configure \
--prefix=/usr \
--bindir=/bin \
--sbindir=/sbin \
--libdir=/lib${LIBDIRSUFFIX} \
--infodir=/usr/info \
--mandir=/usr/man \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-java-bindings \
--build=$ARCH-slackware-linux | tee LOG
cut here
As a result and because I build on a full Slint system I get in the LOG
file attached (stripped from all the rest) a configuration summary that
shows that the resulting package include everything plus the kitchen
sink.
2) In the installer the package is stripped down this way:
./configure \
--prefix=/usr \
--bindir=/bin \
--sbindir=/sbin \
--libdir=/lib${LIBDIRSUFFIX} \
--infodir=/usr/info \
--mandir=/usr/man \
--sysconfdir=/etc \
--localstatedir=/var \
--build=$ARCH-slint-linux \
--disable-contracted-braille \
--disable-speech-support \
--disable-icu \
--disable-x \
--disable-gpm \
--disable-api \
--disable-ocaml-bindings \
--disable-java-bindings \
--disable-lisp-bindings \
--disable-python-bindings \
--disable-tcl-bindings \
--disable-polkit \
--with-pcm-package=no \
--with-midi-package=no \
--with-fm-package=no \
--with-curses=ncurses \
--with-bluetooth-package=no
As you see we don't include the bindings, all stuff needed for speech
support (as we use speakup instead), polkit (we are root during
installation), etc.
> I have run ./configure to see which packages it checks for so I can try to
> come up with clear suggestions on what to add or change.
>
> linuxdoc and doxygen sound to me as they would suit well as build time
> dependencies for building the documentation. Have you a recommendation for
> me whether docs built with these two packages should be included as a part
> of the binary package? I guess doxygen docs are developer documentation for
> the API's and linuxdoc is the user documentation. Is this correct?
>
> Polkit is not currently being used on Arch linux and because of the two
> already mentioned issues that prompted me to look into this, we can say we
> definatelly would like to get it added as a runtime dependency. Now a
> related question: I am currently running arch brltty package with no polkit
> support compiled in. When connecting to brlapi in python, I'm getting this
> exception:
>>>> import brlapi
>>>> ba=brlapi.Connection()
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "brlapi.pyx", line 304, in brlapi.Connection.__init__
> (brlapi.auto.c:5039
> )
> brlapi.ConnectionError: couldn't connect to b':0' with key
> b'polkit+keyfile:/etc
> /brlapi.key': b'connect: No such file or directory'
> (brlerrno 11, libcerrno 2, gaierrno 0)
> Is BRLTTY really running?
> I know brlapi server is not running as I have no braille display connected
> and since brltty 3.5 brlapi server is not started in such a case.
You can use the tty device like in this example:
brltty -b tt -d /dev/tty12 and you will get the output on /dev/tty12
Thanks again Samuel for the tip!
I wan' answer beyond ythis pint by lack of knowledge
Greetings,
Didier
PS I will upload a Slint64-14.2.1RC2 ISO real soon now, then wait a few
days for comments. Peter, I will be especially eager to hear from you ;)
-------------- next part --------------
config.status: Options Summary:
execute-root:
install-root:
libdir: /lib64
sysconfdir: /etc
program-directory: /bin
drivers-directory: /lib64/brltty
writable-directory: /var/run/brltty
tables-directory: /etc/brltty
manpage-directory: /usr/man
include-directory: ${prefix}/include/brltty
init-path:
stderr-path:
standalone-programs: no
i18n: yes
icu: yes
iconv: yes
polkit: yes
api: yes
api-parameters:
java-bindings: no
lisp-bindings: yes
ocaml-bindings: yes
python-bindings: yes
tcl-bindings: yes
api-socket-path: /var/lib/BrlAPI
curses-package: ncursesw
x: yes
gui-toolkit-package: Xaw
system-package: linux
contracted-braille: yes
gpm: yes
pgmpath-package: linux
service-package: none
params-package: linux
dynld-package: dlfcn
charset-package: iconv
hostcmd-package: unix
mntpt-package: mntent
mntfs-package: linux
kbd-package: linux
bell-package: linux
leds-package: linux
beep-package: linux
pcm-package: alsa
midi-package: alsa
fm-package: adlib
serial-package: termios
usb-package: linux
bluetooth-package: linux
ports-package: glibc
libbraille-root:
external-braille-drivers: al at ba bc bd bl bm bn cb ce ec eu fs hd hm ht hw ir lt mb md mm mn mt np pg pm sk tn ts tt vd vo vr vs xw bg
internal-braille-drivers:
braille-parameters:
braille-device: usb:,bluetooth:
text-table: en-nabcc
attributes-table: left_right
speech-support: yes
espeak-root: /usr
flite-root:
mikropuhe-root:
speechd-root: yes
swift-root:
theta-root:
viavoice-root:
external-speech-drivers: al bl cb es fv gs sd xs
internal-speech-drivers:
speech-parameters:
external-screen-drivers: lx sc a2
internal-screen-drivers:
screen-parameters:
screen-driver: lx
relocatable-install: no
stripping: yes
More information about the BRLTTY
mailing list