From 27ad0758966e0a7900c66ec3202ad592121830c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Mon, 25 Feb 2019 15:40:29 +0100 Subject: [PATCH] Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild --- .gitignore | 1 + 0001-Add-support-for-eSpeak-NG.patch | 549 ------- brltty-5.6-add-dracut-support.patch | 1279 ----------------- brltty-5.6-libs-add-ldflags.patch | 110 -- brltty-5.6-ocaml-add-flags.patch | 37 - ...rary.patch => brltty-6.0-loadLibrary.patch | 18 +- brltty.spec | 20 +- sources | 2 +- 8 files changed, 16 insertions(+), 2000 deletions(-) delete mode 100644 0001-Add-support-for-eSpeak-NG.patch delete mode 100644 brltty-5.6-add-dracut-support.patch delete mode 100644 brltty-5.6-libs-add-ldflags.patch delete mode 100644 brltty-5.6-ocaml-add-flags.patch rename brltty-loadLibrary.patch => brltty-6.0-loadLibrary.patch (56%) diff --git a/.gitignore b/.gitignore index 7b2d613..e88afbe 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ brltty-4.2.tar.gz /brltty-5.4.tar.xz /brltty-5.5.tar.xz /brltty-5.6.tar.xz +/brltty-6.0.tar.xz diff --git a/0001-Add-support-for-eSpeak-NG.patch b/0001-Add-support-for-eSpeak-NG.patch deleted file mode 100644 index 9fcb4de..0000000 --- a/0001-Add-support-for-eSpeak-NG.patch +++ /dev/null @@ -1,549 +0,0 @@ -From 6df30ecf05440a1a0f197817d3e39c15d04f15c0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= -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 - Ole Guldberg - Olivier Bert - Ollie Mallard -+olysonek - Oscar Fernandez - Pete De Vasto - Peter Lundblad -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 . -+############################################################################### -+ -+DRIVER_CODE = en -+DRIVER_NAME = eSpeak-NG -+DRIVER_COMMENT = text to speech engine -+DRIVER_VERSION = 0.1 -+DRIVER_DEVELOPERS = Nicolas Pitre , Ondřej Lysoněk -+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 . -+ */ -+ -+#include "prologue.h" -+ -+#include -+#include -+#include -+ -+#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 -+ -+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 - diff --git a/brltty-5.6-add-dracut-support.patch b/brltty-5.6-add-dracut-support.patch deleted file mode 100644 index 2d2e239..0000000 --- a/brltty-5.6-add-dracut-support.patch +++ /dev/null @@ -1,1279 +0,0 @@ -diff --git a/Headers/datafile.h b/Headers/datafile.h -index f22457e..eec692c 100644 ---- a/Headers/datafile.h -+++ b/Headers/datafile.h -@@ -43,6 +43,7 @@ typedef enum { - - typedef struct { - DataOperandsProcessor *processOperands; -+ void (*logFileName) (const char *name, void *data); - void *data; - unsigned char options; - } DataFileParameters; -diff --git a/Initramfs/Dracut/Makefile.in b/Initramfs/Dracut/Makefile.in -new file mode 100644 -index 0000000..8a7f6de ---- /dev/null -+++ b/Initramfs/Dracut/Makefile.in -@@ -0,0 +1,34 @@ -+MODULE_NAME = 99brltty -+MODULES_DIRECTORY = /usr/lib/dracut/modules.d -+MODULE_DIRECTORY = $(INSTALL_ROOT)$(MODULES_DIRECTORY)/$(MODULE_NAME) -+ -+install: install-module install-documentation install-configuration-files -+ -+install-module: install-module-directory -+ for file in *.sh; \ -+ do $(INSTALL_SCRIPT) $$file $(MODULE_DIRECTORY); \ -+ done -+ -+install-documentation: install-module-directory -+ $(INSTALL_DATA) README $(MODULE_DIRECTORY) -+ -+install-module-directory: -+ $(INSTALL_DIRECTORY) $(MODULE_DIRECTORY) -+ -+OPTIONS_FILE = cmdline -+CONFIGURATION_FILE = dracut.conf -+INITRAMFS_SUBDIRECTORY = Initramfs -+INITRAMFS_DIRECTORY = $(TABLES_DIRECTORY)/$(INITRAMFS_SUBDIRECTORY) -+INSTALL_INITRAMFS_DIRECTORY = $(INSTALL_ROOT)$(INITRAMFS_DIRECTORY) -+ -+install-initramfs-directory: -+ $(INSTALL_DIRECTORY) $(INSTALL_INITRAMFS_DIRECTORY) -+ -+install-configuration-files: install-initramfs-directory -+ $(INSTALL_DATA) $(OPTIONS_FILE) $(INSTALL_INITRAMFS_DIRECTORY) -+ $(INSTALL_DATA) $(CONFIGURATION_FILE) $(INSTALL_INITRAMFS_DIRECTORY) -+ sed -e '/^ *BRLTTY_DRACUT_LOCALE *= *"/s/".*"/"${LANG}"/' -i $(INSTALL_INITRAMFS_DIRECTORY)/$(CONFIGURATION_FILE) -+ -+uninstall: -+ -rm -f -r $(MODULE_DIRECTORY) -+ -diff --git a/Initramfs/Dracut/README b/Initramfs/Dracut/README -new file mode 100644 -index 0000000..ccf6baa ---- /dev/null -+++ b/Initramfs/Dracut/README -@@ -0,0 +1,215 @@ -+Braille Support for Dracut -+========================== -+ -+This module implements braille accessibility within the initramfs (initial -+ramdisk file system). If BRLTTY is installed (``/usr/bin/brltty`` exists) then -+it is added to the image. The braille drivers, text tables, attributes tables, -+contraction tables, keyboard tables, speech drivers, and preferences file -+configured via ``/etc/brltty.conf`` are included. Local customizations within -+``/etc/xdg/brltty/`` are also included. -+ -+BRLTTY is started as early as possible by the initramfs so that braille -+accessibility will be active when (should the need arise) control is -+transferred to the emergency shell due to a problem preparing the root file -+system. Additionally, braille accessibility is active at any of the specifiable -+initramfs breakpoints (see the ``rd.break`` kernel parameter) except for the -+one named ``cmdline`` because it occurs earlier than the point at which BRLTTY -+is started. -+ -+The braille driver can start immediately if either serial or USB communication -+is being used. If Bluetooth communication is being used then the braille driver -+won't start until the ``initqueue`` phase because the Systemd service manager -+isn't available until then. -+ -+Bluetooth support within the initramfs is disabled by default because it's -+insecure. The reason for this is that the link keys for those devices that have -+already been paired on the full system are copied into the initramfs image so -+that repairing won't be necessary. If you absolutely must use Bluetooth -+communication, or if you just want to and this issue is of no concern to you, -+then enable the ``BRLTTY_DRACUT_BLUETOOTH_SUPPORT`` option within the file -+``dracut.conf`` (which is in ``/etc/brltty/Initramfs/``). -+ -+Environment Variables -+--------------------- -+ -+A number of environment variables may be used to influence how BRLTTY is -+installed into the initramfs image. Their names all begin with the -+``BRLTTY_DRACUT_`` prefix. In addition to exporting them from the current -+environment, they may be defined within the optional file ``dracut.conf`` -+(which is in ``/etc/brltty/Initramfs/``). Within this file: -+ -+* Blank lines are ignored. -+* Lines that start with a hash [``#``] are comments. -+* All other lines should be simple shell-style assignments. For example:: -+ -+ NAME="string" -+ -+The following environment variables are supported: -+ -+BRLTTY_DRACUT_LOCALE -+ The preferred locale (used to determine the default text and contraction -+ tables). For example:: -+ -+ BRLTTY_DRACUT_LOCALE=cs_CZ.UTF-8 -+ -+ If needed, i.e. if the text and contraction tables haven't both been -+ configured via ``/etc/brltty.conf``, this information must be explicitly set -+ because it can't be determined from the system configuration when building -+ the image (see ``_). -+ -+BRLTTY_DRACUT_BRAILLE_DRIVERS -+ A space-separated list of additional braille drivers to include. For -+ example:: -+ -+ BRLTTY_DRACUT_BRAILLE_DRIVERS="pm eu" -+ -+BRLTTY_DRACUT_BLUETOOTH_SUPPORT -+ Whether or not Bluetooth support should be included within the initramfs. For -+ example:: -+ -+ BRLTTY_DRACUT_BLUETOOTH_SUPPORT=no -+ -+ Set this variable to ``yes`` if communication with your braille device is via -+ Bluetooth. Note that this option is insecure because the link keys for all of -+ your paired Bluetooth devices will be stored within the initramfs image. -+ -+BRLTTY_DRACUT_TEXT_TABLES -+ A space-separated list of additional text tables to include. For example:: -+ -+ BRLTTY_DRACUT_TEXT_TABLES="de fr" -+ -+BRLTTY_DRACUT_ATTRIBUTES_TABLES -+ A space-separated list of additional attributes tables to include. For -+ example:: -+ -+ BRLTTY_DRACUT_ATTRIBUTES_TABLES="upper_lower left_right" -+ -+BRLTTY_DRACUT_CONTRACTION_TABLES -+ A space-separated list of additional contraction tables to include. For -+ example:: -+ -+ BRLTTY_DRACUT_CONTRACTION_TABLES="de-kurzschrift fr-abrege" -+ -+BRLTTY_DRACUT_KEYBOARD_TABLES -+ A space-separated list of additional keyboard tables to include. For -+ example:: -+ -+ BRLTTY_DRACUT_KEYBOARD_TABLES="keypad desktop" -+ -+BRLTTY_DRACUT_SPEECH_DRIVERS -+ A space-separated list of additional speech drivers to include. For example:: -+ -+ BRLTTY_DRACUT_SPEECH_DRIVERS="es fl" -+ -+Kernel Command Line Parameters -+------------------------------ -+ -+This module interprets kernel command line parameters that begin with the -+``rd.brltty.`` prefix. Explicit values for these parameters can, of course, be -+specified on the kernel command line (e.g. within ``grub.cfg`` or within -+``/etc/default/grub``). In addition, default values for them can be defined -+within the optional file ``cmdline`` (which is in ``/etc/brltty/Initramfs/``). -+ -+The order of precedence, from lowest to highest, for a value is: -+ -+* BRLTTY built-in default -+* ``/etc/brltty.conf`` -+* initramfs override -+* ``/etc/brltty/Initramfs/cmdline`` -+* kernel command line -+ -+Blank lines are ignored. A hash [``#``] anywhere on a line begins a comment -+which continues till the end of that line - only those characters before it are -+significant. Any number of space-separated options may be specified on a line. -+The syntax for an option is ``name=value`` (without the ``rd.brltty.`` prefix). -+The ``=value`` part is optional - if there's no ``=`` then the value is -+``yes``. -+ -+Disabling BRLTTY -+```````````````` -+ -+Given that BRLTTY is a rather complex application, there are a number of kernel -+parameters that can be used to selectively disable a number of its components. -+In all cases, if any of these parameters isn't specified then it defaults to -+``1`` (enabled). They are: -+ -+ ========================= ========================================= -+ Kernel Parameter Effect -+ ------------------------- ----------------------------------------- -+ ``rd.brltty=0`` Completely disable BRLTTY. -+ ``rd.brltty.bluetooth=0`` Disable Bluetooth support. -+ ``rd.brltty.sound=0`` Disable speech drivers and sound support. -+ ``rd.brltty.pulse=0`` Disable the Pulse Audio server. -+ ``rd.brltty.speechd=0`` Disable the Speech Dispatcher server. -+ ========================= ========================================= -+ -+Specifying BRLTTY options -+````````````````````````` -+ -+All of BRLTTY's options that can be specified via environment variables (see -+``man brltty`` for the full list) can be specified via kernel parameters. For -+example, the kernel parameter ``rd.brltty.braille_driver=vo`` is mapped to the -+environment variable assignment ``BRLTTY_BRAILLE_DRIVER=vo``. Some of the more -+interesting ones are: -+ -+ ================================ =============================== -+ Kernel Parameter Default Value -+ -------------------------------- ------------------------------- -+ ``rd.brltty.braille_driver`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.braille_parameters`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.braille_device`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.text_table`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.attributes_table`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.contraction_table`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.keyboard_table`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.speech_driver`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.speech_parameters`` setting in ``/etc/brltty.conf`` -+ ``rd.brltty.log_file`` ``/run/initramfs/brltty.log`` -+ ``rd.brltty.log_level`` setting in ``/etc/brltty.conf`` -+ ================================ =============================== -+ -+Speech Drivers -+-------------- -+ -+Since speech drivers, by their very nature, require sound: -+ -+* None of them can start until the ``initqueue`` hook has been executed. -+ -+* None of them can start if sound has been disabled (via the rd.brltty.sound=0 -+ kernel parameter). -+ -+Speech defaults to being off even if a speech driver has been configured via -+``/etc/brltty.conf``. This is because your preferred speech driver may not work -+all that well, or may even cause problems, when used within the more primitive -+initramfs environment. If you'd like to use speech then you need to explicitly -+set the driver. While you can do so via the ``rd.brltty.speech_driver`` kernel -+command line parameter, the easiest way to configure a persistent setting is -+via the ``speech_driver`` option in ``/etc/brltty/Initramfs/cmdline``. -+ -+Here's how well each of the speech drivers works: -+ -+en -+ The ``en`` [eSpeak-NG] speech driver works. -+ -+es -+ The ``es`` [eSpeak] speech driver works. It requires Pulse Audio, so: -+ -+ * It doesn't start until the ``initqueue`` hook has been executed. -+ -+ * It can't start if Pulse Audio fails to start or has been disabled (via -+ the rd.brltty.pulse=0 kernel parameter). -+ -+fl -+ The ``fl`` [Festival Lite] speech driver doesn't work - it runs but doesn't -+ speak. This appears to be due to a bug within Festival Lite itself because -+ it also remains silent when tested on the full system. -+ -+fv -+ The ``fv`` [Festival] speech driver doesn't work - it crashes. This appears -+ to be due to a bug within Festival itself because it also crashes when tested -+ on the full system. -+ -+sd -+ The ``sd`` [Speech Dispatcher] speech driver hasn't been tested and probably -+ won't work. -+ -diff --git a/Initramfs/Dracut/alsa-start.sh b/Initramfs/Dracut/alsa-start.sh -new file mode 100755 -index 0000000..26ab4a1 ---- /dev/null -+++ b/Initramfs/Dracut/alsa-start.sh -@@ -0,0 +1,5 @@ -+#!/bin/bash -+ -+getargbool 1 rd.brltty && getargbool 1 rd.brltty.sound && { -+ alsaunmute -+} -diff --git a/Initramfs/Dracut/bluetooth-start.sh b/Initramfs/Dracut/bluetooth-start.sh -new file mode 100755 -index 0000000..0d574d1 ---- /dev/null -+++ b/Initramfs/Dracut/bluetooth-start.sh -@@ -0,0 +1,7 @@ -+#!/bin/bash -+ -+getargbool 1 rd.brltty && getargbool 1 rd.brltty.bluetooth && { -+ systemctl -q is-active bluetooth || { -+ systemctl --no-block start bluetooth -+ } -+} -diff --git a/Initramfs/Dracut/brltty-start.sh b/Initramfs/Dracut/brltty-start.sh -new file mode 100755 -index 0000000..ea51437 ---- /dev/null -+++ b/Initramfs/Dracut/brltty-start.sh -@@ -0,0 +1,78 @@ -+#!/bin/bash -+ -+export BRLTTY_START_MESSAGE="initramfs starting" -+export BRLTTY_STOP_MESSAGE="initramfs finished" -+ -+BRLTTY_OVERRIDE_PREFERENCE="braille-keyboard-enabled=yes" -+BRLTTY_OVERRIDE_PREFERENCE+=",braille-input-mode=text" -+export BRLTTY_OVERRIDE_PREFERENCE -+ -+export BRLTTY_SCREEN_DRIVER="lx" -+export BRLTTY_SPEECH_DRIVER="no" -+ -+export BRLTTY_WRITABLE_DIRECTORY="/run" -+export BRLTTY_PID_FILE="${BRLTTY_WRITABLE_DIRECTORY}/brltty.pid" -+export BRLTTY_LOG_FILE="${BRLTTY_WRITABLE_DIRECTORY}/initramfs/brltty.log" -+ -+export BRLTTY_UPDATABLE_DIRECTORY="/etc" -+export BRLTTY_PREFERENCES_FILE="${BRLTTY_UPDATABLE_DIRECTORY}/brltty.prefs" -+ -+brlttySetOption() { -+ local option="${1}" -+ local name="${option%%=*}" -+ -+ if [ "${name}" = "${option}" ] -+ then -+ local value="yes" -+ else -+ local value="${option#*=}" -+ fi -+ -+ [ -z "${name}" ] || { -+ name="${name^^?}" -+ export "BRLTTY_${name}=${value}" -+ } -+} -+ -+brlttySetConfiguredOptions() { -+ local file="/etc/brltty/Initramfs/cmdline" -+ -+ [ -f "${file}" ] && [ -r "${file}" ] && { -+ local line -+ -+ while read line -+ do -+ set -- ${line%%#*} -+ local option -+ -+ for option -+ do -+ brlttySetOption "${option}" -+ done -+ done <"${file}" -+ } -+} -+ -+brlttySetExplicitOptions() { -+ local option -+ -+ for option -+ do -+ [[ "${option}" =~ ^"rd.brltty."(.*) ]] && { -+ brlttySetOption "${BASH_REMATCH[1]}" -+ } -+ done -+} -+ -+brlttySetConfiguredOptions -+brlttySetExplicitOptions $(getcmdline) -+getargbool 1 rd.brltty.sound || export BRLTTY_SPEECH_DRIVER="no" -+ -+getargbool 1 rd.brltty && ( -+ # Give the kernel a bit of time to finish creating the /dev/input/ devices -+ # (e.g. so that brltty can perform keyboard discovery for keyboard tables) -+ # without delaying the boot. -+ -+ sleep 1 -+ brltty -E +n -+) & -diff --git a/Initramfs/Dracut/brltty-stop.sh b/Initramfs/Dracut/brltty-stop.sh -new file mode 100755 -index 0000000..27611ab ---- /dev/null -+++ b/Initramfs/Dracut/brltty-stop.sh -@@ -0,0 +1,3 @@ -+#!/bin/bash -+ -+brltty -E -C -diff --git a/Initramfs/Dracut/cmdline b/Initramfs/Dracut/cmdline -new file mode 100644 -index 0000000..39aefd3 ---- /dev/null -+++ b/Initramfs/Dracut/cmdline -@@ -0,0 +1,16 @@ -+# This file is where you can specify any rd.brltty. kernel parameters that are -+# to be included within the initramfs image and applied as default values. -+ -+# The order of precedence, from lowest to highest, for an option's value is: -+# * BRLTTY built-in default -+# * /etc/brltty.conf -+# * initramfs override -+# * this file -+# * kernel command line -+ -+# Blank lines are ignored. A hash [#] anywhere on a line begins a comment which -+# continues till the end of that line - only those characters before it are -+# significant. Any number of space-separated options may be specified on a -+# line. The syntax for an option is name=value (without the rd.brltty. prefix). -+# The =value part is optional - if there's no = then the value is yes. -+ -diff --git a/Initramfs/Dracut/dbus-start.sh b/Initramfs/Dracut/dbus-start.sh -new file mode 100755 -index 0000000..fd9e210 ---- /dev/null -+++ b/Initramfs/Dracut/dbus-start.sh -@@ -0,0 +1,7 @@ -+#!/bin/bash -+ -+getargbool 1 rd.brltty && getargbool 1 rd.brltty.bluetooth && { -+ systemctl -q is-active dbus || { -+ systemctl --no-block start dbus -+ } -+} -diff --git a/Initramfs/Dracut/dracut.conf b/Initramfs/Dracut/dracut.conf -new file mode 100644 -index 0000000..2d03996 ---- /dev/null -+++ b/Initramfs/Dracut/dracut.conf -@@ -0,0 +1,27 @@ -+# The preferred locale (used to determine the default text and contraction tables). -+BRLTTY_DRACUT_LOCALE="" -+ -+# A space-separated list of additional braille drivers to include. -+BRLTTY_DRACUT_BRAILLE_DRIVERS="" -+ -+# Whether or not Bluetooth support should be included within the initramfs. -+# Set this variable to yes if communication with your braille device is via -+# Bluetooth. Note that this option is insecure because the link keys for all of -+# your paired Bluetooth devices will be stored within the initramfs image. -+BRLTTY_DRACUT_BLUETOOTH_SUPPORT=no -+ -+# A space-separated list of additional text tables to include. -+BRLTTY_DRACUT_TEXT_TABLES="" -+ -+# A space-separated list of additional attributes tables to include. -+BRLTTY_DRACUT_ATTRIBUTES_TABLES="" -+ -+# A space-separated list of additional contraction tables to include. -+BRLTTY_DRACUT_CONTRACTION_TABLES="" -+ -+# A space-separated list of additional keyboard tables to include. -+BRLTTY_DRACUT_KEYBOARD_TABLES="" -+ -+# A space-separated list of additional speech drivers to include. -+BRLTTY_DRACUT_SPEECH_DRIVERS="" -+ -diff --git a/Initramfs/Dracut/module-setup.sh b/Initramfs/Dracut/module-setup.sh -new file mode 100755 -index 0000000..8f6e5ca ---- /dev/null -+++ b/Initramfs/Dracut/module-setup.sh -@@ -0,0 +1,326 @@ -+#!/bin/bash -+ -+# called by dracut -+check() { -+ require_binaries brltty brltty-lsinc || return 1 -+ return 0 -+} -+ -+# called by dracut -+depends() { -+ return 0 -+} -+ -+# called by dracut -+installkernel() { -+ instmods pcspkr uinput -+ [ -d "${initdir}/etc/bluetooth" ] && instmods =drivers/bluetooth =net/bluetooth -+ [ -d "${initdir}/etc/alsa" ] && instmods =sound -+ return 0 -+} -+ -+# called by dracut -+install() { -+ brlttyImportInstallOptions -+ local -A includedDrivers -+ -+ local BRLTTY_EXECUTABLE_PATH="/usr/bin/brltty" -+ inst_binary "${BRLTTY_EXECUTABLE_PATH}" -+ local brlttyLog="$(LC_ALL="${BRLTTY_DRACUT_LOCALE:-${LANG}}" "${BRLTTY_EXECUTABLE_PATH}" -E -v -e -ldebug 2>&1)" -+ -+ export BRLTTY_CONFIGURATION_FILE="/etc/brltty.conf" -+ brlttyIncludeDataFiles "${BRLTTY_CONFIGURATION_FILE}" -+ -+ brlttyIncludeDataFiles $(brlttyGetProperty "including data file") -+ brlttyIncludeScreenDrivers lx -+ -+ brlttyIncludeBrailleDrivers $(brlttyGetConfiguredDrivers braille) -+ brlttyIncludeBrailleDrivers ${BRLTTY_DRACUT_BRAILLE_DRIVERS} -+ -+ brlttyIncludeSpeechDrivers $(brlttyGetConfiguredDrivers speech) -+ brlttyIncludeSpeechDrivers ${BRLTTY_DRACUT_SPEECH_DRIVERS} -+ -+ brlttyIncludeTables Text ttb ${BRLTTY_DRACUT_TEXT_TABLES} -+ brlttyIncludeTables Attributes atb ${BRLTTY_DRACUT_ATTRIBUTES_TABLES} -+ brlttyIncludeTables Contraction ctb ${BRLTTY_DRACUT_CONTRACTION_TABLES} -+ brlttyIncludeTables Keyboard ktb ${BRLTTY_DRACUT_KEYBOARD_TABLES} -+ -+ brlttyInstallPreferencesFile "/etc/brltty.prefs" -+ brlttyInstallDirectories "/etc/xdg/brltty" -+ inst_simple "/etc/brltty/Initramfs/cmdline" -+ -+ if [ "${BRLTTY_DRACUT_BLUETOOTH_SUPPORT}" = "yes" ] -+ then -+ brlttyIncludeBluetoothSupport -+ fi -+ -+ inst_hook cmdline 05 "${moddir}/brltty-start.sh" -+ inst_hook cleanup 95 "${moddir}/brltty-stop.sh" -+ -+ dracut_need_initqueue -+} -+ -+brlttyInstallPreferencesFile() { -+ local path="${1}" -+ local file=$(brlttyGetProperty "Preferences File") -+ -+ if [ -n "${file}" ] -+ then -+ if [ "${file}" = "${file#/}" ] -+ then -+ local directory=$(brlttyGetProperty "Updatable Directory") -+ -+ if [ -n "${directory}" ] -+ then -+ file="${directory}/${file}" -+ fi -+ fi -+ -+ if [ -f "${file}" ] -+ then -+ inst_simple "${file}" "${path}" -+ fi -+ fi -+} -+ -+brlttyIncludeBrailleDrivers() { -+ local code -+ -+ for code -+ do -+ brlttyIncludeDriver b "${code}" || continue -+ -+ local directory="/etc/brltty/Input/${code}" -+ brlttyIncludeDataFiles "${directory}/"*.ktb -+ inst_multiple -o "${directory}/"*.txt -+ done -+} -+ -+brlttyIncludeSpeechDrivers() { -+ local code -+ -+ for code -+ do -+ brlttyIncludeDriver s "${code}" || continue -+ -+ case "${code}" -+ in -+ en) -+ inst_binary espeak-ng -+ brlttyInstallDirectories "/usr/share/espeak-ng-data" -+ ;; -+ -+ es) -+ inst_binary espeak -+ brlttyInstallDirectories "/usr/share/espeak-data" -+ brlttyIncludePulseAudioSupport -+ ;; -+ -+ fl) -+ inst_binary flite -+ ;; -+ -+ fv) -+ inst_binary festival -+ brlttyInstallDirectories /etc/festival -+ brlttyInstallDirectories /usr/lib*/festival -+ brlttyInstallDirectories /usr/share/festival/lib -+ ;; -+ -+ sd) -+ inst_binary speech-dispatcher -+ brlttyInstallDirectories /etc/speech-dispatcher -+ brlttyInstallDirectories /usr/lib*/speech-dispatcher -+ brlttyInstallDirectories /usr/lib*/speech-dispatcher-modules -+ brlttyInstallDirectories /usr/share/speech-dispatcher -+ brlttyInstallDirectories /usr/share/sounds/speech-dispatcher -+ brlttyInstallSystemdUnits speech-dispatcherd.service -+ inst_hook initqueue 98 "${moddir}/speechd-start.sh" -+ ;; -+ esac -+ -+ brlttyIncludeAlsaSupport -+ done -+} -+ -+brlttyIncludeScreenDrivers() { -+ local code -+ -+ for code -+ do -+ brlttyIncludeDriver x "${code}" || continue -+ done -+} -+ -+brlttyIncludeDriver() { -+ local type="${1}" -+ local code="${2}" -+ -+ [ "${code}" = "no" ] && return 1 -+ local driver="${type}${code}" -+ -+ [ -n "${includedDrivers[${driver}]}" ] && return 2 -+ includedDrivers[${driver}]=1 -+ -+ inst_libdir_file "brltty/libbrltty${driver}.so*" -+ return 0 -+} -+ -+brlttyIncludeTables() { -+ local subdirectory="${1}" -+ local extension="${2}" -+ shift 2 -+ local name -+ -+ for name -+ do -+ brlttyIncludeDataFiles "/etc/brltty/${subdirectory}/${name}.${extension}" -+ done -+} -+ -+brlttyIncludeDataFiles() { -+ local file -+ -+ while read -r file -+ do -+ inst_simple "${file}" -+ done < <(brltty-lsinc "${@}") -+} -+ -+brlttyGetConfiguredDrivers() { -+ local category="${1}" -+ brlttyGetProperty "checking for ${category} driver" -+} -+ -+brlttyGetProperty() { -+ local name="${1}" -+ echo "${brlttyLog}" | awk "/: *${name} *:/ {print \$NF}" -+} -+ -+brlttyImportInstallOptions() { -+ local file="/etc/brltty/Initramfs/dracut.conf" -+ [ -f "${file}" ] && [ -r "${file}" ] && . "${file}" -+} -+ -+brlttyIncludePulseAudioSupport() { -+ [ -d "${initdir}/etc/pulse" ] && return 0 -+ -+ brlttyInstallDirectories /etc/pulse -+ brlttyInstallDirectories /usr/share/pulseaudio -+ brlttyInstallDirectories /usr/lib*/pulseaudio -+ brlttyInstallDirectories /usr/lib*/pulse-* -+ brlttyInstallDirectories /usr/libexec/pulse -+ -+ inst_multiple -o pulseaudio pactl pacmd -+ inst_multiple -o pamon paplay parec parecord -+ -+ brlttyAddUserEntries pulse -+ brlttyAddGroupEntries pulse pulse-access pulse-rt -+ -+ brlttyIncludeAlsaSupport -+ brlttyIncludeMessageBusSupport -+ inst_simple /etc/dbus-1/system.d/pulseaudio-system.conf -+ -+ inst_binary chmod -+ inst_hook initqueue 97 "${moddir}/pulse-start.sh" -+ inst_hook cleanup 98 "${moddir}/pulse-stop.sh" -+} -+ -+brlttyIncludeAlsaSupport() { -+ [ -d "${initdir}/etc/alsa" ] && return 0; -+ -+ brlttyInstallDirectories /etc/alsa -+ rm -f "${initdir}/etc/alsa/conf.d/"* -+ -+ brlttyInstallDirectories /usr/share/alsa -+ brlttyInstallDirectories /usr/lib/alsa -+ brlttyInstallDirectories /usr/lib*/alsa-lib -+ -+ inst_multiple -o alsactl alsaucm alsamixer amixer aplay -+ inst_script alsaunmute -+ -+ inst_hook initqueue 96 "${moddir}/alsa-start.sh" -+} -+ -+brlttyIncludeBluetoothSupport() { -+ [ -d "${initdir}/etc/bluetooth" ] && return 0 -+ -+ brlttyInstallDirectories /etc/bluetooth -+ brlttyInstallDirectories /var/lib/bluetooth -+ -+ inst_multiple -o bluetoothctl hciconfig hcitool sdptool -+ inst_binary /usr/libexec/bluetooth/bluetoothd -+ brlttyInstallSystemdUnits bluetooth.service bluetooth.target -+ -+ inst_hook initqueue 97 "${moddir}/bluetooth-start.sh" -+ brlttyIncludeMessageBusSupport -+} -+ -+brlttyIncludeMessageBusSupport() { -+ [ -d "${initdir}/etc/dbus-1" ] && return 0 -+ -+ brlttyAddMessageBusUsers /usr/share/dbus-1/system.d/* -+ brlttyAddMessageBusUsers /etc/dbus-1/system.d/* -+ -+ brlttyInstallDirectories /etc/dbus-1 -+ brlttyInstallDirectories /usr/share/dbus-1 -+ brlttyInstallDirectories /usr/libexec/dbus-1 -+ -+ inst_multiple dbus-daemon dbus-send dbus-cleanup-sockets dbus-monitor -+ brlttyInstallSystemdUnits dbus.service dbus.socket -+ -+ inst_hook initqueue 96 "${moddir}/dbus-start.sh" -+} -+ -+brlttyAddMessageBusUsers() { -+ set -- dbus $(sed -n -r -e 's/^.* user="([^"]*)".*$/\1/p' "${@}" | sort -u) -+ brlttyAddUserEntries "${@}" -+ brlttyAddGroupEntries "${@}" -+} -+ -+brlttyAddUserEntries() { -+ brlttyAddEntries passwd "${@}" -+} -+ -+brlttyAddGroupEntries() { -+ brlttyAddEntries group "${@}" -+} -+ -+brlttyAddEntries() { -+ local file="${1}" -+ shift 1 -+ -+ local source="/etc/${file}" -+ local target="${initdir}${source}" -+ local name -+ -+ for name -+ do -+ grep -q -e "^${name}:" "${target}" || { -+ local line="$(grep "^${name}:" "${source}")" -+ [ -n "${line}" ] && echo >>"${target}" "${line}" -+ } -+ done -+} -+ -+brlttyInstallSystemdUnits() { -+ local unit -+ -+ for unit -+ do -+ inst_simple "/usr/lib/systemd/system/${unit}" -+ done -+} -+ -+brlttyInstallDirectories() { -+ local directory -+ -+ for directory -+ do -+ [ -d "${directory}" ] && { -+ eval set -- $(find "${directory}" -printf "'%p'\n") -+ inst_multiple "${@}" -+ } -+ done -+} -+ -diff --git a/Initramfs/Dracut/pulse-start.sh b/Initramfs/Dracut/pulse-start.sh -new file mode 100755 -index 0000000..ed9af36 ---- /dev/null -+++ b/Initramfs/Dracut/pulse-start.sh -@@ -0,0 +1,5 @@ -+#!/bin/bash -+ -+getargbool 1 rd.brltty && getargbool 1 rd.brltty.sound && getargbool 1 rd.brltty.pulse && { -+ chmod a+w /tmp && pulseaudio --daemonize=yes --system --disallow-exit --disallow-module-loading --disable-shm -+} -diff --git a/Initramfs/Dracut/pulse-stop.sh b/Initramfs/Dracut/pulse-stop.sh -new file mode 100755 -index 0000000..5f2b033 ---- /dev/null -+++ b/Initramfs/Dracut/pulse-stop.sh -@@ -0,0 +1,3 @@ -+#!/bin/bash -+ -+read . - ############################################################################### - --all: all-brltty all-brltty-trtxt all-brltty-ttb all-brltty-atb $(ALL_BRLTTY_CTB) all-brltty-ktb all-brltty-tune $(ALL_XBRLAPI) $(ALL_API_BINDINGS) -+all: all-brltty all-brltty-lsinc all-brltty-trtxt all-brltty-ttb all-brltty-atb $(ALL_BRLTTY_CTB) all-brltty-ktb all-brltty-tune $(ALL_XBRLAPI) $(ALL_API_BINDINGS) - all-brltty: brltty$X $(BRAILLE_DRIVERS) $(SPEECH_DRIVERS) $(SCREEN_DRIVERS) -+all-brltty-lsinc: brltty-lsinc$X - all-brltty-trtxt: brltty-trtxt$X - all-brltty-ttb: brltty-ttb$X - all-brltty-atb: brltty-atb$X -@@ -805,6 +806,16 @@ brltty-trtxt.$O: - - ############################################################################### - -+BRLTTY_LSINC_OBJECTS = brltty-lsinc.$O $(PROGRAM_OBJECTS) -+ -+brltty-lsinc$X: $(BRLTTY_LSINC_OBJECTS) -+ $(CC) $(LDFLAGS) -o $@ $(BRLTTY_LSINC_OBJECTS) $(LDLIBS) -+ -+brltty-lsinc.$O: -+ $(CC) $(CFLAGS) -c $(SRC_DIR)/brltty-lsinc.c -+ -+############################################################################### -+ - BRLTEST_OBJECTS = brltest.$O $(PROGRAM_OBJECTS) report.$O $(TTB_OBJECTS) $(KTB_OBJECTS) dataarea.$O cmd.$O cmd_queue.$O drivers.$O driver.$O $(BRAILLE_OBJECTS) $(PREFS_OBJECTS) hidkeys.$O learn.$O - - brltest$X: $(BRLTEST_OBJECTS) -@@ -949,8 +960,9 @@ check-all: check-text-tables check-attributes-tables check-contraction-tables ch - - install:: install-programs install-tables $(INSTALL_DRIVERS) install-core-headers $(INSTALL_MESSAGES) install-manpages $(INSTALL_API) - --install-programs: brltty$X brltty-trtxt$X brltty-ttb$X brltty-atb$X $(INSTALL_BRLTTY_CTB) brltty-ktb$X brltty-tune$X install-program-directory install-writable-directory -+install-programs: brltty$X brltty-lsinc$X brltty-trtxt$X brltty-ttb$X brltty-atb$X $(INSTALL_BRLTTY_CTB) brltty-ktb$X brltty-tune$X install-program-directory install-writable-directory - $(INSTALL_PROGRAM) brltty$X $(INSTALL_PROGRAM_DIRECTORY) -+ $(INSTALL_PROGRAM) brltty-lsinc$X $(INSTALL_PROGRAM_DIRECTORY) - $(INSTALL_PROGRAM) brltty-trtxt$X $(INSTALL_PROGRAM_DIRECTORY) - $(INSTALL_PROGRAM) brltty-ttb$X $(INSTALL_PROGRAM_DIRECTORY) - $(INSTALL_PROGRAM) brltty-atb$X $(INSTALL_PROGRAM_DIRECTORY) -@@ -1136,6 +1148,7 @@ distclean clean:: - - clean:: - -rm -f brltty$X brltty-trtxt$X brltty-ttb$X brltty-atb$X brltty-ctb$X brltty-tune$X xbrlapi$X -+ -rm -f brltty$X brltty-lsinc$X brltty-trtxt$X brltty-ttb$X brltty-atb$X brltty-ctb$X brltty-tune$X xbrlapi$X - -rm -f tbl2hex$(X_FOR_BUILD) *test$X *-static$X - -rm -f brlapi_constants.h *.$(LIB_EXT) *.$(LIB_EXT).* *.$(ARC_EXT) *.def *.class *.jar - -rm -f $(BLD_TOP)$(DRV_DIR)/* -diff --git a/Programs/brltty-lsinc.c b/Programs/brltty-lsinc.c -new file mode 100644 -index 0000000..9d2b026 ---- /dev/null -+++ b/Programs/brltty-lsinc.c -@@ -0,0 +1,119 @@ -+/* -+ * 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.app/ -+ * -+ * This software is maintained by Dave Mielke . -+ */ -+ -+#include "prologue.h" -+ -+#include -+#include -+#include -+ -+#include "log.h" -+#include "program.h" -+#include "options.h" -+#include "file.h" -+ -+BEGIN_OPTION_TABLE(programOptions) -+END_OPTION_TABLE -+ -+static void -+noMemory (void) { -+ fprintf(stderr, "%s: insufficient memory\n", programName); -+ exit(PROG_EXIT_FATAL); -+} -+ -+static int -+compareStrings (const void *string1, const void *string2) { -+ return strcmp(string1, string2); -+} -+ -+static void -+logFileName (const char *name, void *data) { -+ static void *namesTree = NULL; -+ -+ if (!tfind(name, &namesTree, compareStrings)) { -+ name = strdup(name); -+ if (!name) noMemory(); -+ if (!tsearch(name, &namesTree, compareStrings)) noMemory(); -+ printf("%s\n", name); -+ } -+} -+ -+static DATA_CONDITION_TESTER(testConditionOperand) { -+ return 1; -+} -+ -+static DATA_OPERANDS_PROCESSOR(processUnknownDirective) { -+ DataOperand directive; -+ -+ if (getDataOperand(file, &directive, NULL)) { -+ if (directive.length >= 2) { -+ if (isKeyword(WS_C("if"), directive.characters, 2)) { -+ return processConditionOperands(file, testConditionOperand, 0, NULL, data); -+ } -+ } -+ } -+ -+ return 1; -+} -+ -+static DATA_OPERANDS_PROCESSOR(processOperands) { -+ BEGIN_DATA_DIRECTIVE_TABLE -+ DATA_NESTING_DIRECTIVES, -+ DATA_CONDITION_DIRECTIVES, -+ DATA_VARIABLE_DIRECTIVES, -+ {NULL, processUnknownDirective}, -+ END_DATA_DIRECTIVE_TABLE -+ -+ return processDirectiveOperand(file, &directives, "attributes table directive", data); -+} -+ -+int -+main (int argc, char *argv[]) { -+ { -+ static const OptionsDescriptor descriptor = { -+ OPTION_TABLE(programOptions), -+ .applicationName = "brltty-lsinc", -+ .argumentsSummary = "[file ...]" -+ }; -+ -+ PROCESS_OPTIONS(descriptor, argc, argv); -+ } -+ -+ if (argc == 0) { -+ logMessage(LOG_ERR, "missing table file."); -+ return PROG_EXIT_SYNTAX; -+ } -+ -+ do { -+ const char *path = *argv++; -+ argc -= 1; -+ -+ const DataFileParameters parameters = { -+ .processOperands = processOperands, -+ .logFileName = logFileName -+ }; -+ -+ if (testProgramPath(path)) { -+ logFileName(path, parameters.data); -+ } else { -+ processDataFile(path, ¶meters); -+ } -+ } while (argc); -+ -+ return PROG_EXIT_SUCCESS; -+} -diff --git a/Programs/datafile.c b/Programs/datafile.c -index e70deb5..48235e6 100644 ---- a/Programs/datafile.c -+++ b/Programs/datafile.c -@@ -1262,9 +1262,14 @@ processDataStream ( - FILE *stream, const char *name, - const DataFileParameters *parameters - ) { -- logMessage(LOG_DEBUG, "including data file: %s", name); - int ok = 0; - -+ if (parameters->logFileName) { -+ parameters->logFileName(name, parameters->data); -+ } else { -+ logMessage(LOG_DEBUG, "including data file: %s", name); -+ } -+ - DataFile file = { - .name = name, - .parameters = parameters, -diff --git a/brltty.spec.in b/brltty.spec.in -index f5aa33d..1ac2ebf 100644 ---- a/brltty.spec.in -+++ b/brltty.spec.in -@@ -339,6 +339,7 @@ BuildArch: noarch - - AutoProv: no - AutoReq: yes -+Requires: systemd - - Summary: Systemd units and wrappers for BRLTTY. - %description -n brltty-systemd -@@ -356,6 +357,7 @@ BuildArch: noarch - - AutoProv: no - AutoReq: yes -+Requires: systemd-udev - - Summary: Udev rules for BRLTTY. - %description -n brltty-udev -@@ -364,6 +366,25 @@ This package provides the rules and wrapper for managing BRLTTY via Udev. - Install this package if you'd like to manage BRLTTY processes via Udev. - - -+%package -n brltty-dracut -+Version: @PACKAGE_VERSION@ -+Release: 1 -+Group: System Environment/Daemons -+License: LGPL -+BuildArch: noarch -+ -+AutoProv: no -+AutoReq: yes -+Requires: dracut -+Requires: brltty-utils -+ -+Summary: Dracut module for BRLTTY. -+%description -n brltty-dracut -+This package provides the module for adding BRLTTY to an initial ramdisk image. -+ -+Install this package if you'd like to have braille accessibility BRLTTY processes via Udev. -+ -+ - %package -n brlapi - Version: @api_release@ - Release: 1 -@@ -382,6 +403,26 @@ Install this package if you have an application - which directly accesses a refreshable braille display. - - -+%package -n brlapi-utils -+Version: @api_release@ -+Release: 1 -+Group: Applications/System -+License: LGPL -+ -+Requires: libX11 -+ -+BuildRequires: xorg-x11-proto-devel -+BuildRequires: libX11-devel -+BuildRequires: libXtst-devel -+ -+AutoProv: no -+AutoReq: yes -+ -+Summary: Appliation Programming Interface for BRLTTY. -+%description -n brlapi-utils -+This package provides a set of commands that use the BrlAPI interface. -+ -+ - %package -n brlapi-devel - Version: @api_release@ - Release: 1 -@@ -489,26 +530,6 @@ Install this package if you have a Tcl application - which directly accesses a refreshable braille display. - - --%package -n brlapi-utils --Version: @api_release@ --Release: 1 --Group: Applications/System --License: LGPL -- --Requires: libX11 -- --BuildRequires: xorg-x11-proto-devel --BuildRequires: libX11-devel --BuildRequires: libXtst-devel -- --AutoProv: no --AutoReq: yes -- --Summary: Appliation Programming Interface for BRLTTY. --%description -n brlapi-utils --This package provides a set of commands for maintaining BRLTTY's datafiles. -- -- - %prep - # %setup -n %{name}-%{version} - %setup -n @PACKAGE_TARNAME@-@PACKAGE_VERSION@ -@@ -518,8 +539,13 @@ This package provides a set of commands for maintaining BRLTTY's datafiles. - make - - %install --make install install-documents install-messages --make install-systemd install-udev install-appstream -+make install -+make install-documents -+make install-messages -+make install-appstream -+make install-systemd -+make install-udev -+make install-dracut - install -m 644 Documents/brltty.conf "${RPM_BUILD_ROOT}%{_sysconfdir}" - %find_lang %{name} - -@@ -542,6 +568,7 @@ rm -fr "${RPM_BUILD_ROOT}" - %exclude %{_libdir}/brltty/libbrlttyxa2.so - %exclude %{_libdir}/brltty/libbrlttyxsc.so - %{_sysconfdir}/brltty -+%exclude %{_sysconfdir}/brltty/dracut.conf - %{_datadir}/metainfo/org.a11y.brltty.metainfo.xml - %doc %{_mandir}/man1/brltty.1.gz - %doc %{_docdir}/*/LICENSE* -@@ -598,12 +625,36 @@ rm -fr "${RPM_BUILD_ROOT}" - %{_udevlibdir}/* - %{_udevrulesdir}/* - -+%files -n brltty-dracut -+/usr/lib/dracut/modules.d/99brltty -+%config(noreplace) %verify(not size md5 mtime) %{_sysconfdir}/brltty/Initramfs/dracut.conf -+%config(noreplace) %verify(not size md5 mtime) %{_sysconfdir}/brltty/Initramfs/cmdline -+ - %files -n brlapi - %defattr(-,root,root) - %{_libdir}/libbrlapi.so.* - %{_datadir}/polkit-1/actions/org.a11y.brlapi.policy - %doc %{_docdir}/*/Manual-BrlAPI - -+%files -n brlapi-utils -+%{_bindir}/xbrlapi -+%doc %{_mandir}/man1/xbrlapi.1.gz -+%{_datadir}/gdm/greeter/autostart/xbrlapi.desktop -+%{_sysconfdir}/X11/Xsession.d/60xbrlapi -+%{_bindir}/eutp -+%doc %{_mandir}/man1/eutp.1.gz -+%{_bindir}/vstp -+%doc %{_mandir}/man1/vstp.1.gz -+ -+%files -n brlapi-devel -+%defattr(-,root,root) -+%{_libdir}/libbrlapi.a -+%{_libdir}/libbrlapi.so -+%{_includedir}/brlapi.h -+%{_includedir}/brlapi_*.h -+%doc %{_mandir}/man3/* -+%doc %{_docdir}/*/BrlAPIref -+ - %files -n java-brlapi - @JAVA_JAR_DIR@/* - @JAVA_JNI_DIR@/* -@@ -618,25 +669,6 @@ rm -fr "${RPM_BUILD_ROOT}" - @TCL_DIR@/brlapi-@api_release@/libbrlapi_tcl.so - @TCL_DIR@/brlapi-@api_release@/pkgIndex.tcl - --%files -n brlapi-devel --%defattr(-,root,root) --%{_libdir}/libbrlapi.a --%{_libdir}/libbrlapi.so --%{_includedir}/brlapi.h --%{_includedir}/brlapi_*.h --%doc %{_mandir}/man3/* --%doc %{_docdir}/*/BrlAPIref -- --%files -n brlapi-utils --%{_bindir}/xbrlapi --%{_bindir}/eutp --%{_bindir}/vstp --%doc %{_mandir}/man1/xbrlapi.1.gz --%doc %{_mandir}/man1/eutp.1.gz --%doc %{_mandir}/man1/vstp.1.gz --%{_sysconfdir}/X11/Xsession.d/60xbrlapi --%{_datadir}/gdm/greeter/autostart/xbrlapi.desktop -- - - %changelog - * Mon Feb 5 2018 Dave Mielke 5.6 -diff --git a/configure.ac b/configure.ac -index 8938c6b..b09fda8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -38,15 +38,18 @@ AC_DEFINE_UNQUOTED([BRLAPI_REVISION], [${api_revision}], - [Define this to be the API library revision number.]) - - BRLTTY_SUMMARY_BEGIN --brltty_build_directories=". Programs Documents Messages Android/Core Android/Application" -+brltty_build_directories=". Programs Documents Messages" - brltty_source_directory="`dirname "${0}"`" - brltty_manual_directories="" - --for brltty_autostart_directory in `(cd "${brltty_source_directory}" && echo Autostart/*)` -+for brltty_directory in Autostart Initramfs Android - do -- test -f "${brltty_source_directory}/${brltty_autostart_directory}/Makefile.in" && { -- brltty_build_directories="${brltty_build_directories} ${brltty_autostart_directory}" -- } -+ for brltty_subdirectory in `echo "${brltty_source_directory}/${brltty_directory}/"*` -+ do -+ test -f "${brltty_subdirectory}/Makefile.in" && { -+ brltty_build_directories="${brltty_build_directories} ${brltty_subdirectory}" -+ } -+ done - done - - for brltty_manual_directory in `(cd "${brltty_source_directory}" && echo Documents/Manual-*/*)` -@@ -1957,7 +1960,7 @@ AC_OUTPUT([ - Documents/BrlAPIref.doxy - Bindings/Lisp/brlapi.lisp - Bindings/Python/setup.py -- Android/Application/res/values/configured.xml:Android/Application/res.strings.in - Autostart/Systemd/brltty@.service -+ Android/Application/res/values/configured.xml:Android/Application/res.strings.in - ${brltty_make_files} - ]) diff --git a/brltty-5.6-libs-add-ldflags.patch b/brltty-5.6-libs-add-ldflags.patch deleted file mode 100644 index 661658a..0000000 --- a/brltty-5.6-libs-add-ldflags.patch +++ /dev/null @@ -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} }]) -o" -+ brltty_cv_prog_mklib="\$(CC) \$(LDFLAGS) ${brltty_mklib_gcc_make=-shared} BRLTTY_OPTIONS_LD2CC([${brltty_mklib_ld_options+${brltty_mklib_ld_options} }]) -o" - else -- brltty_cv_prog_mklib="\$(LD) ${brltty_mklib_ld_make} ${brltty_mklib_ld_options+${brltty_mklib_ld_options} } -o" -+ brltty_cv_prog_mklib="\$(LD) \$(LDFLAGS) ${brltty_mklib_ld_make} ${brltty_mklib_ld_options+${brltty_mklib_ld_options} } -o" - fi]) - AC_SUBST([MKLIB], ["${brltty_cv_prog_mklib}"]) - diff --git a/brltty-5.6-ocaml-add-flags.patch b/brltty-5.6-ocaml-add-flags.patch deleted file mode 100644 index 5794380..0000000 --- a/brltty-5.6-ocaml-add-flags.patch +++ /dev/null @@ -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 > $@ diff --git a/brltty-loadLibrary.patch b/brltty-6.0-loadLibrary.patch similarity index 56% rename from brltty-loadLibrary.patch rename to brltty-6.0-loadLibrary.patch index 11ac936..36072a2 100644 --- a/brltty-loadLibrary.patch +++ b/brltty-6.0-loadLibrary.patch @@ -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/NativeLibrary.java b/Bindings/Java/NativeLibrary.java +index 5780e34..8383821 100644 +--- a/Bindings/Java/NativeLibrary.java ++++ b/Bindings/Java/NativeLibrary.java +@@ -26,7 +26,15 @@ public class NativeLibrary { + } - 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"); + } -+ } ++ } + new NativeLibrary().initializeNativeData(); } - - protected long handle; + } diff --git a/brltty.spec b/brltty.spec index dd11ceb..b57bc38 100644 --- a/brltty.spec +++ b/brltty.spec @@ -1,5 +1,5 @@ -%define pkg_version 5.6 -%define api_version 0.6.7 +%define pkg_version 6.0 +%define api_version 0.7.0 %if 0%{?rhel} && 0%{?rhel} <= 7 # disable python3 by default @@ -33,20 +33,14 @@ Name: brltty Version: %{pkg_version} -Release: 32%{?dist} +Release: 1%{?dist} License: LGPLv2+ URL: http://brltty.app/ Source0: http://brltty.app/archive/%{name}-%{version}.tar.xz Source1: brltty.service -Patch1: brltty-loadLibrary.patch +Patch1: brltty-6.0-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 Summary: Braille display driver for Linux/Unix BuildRequires: byacc, glibc-kernheaders, bluez-libs-devel, systemd BuildRequires: gettext, at-spi2-core-devel, alsa-lib-devel @@ -235,10 +229,6 @@ 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 # remove packaged binary file rm -f Programs/brltty-ktb @@ -451,7 +441,7 @@ fi %if %{with_speech_dispatcher} %exclude %{_libdir}/brltty/libbrlttyssd.so %endif -%license LICENSE-GPL LICENSE-LGPL +%license LICENSE-LGPL %doc %{_mandir}/man[15]/brltty.* %{_sysconfdir}/X11/Xsession.d/60xbrlapi #%%{_datadir}/metainfo/org.a11y.brltty.metainfo.xml diff --git a/sources b/sources index edacc5a..e67aba5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (brltty-5.6.tar.xz) = c5df33bc51f3bafb56e4627290a801937bc57b6e2de5765c04e45c4ef1229ab864f2756916500ca4ca43b79354d7a9d3d4bfb588aa9fc494ea570eab25a389c0 +SHA512 (brltty-6.0.tar.xz) = 07344fa902ad169967ca39d19b09dfea24e698011031dd63dce3eb997a4cb86622ee9427b216976b3ef60e5cbabb710a621621447c6bfa2313748fc1a1cf4b06