Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

25 changed files with 751 additions and 2112 deletions

View File

@ -1 +0,0 @@
bc148de37b3f8bb93bebaa83008b712e427a8baf SOURCES/brltty-5.6.tar.xz

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/brltty-5.6.tar.xz
/brltty-*.tar.xz

View File

@ -1,549 +0,0 @@
From 6df30ecf05440a1a0f197817d3e39c15d04f15c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Wed, 28 Feb 2018 22:49:07 +0100
Subject: [PATCH] Add support for eSpeak-NG
It is mostly a copy of the eSpeak driver.
Squashed with Dave Mielke's commit:
Some modifications to the introduction of the eSpeak-NG speech driver: (dm)
Fix the order of lists that are alphabetically sorted by driver code.
Undo the changes to the derived Portuguese documents.
---
Documents/CONTRIBUTORS | 1 +
Documents/Manual-BRLTTY/English/driver-codes.sgml | 1 +
.../Manual-BRLTTY/English/speech-drivers.sgml | 2 +
Documents/Manual-BRLTTY/French/driver-codes.sgml | 1 +
Documents/Manual-BRLTTY/French/speech-drivers.sgml | 2 +
Documents/README.DOS | 5 +-
Documents/brltty.1.in | 3 +
Documents/brltty.conf.in | 7 +
Documents/speech-driver.csv | 1 +
Drivers/Speech/eSpeak-NG/Makefile.in | 29 ++++
Drivers/Speech/eSpeak-NG/README | 34 ++++
Drivers/Speech/eSpeak-NG/speech.c | 174 +++++++++++++++++++++
README | 1 +
brltty.spec.in | 25 +++
cfg-android | 1 +
cfg-darwin | 1 +
cfg-dos | 1 +
config.mk.in | 1 +
configure.ac | 4 +
19 files changed, 292 insertions(+), 2 deletions(-)
create mode 100644 Drivers/Speech/eSpeak-NG/Makefile.in
create mode 100644 Drivers/Speech/eSpeak-NG/README
create mode 100644 Drivers/Speech/eSpeak-NG/speech.c
diff --git a/Documents/CONTRIBUTORS b/Documents/CONTRIBUTORS
index 5a3af85b8..282ea193a 100644
--- a/Documents/CONTRIBUTORS
+++ b/Documents/CONTRIBUTORS
@@ -50,6 +50,7 @@ Nikita Tseykovets <tseikovets@rambler.ru>
Ole Guldberg <ole@omgwtf.dk>
Olivier Bert <obert01@mistigri.org>
Ollie Mallard <mallard@ilgerone.net>
+olysonek
Oscar Fernandez <ofa@once.es>
Pete De Vasto <pdevasto@incyte.com>
Peter Lundblad <plundblad@google.com>
diff --git a/Documents/Manual-BRLTTY/English/driver-codes.sgml b/Documents/Manual-BRLTTY/English/driver-codes.sgml
index 09eae4039..870cde7e3 100644
--- a/Documents/Manual-BRLTTY/English/driver-codes.sgml
+++ b/Documents/Manual-BRLTTY/English/driver-codes.sgml
@@ -10,6 +10,7 @@ bm|Baum (Native, HT, PB1, PB2)@
bn|BrailleNote@
cb|CombiBraille@
ec|EcoBraille@
+en|eSpeak-NG@
es|eSpeak@
eu|EuroBraille@
fl|FestivalLite@
diff --git a/Documents/Manual-BRLTTY/English/speech-drivers.sgml b/Documents/Manual-BRLTTY/English/speech-drivers.sgml
index 49caa060f..66c66e850 100644
--- a/Documents/Manual-BRLTTY/English/speech-drivers.sgml
+++ b/Documents/Manual-BRLTTY/English/speech-drivers.sgml
@@ -8,6 +8,8 @@ CombiBraille
|@
eSpeak
|text to speech engine@
+eSpeak-NG
+ |text to speech engine@
ExternalSpeech
|runs /usr/local/bin/externalspeech@
Festival
diff --git a/Documents/Manual-BRLTTY/French/driver-codes.sgml b/Documents/Manual-BRLTTY/French/driver-codes.sgml
index 09eae4039..870cde7e3 100644
--- a/Documents/Manual-BRLTTY/French/driver-codes.sgml
+++ b/Documents/Manual-BRLTTY/French/driver-codes.sgml
@@ -10,6 +10,7 @@ bm|Baum (Native, HT, PB1, PB2)@
bn|BrailleNote@
cb|CombiBraille@
ec|EcoBraille@
+en|eSpeak-NG@
es|eSpeak@
eu|EuroBraille@
fl|FestivalLite@
diff --git a/Documents/Manual-BRLTTY/French/speech-drivers.sgml b/Documents/Manual-BRLTTY/French/speech-drivers.sgml
index 9d079b6c6..ede82d398 100644
--- a/Documents/Manual-BRLTTY/French/speech-drivers.sgml
+++ b/Documents/Manual-BRLTTY/French/speech-drivers.sgml
@@ -6,6 +6,8 @@ CombiBraille
|@
eSpeak
|text to speech engine@
+eSpeak-NG
+ |text to speech engine@
ExternalSpeech
|runs /usr/local/bin/externalspeech@
Festival
diff --git a/Documents/README.DOS b/Documents/README.DOS
index eca9540ec..5b5de15c4 100644
--- a/Documents/README.DOS
+++ b/Documents/README.DOS
@@ -285,8 +285,9 @@ You should be able to use a configure command like this one::
--disable-api --disable-icu --disable-x \
--without-usb-package --without-bluetooth-package \
--without-libbraille --with-braille-driver=-vr,all \
- --without-espeak --without-flite \
- --without-speechd --with-speech-driver=all \
+ --without-espeak --without-espeak-ng \
+ --without-flite --without-speechd \
+ --with-speech-driver=all \
--with-screen-driver=pb,-all
The ``cfg-dos`` Script
diff --git a/Documents/brltty.1.in b/Documents/brltty.1.in
index ab7b3c1db..b95aaa964 100644
--- a/Documents/brltty.1.in
+++ b/Documents/brltty.1.in
@@ -714,6 +714,9 @@ CombiBraille
.B ec
EcoBraille
.TP 4
+.B en
+eSpeak-NG
+.TP 4
.B es
eSpeak
.TP 4
diff --git a/Documents/brltty.conf.in b/Documents/brltty.conf.in
index e11273674..80967177a 100644
--- a/Documents/brltty.conf.in
+++ b/Documents/brltty.conf.in
@@ -343,6 +343,7 @@
#speech-driver an # Android (text to speech engine)
#speech-driver bl # BrailleLite
#speech-driver cb # CombiBraille
+#speech-driver en # eSpeak-NG (text to speech engine)
#speech-driver es # eSpeak (text to speech engine)
#speech-driver fl # FestivalLite (text to speech engine)
#speech-driver fv # Festival (text to speech engine)
@@ -383,6 +384,12 @@
#speech-parameters es:PunctList=
#speech-parameters es:Voice=default
+# eSpeak-NG Speech Driver Parameters
+#speech-parameters en:MaxRate=450 # [80-]
+#speech-parameters en:Path=
+#speech-parameters en:PunctList=
+#speech-parameters en:Voice=en
+
# ExternalSpeech Speech Driver Parameters
#speech-parameters xs:Program=/usr/local/bin/externalspeech
#speech-parameters xs:Uid=65534
diff --git a/Documents/speech-driver.csv b/Documents/speech-driver.csv
index 2e339a6bf..b56e85cbf 100644
--- a/Documents/speech-driver.csv
+++ b/Documents/speech-driver.csv
@@ -4,6 +4,7 @@
"bl","BrailleLite"
"cb","CombiBraille"
"es","eSpeak (text to speech engine)"
+"en","eSpeak-NG (text to speech engine)"
"fl","FestivalLite (text to speech engine)"
"fv","Festival (text to speech engine)"
"gs","GenericSay (pipes to /usr/local/bin/say)"
diff --git a/Drivers/Speech/eSpeak-NG/Makefile.in b/Drivers/Speech/eSpeak-NG/Makefile.in
new file mode 100644
index 000000000..d91f9c59d
--- /dev/null
+++ b/Drivers/Speech/eSpeak-NG/Makefile.in
@@ -0,0 +1,29 @@
+###############################################################################
+# 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-2018 by The BRLTTY Developers.
+#
+# BRLTTY comes with ABSOLUTELY NO WARRANTY.
+#
+# This is free software, placed under the terms of the
+# GNU Lesser General Public License, as published by the Free Software
+# Foundation; either version 2.1 of the License, or (at your option) any
+# later version. Please see the file LICENSE-LGPL for details.
+#
+# Web Page: http://brltty.com/
+#
+# This software is maintained by Dave Mielke <dave@mielke.cc>.
+###############################################################################
+
+DRIVER_CODE = en
+DRIVER_NAME = eSpeak-NG
+DRIVER_COMMENT = text to speech engine
+DRIVER_VERSION = 0.1
+DRIVER_DEVELOPERS = Nicolas Pitre <nico@fluxnic.net>, Ondřej Lysoněk <olysonek@redhat.com>
+SPK_OBJS = @speech_libraries_en@
+include $(SRC_TOP)speech.mk
+
+speech.$O:
+ $(CC) $(SPK_CFLAGS) -I$(ESPEAK_NG_ROOT)/include -c $(SRC_DIR)/speech.c
+
diff --git a/Drivers/Speech/eSpeak-NG/README b/Drivers/Speech/eSpeak-NG/README
new file mode 100644
index 000000000..825848aa0
--- /dev/null
+++ b/Drivers/Speech/eSpeak-NG/README
@@ -0,0 +1,34 @@
+This directory contains the BRLTTY speech driver for the eSpeak-NG text to
+speech engine. The eSpeak-NG web site is
+https://github.com/espeak-ng/espeak-ng/.
+
+eSpeak-NG comes with a simple command-line tool called espeak-ng which can be
+used to test it, and to recompile modified dictionaries, etc. Please see
+the espeak-ng man page for more information.
+
+BRLTTY's configure script automatically includes this driver if the
+eSpeak-NG development library is installed.
+
+This driver recognizes the following parameters:
+
+path
+
+ Specifies the directory containing the espeak-ng-data directory.
+ If not specified, the default location is used.
+
+punctlist
+
+ Specified a list of punctuation characters whose names are to be
+ spoken when the speech punctuation parameter is set to "Some".
+ If not specified, a default list is used.
+
+voice
+
+ Specifies a voice/language to use. The complete list of available
+ voices may be obtained with the command 'espeak-ng --voices'.
+
+maxrate
+
+ Overrides the maximum speech rate value. The default is 450.
+ This cannot be lower than 80.
+
diff --git a/Drivers/Speech/eSpeak-NG/speech.c b/Drivers/Speech/eSpeak-NG/speech.c
new file mode 100644
index 000000000..af918c971
--- /dev/null
+++ b/Drivers/Speech/eSpeak-NG/speech.c
@@ -0,0 +1,174 @@
+/*
+ * 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-2018 by The BRLTTY Developers.
+ *
+ * BRLTTY comes with ABSOLUTELY NO WARRANTY.
+ *
+ * This is free software, placed under the terms of the
+ * GNU Lesser General Public License, as published by the Free Software
+ * Foundation; either version 2.1 of the License, or (at your option) any
+ * later version. Please see the file LICENSE-LGPL for details.
+ *
+ * Web Page: http://brltty.com/
+ *
+ * This software is maintained by Dave Mielke <dave@mielke.cc>.
+ */
+
+#include "prologue.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "log.h"
+#include "parse.h"
+
+typedef enum {
+ PARM_PATH,
+ PARM_PUNCTLIST,
+ PARM_VOICE,
+ PARM_MAXRATE
+} DriverParameter;
+#define SPKPARMS "path", "punctlist", "voice", "maxrate"
+
+#include "spk_driver.h"
+
+#include <espeak-ng/speak_lib.h>
+
+static int maxrate = espeakRATE_MAXIMUM;
+
+static void
+spk_say(volatile SpeechSynthesizer *spk, const unsigned char *buffer, size_t length, size_t count, const unsigned char *attributes)
+{
+ int result;
+
+ /* add 1 to the length in order to pass along the trailing zero */
+ result = espeak_Synth(buffer, length+1, 0, POS_CHARACTER, 0,
+ espeakCHARS_UTF8, NULL, (void *)spk);
+ if (result != EE_OK)
+ logMessage(LOG_ERR, "eSpeak-NG: Synth() returned error %d", result);
+}
+
+static void
+spk_mute(volatile SpeechSynthesizer *spk)
+{
+ espeak_Cancel();
+}
+
+static int SynthCallback(short *audio, int numsamples, espeak_EVENT *events)
+{
+ volatile SpeechSynthesizer *spk = events->user_data;
+
+ while (events->type != espeakEVENT_LIST_TERMINATED) {
+ if (events->type == espeakEVENT_WORD)
+ tellSpeechLocation(spk, events->text_position - 1);
+ if (events->type == espeakEVENT_MSG_TERMINATED)
+ tellSpeechFinished(spk);
+ events++;
+ }
+ return 0;
+}
+
+static void
+spk_drain(volatile SpeechSynthesizer *spk)
+{
+ espeak_Synchronize();
+}
+
+static void
+spk_setVolume(volatile SpeechSynthesizer *spk, unsigned char setting)
+{
+ int volume = getIntegerSpeechVolume(setting, 50);
+ espeak_SetParameter(espeakVOLUME, volume, 0);
+}
+
+static void
+spk_setRate(volatile SpeechSynthesizer *spk, unsigned char setting)
+{
+ int h_range = (maxrate - espeakRATE_MINIMUM)/2;
+ int rate = getIntegerSpeechRate(setting, h_range) + espeakRATE_MINIMUM;
+ espeak_SetParameter(espeakRATE, rate, 0);
+}
+
+static void
+spk_setPitch(volatile SpeechSynthesizer *spk, unsigned char setting)
+{
+ int pitch = getIntegerSpeechPitch(setting, 50);
+ espeak_SetParameter(espeakPITCH, pitch, 0);
+}
+
+static void
+spk_setPunctuation(volatile SpeechSynthesizer *spk, SpeechPunctuation setting)
+{
+ espeak_PUNCT_TYPE punct;
+ if (setting <= SPK_PUNCTUATION_NONE)
+ punct = espeakPUNCT_NONE;
+ else if (setting >= SPK_PUNCTUATION_ALL)
+ punct = espeakPUNCT_ALL;
+ else
+ punct = espeakPUNCT_SOME;
+ espeak_SetParameter(espeakPUNCTUATION, punct, 0);
+}
+
+static int spk_construct(volatile SpeechSynthesizer *spk, char **parameters)
+{
+ char *data_path, *voicename, *punctlist;
+ int result;
+
+ spk->setVolume = spk_setVolume;
+ spk->setRate = spk_setRate;
+ spk->setPitch = spk_setPitch;
+ spk->setPunctuation = spk_setPunctuation;
+ spk->drain = spk_drain;
+
+ logMessage(LOG_INFO, "eSpeak-NG version %s", espeak_Info(NULL));
+
+ data_path = parameters[PARM_PATH];
+ if (data_path && !*data_path)
+ data_path = NULL;
+ result = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 0, data_path, 0);
+ if (result < 0) {
+ logMessage(LOG_ERR, "eSpeak-NG: initialization failed");
+ return 0;
+ }
+
+ voicename = parameters[PARM_VOICE];
+ if(!voicename || !*voicename)
+ voicename = "en";
+ result = espeak_SetVoiceByName(voicename);
+ if (result != EE_OK) {
+ espeak_VOICE voice_select;
+ memset(&voice_select, 0, sizeof(voice_select));
+ voice_select.languages = voicename;
+ result = espeak_SetVoiceByProperties(&voice_select);
+ }
+ if (result != EE_OK) {
+ logMessage(LOG_ERR, "eSpeak-NG: unable to load voice '%s'", voicename);
+ return 0;
+ }
+
+ punctlist = parameters[PARM_PUNCTLIST];
+ if (punctlist && *punctlist) {
+ wchar_t w_punctlist[strlen(punctlist) + 1];
+ int i = 0;
+ while ((w_punctlist[i] = punctlist[i]) != 0) i++;
+ espeak_SetPunctuationList(w_punctlist);
+ }
+
+ if (parameters[PARM_MAXRATE]) {
+ int val = atoi(parameters[PARM_MAXRATE]);
+ if (val > espeakRATE_MINIMUM) maxrate = val;
+ }
+
+ espeak_SetSynthCallback(SynthCallback);
+
+ return 1;
+}
+
+static void spk_destruct(volatile SpeechSynthesizer *spk)
+{
+ espeak_Cancel();
+ espeak_Terminate();
+}
diff --git a/README b/README
index 5fcd8c221..9fd946eb5 100644
--- a/README
+++ b/README
@@ -210,6 +210,7 @@ The following speech synthesizers are supported:
- BrailleLite
- CombiBraille
- eSpeak [text to speech engine]
+- eSpeak-NG [text to speech engine]
- ExternalSpeech [runs /usr/local/bin/externalspeech]
- Festival [text to speech engine]
- FestivalLite [text to speech engine]
diff --git a/brltty.spec.in b/brltty.spec.in
index 8a4986c5d..f5aa33dc2 100644
--- a/brltty.spec.in
+++ b/brltty.spec.in
@@ -144,6 +144,27 @@ Install this package if you would like to be able to use the
eSpeak text-to-speech engine.
+%package -n brltty-speech-espeak-ng
+Version: @PACKAGE_VERSION@
+Release: 1
+Group: System Environment/Daemons
+License: GPL
+
+Requires: espeak-ng
+
+BuildRequires: espeak-ng-devel
+
+AutoProv: no
+AutoReq: yes
+
+Summary: eSpeak-NG speech driver for BRLTTY.
+%description -n brltty-speech-espeak-ng
+This package provides the eSpeak-NG speech driver for BRLTTY.
+
+Install this package if you would like to be able to use the
+eSpeak-NG text-to-speech engine.
+
+
%package -n brltty-speech-festival
Version: @PACKAGE_VERSION@
Release: 1
@@ -512,6 +533,7 @@ rm -fr "${RPM_BUILD_ROOT}"
%{_libdir}/brltty
%exclude %{_libdir}/brltty/libbrlttybba.so
%exclude %{_libdir}/brltty/libbrlttybxw.so
+%exclude %{_libdir}/brltty/libbrlttysen.so
%exclude %{_libdir}/brltty/libbrlttyses.so
%exclude %{_libdir}/brltty/libbrlttysfl.so
%exclude %{_libdir}/brltty/libbrlttysfv.so
@@ -541,6 +563,9 @@ rm -fr "${RPM_BUILD_ROOT}"
%files -n brltty-speech-espeak
%{_libdir}/brltty/libbrlttyses.so
+%files -n brltty-speech-espeak-ng
+%{_libdir}/brltty/libbrlttysen.so
+
%files -n brltty-speech-festival
%{_libdir}/brltty/libbrlttysfv.so
diff --git a/cfg-android b/cfg-android
index 1c9ad3e14..db83a28a6 100755
--- a/cfg-android
+++ b/cfg-android
@@ -89,6 +89,7 @@ export LDFLAGS="-Wl,--fix-cortex-a8"
--with-braille-driver=-ba,-bg,-tt,-vr,al,at,bm,bn,ce,eu,fs,hm,ht,hw,ic,ir,md,mm,mt,np,pg,pm,sk,vo \
\
--without-espeak \
+ --without-espeak-ng \
--without-flite \
--without-mikropuhe \
--without-speechd \
diff --git a/cfg-darwin b/cfg-darwin
index 13741c371..992292717 100755
--- a/cfg-darwin
+++ b/cfg-darwin
@@ -25,6 +25,7 @@
--without-libbraille \
\
--without-espeak \
+ --without-espeak-ng \
--without-flite \
--without-mikropuhe \
--without-speechd \
diff --git a/cfg-dos b/cfg-dos
index 82277980b..55427b7b2 100755
--- a/cfg-dos
+++ b/cfg-dos
@@ -57,6 +57,7 @@ export LDFLAGS=""
--with-braille-driver=-vr,all \
\
--without-espeak \
+ --without-espeak-ng \
--without-flite \
--without-mikropuhe \
--without-speechd \
diff --git a/config.mk.in b/config.mk.in
index ead6ca348..89af949de 100644
--- a/config.mk.in
+++ b/config.mk.in
@@ -370,6 +370,7 @@ SCREEN_DRIVER_LIBRARIES = @screen_driver_libraries@
SCREEN_DRIVERS = @screen_drivers@
ESPEAK_ROOT = @espeak_root@
+ESPEAK_NG_ROOT = @espeak_ng_root@
FLITE_ROOT = @flite_root@
FLITE_LANGUAGE = @flite_language@
FLITE_LEXICON = @flite_lexicon@
diff --git a/configure.ac b/configure.ac
index 39eb98390..b86f85209 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1742,6 +1742,10 @@ BRLTTY_ARG_DISABLE(
BRLTTY_SPEECH_DRIVER([bl], [BrailleLite])
BRLTTY_SPEECH_DRIVER([cb], [CombiBraille])
+ BRLTTY_IF_PACKAGE([eSpeak-NG], [espeak_ng], [include/espeak-ng/speak_lib.h], [dnl
+ BRLTTY_SPEECH_DRIVER([en], [eSpeak-NG], [-L$(ESPEAK_NG_ROOT)/lib -lespeak-ng])
+ ])
+
BRLTTY_IF_PACKAGE([eSpeak], [espeak], [include/espeak/speak_lib.h], [dnl
BRLTTY_SPEECH_DRIVER([es], [eSpeak], [-L$(ESPEAK_ROOT)/lib -lespeak])
])
--
2.14.3

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
diff --git a/Programs/midi_alsa.c b/Programs/midi_alsa.c
index 3afb55d..aeaae5a 100644
--- a/Programs/midi_alsa.c
+++ b/Programs/midi_alsa.c
@@ -18,7 +18,7 @@
#include "prologue.h"
-#include <asoundlib.h>
+#include <alsa/asoundlib.h>
#include "log.h"
#include "parse.h"
diff --git a/Programs/pcm_alsa.c b/Programs/pcm_alsa.c
index 7618bdc..bb7c927 100644
--- a/Programs/pcm_alsa.c
+++ b/Programs/pcm_alsa.c
@@ -19,7 +19,7 @@
#include "prologue.h"
#define ALSA_PCM_NEW_HW_PARAMS_API
-#include <asoundlib.h>
+#include <alsa/asoundlib.h>
#include "log.h"
#include "timing.h"

View File

@ -1,110 +0,0 @@
diff --git a/configure.ac b/configure.ac
index 7d93d8b..8938c6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -377,7 +377,7 @@ in
solaris* ) LDFLAGS_DYNAMIC="";;
*) AC_MSG_ERROR([dynamic linkage not supported for ${host_os}]);;
esac
-LDFLAGS_DYNAMIC="${LDFLAGS} BRLTTY_OPTIONS_LD2CC([${LDFLAGS_DYNAMIC}])"
+LDFLAGS_DYNAMIC="BRLTTY_OPTIONS_LD2CC([${LDFLAGS_DYNAMIC}])"
if test "${GCC}" = "yes"
then
@@ -404,6 +404,7 @@ else
fi
pkgconfig_flags_libs="--libs"
+
BRLTTY_ARG_ENABLE(
[standalone-programs],
[statically linked executables],
@@ -429,40 +430,42 @@ test "${DOXYGEN}" = "false" && can_make_BrlAPIref=no || can_make_BrlAPIref=yes
AC_SUBST([can_make_BrlAPIref])
AC_CACHE_CHECK([for shared object creation command], [brltty_cv_prog_make_object_shared], [dnl
-case "${host_os}"
-in
- linux*|gnu*|openbsd*|freebsd*|kfreebsd*|netbsd*|*qnx*|cygwin*|mingw*|elf*)
- brltty_mkshr_ld_make="-shared"
- ;;
- solaris*)
- brltty_mkshr_ld_make="-G"
- ;;
- hpux*)
- brltty_mkshr_ld_make="-b"
- ;;
- osf*)
- brltty_mkshr_ld_make="-shared"
- ;;
- darwin*)
- brltty_mkshr_ld_make="-bundle"
- brltty_mkshr_ld_options="-flat_namespace -undefined suppress"
- brltty_mkshr_gcc_make="-bundle"
- ;;
- msdos*)
- brltty_mkshr_ld_make="not_supported_on_msdos"
- brltty_mkshr_ld_options="not_supported_on_msdos"
- brltty_mkshr_gcc_make="not_supported_on_msdos"
- ;;
- *)
- AC_MSG_ERROR([loadable module creation command not configured for ${host_os}])
- ;;
-esac
-if test "${GCC}" = "yes"
-then
- brltty_cv_prog_make_object_shared="\$(CC) ${brltty_mkshr_gcc_make=-shared} BRLTTY_OPTIONS_LD2CC([${brltty_mkshr_ld_options}]) -o"
-else
- brltty_cv_prog_make_object_shared="\$(LD) ${brltty_mkshr_ld_make} ${brltty_mkshr_ld_options} -o"
-fi])
+ case "${host_os}"
+ in
+ linux*|gnu*|openbsd*|freebsd*|kfreebsd*|netbsd*|*qnx*|cygwin*|mingw*|elf*)
+ brltty_mkshr_ld_make="-shared"
+ ;;
+ solaris*)
+ brltty_mkshr_ld_make="-G"
+ ;;
+ hpux*)
+ brltty_mkshr_ld_make="-b"
+ ;;
+ osf*)
+ brltty_mkshr_ld_make="-shared"
+ ;;
+ darwin*)
+ brltty_mkshr_ld_make="-bundle"
+ brltty_mkshr_ld_options="-flat_namespace -undefined suppress"
+ brltty_mkshr_gcc_make="-bundle"
+ ;;
+ *)
+ AC_MSG_ERROR([loadable module creation command not configured for ${host_os}])
+ brltty_mkshr_ld_make="NOT_SUPPORTED"
+ brltty_mkshr_ld_options="NOT_SUPPORTED"
+ brltty_mkshr_gcc_make="NOT_SUPPORTED"
+ ;;
+ esac
+
+ if test "${GCC}" = "yes"
+ then
+ brltty_cv_prog_make_object_shared="\$(CC) ${brltty_mkshr_gcc_make=-shared} BRLTTY_OPTIONS_LD2CC([${brltty_mkshr_ld_options}])"
+ else
+ brltty_cv_prog_make_object_shared="\$(LD) ${brltty_mkshr_ld_make} ${brltty_mkshr_ld_options}"
+ fi
+
+ brltty_cv_prog_make_object_shared="${brltty_cv_prog_make_object_shared} ${LDFLAGS} -o"
+])
AC_SUBST([MKSHR], ["${brltty_cv_prog_make_object_shared}"])
AC_CACHE_CHECK([for make relocatable object command], [brltty_cv_prog_make_object_relocatable], [dnl
@@ -541,9 +544,9 @@ in
esac
if test "${GCC}" = "yes"
then
- brltty_cv_prog_mklib="\$(CC) ${brltty_mklib_gcc_make=-shared} BRLTTY_OPTIONS_LD2CC([${brltty_mklib_ld_options+${brltty_mklib_ld_options} <name>}]) -o"
+ brltty_cv_prog_mklib="\$(CC) \$(LDFLAGS) ${brltty_mklib_gcc_make=-shared} BRLTTY_OPTIONS_LD2CC([${brltty_mklib_ld_options+${brltty_mklib_ld_options} <name>}]) -o"
else
- brltty_cv_prog_mklib="\$(LD) ${brltty_mklib_ld_make} ${brltty_mklib_ld_options+${brltty_mklib_ld_options} <name>} -o"
+ brltty_cv_prog_mklib="\$(LD) \$(LDFLAGS) ${brltty_mklib_ld_make} ${brltty_mklib_ld_options+${brltty_mklib_ld_options} <name>} -o"
fi])
AC_SUBST([MKLIB], ["${brltty_cv_prog_mklib}"])

View File

@ -1,37 +0,0 @@
diff --git a/Bindings/OCaml/Makefile.in b/Bindings/OCaml/Makefile.in
index 47f7201..a97f55c 100644
--- a/Bindings/OCaml/Makefile.in
+++ b/Bindings/OCaml/Makefile.in
@@ -55,25 +55,25 @@ OCAML_FILES = $(OCAML_MISC) $(OCAML_CLIBS) $(OCAML_BCLIB) $(OCAML_NCLIB)
all : $(OCAML_FILES)
$(OCAML_CLIBS) : brlapi_stubs.$O brlapi
- $(OCAMLMKLIB) $(API_LDFLAGS) -oc $(OCAML_LIB)_stubs brlapi_stubs.$O
+ $(OCAMLMKLIB) -ldopt "$(LDFLAGS)" $(API_LDFLAGS) -oc $(OCAML_LIB)_stubs brlapi_stubs.$O
$(OCAML_BCLIB) : $(OCAML_CLIBS) brlapi.cmo
- $(OCAMLC) -a $(OCAMLMKLIB_FLAGS) -o $(OCAML_LIB).cma brlapi.cmo
+ $(OCAMLC) -ccopt "$(CFLAGS)" -a $(OCAMLMKLIB_FLAGS) -o $(OCAML_LIB).cma brlapi.cmo
$(OCAML_NCLIB) : $(OCAML_CLIBS) brlapi.cmx
- $(OCAMLMKLIB) $(OCAMLMKLIBOPT_FLAGS) -o $(OCAML_LIB) brlapi.cmx
+ $(OCAMLMKLIB) -ldopt "$(LDFLAGS)" $(OCAMLMKLIBOPT_FLAGS) -o $(OCAML_LIB) brlapi.cmx
brlapi.cmi: brlapi.mli
- $(OCAMLC) -o $@ -c brlapi.mli
+ $(OCAMLC) -ccopt "$(CFLAGS)" -o $@ -c brlapi.mli
brlapi.cmo: brlapi.ml brlapi.cmi
- $(OCAMLC) -o $@ -c brlapi.ml
+ $(OCAMLC) -ccopt "$(CFLAGS)" -o $@ -c brlapi.ml
brlapi.cmx: brlapi.ml brlapi.cmi
- $(OCAMLOPT) -o $@ -c brlapi.cmx brlapi.ml
+ $(OCAMLOPT) -ccopt "$(CFLAGS)" -o $@ -c brlapi.cmx brlapi.ml
brlapi_stubs.$O: $(SRC_DIR)/brlapi_stubs.c
- $(OCAMLC) -I $(BLD_TOP)$(PGM_DIR) -I $(SRC_TOP)$(PGM_DIR) -c $(SRC_DIR)/brlapi_stubs.c
+ $(OCAMLC) -ccopt "$(CFLAGS)" -I $(BLD_TOP)$(PGM_DIR) -I $(SRC_TOP)$(PGM_DIR) -c $(SRC_DIR)/brlapi_stubs.c
brlapi.mli : $(SRC_DIR)/main.mli constants.mli
cat $(SRC_DIR)/main.mli constants.mli > $@

9
brlapi-config.h Normal file
View File

@ -0,0 +1,9 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "config-32.h"
#elif __WORDSIZE == 64
#include "config-64.h"
#else
#error "Unknown word size"
#endif

9
brlapi-forbuild.h Normal file
View File

@ -0,0 +1,9 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "forbuild-32.h"
#elif __WORDSIZE == 64
#include "forbuild-64.h"
#else
#error "Unknown word size"
#endif

View File

@ -1,8 +1,8 @@
diff --git a/Drivers/Speech/SpeechDispatcher/speech.c b/Drivers/Speech/SpeechDispatcher/speech.c
index d73250a..df92708 100644
index cc55007..a2fcc0d 100644
--- a/Drivers/Speech/SpeechDispatcher/speech.c
+++ b/Drivers/Speech/SpeechDispatcher/speech.c
@@ -34,7 +34,7 @@ typedef enum {
@@ -35,7 +35,7 @@ typedef enum {
#include "spk_driver.h"

View File

@ -1,10 +1,10 @@
diff --git a/Bindings/Java/Native.java b/Bindings/Java/Native.java
index 8a3b003..c404bf2 100644
--- a/Bindings/Java/Native.java
+++ b/Bindings/Java/Native.java
@@ -21,7 +21,15 @@ package org.a11y.BrlAPI;
diff --git a/Bindings/Java/NativeComponent.java b/Bindings/Java/NativeComponent.java
index 2e6304a..cf6c9b0 100644
--- a/Bindings/Java/NativeComponent.java
+++ b/Bindings/Java/NativeComponent.java
@@ -23,7 +23,15 @@ public class NativeComponent extends Component {
private native static void initializeNativeData ();
public class Native {
static {
- System.loadLibrary("brlapi_java");
+ try {
@ -15,7 +15,7 @@ index 8a3b003..c404bf2 100644
+ } catch( UnsatisfiedLinkError f ) {
+ throw new UnsatisfiedLinkError("brlapi_java library load failed");
+ }
+ }
+ }
initializeNativeData();
}
protected long handle;

20
brltty-6.6-cython3.patch Normal file
View File

@ -0,0 +1,20 @@
--- python2/Bindings/Python/brlapi.pyx 2023-07-17 07:55:47.000000000 -0700
+++ python2/Bindings/Python/brlapi.pyx.new 2023-08-15 09:06:23.675136077 -0700
@@ -453,6 +453,7 @@
c_brlapi.brlapi_protocolExceptionInit(self.h)
if self.fd == -1:
c_brlapi.free(self.h)
+ self.h = NULL
raise ConnectionError(self.settings.host, self.settings.auth)
def closeConnection(self):
@@ -465,7 +466,8 @@
"""Release resources used by the connection"""
if self.fd != -1:
c_brlapi.brlapi__closeConnection(self.h)
- c_brlapi.free(self.h)
+ if self.h != NULL:
+ c_brlapi.free(self.h)
property host:
"""To get authorized to connect, libbrlapi has to tell the BrlAPI server a secret key, for security reasons. This is the path to the file which holds it; it will hence have to be readable by the application."""

View File

@ -1,5 +1,10 @@
%define pkg_version 5.6
%define api_version 0.6.7
%define pkg_version 6.6
%define api_version 0.8.5
# minimal means brltty-minimal subpackage with minimal deps for
# braille support in Anaconda installer
# https://bugzilla.redhat.com/show_bug.cgi?id=1584679
%bcond_without minimal
%if 0%{?rhel} && 0%{?rhel} <= 7
# disable python3 by default
@ -24,7 +29,16 @@
# with espeak support iff on Fedora:
%define with_espeak 0%{?fedora}
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
%ifnarch %{ix86}
%global with_ocaml 1
%endif
%ifarch %{java_arches}
%global JAVA 1
%else
%global JAVA 0
%endif
# Filter private libraries
%global _privatelibs libbrltty.+\.so.*
@ -32,31 +46,53 @@
%global __requires_exclude ^(%{_privatelibs})$
Name: brltty
Version: %{pkg_version}
Release: 32%{?dist}
License: LGPLv2+
Version: 6.6
Release: 16%{?dist}
License: LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-2.0-or-later
URL: http://brltty.app/
Source0: http://brltty.app/archive/%{name}-%{version}.tar.xz
Source1: brltty.service
Patch1: brltty-loadLibrary.patch
Source2: brlapi-config.h
Source3: brlapi-forbuild.h
Source4: brltty.sysusers
Patch1: brltty-6.3-loadLibrary.patch
# libspeechd.h moved in latest speech-dispatch (NOT sent upstream)
Patch2: brltty-5.0-libspeechd.patch
# Upstream patch (commits 9476bc50dc8 and 796fb282e3):
Patch3: 0001-Add-support-for-eSpeak-NG.patch
# Upstreamed
Patch4: brltty-5.6-libs-add-ldflags.patch
Patch5: brltty-5.6-ocaml-add-flags.patch
Patch6: brltty-5.6-add-dracut-support.patch
Patch7: brltty-5.6-alsa-1.1.9-fix.patch
Patch2: brltty-6.3-libspeechd.patch
# https://brltty.app/pipermail/brltty/2023-August/020048.html
# thanks to Lukáš Tyrychtr for the diagnosis and initial patch, and
# Samuel Thibault for this improved patch
Patch3: brltty-6.6-cython3.patch
Summary: Braille display driver for Linux/Unix
BuildRequires: byacc, glibc-kernheaders, bluez-libs-devel, systemd
BuildRequires: gettext, at-spi2-core-devel, alsa-lib-devel
BuildRequires: byacc
BuildRequires: glibc-kernheaders
BuildRequires: gcc
BuildRequires: bluez-libs-devel
BuildRequires: systemd
BuildRequires: systemd-rpm-macros
%{?sysusers_requires_compat}
BuildRequires: lua-devel
BuildRequires: gettext
BuildRequires: at-spi2-core-devel
BuildRequires: alsa-lib-devel
%if %{with_espeak}
BuildRequires: espeak-devel
%endif
BuildRequires: espeak-ng-devel
BuildRequires: /usr/bin/2to3
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: polkit-devel
BuildRequires: libicu-devel
BuildRequires: doxygen
BuildRequires: linuxdoc-tools
%if %{with python2}
BuildRequires: python2-docutils
BuildRequires: python2-setuptools
%endif
%if %{with python3}
BuildRequires: python3-docutils
BuildRequires: python3-setuptools
%endif
Conflicts: brltty-minimal
# work around a bug in the install process:
Requires(post): coreutils
@ -76,7 +112,6 @@ Speech Dispatcher, please install also package %{name}-speech-dispatcher.
%package speech-dispatcher
Summary: Speech Dispatcher driver for BRLTTY
License: LGPLv2+
BuildRequires: speech-dispatcher-devel
Requires: %{name}%{?_isa} = %{pkg_version}-%{release}
%description speech-dispatcher
@ -85,7 +120,6 @@ This package provides the Speech Dispatcher driver for BRLTTY.
%package docs
Summary: Documentation for BRLTTY
License: LGPLv2+
Requires: %{name} = %{pkg_version}-%{release}
BuildArch: noarch
%description docs
@ -93,16 +127,14 @@ This package provides the documentation for BRLTTY.
%package xw
Summary: XWindow driver for BRLTTY
License: LGPLv2+
BuildRequires: libSM-devel libICE-devel libX11-devel libXaw-devel libXext-devel libXt-devel libXtst-devel
Requires: %{name}%{?_isa} = %{pkg_version}-%{release}
Requires: xorg-x11-fonts-misc, ucs-miscfixed-fonts
Requires: xorg-x11-fonts-misc
%description xw
This package provides the XWindow driver for BRLTTY.
%package at-spi2
Summary: AtSpi2 driver for BRLTTY
License: LGPLv2+
Requires: %{name}%{?_isa} = %{pkg_version}-%{release}
%description at-spi2
This package provides the AtSpi2 driver for BRLTTY.
@ -110,7 +142,6 @@ This package provides the AtSpi2 driver for BRLTTY.
%if %{with_espeak}
%package espeak
Summary: eSpeak driver for BRLTTY
License: LGPLv2+
Requires: %{name}%{?_isa} = %{pkg_version}-%{release}
%description espeak
This package provides the eSpeak driver for BRLTTY.
@ -118,7 +149,6 @@ This package provides the eSpeak driver for BRLTTY.
%package espeak-ng
Summary: eSpeak-NG driver for BRLTTY
License: LGPLv2+
Requires: %{name}%{?_isa} = %{pkg_version}-%{release}
%if ! %{with_espeak}
Obsoletes: brltty-espeak <= 5.6-5
@ -128,7 +158,6 @@ This package provides the eSpeak-NG driver for BRLTTY.
%package -n brlapi
Version: %{api_version}
License: LGPLv2+
Summary: Application Programming Interface for BRLTTY
Recommends: %{name} = %{pkg_version}-%{release}
Requires(pre): glibc-common, shadow-utils
@ -142,7 +171,6 @@ a refreshable braille display.
%package -n brlapi-devel
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
Summary: Headers, static archive, and documentation for BrlAPI
@ -160,7 +188,6 @@ which directly accesses a refreshable braille display.
%package -n tcl-brlapi
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
BuildRequires: tcl-devel
Summary: Tcl binding for BrlAPI
@ -171,7 +198,6 @@ This package provides the Tcl binding for BrlAPI.
%package -n python2-brlapi
%{?python_provide:%python_provide python2-brlapi}
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
BuildRequires: Cython
BuildRequires: python2-devel
@ -185,7 +211,6 @@ This package provides the Python 2 binding for BrlAPI.
%package -n python3-brlapi
%{?python_provide:%python_provide python3-brlapi}
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
BuildRequires: python3-Cython
BuildRequires: python3-devel
@ -198,22 +223,24 @@ Summary: Python 3 binding for BrlAPI
This package provides the Python 3 binding for BrlAPI.
%endif
%if %{JAVA}
%package -n brlapi-java
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
BuildRequires: jpackage-utils
BuildRequires: java-devel
Summary: Java binding for BrlAPI
%description -n brlapi-java
This package provides the Java binding for BrlAPI.
%endif
%if 0%{?with_ocaml}
%package -n ocaml-brlapi
Version: %{api_version}
License: LGPLv2+
Requires: brlapi%{?_isa} = %{api_version}-%{release}
BuildRequires: ocaml
BuildRequires: ocaml-findlib
BuildRequires: make
Summary: OCaml binding for BrlAPI
%description -n ocaml-brlapi
This package provides the OCaml binding for BrlAPI.
@ -226,6 +253,15 @@ Requires: dracut
%description dracut
This package provides brltty module for Dracut.
%if %{with minimal}
%package minimal
Summary: Stripped down brltty version for Anaconda installer
Conflicts: brltty
%description minimal
This package provides stripped down brltty version for Anaconda
installer.
%endif
%define version %{pkg_version}
%prep
@ -233,32 +269,38 @@ This package provides brltty module for Dracut.
mv %{name}-%{version} python2
pushd python2
%patch1 -p1 -b .loadLibrary
%patch2 -p1 -b .libspeechd
%patch3 -p1 -b .espeak-ng
%patch4 -p1 -b .libs-add-ldflags
%patch5 -p1 -b .ocaml-add-flags
%patch6 -p1 -b .add-dracut-support
%patch7 -p1 -b .alsa-1.1.9-fix
%patch -P 1 -p1 -b .loadLibrary
%patch -P 2 -p1 -b .libspeechd
%patch -P 3 -p1 -b .cython3
# remove packaged binary file
rm -f Programs/brltty-ktb
# produce debuginfo for the OCaml interface
sed -i 's/@OCAMLC@/& -g/;s/@OCAMLOPT@/& -g/;s/@OCAMLMKLIB@/& -g/' \
Bindings/OCaml/Makefile.in
popd
# Make a copy of the source tree for building the Python 3 module
# Make it all time, we just gonna ignore python2 or python3 when not needed
cp -a python2 python3
%if %{with minimal}
cp -a python2 minimal
%endif
%build
# If MAKEFLAGS=-jN is set it would break local builds.
unset MAKEFLAGS
%if %{JAVA}
# Add the openjdk include directories to CPPFLAGS
for i in -I/usr/lib/jvm/java/include{,/linux}; do
java_inc="$java_inc $i"
done
export CPPFLAGS="$java_inc"
%endif
export LDFLAGS="%{?build_ldflags}"
export CFLAGS="%{optflags} -fno-strict-aliasing $LDFLAGS"
@ -275,10 +317,35 @@ configure_opts=" \
%if ! %{with_espeak}
--without-espeak \
%endif
--with-install-root=$RPM_BUILD_ROOT
%if %{JAVA}
--with-install-root=%{buildroot} \
JAVA_JAR_DIR=%{_jnidir} \
JAVA_JNI_DIR=%{_libdir}/brltty \
JAVA_JNI=yes"
%else
--with-install-root=%{buildroot}"
%endif
configure_opts_minimal=" \
--disable-stripping \
--without-curses \
--without-speechd \
--without-espeak \
--disable-icu \
--disable-polkit \
--disable-java-bindings \
--disable-ocaml-bindings \
--disable-python-bindings \
--disable-tcl-bindings \
--disable-speech-support \
--without-pcm-package \
--without-midi-package \
--with-install-root=%{buildroot} \
--with-configuration-file=brltty-minimal.conf \
--with-drivers-directory=%{_libdir}/brltty-minimal \
--with-tables-directory=%{_sysconfdir}/brltty-minimal \
--with-scripts-directory=%{_libexecdir}/brltty-minimal \
JAVA_JNI=no"
export PYTHONCOERCECLOCALE=0
@ -291,21 +358,44 @@ pushd python2
%configure $configure_opts PYTHON=%{__python2}
# Parallel build seems broken, thus disabling it
make
# documents
pushd Documents
make
popd
popd
PYTHONS="$PYTHONS python2"
%endif
%if %{with minimal}
# ... and then do it again for minimal
pushd minimal
./autogen
%configure $configure_opts_minimal
make
popd
%endif
%if %{with python3}
# ... and then do it again for the Python 3 module
pushd python3
./autogen
%configure $configure_opts PYTHON=%{__python3} CYTHON=%{_bindir}/cython
make
# documents
pushd Documents
make
popd
popd
PYTHONS="$PYTHONS python3"
%endif
for python in $PYTHONS
do pushd $python
find . -name '*.sgml' |
@ -333,7 +423,7 @@ done
%install
%if 0%{?with_ocaml}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs
mkdir -p %{buildroot}%{_libdir}/ocaml/stublibs
%endif
%if %{with python2}
@ -345,6 +435,28 @@ make install JAVA_JAR_DIR=%{_jnidir} \
popd
%endif
%if %{with minimal}
# minimal
pushd minimal
make install
# drop extra drivers
pushd %{buildroot}%{_libdir}/brltty-minimal
rm -f libbrlttybba.so libbrlttybxw.so libbrlttyxa2.so libbrlttysen.so \
libbrlttyses.so libbrlapi_java.so
popd
# rename brltty to brltty-minimal
mv %{buildroot}%{_bindir}/brltty %{buildroot}%{_bindir}/brltty-minimal
# install config
install -d -m 755 "%{buildroot}%{_sysconfdir}"
install -p -m 644 Documents/brltty.conf "%{buildroot}%{_sysconfdir}/brltty-minimal.conf"
popd
%endif
%if %{with python3}
# Python 3
pushd python3
@ -361,11 +473,16 @@ pushd python3
pushd python2
%endif
install -d -m 755 "${RPM_BUILD_ROOT}%{_sysconfdir}" "$RPM_BUILD_ROOT%{_mandir}/man5"
install -m 644 Documents/brltty.conf "${RPM_BUILD_ROOT}%{_sysconfdir}"
echo ".so man1/brltty.1" > $RPM_BUILD_ROOT%{_mandir}/man5/brltty.conf.5
# install polkit rules
pushd Authorization/Polkit
make install
popd
install -Dpm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/brltty.service
install -d -m 755 "%{buildroot}%{_sysconfdir}" "%{buildroot}%{_mandir}/man5"
install -p -m 644 Documents/brltty.conf "%{buildroot}%{_sysconfdir}"
echo ".so man1/brltty.1" > %{buildroot}%{_mandir}/man5/brltty.conf.5
install -Dpm 644 %{SOURCE1} %{buildroot}%{_unitdir}/brltty.service
cp -p LICENSE* ../
@ -384,27 +501,36 @@ for i in Drivers/Speech/SpeechDispatcher/README \
mkdir -p ../${i%/*} && cp -rp $i ../$i || exit 1
done
# Don't want static lib
rm -rf $RPM_BUILD_ROOT/%{_libdir}/libbrlapi.a
# don't want static lib
rm -rf %{buildroot}/%{_libdir}/libbrlapi.a
# create /var/lib/brltty directory
mkdir -p %{buildroot}%{_localstatedir}/lib/brltty
# ghost brlapi.key
touch ${RPM_BUILD_ROOT}%{_sysconfdir}/brlapi.key
chmod 0640 ${RPM_BUILD_ROOT}%{_sysconfdir}/brlapi.key
touch %{buildroot}%{_sysconfdir}/brlapi.key
chmod 0640 %{buildroot}%{_sysconfdir}/brlapi.key
# disable xbrlapi gdm autostart, there is already orca
rm -f ${RPM_BUILD_ROOT}%{_datadir}/gdm/greeter/autostart/xbrlapi.desktop
rm -f %{buildroot}%{_datadir}/gdm/greeter/autostart/xbrlapi.desktop
# make brltty-config executable
chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/brltty-config
chmod 755 %{buildroot}%{_bindir}/brltty-config.sh
# fix multilib
pushd %{buildroot}%{_includedir}/brltty
for f in config forbuild
do
mv ./$f.h ./$f-$(getconf LONG_BIT).h
done
install -p -m 0644 %{SOURCE2} ./config.h
install -p -m 0644 %{SOURCE3} ./forbuild.h
popd
# handle locales
%find_lang %{name}
cp -p %{name}.lang ../
#Use python 3 for latex-access, BZ 1465657.
/usr/bin/2to3 -wn ${RPM_BUILD_ROOT}/etc/brltty/Contraction/latex-access.ctb
sed -i 's|/usr/bin/python|%{__python3}|g' ${RPM_BUILD_ROOT}/etc/brltty/Contraction/latex-access.ctb
# install dracut module
make install-dracut
@ -414,15 +540,13 @@ popd
rm -f doc/Initramfs/Dracut/README*
rmdir doc/Initramfs/Dracut doc/Initramfs
# workaround for multilib conflict (rhbz#1849675)
for f in config.h forbuild.h
do
sed -i 's|^\s*#define\s\+DRIVERS_DIRECTORY\s\+.*$|#if defined (__i386__)\
#define DRIVERS_DIRECTORY "/usr/lib/brltty"\
#else\
#define DRIVERS_DIRECTORY "/usr/lib64/brltty"\
#endif|' ${RPM_BUILD_ROOT}%{_includedir}/brltty/$f
done
# Install group creation file
install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_sysusersdir}/brltty.conf
%if %{!JAVA}
find . -type d -name 'Java' | xargs rm -rf
find %{buildroot}%{_datadir} -type d -name 'Java' | xargs rm -rf
%endif
%post
%systemd_post brltty.service
@ -434,7 +558,7 @@ done
%systemd_postun_with_restart brltty.service
%pre -n brlapi
getent group brlapi >/dev/null || groupadd -r brlapi >/dev/null
%sysusers_create_compat %{SOURCE4}
%post -n brlapi
if [ ! -e %{_sysconfdir}/brlapi.key ]; then
@ -442,18 +566,21 @@ if [ ! -e %{_sysconfdir}/brlapi.key ]; then
chgrp brlapi %{_sysconfdir}/brlapi.key
chmod 0640 %{_sysconfdir}/brlapi.key
fi
/sbin/ldconfig
%{?ldconfig}
%postun -n brlapi -p /sbin/ldconfig
%ldconfig_postun -n brlapi
%files -f %{name}.lang
%dir %{_localstatedir}/lib/brltty
%config(noreplace) %{_sysconfdir}/brltty.conf
%{_sysconfdir}/brltty/
%exclude %{_sysconfdir}/brltty/Initramfs
%{_unitdir}/brltty.service
%{_bindir}/brltty
%{_bindir}/brltty-*
%exclude %{_bindir}/brltty-minimal
%{_libdir}/brltty/
%if %{!JAVA}
%exclude %{_libdir}/brltty/libbrlttybba.so
%exclude %{_libdir}/brltty/libbrlttybxw.so
%exclude %{_libdir}/brltty/libbrlttyxa2.so
@ -463,12 +590,21 @@ fi
%if %{with_speech_dispatcher}
%exclude %{_libdir}/brltty/libbrlttyssd.so
%endif
%license LICENSE-GPL LICENSE-LGPL
%endif
%license LICENSE-LGPL
%doc %{_mandir}/man[15]/brltty.*
%{_sysconfdir}/X11/Xsession.d/60xbrlapi
#%%{_datadir}/metainfo/org.a11y.brltty.metainfo.xml
%{_sysconfdir}/X11/Xsession.d/90xbrlapi
%{_datadir}/polkit-1/actions/org.a11y.brlapi.policy
%{_datadir}/polkit-1/rules.d/org.a11y.brlapi.rules
%if %{with minimal}
%files minimal -f %{name}.lang
%config(noreplace) %{_sysconfdir}/brltty-minimal.conf
%{_sysconfdir}/brltty-minimal/
%{_bindir}/brltty-minimal
%{_libdir}/brltty-minimal/
%license LICENSE-LGPL
%endif
%if %{with_speech_dispatcher}
%files speech-dispatcher
@ -479,7 +615,7 @@ fi
%files docs
%doc Documents/ChangeLog Documents/TODO
%doc Documents/Manual-BRLTTY/
%doc doc/*
#%doc doc/*
%files xw
%doc Drivers/Braille/XWindow/README
@ -508,11 +644,14 @@ fi
%doc %{_mandir}/man1/xbrlapi.*
%doc %{_mandir}/man1/vstp.*
%doc %{_mandir}/man1/eutp.*
%{_sysusersdir}/brltty.conf
%{lua_libdir}/brlapi.so
%files -n brlapi-devel
%{_libdir}/libbrlapi.so
%{_includedir}/brltty
%{_includedir}/brlapi*.h
%{_libdir}/pkgconfig/brltty.pc
%doc %{_mandir}/man3/brlapi_*.3*
%doc Documents/BrlAPIref/BrlAPIref/
@ -531,9 +670,11 @@ fi
%{python3_sitearch}/Brlapi-%{api_version}-*.egg-info
%endif
%if %{JAVA}
%files -n brlapi-java
%{_libdir}/brltty/libbrlapi_java.so
%{_jnidir}/brlapi.jar
%endif
%if 0%{?with_ocaml}
%files -n ocaml-brlapi
@ -548,50 +689,288 @@ fi
%config(noreplace) %verify(not size md5 mtime) %{_sysconfdir}/brltty/Initramfs/cmdline
%changelog
* Wed Oct 21 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-32
* Wed Oct 30 2024 Troy Dawson <tdawson@redhat.com> - 6.6-16
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Thu Jul 4 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 6.6-15
- Dropped ucs-miscfixed-fonts requirement, xorg-x11-fonts-misc is enough
Resolves: RHEL-46310
* Tue Jun 25 2024 Troy Dawson <tdawson@redhat.com> - 6.6-14
- Bump release for June 2024 mass rebuild
* Wed Jan 31 2024 Pete Walter <pwalter@fedoraproject.org> - 6.6-13
- Rebuild for ICU 74
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.6-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.6-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 17 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 6.6-10
- Added SPDX licenses found by ScanCode
- Dropped redundant license tags from subpackages
* Wed Dec 20 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.6-9
- Migrate group creation to sysusers
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 6.6-8
- Bump release and rebuild
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 6.6-7
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 6.6-6
- OCaml 5.1.1 rebuild for Fedora 40
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 6.6-5
- OCaml 5.1 rebuild for Fedora 40
* Tue Aug 15 2023 Adam Williamson <awilliam@redhat.com> - 6.6-4
- Fix the Cython 3 crash and build with Cython 3 again
* Mon Aug 14 2023 Adam Williamson <awilliam@redhat.com> - 6.6-3
- Build with Cython 0.29, it crashes when built with Cython 3 (#2231865)
* Tue Jul 25 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.6-2
- Correct apiversioning
* Mon Jul 24 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.6-1
- 6.6
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jul 13 2023 František Zatloukal <fzatlouk@redhat.com> - 6.5-19
- Rebuilt for ICU 73.2
* Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 6.5-18
- OCaml 5.0 rebuild for Fedora 39
* Wed Jul 12 2023 Frantisek Zatloukal <fzatlouk@redhat.com> - 6.5-17
- Add BR: gcc (ocaml no longer pulls it indirectly on i686)
* Tue Jul 11 2023 František Zatloukal <fzatlouk@redhat.com> - 6.5-15
- Rebuilt for ICU 73.2
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 6.5-14
- OCaml 5.0.0 rebuild
- Produce debuginfo for the OCaml interface
* Tue Jun 27 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.5-13
- Fix build with gettext-0.22 (yselkowitz)
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 6.5-12
- Rebuilt for Python 3.12
* Wed Mar 08 2023 Gwyn Ciesla <gwync@protonmail.com> - 6.5-11
- migrated to SPDX license
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 6.5-10
- Rebuild OCaml packages for F38
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 6.5-8
- Rebuild for ICU 72
* Mon Aug 01 2022 Gwyn Ciesla <gwync@protonmail.com> - 6.5-7
- Build Java only on supported platforms.
* Mon Aug 01 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 6.5-6
- Rebuilt for ICU 71.1
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 6.5-4
- Rebuilt for Python 3.11
* Sat Jun 18 2022 Richard W.M. Jones <rjones@redhat.com> - 6.5-3
- OCaml 4.14.0 rebuild
* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 6.5-2
- Rebuilt for Python 3.11
* Tue Jun 14 2022 Jaroslav Škarvada <jskarvad@redhat.com> - 6.5-1
- New version
Resolves: rhbz#2095460
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 6.4-7
- Rebuilt for Python 3.11
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 6.4-6
- Rebuilt for java-17-openjdk as system jdk
* Fri Feb 04 2022 Richard W.M. Jones <rjones@redhat.com> - 6.4-5
- OCaml 4.13.1 rebuild to remove package notes
* Thu Jan 20 2022 Jaroslav Škarvada <jskarvad@redhat.com> - 6.4-4
- Installed /var/lib/brltty directory
Related: rhbz#2042412
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 6.4-2
- OCaml 4.13.1 build
* Fri Sep 24 2021 Gwyn Ciesla <gwync@protonmail.com> - 6.4-1
- 6.4
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 6.3-9
- Rebuilt for Python 3.10
* Tue Jun 1 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 6.3-8
- Fixed requirements for brltty-minimal
Related: rhbz#1584679
* Wed May 19 2021 Pete Walter <pwalter@fedoraproject.org> - 6.3-7
- Rebuild for ICU 69
* Wed May 19 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 6.3-6
- Added brltty-minimal subpackage for braille support in Anaconda installer
Related: rhbz#1584679
* Thu May 13 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 6.3-5
- Fixed brlapi multilib
* Fri Apr 16 2021 Gwyn Ciesla <gwync@protonmail.com> - 6.3-4
- Upstream patch to support Python 3.10.
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 6.3-3
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Mon Mar 1 13:12:00 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 6.3-2
- OCaml 4.12.0 build
* Mon Feb 1 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 6.3-1
- New version
Resolves: rhbz#1910328
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Oct 20 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 6.1-12
- Fixed brlapi.key to pass the RPM verification
Resolves: rhbz#1889636
* Mon Oct 19 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-31
- Added workaround for brlapi-devel multilib conflict
Resolves: rhbz#1849675
* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 6.1-11
- OCaml 4.11.1 rebuild
* Fri Jul 10 2020 Artem Egorenkov <aegorenk@redhat.com> - 5.6-30
- brltty requires brlapi deleted (duplication of automatically determined dependency)
- isa macro deleted for brlapi requires brltty
- brlapi recommends brltty
Resolves: rhbz#1765611
* Fri Aug 21 2020 Richard W.M. Jones <rjones@redhat.com> - 6.1-10
- OCaml 4.11.0 rebuild
* Wed Jul 8 2020 Artem Egorenkov <aegorenk@redhat.com> - 5.6-29
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jul 16 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 6.1-8
- Dropped explicit brlapi dependency (brltty) and relaxed brltty
dependency (brlapi)
Related: rhbz#1765611
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 6.1-7
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 6.1-6
- Rebuilt for Python 3.9
* Wed May 20 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 6.1-5
- Added missing missing -o option to the brltty man page
* Mon May 04 2020 Richard W.M. Jones <rjones@redhat.com> - 6.1-4
- OCaml 4.11.0+dev2-2020-04-22 rebuild
* Tue Apr 21 2020 Richard W.M. Jones <rjones@redhat.com> - 6.1-3
- OCaml 4.11.0 pre-release attempt 2
* Fri Apr 17 2020 Richard W.M. Jones <rjones@redhat.com> - 6.1-2
- OCaml 4.11.0 pre-release
* Mon Apr 06 2020 Gwyn Ciesla <gwync@protonmail.com> - 6.1-1
- 6.1
* Thu Apr 02 2020 Richard W.M. Jones <rjones@redhat.com> - 6.0-14
- Update all OCaml dependencies for RPM 4.16.
* Wed Feb 26 2020 Richard W.M. Jones <rjones@redhat.com> - 6.0-13
- OCaml 4.10.0 final.
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 18 2020 Richard W.M. Jones <rjones@redhat.com> - 6.0-11
- OCaml 4.10.0+beta1 rebuild.
* Wed Jan 08 2020 Richard W.M. Jones <rjones@redhat.com> - 6.0-10
- OCaml 4.09.0 for riscv64
* Fri Dec 06 2019 Richard W.M. Jones <rjones@redhat.com> - 6.0-9
- OCaml 4.09.0 (final) rebuild.
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 6.0-8
- Rebuilt for Python 3.8
* Fri Aug 16 2019 Richard W.M. Jones <rjones@redhat.com> - 6.0-7
- OCaml 4.08.1 (final) rebuild.
* Wed Jul 31 2019 Richard W.M. Jones <rjones@redhat.com> - 6.0-6
- OCaml 4.08.1 (rc2) rebuild.
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jun 27 2019 Richard W.M. Jones <rjones@redhat.com> - 6.0-4
- OCaml 4.08.0 (final) rebuild.
* Fri Jun 7 2019 Jaroslav Škarvada <jskarvad@redhat.com> - 6.0-3
- Fixed build with alsa-1.1.9
Resolves: rhbz#1854905
Resolves: rhbz#1716389
* Tue Dec 11 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-28
* Mon Apr 29 2019 Richard W.M. Jones <rjones@redhat.com> - 6.0-2
- OCaml 4.08.0 (beta 3) rebuild.
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.6-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Dec 11 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-31
- Do not package documentation for dracut module twice
Related: rhbz#1655345
* Tue Dec 11 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-27
* Tue Dec 11 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-30
- Rebased dracut support to upstream version
Resolves: rhbz#1655345
- Added requires to subpackages
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-26
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-29
- Improved CFLAGS handling when building Ocaml bindings
Related: rhbz#1655344
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-25
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-28
- Built OCaml bindings with distribution CFLAGS and consolidated patches
Resolves: rhbz#1655344
- Fixed Cython build requires
- Used macro for python3 path
* Sun Dec 2 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-24
- Fixed CI gating settings
Resolves: rhbz#1648292
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.6-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Aug 9 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-23
- Fixed FTBFS
Resolves: rhbz#1611708
* Wed Jul 11 2018 Richard W.M. Jones <rjones@redhat.com> - 5.6-26
- OCaml 4.07.0 (final) rebuild.
* Wed Jun 20 2018 Tomas Orsava <torsava@redhat.com> - 5.6-22
- Switch hardcoded python3 shebangs into the %%{__python3} macro
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 5.6-25
- Rebuilt for Python 3.7
* Thu Jun 21 2018 Paolo Bonzini <pbonzini@redhat.com> - 5.6-24
- Remove unnecessary dependency from brlapi and brltty-docs to brltty
* Wed Jun 20 2018 Richard W.M. Jones <rjones@redhat.com> - 5.6-23
- OCaml 4.07.0-rc1 rebuild.
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 5.6-22
- Rebuilt for Python 3.7
* Mon Jun 11 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 5.6-21
- Improved brltty service to start before display manager and getty

2
brltty.sysusers Normal file
View File

@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
g brlapi -

1
ci.fmf Normal file
View File

@ -0,0 +1 @@
resultsdb-testcase: separate

25
gating.yaml Normal file
View File

@ -0,0 +1,25 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
#Rawhide
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
#gating rhel
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional}
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}

36
plans.fmf Normal file
View File

@ -0,0 +1,36 @@
/tier1-internal:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/tier1/internal
/tier1-public:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/tier1/public
/tier2-tier3-internal:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/tier2-tier3/internal
/tier2-tier3-public:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/tier2-tier3/public
/others-internal:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/others/internal
/others-public:
plan:
import:
url: https://src.fedoraproject.org/tests/brltty.git
name: /plans/others/public

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (brltty-6.6.tar.xz) = 852bfd9179570be7b0da8b1279f84bdfedc14a319988d9c2eac5a20a9ce8977f31fdee167e8e96bb411184a1d72f4cdc633944c7b3f55bddae411fc71a9e6898

0
tests/README.rst Normal file
View File

17
tests/old-tests.yml Normal file
View File

@ -0,0 +1,17 @@
- hosts: localhost
tags:
- classic
- container
roles:
- role: standard-test-beakerlib
tests:
- sanity-test
required_packages:
- ImageMagick
- Xvfb
- brltty
- nc
- orca
- psmisc
- xorg-x11-utils

View File

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/brltty/Sanity/sanity-test
# Description: it check basic sanity of packahe
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/brltty/Sanity/sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Jan Scotka <jscotka@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: it check basic sanity of packahe" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 20m" >> $(METADATA)
@echo "RunFor: brltty" >> $(METADATA)
@echo "Requires: brltty Xvfb ImageMagick psmisc xorg-x11-utils nc orca" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/brltty/Sanity/sanity-test
Description: it check basic sanity of packahe
Author: Jan Scotka <jscotka@redhat.com>

74
tests/sanity-test/runtest.sh Executable file
View File

@ -0,0 +1,74 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/brltty/Sanity/sanity-test
# Description: it check basic sanity of packahe
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="brltty"
DISPLAY=99
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "Xvfb :$DISPLAY -screen 0 1024x768x24&"
rlRun "sleep 5"
rlPhaseEnd
rlPhaseStartTest
rlRun "DISPLAY=:$DISPLAY orca&"
rlRun "sleep 5"
rlRun "sleep 5"
rlRun "DISPLAY=:$DISPLAY brltty -b xw -x a2 -A auth=none"
rlRun "sleep 5"
rlRun "BRPID=`pidof brltty`"
rlRun "cat /proc/$BRPID/cmdline"
rlRun "DISPLAY=:$DISPLAY import -window root example.png"
rlRun "DISPLAY=:$DISPLAY xwininfo -tree -root"
#rlRun "DISPLAY=:$DISPLAY xwininfo -tree -root| grep -A 2 children |grep brltty"
#rlRun "DISPLAY=:$DISPLAY xwininfo -tree -root|grep +664+36"
rlRun "killall brltty"
rlRun "sleep 5"
rlRun "DISPLAY=:$DISPLAY brltty -b vr -d server:127.0.0.1 -x a2 -A auth=none"
rlRun "sleep 5"
rlRun "echo cells 20 | ncat 127.0.0.1 35752 |grep 'Visual \"BRLTTY'"
rlRun "echo cells 20 | ncat 127.0.0.1 35752 |grep '127.12357.1237.23457.23457.134567'"
rlRun "echo quit | ncat 127.0.0.1 35752"
rlRun "sleep 2"
rlRun "test -x /usr/bin/brltty-config"
rlRun "brltty-config"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "killall brltty"
rlRun "killall Xvfb"
rlFileSubmit example.png
rlPhaseEnd
rlJournalPrintText
rlJournalEnd