summaryrefslogtreecommitdiff
path: root/festival-2.5.0-filesystem-standard.patch
diff options
context:
space:
mode:
Diffstat (limited to 'festival-2.5.0-filesystem-standard.patch')
-rw-r--r--festival-2.5.0-filesystem-standard.patch422
1 files changed, 422 insertions, 0 deletions
diff --git a/festival-2.5.0-filesystem-standard.patch b/festival-2.5.0-filesystem-standard.patch
new file mode 100644
index 0000000..e2b175d
--- /dev/null
+++ b/festival-2.5.0-filesystem-standard.patch
@@ -0,0 +1,422 @@
+diff -u --recursive festival-vanilla/examples/benchmark festival/examples/benchmark
+--- festival-vanilla/examples/benchmark 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/benchmark 2018-09-06 20:37:22.855868107 -0400
+@@ -1,6 +1,7 @@
+ #!/bin/sh
+
+-default_libdir="/projects/festival/lib"
++default_libdir="/usr/share/festival"
++default_datadir="/usr/share/festival"
+
+ while true
+ do
+@@ -11,13 +12,17 @@
+ -l ) libdir="$2"
+ shift 2
+ ;;
++ -d ) datadir="$2"
++ shift 2
++ ;;
++ -- ) shift; break ;;
+ * ) break;;
+ esac
+ done
+
+-text=${1-"$HOME/projects/festival/examples/benchmark.text"}
++text=${1-"/usr/share/doc/festival/examples/benchmark.text"}
+
+-for i in . src/main ../src/main $HOME/projects/festival/src/main /cstr/bin
++for i in /usr/bin . src/main ../src/main $HOME/projects/festival/src/main /cstr/bin
+ do
+ if [ -n "$festival" ]
+ then
+@@ -39,7 +44,15 @@
+ then
+ case $festival in
+ *main/festival ) libdir=`dirname $festival`/../../lib;;
+- * ) libdir=$default_libdir;;
++ * ) libdir=$default_libdir;
++ esac
++fi
++
++if [ -z "$datadir" ]
++ then
++ case $festival in
++ *main/festival ) datadir=`dirname $festival`/../../share;;
++ * ) datadir=$default_datadir;;
+ esac
+ fi
+
+@@ -54,10 +67,11 @@
+ cat > $script <<__END__
+
+ (set! libdir "$libdir/")
+-(set! lexdir "$default_libdir/dicts/")
+-(set! voiced_dir "$default_libdir/voices/")
++(set! datadir "$datadir/")
++(set! lexdir "$default_datadir/dicts/")
++(set! voiced_dir "$default_datadir/voices/")
+
+-(load (string-append libdir "init.scm"))
++(load (string-append datadir "init.scm"))
+ (if (probe_file (format nil "%s/.festivalrc" (getenv "HOME")))
+ (load (format nil "%s/.festivalrc" (getenv "HOME"))))
+
+diff -u --recursive festival-vanilla/examples/benchmark.text festival/examples/benchmark.text
+--- festival-vanilla/examples/benchmark.text 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/benchmark.text 2018-09-06 20:37:22.855868107 -0400
+@@ -32,8 +32,13 @@
+
+ --libdir PATH
+ Specify alternate to default library directory (used
+- in initializing the variable load-path, and for
+- loading most intinialisation files)
++ for architecture-specific libraries and programs)
++
++ --datadir PATH
++ Specify alternate to default shared-data directory (used
++ in initializing the variable load-path, and for
++ loading most initialisation files). Typically, the voice and
++ dictionary files reside here.
+
+ -b or --batch
+ Run in batch mode. In batch mode no input is read
+diff -u --recursive festival-vanilla/examples/dumpfeats.sh festival/examples/dumpfeats.sh
+--- festival-vanilla/examples/dumpfeats.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/dumpfeats.sh 2018-09-06 20:37:22.855868107 -0400
+@@ -39,7 +39,7 @@
+
+ ;;; Because this is a --script type file it has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (define (dumpfeats_help)
+ (format t "%s\n"
+diff -u --recursive festival-vanilla/examples/durmeanstd.sh festival/examples/durmeanstd.sh
+--- festival-vanilla/examples/durmeanstd.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/durmeanstd.sh 2018-09-06 20:37:22.856868112 -0400
+@@ -40,7 +40,7 @@
+
+ ;;; Because this is a --script type file it has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (define (durmeanstd_help)
+ (format t "%s\n"
+diff -u --recursive festival-vanilla/examples/latest.sh festival/examples/latest.sh
+--- festival-vanilla/examples/latest.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/latest.sh 2018-09-06 20:37:22.854868102 -0400
+@@ -50,7 +50,7 @@
+
+ ;;; Because this is a --script type file I has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (audio_mode 'async) ;; play waves while continuing synthesis
+
+diff -u --recursive festival-vanilla/examples/Makefile festival/examples/Makefile
+--- festival-vanilla/examples/Makefile 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/Makefile 2018-09-06 20:37:22.860868131 -0400
+@@ -54,8 +54,9 @@
+
+ $(ALL) : % : %.sh
+ rm -f $@
+- @echo "#!/bin/sh" >$@
+- @echo "\"true\" ; exec "$(FESTIVAL_HOME)/bin/festival --script '$$0 $$*' >>$@
++ @echo "#!/usr/bin/festival --script" >$@
++# @echo "#!/bin/sh" >$@
++# @echo "\"true\" ; exec "/usr/bin/festival --script '$$0 $$*' >>$@
+ cat $< >>$@
+ chmod +x $@
+
+diff -u --recursive festival-vanilla/examples/make_utts.sh festival/examples/make_utts.sh
+--- festival-vanilla/examples/make_utts.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/make_utts.sh 2018-09-06 20:37:22.854868102 -0400
+@@ -44,7 +44,7 @@
+ ;;; Because this is a --script type file it has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+ (if (not (symbol-bound? 'caar))
+- (load (path-append libdir "init.scm")))
++ (load (path-append datadir "init.scm")))
+
+ ;;; Some parts are potentially editable
+ (defvar basic_relations '((Phrase segmental ())
+diff -u --recursive festival-vanilla/examples/saytime.sh festival/examples/saytime.sh
+--- festival-vanilla/examples/saytime.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/saytime.sh 2018-09-06 20:37:22.856868112 -0400
+@@ -44,7 +44,7 @@
+
+ ;;; Because this is a --script type file I has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (define (get-the-time)
+ "Returns a list of hour and minute and second, for later processing"
+diff -u --recursive festival-vanilla/examples/scfg_parse_text.sh festival/examples/scfg_parse_text.sh
+--- festival-vanilla/examples/scfg_parse_text.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/scfg_parse_text.sh 2018-09-06 20:37:22.856868112 -0400
+@@ -45,7 +45,7 @@
+
+ ;;; Because this is a --script type file I has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (require 'scfg)
+
+@@ -66,7 +66,7 @@
+ (gc-status nil)
+
+ ;;; Default argument values
+-(defvar grammarfile (path-append libdir "scfg_wsj_wp20.gram"))
++(defvar grammarfile (path-append datadir "scfg_wsj_wp20.gram"))
+ (defvar outfile "-")
+ (defvar outfd t)
+ (defvar parse_type 'brackets_only)
+diff -u --recursive festival-vanilla/examples/text2pos.sh festival/examples/text2pos.sh
+--- festival-vanilla/examples/text2pos.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/text2pos.sh 2018-09-06 20:37:22.856868112 -0400
+@@ -50,7 +50,7 @@
+
+ ;;; Because this is a --script type file I has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ (define (find-pos utt)
+ "Main function for processing TTS utterances. Predicts POS and
+diff -u --recursive festival-vanilla/examples/text2wave.sh festival/examples/text2wave.sh
+--- festival-vanilla/examples/text2wave.sh 2017-09-04 11:54:08.000000000 -0400
++++ festival/examples/text2wave.sh 2018-09-06 20:37:22.857868117 -0400
+@@ -40,7 +40,7 @@
+
+ ;;; Because this is a --script type file I has to explicitly
+ ;;; load the initfiles: init.scm and user's .festivalrc
+-(load (path-append libdir "init.scm"))
++(load (path-append datadir "init.scm"))
+
+ ;;; Process command line arguments
+ (define (text2wave_help)
+diff -u --recursive festival-vanilla/lib/festival.scm festival/lib/festival.scm
+--- festival-vanilla/lib/festival.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/festival.scm 2018-09-06 20:37:22.858868122 -0400
+@@ -552,13 +552,13 @@
+ (define (intro)
+ "(intro)
+ Synthesize an introduction to the Festival Speech Synthesis System."
+- (tts (path-append libdir "../examples/intro.text") nil))
++ (tts (path-append datadir "/usr/share/doc/festival/examples/intro.text") nil))
+
+ (define (intro-spanish)
+ "(intro-spanish)
+ Synthesize an introduction to the Festival Speech Synthesis System
+ in spanish. Spanish voice must already be selected for this."
+- (tts (path-append libdir "../examples/spintro.text") nil))
++ (tts (path-append datadir "/usr/share/doc/festival/examples/spintro.text") nil))
+
+ (define (na_play FILENAME)
+ "(play_wave FILENAME)
+diff -u --recursive festival-vanilla/lib/init.scm festival/lib/init.scm
+--- festival-vanilla/lib/init.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/init.scm 2018-09-06 20:37:22.852868092 -0400
+@@ -36,7 +36,7 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ;;; Basic siod library (need this before load_library or require works)
+-(load (path-append libdir "siod.scm"))
++(load (path-append datadir "siod.scm"))
+
+ (defvar home-directory (or (getenv "HOME") "/")
+ "home-directory
+diff -u --recursive festival-vanilla/lib/lexicons.scm festival/lib/lexicons.scm
+--- festival-vanilla/lib/lexicons.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/lexicons.scm 2018-09-06 20:37:22.858868122 -0400
+@@ -42,10 +42,10 @@
+ ;;; you should set lexdir in sitevars.scm
+
+ (defvar lexdir
+- (if (probe_file (path-append libdir "dicts"))
+- (path-append libdir "dicts/")
++ (if (probe_file (path-append datadir "dicts"))
++ (path-append datadir "dicts/")
+ ;; else we'll guess we're in the CSTR filespace
+- (path-as-directory "/projects/festival/lib/dicts/"))
++ (path-as-directory "/usr/share/festival/dicts/"))
+ "lexdir
+ The directory where the lexicon(s) are, by default.")
+
+diff -u --recursive festival-vanilla/lib/phrase.scm festival/lib/phrase.scm
+--- festival-vanilla/lib/phrase.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/phrase.scm 2018-09-06 20:37:22.857868117 -0400
+@@ -93,7 +93,7 @@
+
+ (require 'pos) ;; for part of speech map
+
+-(defvar pbreak_ngram_dir libdir
++(defvar pbreak_ngram_dir datadir
+ "pbreak_ngram_dir
+ The directory containing the ngram models for predicting phrase
+ breaks. By default this is the standard library directory.")
+diff -u --recursive festival-vanilla/lib/soleml-mode.scm festival/lib/soleml-mode.scm
+--- festival-vanilla/lib/soleml-mode.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/soleml-mode.scm 2018-09-06 20:37:22.857868117 -0400
+@@ -330,7 +330,7 @@
+ (list 'exit_func soleml_exit_func)
+ '(analysis_type xxml)
+ (list 'filter
+- (format nil "%s -D %s " sgml_parse_progname libdir))))
++ (format nil "%s -D %s " sgml_parse_progname datadir))))
+ tts_text_modes))
+
+ (provide 'soleml-mode)
+diff -u --recursive festival-vanilla/lib/voices.scm festival/lib/voices.scm
+--- festival-vanilla/lib/voices.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/lib/voices.scm 2018-09-06 20:37:22.853868097 -0400
+@@ -42,7 +42,7 @@
+ ;; The path to search for voices is created from the load-path with
+ ;; an extra list of directories appended.
+
+-(defvar system-voice-path '( )
++(defvar system-voice-path '("/usr/share/festival/voices/")
+ "system-voice-path
+ Additional directory not near the load path where voices can be
+ found, this can be redefined in lib/sitevars.scm if desired.")
+diff -u --recursive festival-vanilla/src/arch/festival/audspio.cc festival/src/arch/festival/audspio.cc
+--- festival-vanilla/src/arch/festival/audspio.cc 2017-09-04 11:54:08.000000000 -0400
++++ festival/src/arch/festival/audspio.cc 2018-09-06 20:37:22.859868126 -0400
+@@ -108,7 +108,7 @@
+ {
+ audio = ft_get_param("Audio_Method");
+ command = ft_get_param("Audio_Command");
+- audfds = pipe_open("audsp");
++ audfds = pipe_open("/usr/libexec/festival/audsp");
+ if (audio != NIL)
+ audsp_send(EST_String("method ")+get_c_string(audio));
+ if (command != NIL)
+diff -u --recursive festival-vanilla/src/arch/festival/festival.cc festival/src/arch/festival/festival.cc
+--- festival-vanilla/src/arch/festival/festival.cc 2017-09-04 11:54:08.000000000 -0400
++++ festival/src/arch/festival/festival.cc 2018-09-06 20:37:22.859868126 -0400
+@@ -60,6 +60,9 @@
+ #define STRINGIZE(S) _S_S_S(S)
+
+ const char *festival_version = STRINGIZE(FTVERSION) ":" STRINGIZE(FTSTATE) " " STRINGIZE(FTDATE);
++const char *festival_libdir = "/usr/share/festival";
++const char *festival_datadir = "/usr/share/festival";
++const char *festival_sysconfdir = "/etc";
+
+ // Allow the path to be passed in without quotes because Windoze command line
+ // is stupid
+@@ -79,7 +82,6 @@
+ #define FTOSTYPE ""
+ #endif
+
+-const char *festival_libdir = FTLIBDIR;
+ ostream *cdebug;
+ static int festival_server_port = 1314;
+ static EST_StrList sub_copyrights;
+@@ -308,7 +310,7 @@
+ EST_String userinitfile, home_str, initfile;
+
+ // Load library init first
+- initfile = (EST_String)EST_Pathname(festival_libdir).as_directory() +
++ initfile = (EST_String)EST_Pathname(festival_datadir).as_directory() +
+ "init.scm";
+ if (access((const char *)initfile,R_OK) == 0)
+ vload(initfile,FALSE);
+@@ -324,6 +326,8 @@
+ int major,minor,subminor;
+
+ siod_set_lval("libdir",strintern(festival_libdir));
++ siod_set_lval("datadir",strintern(festival_datadir));
++ siod_set_lval("sysconfdir",strintern(festival_sysconfdir));
+ if (!streq(FTOSTYPE,""))
+ siod_set_lval("*ostype*",cintern(FTOSTYPE));
+ siod_set_lval("festival_version",
+@@ -357,6 +361,7 @@
+ if (mplayer_supported)
+ proclaim_module("mplayeraudio");
+
++#if 0 /* /usr/lib/festival/etc/machine -- ??? */
+ // Add etc-dir path and machine specific directory etc/$OSTYPE
+ char *etcdir = walloc(char,strlen(festival_libdir)+strlen("etc/")+
+ strlen(FTOSTYPE)+3);
+@@ -377,6 +382,7 @@
+
+ wfree(etcdir);
+ wfree(etcdircommon);
++#endif
+ return;
+ }
+
+Only in festival/src/arch/festival: festival.cc.orig
+diff -u --recursive festival-vanilla/src/arch/festival/Makefile festival/src/arch/festival/Makefile
+--- festival-vanilla/src/arch/festival/Makefile 2017-09-04 11:54:08.000000000 -0400
++++ festival/src/arch/festival/Makefile 2018-09-06 20:37:22.858868122 -0400
+@@ -62,6 +62,6 @@
+ LOCAL_INCLUDES += $(FESTIVAL_INCLUDES)
+
+ festival.o: festival.cc
+- $(CXX_COMMAND_TEMPLATES) -DFTNAME='$(PROJECT_NAME)' -DFTLIBDIRC='$(FTLIBDIR)' -DFTVERSION='$(PROJECT_VERSION)' -DFTSTATE='$(PROJECT_STATE)' -DFTDATE='$(PROJECT_DATE)' -DFTOSTYPE=\"$(SYSTEM_TYPE)\" festival.cc
++ $(CXX_COMMAND_TEMPLATES) -DFTNAME='$(PROJECT_NAME)' -DFTVERSION='$(PROJECT_VERSION)' -DFTSTATE='$(PROJECT_STATE)' -DFTDATE='$(PROJECT_DATE)' -DFTOSTYPEC='$(SYSTEM_TYPE)' festival.cc
+
+
+diff -u --recursive festival-vanilla/src/include/festival.h festival/src/include/festival.h
+--- festival-vanilla/src/include/festival.h 2017-09-04 11:54:08.000000000 -0400
++++ festival/src/include/festival.h 2018-09-06 20:37:22.854868102 -0400
+@@ -138,6 +138,7 @@
+ void add_item_features(EST_Item *s,LISP features);
+
+ extern const char *festival_libdir;
++extern const char *festival_datadir;
+
+ // Module specific LISP/etc definitions
+ void festival_init_modules(void);
+diff -u --recursive festival-vanilla/src/main/festival_main.cc festival/src/main/festival_main.cc
+--- festival-vanilla/src/main/festival_main.cc 2017-09-04 11:54:08.000000000 -0400
++++ festival/src/main/festival_main.cc 2018-09-06 20:37:22.853868097 -0400
+@@ -88,6 +88,8 @@
+ "In evaluation mode \"filenames\" starting with ( are evaluated inline\n"+
+ "Festival Speech Synthesis System: "+ festival_version +"\n"+
+ "-q Load no default setup files\n"+
++ "--datadir <string>\n"+
++ " Set data directory pathname\n"+
+ "--libdir <string>\n"+
+ " Set library directory pathname\n"+
+ "-b Run in batch mode (no interaction)\n"+
+@@ -127,6 +129,12 @@
+ festival_libdir = wstrdup(al.val("--libdir"));
+ else if (getenv("FESTLIBDIR") != 0)
+ festival_libdir = getenv("FESTLIBDIR");
++
++ if (al.present("--datadir"))
++ festival_datadir = wstrdup(al.val("--datadir"));
++ else if (getenv("FESTDATADIR") != 0)
++ festival_datadir = getenv("FESTDATADIR");
++
+ if (al.present("--heap"))
+ heap_size = al.ival("--heap");
+
+diff -u --recursive festival-vanilla/testsuite/data/modes.scm festival/testsuite/data/modes.scm
+--- festival-vanilla/testsuite/data/modes.scm 2017-09-04 11:54:08.000000000 -0400
++++ festival/testsuite/data/modes.scm 2018-09-06 20:37:22.853868097 -0400
+@@ -42,13 +42,13 @@
+
+ (format t "\n\nSABLE mode\n")
+ (unwind-protect
+- (tts (string-append libdir "/../examples/example2.sable") nil))
++ (tts "/usr/share/doc/festival/examples/example2.sable" 'sable))
+ (format t "\n\nOGI's mark up mode\n")
+ (unwind-protect
+- (tts (string-append libdir "/../examples/ex1.ogi") 'ogimarkup))
++ (tts "/usr/share/doc/festival/examples/ex1.ogi" 'ogimarkup))
+ (format t "\n\nAn email mode\n")
+ (unwind-protect
+- (tts (string-append libdir "/../examples/ex1.email") nil))
++ (tts "/usr/share/doc/festival/examples/ex1.email" nil))
+
+ (voice_kal_diphone)
+ (format t "\n\nA singing mode\n")