├── .gitignore
├── MS_Windows_Installer
├── Aeneas_Installer.iss
├── Aeneas_Installer_TEMPLATE.iss
├── FFmpeg_Installer.iss
├── FFmpeg_Installer_TEMPLATE.iss
├── LICENSE.txt
├── MS_Windows_64-bit_Installer
│ ├── Aeneas_Installer.iss
│ ├── Aeneas_Installer_TEMPLATE.iss
│ ├── FFmpeg_Installer.iss
│ ├── FFmpeg_Installer_TEMPLATE.iss
│ ├── LICENSE.txt
│ ├── README.txt
│ ├── ReadMe.md
│ ├── aeneas-patches
│ │ ├── patch-espeak-ng.diff
│ │ └── patch-py38-utf8.diff
│ ├── aeneas_check_setup.bat
│ ├── build_aeneas_package.bat
│ ├── build_espeak_package.bat
│ ├── build_ffmpeg_package.bat
│ ├── build_installer.bat
│ ├── build_packages.bat
│ ├── build_python_package.bat
│ ├── build_setup.bat
│ ├── clean.bat
│ ├── clean_up.bat
│ ├── copy_espeak_aeneas.bat
│ ├── create_espeak-ng-x64_lib.bat
│ ├── create_espeak-ng-x86_lib.bat
│ ├── create_espeak_lib.bat
│ ├── curl.bat
│ ├── delete_espeak_aeneas.bat
│ ├── dll2lib.bat
│ ├── eSpeak-NG.reg
│ ├── espeak-exports.txt
│ ├── espeak-ng.lib
│ ├── espeak.def
│ ├── espeak.lib
│ ├── ff-prompt.bat
│ ├── install_espeak-ng_extra.bat
│ ├── install_packages.bat
│ ├── install_packages_TEMPLATE.bat
│ ├── libespeak-ng-dll2lib-x64
│ │ ├── libespeak-ng-exports.txt
│ │ ├── libespeak-ng.def
│ │ ├── libespeak-ng.exp
│ │ └── libespeak-ng.lib
│ ├── libespeak-ng-dll2lib-x86
│ │ ├── libespeak-ng-exports.txt
│ │ ├── libespeak-ng.def
│ │ ├── libespeak-ng.exp
│ │ └── libespeak-ng.lib
│ ├── libespeak-ng-exports.txt
│ ├── libespeak-ng.def
│ ├── libespeak-ng.exp
│ ├── libespeak-ng.lib
│ ├── runas_admin.bat
│ ├── sign_installer.sh
│ ├── x64 Native Tools Command Prompt for VS 2017.lnk.txt
│ └── x86_x64 Cross Tools Command Prompt for VS 2017.lnk.txt
├── README.txt
├── ReadMe.md
├── aeneas-patches
│ ├── patch-espeak-ng.diff
│ └── patch-py38-utf8.diff
├── aeneas_check_setup.bat
├── build_aeneas_package.bat
├── build_espeak_package.bat
├── build_ffmpeg_package.bat
├── build_installer.bat
├── build_packages.bat
├── build_python_package.bat
├── build_setup.bat
├── clean.bat
├── clean_up.bat
├── copy_espeak_aeneas.bat
├── create_espeak-ng-x64_lib.bat
├── create_espeak-ng-x86_lib.bat
├── create_espeak_lib.bat
├── curl-psh.bat
├── delete_espeak_aeneas.bat
├── dll2lib.bat
├── eSpeak-NG.reg
├── espeak-exports.txt
├── espeak-ng.lib
├── espeak.def
├── espeak.lib
├── ff-prompt.bat
├── install_espeak-ng_extra.bat
├── install_packages.bat
├── install_packages_TEMPLATE.bat
├── libespeak-ng-dll2lib-x64
│ ├── libespeak-ng-exports.txt
│ ├── libespeak-ng.def
│ ├── libespeak-ng.exp
│ └── libespeak-ng.lib
├── libespeak-ng-dll2lib-x86
│ ├── libespeak-ng-exports.txt
│ ├── libespeak-ng.def
│ ├── libespeak-ng.exp
│ └── libespeak-ng.lib
├── libespeak-ng-exports.txt
├── libespeak-ng.def
├── libespeak-ng.exp
├── libespeak-ng.lib
├── runas_admin.bat
├── sign_installer.sh
├── wget-py.bat
├── x64_x86 Cross Tools Command Prompt for VS 2017.lnk.txt
└── x86 Native Tools Command Prompt for VS 2017.lnk.txt
├── Mac_OSX_Installer
├── Aeneas_Installer.pkgproj
├── Aeneas_Installer_TEMPLATE.pkgproj
├── INFO.txt
├── LICENSE.txt
├── Mac_SAB_Installer
│ ├── ReadMe.md
│ ├── SAB_License.rtf
│ ├── SAB_ReadMe.rtf
│ ├── Scripture_App_Builder.pkgproj
│ ├── background.png
│ ├── build_dmg.sh
│ ├── build_full_dmg.sh
│ ├── dmg_preview.png
│ ├── icon.png
│ └── sab_install_scripts
│ │ └── postinstall
├── README.txt
├── ReadMe.md
├── aeneas-mac-uninstall-scripts
│ ├── _complete_uninstall.sh
│ ├── _uninstall_aeneas.sh
│ ├── _uninstall_bs4.sh
│ ├── _uninstall_espeak.sh
│ ├── _uninstall_ffmpeg.sh
│ ├── _uninstall_lxml.sh
│ ├── _uninstall_numpy.sh
│ └── _uninstall_python.sh
├── aeneas-patches
│ ├── patch-espeak-ng-mac.diff
│ ├── patch-py38-utf8-mac.diff
│ └── patch-ttswrapper-mac.diff
├── build_aeneas_package.sh
├── build_dmg.sh
├── build_env.sh
├── build_espeak_package.sh
├── build_ffmpeg_package.sh
├── build_installer.sh
├── build_packages.sh
├── build_python_mp_package.sh
├── build_python_org_package.sh
├── build_python_package.sh
├── build_setup.sh
├── check_python.sh
├── clean_up.sh
├── create-dmg
├── developer_log.json
├── entitlements.plist
├── etc-macports-sources.conf
├── install_xcode_cl_tools.sh
├── notarize_installer.sh
├── postinstall-scripts
│ ├── postinstall
│ ├── postinstall_aeneas
│ ├── postinstall_bs4
│ ├── postinstall_espeak
│ ├── postinstall_ffmpeg
│ ├── postinstall_lxml
│ ├── postinstall_numpy
│ └── postinstall_python
├── resign_packages.sh
├── restore_ports.tcl
├── sign_aeneas_package.sh
├── sign_espeak_package.sh
├── sign_ffmpeg_package.sh
├── sign_packages.sh
└── sign_python_package.sh
└── ReadMe.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled source #
2 | ###################
3 | *.com
4 | *.class
5 | *.dll
6 | *.exe
7 | *.msi
8 | *.o
9 | *.so
10 | *.pyo
11 | *.pyc
12 |
13 | # Packages #
14 | ############
15 | # it's better to unpack these files and commit the raw source
16 | # git has its own built in compression methods
17 | *.7z
18 | *.dmg
19 | *.pkg
20 | *.mpkg
21 | *.whl
22 | *.gz
23 | *.iso
24 | *.jar
25 | *.rar
26 | *.tar
27 | *.zip
28 |
29 | # Logs and databases #
30 | ######################
31 | *.log
32 | *.sql
33 | *.sqlite
34 |
35 | # OS generated files #
36 | ######################
37 | .DS_Store
38 | .DS_Store?
39 | Icon?
40 | ._*
41 | *~
42 | *.bak
43 | *.swp
44 | *.swo
45 | .Spotlight-V100
46 | .Trashes
47 | ehthumbs.db
48 | Thumbs.db
49 |
50 | # Created by https://www.gitignore.io/api/osx,python,vim,windows
51 |
52 | ### OSX ###
53 | *.DS_Store
54 | .AppleDouble
55 | .LSOverride
56 |
57 | # Icon must end with two \r
58 | Icon
59 |
60 |
61 | # Thumbnails
62 | ._*
63 |
64 | # Files that might appear in the root of a volume
65 | .DocumentRevisions-V100
66 | .fseventsd
67 | .Spotlight-V100
68 | .TemporaryItems
69 | .Trashes
70 | .VolumeIcon.icns
71 | .com.apple.timemachine.donotpresent
72 |
73 | # Directories potentially created on remote AFP share
74 | .AppleDB
75 | .AppleDesktop
76 | Network Trash Folder
77 | Temporary Items
78 | .apdisk
79 |
80 |
81 | ### Python ###
82 | # Byte-compiled / optimized / DLL files
83 | __pycache__/
84 | *.py[cod]
85 | *$py.class
86 |
87 | # C extensions
88 | *.so
89 |
90 | # Distribution / packaging
91 | .Python
92 | env/
93 | build/
94 | develop-eggs/
95 | dist/
96 | downloads/
97 | eggs/
98 | .eggs/
99 | lib/
100 | lib64/
101 | parts/
102 | sdist/
103 | var/
104 | *.egg-info/
105 | .installed.cfg
106 | *.egg
107 |
108 | # PyInstaller
109 | # Usually these files are written by a python script from a template
110 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
111 | *.manifest
112 | *.spec
113 |
114 | # Installer logs
115 | pip-log.txt
116 | pip-delete-this-directory.txt
117 |
118 | # Unit test / coverage reports
119 | htmlcov/
120 | .tox/
121 | .coverage
122 | .coverage.*
123 | .cache
124 | nosetests.xml
125 | coverage.xml
126 | *,cover
127 | .hypothesis/
128 |
129 | # Translations
130 | *.mo
131 | *.pot
132 |
133 | # Django stuff:
134 | *.log
135 | local_settings.py
136 |
137 | # Flask stuff:
138 | instance/
139 | .webassets-cache
140 |
141 | # Scrapy stuff:
142 | .scrapy
143 |
144 | # Sphinx documentation
145 | docs/_build/
146 |
147 | # PyBuilder
148 | target/
149 |
150 | # IPython Notebook
151 | .ipynb_checkpoints
152 |
153 | # pyenv
154 | .python-version
155 |
156 | # celery beat schedule file
157 | celerybeat-schedule
158 |
159 | # dotenv
160 | .env
161 |
162 | # virtualenv
163 | venv/
164 | ENV/
165 |
166 | # Spyder project settings
167 | .spyderproject
168 |
169 | # Rope project settings
170 | .ropeproject
171 |
172 |
173 | ### Vim ###
174 | # swap
175 | [._]*.s[a-w][a-z]
176 | [._]s[a-w][a-z]
177 | # session
178 | Session.vim
179 | # temporary
180 | .netrwhist
181 | *~
182 | # auto-generated tag files
183 | tags
184 |
185 |
186 | ### Windows ###
187 | # Windows image file caches
188 | Thumbs.db
189 | ehthumbs.db
190 |
191 | # Folder config file
192 | Desktop.ini
193 |
194 | # Recycle Bin used on file shares
195 | $RECYCLE.BIN/
196 |
197 | # Windows Installer files
198 | *.cab
199 | *.msi
200 | *.msm
201 | *.msp
202 |
203 | # Windows shortcuts
204 | *.lnk
205 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/FFmpeg_Installer.iss:
--------------------------------------------------------------------------------
1 | ; Script generated by the Inno Setup Script Wizard.
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 |
4 | #define MyAppName "FFmpeg"
5 | #define MyAppVersion "4.3"
6 | #define MyAppPublisher "Daniel Bair"
7 | #define MyAppURL "https://github.com/sillsdev/aeneas-installer"
8 | #define MyAppExeName "ff-prompt.bat"
9 | #define MyAppFileName "ffmpeg-4.3-win32-static"
10 |
11 | [Setup]
12 | ; NOTE: The value of AppId uniquely identifies this application.
13 | ; Do not use the same AppId value in installers for other applications.
14 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
15 | AppId={{6B71161F-F9FB-4A47-B95F-3A044F1EB42F}
16 | AppName={#MyAppName}
17 | AppVersion={#MyAppVersion}
18 | AppVerName={#MyAppName} {#MyAppVersion} (32-bit)
19 | AppPublisher={#MyAppPublisher}
20 | AppPublisherURL={#MyAppURL}
21 | AppSupportURL={#MyAppURL}
22 | AppUpdatesURL={#MyAppURL}
23 | ;ArchitecturesAllowed=x86
24 | ;ArchitecturesInstallIn64BitMode=x64
25 | UsePreviousAppDir=no
26 | DefaultDirName={commonpf32}\{#MyAppName}
27 | DisableDirPage=yes
28 | DisableWelcomePage=no
29 | DefaultGroupName={#MyAppName}
30 | AllowNoIcons=no
31 | DisableProgramGroupPage=no
32 | LicenseFile={#MyAppFileName}\LICENSE.txt
33 | InfoBeforeFile={#MyAppFileName}\README.txt
34 | OutputDir=.\
35 | OutputBaseFilename={#MyAppFileName}
36 | Compression=lzma
37 | SolidCompression=yes
38 | ChangesEnvironment=yes
39 | ;SignTool=sign_installer.sh
40 |
41 | [Languages]
42 | Name: "english"; MessagesFile: "compiler:Default.isl"
43 |
44 | [Files]
45 | Source: "{#MyAppFileName}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
46 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
47 |
48 | [Icons]
49 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
50 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
51 |
52 | [Run]
53 | Filename: "{app}\doc\ffmpeg.html"; Description: "View the documentation"; Flags: postinstall shellexec skipifsilent unchecked
54 |
55 | [Registry]
56 | Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{commonpf32}\FFmpeg\bin;{olddata}"; Check: NeedsAddPath(ExpandConstant('{commonpf32}\FFmpeg\bin'))
57 |
58 | [Code]
59 | function NeedsAddPath(Param: string): boolean;
60 | var
61 | OrigPath: string;
62 | begin
63 | if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
64 | 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
65 | 'Path', OrigPath)
66 | then begin
67 | Result := True;
68 | exit;
69 | end;
70 | // look for the path with leading and trailing semicolon
71 | // Pos() returns 0 if not found
72 | Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
73 | end;
74 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/FFmpeg_Installer_TEMPLATE.iss:
--------------------------------------------------------------------------------
1 | ; Script generated by the Inno Setup Script Wizard.
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 |
4 | #define MyAppName "FFmpeg"
5 | #define MyAppVersion "[FFMPEG_VER]"
6 | #define MyAppPublisher "Daniel Bair"
7 | #define MyAppURL "https://github.com/sillsdev/aeneas-installer"
8 | #define MyAppExeName "ff-prompt.bat"
9 | #define MyAppFileName "ffmpeg-[FFMPEG_VER]-win32-static"
10 |
11 | [Setup]
12 | ; NOTE: The value of AppId uniquely identifies this application.
13 | ; Do not use the same AppId value in installers for other applications.
14 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
15 | AppId={{6B71161F-F9FB-4A47-B95F-3A044F1EB42F}
16 | AppName={#MyAppName}
17 | AppVersion={#MyAppVersion}
18 | AppVerName={#MyAppName} {#MyAppVersion} (32-bit)
19 | AppPublisher={#MyAppPublisher}
20 | AppPublisherURL={#MyAppURL}
21 | AppSupportURL={#MyAppURL}
22 | AppUpdatesURL={#MyAppURL}
23 | ;ArchitecturesAllowed=x86
24 | ;ArchitecturesInstallIn64BitMode=x64
25 | UsePreviousAppDir=no
26 | DefaultDirName={commonpf32}\{#MyAppName}
27 | DisableDirPage=yes
28 | DisableWelcomePage=no
29 | DefaultGroupName={#MyAppName}
30 | AllowNoIcons=no
31 | DisableProgramGroupPage=no
32 | LicenseFile={#MyAppFileName}\LICENSE.txt
33 | InfoBeforeFile={#MyAppFileName}\README.txt
34 | OutputDir=.\
35 | OutputBaseFilename={#MyAppFileName}
36 | Compression=lzma
37 | SolidCompression=yes
38 | ChangesEnvironment=yes
39 | ;SignTool=sign_installer.sh
40 |
41 | [Languages]
42 | Name: "english"; MessagesFile: "compiler:Default.isl"
43 |
44 | [Files]
45 | Source: "{#MyAppFileName}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
46 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
47 |
48 | [Icons]
49 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
50 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
51 |
52 | [Run]
53 | Filename: "{app}\doc\ffmpeg.html"; Description: "View the documentation"; Flags: postinstall shellexec skipifsilent unchecked
54 |
55 | [Registry]
56 | Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{commonpf32}\FFmpeg\bin;{olddata}"; Check: NeedsAddPath(ExpandConstant('{commonpf32}\FFmpeg\bin'))
57 |
58 | [Code]
59 | function NeedsAddPath(Param: string): boolean;
60 | var
61 | OrigPath: string;
62 | begin
63 | if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
64 | 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
65 | 'Path', OrigPath)
66 | then begin
67 | Result := True;
68 | exit;
69 | end;
70 | // look for the path with leading and trailing semicolon
71 | // Pos() returns 0 if not found
72 | Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
73 | end;
74 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/LICENSE.txt:
--------------------------------------------------------------------------------
1 | aeneas is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU AGPL, see .
2 |
3 | --------------------------------------------------------------------
4 |
5 | eSpeak-NG is licensed under the GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
6 |
7 | --------------------------------------------------------------------
8 |
9 | FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later. However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
10 |
11 | --------------------------------------------------------------------
12 |
13 | Python is licensed under the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved. For more information on this, and how to apply and follow the PSFLv2, see https://www.python.org/download/releases/2.7/license/
14 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/FFmpeg_Installer.iss:
--------------------------------------------------------------------------------
1 | ; Script generated by the Inno Setup Script Wizard.
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 |
4 | #define MyAppName "FFmpeg"
5 | #define MyAppVersion "6.0"
6 | #define MyAppPublisher "Daniel Bair"
7 | #define MyAppURL "https://github.com/sillsdev/aeneas-installer"
8 | #define MyAppExeName "ff-prompt.bat"
9 | #define MyAppFileName "ffmpeg-6.0-win64-static"
10 |
11 | [Setup]
12 | ; NOTE: The value of AppId uniquely identifies this application.
13 | ; Do not use the same AppId value in installers for other applications.
14 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
15 | AppId={{F3EDA0E9-6DA3-4B46-818E-0C07AB675A8A}
16 | AppName={#MyAppName}
17 | AppVersion={#MyAppVersion}
18 | AppVerName={#MyAppName} {#MyAppVersion} (64-bit)
19 | AppPublisher={#MyAppPublisher}
20 | AppPublisherURL={#MyAppURL}
21 | AppSupportURL={#MyAppURL}
22 | AppUpdatesURL={#MyAppURL}
23 | ArchitecturesAllowed=x64
24 | ArchitecturesInstallIn64BitMode=x64
25 | UsePreviousAppDir=no
26 | DefaultDirName={commonpf64}\{#MyAppName}
27 | DisableDirPage=yes
28 | DisableWelcomePage=no
29 | DefaultGroupName={#MyAppName}
30 | AllowNoIcons=no
31 | DisableProgramGroupPage=no
32 | LicenseFile={#MyAppFileName}\LICENSE
33 | InfoBeforeFile={#MyAppFileName}\README.txt
34 | OutputDir=.\
35 | OutputBaseFilename={#MyAppFileName}
36 | Compression=lzma
37 | SolidCompression=yes
38 | ChangesEnvironment=yes
39 | ;SignTool=sign_installer.sh
40 |
41 | [Languages]
42 | Name: "english"; MessagesFile: "compiler:Default.isl"
43 |
44 | [Files]
45 | Source: "{#MyAppFileName}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
46 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
47 |
48 | [Icons]
49 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
50 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
51 |
52 | [Run]
53 | Filename: "{app}\doc\ffmpeg.html"; Description: "View the documentation"; Flags: postinstall shellexec skipifsilent unchecked
54 |
55 | [Registry]
56 | Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{commonpf64}\FFmpeg\bin;{olddata}"; Check: NeedsAddPath(ExpandConstant('{commonpf64}\FFmpeg\bin'))
57 |
58 | [Code]
59 | function NeedsAddPath(Param: string): boolean;
60 | var
61 | OrigPath: string;
62 | begin
63 | if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
64 | 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
65 | 'Path', OrigPath)
66 | then begin
67 | Result := True;
68 | exit;
69 | end;
70 | // look for the path with leading and trailing semicolon
71 | // Pos() returns 0 if not found
72 | Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
73 | end;
74 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/FFmpeg_Installer_TEMPLATE.iss:
--------------------------------------------------------------------------------
1 | ; Script generated by the Inno Setup Script Wizard.
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
3 |
4 | #define MyAppName "FFmpeg"
5 | #define MyAppVersion "[FFMPEG_VER]"
6 | #define MyAppPublisher "Daniel Bair"
7 | #define MyAppURL "https://github.com/sillsdev/aeneas-installer"
8 | #define MyAppExeName "ff-prompt.bat"
9 | #define MyAppFileName "ffmpeg-[FFMPEG_VER]-win64-static"
10 |
11 | [Setup]
12 | ; NOTE: The value of AppId uniquely identifies this application.
13 | ; Do not use the same AppId value in installers for other applications.
14 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
15 | AppId={{F3EDA0E9-6DA3-4B46-818E-0C07AB675A8A}
16 | AppName={#MyAppName}
17 | AppVersion={#MyAppVersion}
18 | AppVerName={#MyAppName} {#MyAppVersion} (64-bit)
19 | AppPublisher={#MyAppPublisher}
20 | AppPublisherURL={#MyAppURL}
21 | AppSupportURL={#MyAppURL}
22 | AppUpdatesURL={#MyAppURL}
23 | ArchitecturesAllowed=x64
24 | ArchitecturesInstallIn64BitMode=x64
25 | UsePreviousAppDir=no
26 | DefaultDirName={commonpf64}\{#MyAppName}
27 | DisableDirPage=yes
28 | DisableWelcomePage=no
29 | DefaultGroupName={#MyAppName}
30 | AllowNoIcons=no
31 | DisableProgramGroupPage=no
32 | LicenseFile={#MyAppFileName}\LICENSE.txt
33 | InfoBeforeFile={#MyAppFileName}\README.txt
34 | OutputDir=.\
35 | OutputBaseFilename={#MyAppFileName}
36 | Compression=lzma
37 | SolidCompression=yes
38 | ChangesEnvironment=yes
39 | ;SignTool=sign_installer.sh
40 |
41 | [Languages]
42 | Name: "english"; MessagesFile: "compiler:Default.isl"
43 |
44 | [Files]
45 | Source: "{#MyAppFileName}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
46 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
47 |
48 | [Icons]
49 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
50 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
51 |
52 | [Run]
53 | Filename: "{app}\doc\ffmpeg.html"; Description: "View the documentation"; Flags: postinstall shellexec skipifsilent unchecked
54 |
55 | [Registry]
56 | Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{commonpf64}\FFmpeg\bin;{olddata}"; Check: NeedsAddPath(ExpandConstant('{commonpf64}\FFmpeg\bin'))
57 |
58 | [Code]
59 | function NeedsAddPath(Param: string): boolean;
60 | var
61 | OrigPath: string;
62 | begin
63 | if not RegQueryStringValue(HKEY_LOCAL_MACHINE,
64 | 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
65 | 'Path', OrigPath)
66 | then begin
67 | Result := True;
68 | exit;
69 | end;
70 | // look for the path with leading and trailing semicolon
71 | // Pos() returns 0 if not found
72 | Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0;
73 | end;
74 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/LICENSE.txt:
--------------------------------------------------------------------------------
1 | aeneas is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU AGPL, see .
2 |
3 | --------------------------------------------------------------------
4 |
5 | eSpeak-NG is licensed under the GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
6 |
7 | --------------------------------------------------------------------
8 |
9 | FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later. However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
10 |
11 | --------------------------------------------------------------------
12 |
13 | Python is licensed under the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved. For more information on this, and how to apply and follow the PSFLv2, see https://www.python.org/download/releases/2.7/license/
14 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/README.txt:
--------------------------------------------------------------------------------
1 | This setup wizard was developed by Daniel Bair and is distributed by SIL International, and the source code is available for download at: https://github.com/sillsdev/aeneas-installer
2 |
3 | --------------------------------------------------------------------
4 |
5 | aeneas is developed by Alberto Pettarin, ReadBeyond, and the source code is available for download at http://www.readbeyond.it/aeneas/
6 |
7 | --------------------------------------------------------------------
8 |
9 | eSpeak-ng is a text-to-speech engine, developed by Reece H. Dunn, and is available for download at https://github.com/espeak-ng/espeak-ng
10 |
11 | --------------------------------------------------------------------
12 |
13 | FFmpeg is a video and audio converter, developed by Fabrice Bellard, and is available for download at http://www.ffmpeg.org/
14 |
15 | --------------------------------------------------------------------
16 |
17 | Python is a programming language, developed by the Python Software Foundation, and is available for download at http://www.python.org/
18 |
19 | --------------------------------------------------------------------
20 |
21 | Python BeautifulSoup sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree, and is available for download at https://www.crummy.com/software/BeautifulSoup/
22 |
23 | --------------------------------------------------------------------
24 |
25 | Python lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries, which provides safe and convenient access to these libraries using the ElementTree API, and is available for download at http://lxml.de/
26 |
27 | --------------------------------------------------------------------
28 |
29 | Python NumPy is a general-purpose array-processing package designed to efficiently manipulate large multi-dimensional arrays of arbitrary records without sacrificing too much speed for small multi-dimensional arrays, and is available for download at http://www.numpy.org/
30 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/ReadMe.md:
--------------------------------------------------------------------------------
1 | This provides a simple installer for [Aeneas](https://github.com/readbeyond/aeneas) for MS Windows 8 and up.
2 |
3 | 1. To build this installer for MS Windows first download (and extract) or clone this repository.
4 | 2. Then open Command Prompt and _cd_ to _MS\_Windows\_Installer_
5 | 3. Next run `build_setup.bat` which will install the necessary applications for building.
6 | 4. Then run `build_packages.bat` which will then build all the individual packages.
7 | 5. Finally run `build_installer.bat` which will then build the main installer.
8 |
9 | NOTE: This will build an installer for 64-bit Windows setups.
10 |
11 |
12 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/aeneas-patches/patch-py38-utf8.diff:
--------------------------------------------------------------------------------
1 | diff --git a/aeneas/diagnostics.py b/aeneas/diagnostics.py
2 | index 7d9e98a1fbe287c0286fdab504bb2e26a691b2d2..6f4e291f115ecba3f9db810e92f083deaafc1542 100644
3 | --- a/aeneas/diagnostics.py
4 | +++ b/aeneas/diagnostics.py
5 | @@ -56,9 +56,9 @@ def check_shell_encoding(cls):
6 | """
7 | is_in_utf8 = True
8 | is_out_utf8 = True
9 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
10 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
11 | is_in_utf8 = False
12 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
13 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
14 | is_out_utf8 = False
15 | if (is_in_utf8) and (is_out_utf8):
16 | gf.print_success(u"shell encoding OK")
17 |
18 | diff --git a/aeneas/tools/abstract_cli_program.py b/aeneas/tools/abstract_cli_program.py
19 | index be5bb2fa8bfda1de88e4ed5a418aab2c00d625f7..b5b9faddc255a7e46e0316864766fec09f292b5b 100644
20 | --- a/aeneas/tools/abstract_cli_program.py
21 | +++ b/aeneas/tools/abstract_cli_program.py
22 | @@ -295,10 +295,10 @@ def run(self, arguments, show_help=True):
23 | if self.use_sys:
24 | # check that sys.stdin.encoding and sys.stdout.encoding are set to utf-8
25 | if not gf.FROZEN:
26 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
27 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
28 | self.print_warning(u"The default input encoding is not UTF-8.")
29 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
30 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
31 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
32 | self.print_warning(u"The default output encoding is not UTF-8.")
33 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
34 | # decode using sys.stdin.encoding
35 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/aeneas_check_setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
3 | :WIN32PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO ENDIF
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :ENDIF
12 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
13 | set PYTHONIOENCODING=UTF-8
14 | set AENEAS_USE_ESPEAKNG=True
15 | python -m aeneas.diagnostics
16 | C:\Windows\System32\ping 127.0.0.1 -n 5 -w 1000 > NUL
17 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_aeneas_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF64=C:\Program Files
18 | set PF32=C:\Program Files (x86)
19 | :PFENDIF
20 |
21 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
22 | set PFSZ=C:\Program Files
23 | GOTO SEVENENDIF
24 | :WIN64SEVEN
25 | set PFSZ=C:\Program Files (x86)
26 | :SEVENENDIF
27 |
28 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
29 | set INNOPATH=%PF32%\Inno Setup 5
30 | GOTO INNOENDIF
31 | :INNOSIX
32 | set INNOPATH=%PF32%\Inno Setup 6
33 | :INNOENDIF
34 |
35 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF64%\FFmpeg\bin;%PF64%\eSpeak NG;%PF64%\Python39;%PF64%\Python39\Scripts;%PF64%\Git;%PF64%\Git\usr\bin;%PF64%\Git\mingw64\bin;%PATH%
36 |
37 | curl.exe --version 1>nul 2>nul
38 | if %ERRORLEVEL%==1 (
39 | set CURL=call curl-psh.bat -L
40 | ) else (
41 | set CURL=curl.exe -L
42 | )
43 |
44 | mkdir python-wheels 1>nul 2>nul
45 |
46 | rmdir /q/s %USERPROFILE%\AppData\Roaming\Python\Python39\site-packages
47 | set PATH=%USERPROFILE%\AppData\Roaming\Python\Python39\Scripts;%PATH%
48 | python.exe -m ensurepip
49 | python -m pip install -U pip setuptools wheel
50 |
51 | DEL /Q *.whl 1>nul 2>nul
52 | DEL /Q python-wheels\*.whl 1>nul 2>nul
53 |
54 | python -m pip install -U numpy
55 | python -m pip install -U lxml beautifulsoup4 soupsieve
56 |
57 | REM python -m pip wheel pip
58 | python -m pip wheel numpy
59 | python -m pip wheel lxml beautifulsoup4 soupsieve
60 |
61 | python -m pip download aeneas==1.7.3.0 --no-cache-dir
62 |
63 | IF EXIST "%cd%\aeneas-1.7.3.0.tar.gz" GOTO ENDGET
64 | echo Downloading aeneas...
65 | %CURL% https://github.com/readbeyond/aeneas/archive/v1.7.3.tar.gz -o aeneas-1.7.3.0.tar.gz
66 | IF %ERRORLEVEL%==0 GOTO ENDIF
67 | echo Could not download aeneas...
68 | START https://github.com/readbeyond/aeneas/archive
69 | :ENDIF
70 | :ENDGET
71 |
72 | RMDIR /S /Q aeneas-1.7.3.0
73 | "7z.exe" e aeneas-1.7.3.0.tar.gz -aoa
74 | "7z.exe" x aeneas-1.7.3.0.tar -aoa
75 |
76 | IF EXIST "%cd%\aeneas-1.7.3" (
77 | move /y aeneas-1.7.3 aeneas-1.7.3.0
78 | )
79 |
80 | cd aeneas-1.7.3.0
81 | echo "Checking for patch.exe"
82 | 2>nul patch.exe --version
83 | if %ERRORLEVEL%==1 (
84 | python -m pip install -U patch
85 | python.exe -m patch -v -p 1 --debug ..\aeneas-patches\patch-espeak-ng.diff
86 | python.exe -m patch -v -p 1 --debug ..\aeneas-patches\patch-py38-utf8.diff
87 | ) ELSE (
88 | patch.exe -p1 < ..\aeneas-patches\patch-espeak-ng.diff
89 | patch.exe -p1 < ..\aeneas-patches\patch-py38-utf8.diff
90 | )
91 | move /y aeneas\cew\speak_lib.h thirdparty\speak_lib.h
92 | copy /b/v/y ..\libespeak-ng-dll2lib-x64\libespeak-ng.lib thirdparty\libespeak-ng-x64.lib
93 | copy /b/v/y ..\libespeak-ng-dll2lib-x86\libespeak-ng.lib thirdparty\libespeak-ng-x86.lib
94 | set AENEAS_USE_ESPEAKNG=True
95 | python.exe setup.py build_ext --inplace
96 | python.exe setup.py bdist_wheel
97 | echo.
98 | set PYTHONIOENCODING=UTF-8
99 | python.exe -m aeneas.diagnostics
100 | python.exe -m aeneas.tools.execute_task --version
101 | python.exe -m aeneas.tools.synthesize_text list "This is a test|with two lines" eng -v C:\Windows\Temp\test.wav
102 | echo.
103 | copy /b/v/y dist\aeneas-*.whl ..\
104 | cd %CURDIR%
105 |
106 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir aeneas-*.whl /b`) DO (SET aeneas_file=%%F)
107 | IF %ERRORLEVEL%==0 (
108 | python -m pip install -U pip %aeneas_file%
109 | copy_espeak_aeneas.bat
110 | RMDIR /S /Q aeneas-1.7.3.0
111 | DEL /Q aeneas-1.7.3.0.tar
112 | DEL /Q aeneas-1.7.3.0.tar.gz
113 | MOVE /Y *.whl "%cd%\python-wheels"
114 | )
115 |
116 | ENDLOCAL
117 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_espeak_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF64=C:\Program Files
18 | set PF32=C:\Program Files (x86)
19 | :PFENDIF
20 |
21 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
22 | set PFSZ=C:\Program Files
23 | GOTO SEVENENDIF
24 | :WIN64SEVEN
25 | set PFSZ=C:\Program Files (x86)
26 | :SEVENENDIF
27 |
28 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
29 | set INNOPATH=%PF32%\Inno Setup 5
30 | GOTO INNOENDIF
31 | :INNOSIX
32 | set INNOPATH=%PF32%\Inno Setup 6
33 | :INNOENDIF
34 |
35 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF64%\FFmpeg\bin;%PF64%\eSpeak NG;%PF64%\Python39;%PF64%\Python39\Scripts;%PF64%\Git;%PF64%\Git\usr\bin;%PF64%\Git\mingw64\bin;%PATH%
36 |
37 | curl.exe --version 1>nul 2>nul
38 | if %ERRORLEVEL%==1 (
39 | set CURL=call curl-psh.bat -L
40 | ) else (
41 | set CURL=curl.exe -L
42 | )
43 |
44 | mkdir aeneas-win-installer-packages 1>nul 2>nul
45 |
46 | IF EXIST "%cd%\aeneas-win-installer-packages\espeak-ng-1.51-x64.msi" GOTO ENDGET
47 | echo Downloading eSpeak-ng...
48 | %CURL% https://github.com/espeak-ng/espeak-ng/releases/download/1.51/espeak-ng-X64.msi -o espeak-ng-1.51-x64.msi
49 | IF %ERRORLEVEL%==0 GOTO ENDIF
50 | echo Could not download eSpeak-ng...
51 | START https://github.com/espeak-ng/espeak-ng/releases
52 | :ENDIF
53 | :ENDGET
54 | IF EXIST "%cd%\espeak-ng-1.51-x64.msi" (
55 | echo Installing eSpeak-ng...
56 | "%cd%\espeak-ng-1.51-x64.msi" /PASSIVE
57 | copy /b/v/y "%cd%\install_espeak-ng_extra.bat" "%temp%\install_espeak-ng_extra.bat"
58 | call "%temp%\install_espeak-ng_extra.bat"
59 | move /y "%cd%\espeak-ng-1.51-x64.msi" "%cd%\aeneas-win-installer-packages"
60 | )
61 |
62 | ENDLOCAL
63 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_ffmpeg_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF64=C:\Program Files
18 | set PF32=C:\Program Files (x86)
19 | :PFENDIF
20 |
21 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
22 | set PFSZ=C:\Program Files
23 | GOTO SEVENENDIF
24 | :WIN64SEVEN
25 | set PFSZ=C:\Program Files (x86)
26 | :SEVENENDIF
27 |
28 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
29 | set INNOPATH=%PF32%\Inno Setup 5
30 | GOTO INNOENDIF
31 | :INNOSIX
32 | set INNOPATH=%PF32%\Inno Setup 6
33 | :INNOENDIF
34 |
35 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF64%\FFmpeg\bin;%PF64%\eSpeak NG;%PF64%\Python39;%PF64%\Python39\Scripts;%PF64%\Git;%PF64%\Git\usr\bin;%PF64%\Git\mingw64\bin;%PATH%
36 |
37 | curl.exe --version 1>nul 2>nul
38 | if %ERRORLEVEL%==1 (
39 | set CURL=call curl-psh.bat -L
40 | ) else (
41 | set CURL=curl.exe -L
42 | )
43 |
44 | mkdir aeneas-win-installer-packages 1>nul 2>nul
45 | cd %CURDIR%
46 |
47 | IF EXIST "%cd%\aeneas-win-installer-packages\ffmpeg-6.0-win64-static.exe" GOTO ENDGET
48 | echo Downloading FFmpeg...
49 | %CURL% https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.0-essentials_build.7z -o ffmpeg-6.0-win64-static.7z
50 | IF %ERRORLEVEL%==0 GOTO ENDIF
51 | echo Could not download FFmpeg...
52 | START https://www.gyan.dev/ffmpeg/builds/#release-builds
53 | :ENDIF
54 | rmdir /q/s ffmpeg-6.0 1>nul 2>nul
55 | rmdir /q/s ffmpeg-6.0-win64-static 1>nul 2>nul
56 | "\Program Files\7-Zip\7z.exe" x ffmpeg-6.0-win64-static.7z -aoa
57 | move /y ffmpeg-6.0-essentials_build ffmpeg-6.0-win64-static
58 | copy /b/v/y ff-prompt.bat ffmpeg-6.0-win64-static
59 | "ISCC.exe" FFmpeg_Installer.iss
60 | :ENDGET
61 | IF EXIST "%cd%\ffmpeg-6.0-win64-static.exe" (
62 | echo Installing FFmpeg...
63 | "%cd%\ffmpeg-6.0-win64-static.exe" /SILENT /ALLUSERS
64 | move /y "%cd%\ffmpeg-6.0-win64-static.exe" "%cd%\aeneas-win-installer-packages"
65 | del /q ffmpeg-6.0-win64-static.zip 1>nul 2>nul
66 | rmdir /q/s ffmpeg-6.0-win64-static 1>nul 2>nul
67 | rmdir /q/s ffmpeg-6.0 1>nul 2>nul
68 | )
69 |
70 | ENDLOCAL
71 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_packages.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | VERIFY OTHER 2>nul
5 | SETLOCAL ENABLEEXTENSIONS
6 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
7 |
8 | set CURDIR=%~dp0
9 | cd %CURDIR%
10 | echo Running %~n0 from %CURDIR%
11 |
12 | call "%cd%\build_espeak_package.bat" %1
13 | call "%cd%\build_ffmpeg_package.bat" %1
14 | call "%cd%\build_python_package.bat" %1
15 | call "%cd%\build_aeneas_package.bat" %1
16 |
17 | echo Now run build_installer.bat
18 |
19 | ENDLOCAL
20 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_python_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF64=C:\Program Files
18 | set PF32=C:\Program Files (x86)
19 | :PFENDIF
20 |
21 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
22 | set PFSZ=C:\Program Files
23 | GOTO SEVENENDIF
24 | :WIN64SEVEN
25 | set PFSZ=C:\Program Files (x86)
26 | :SEVENENDIF
27 |
28 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
29 | set INNOPATH=%PF32%\Inno Setup 5
30 | GOTO INNOENDIF
31 | :INNOSIX
32 | set INNOPATH=%PF32%\Inno Setup 6
33 | :INNOENDIF
34 |
35 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF64%\FFmpeg\bin;%PF64%\eSpeak NG;%PF64%\Python39;%PF64%\Python39\Scripts;%PF64%\Git;%PF64%\Git\usr\bin;%PF64%\Git\mingw64\bin;%PATH%
36 |
37 | curl.exe --version 1>nul 2>nul
38 | if %ERRORLEVEL%==1 (
39 | set CURL=call curl-psh.bat -L
40 | ) else (
41 | set CURL=curl.exe -L
42 | )
43 |
44 | mkdir aeneas-win-installer-packages 1>nul 2>nul
45 |
46 | IF EXIST "%cd%\aeneas-win-installer-packages\python-3.9.13-amd64.exe" GOTO ENDGET
47 | echo Downloading Python 3.9.13...
48 | %CURL% https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe -o python-3.9.13-amd64.exe
49 | IF %ERRORLEVEL%==0 GOTO ENDIF
50 | echo Could not download Python...
51 | START https://www.python.org/downloads/release/python-385/
52 | :ENDIF
53 | :ENDGET
54 | IF EXIST "%cd%\python-3.9.13-amd64.exe" (
55 | echo Installing Python 3.9.13...
56 | "%cd%\python-3.9.13-amd64.exe" /passive InstallAllUsers=1 PrependPath=1 TargetDir="%PF64%"\Python39
57 | move /y "%cd%\python-3.9.13-amd64.exe" "%cd%\aeneas-win-installer-packages"
58 | )
59 |
60 | ENDLOCAL
61 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/build_setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | VERIFY OTHER 2>nul
5 | SETLOCAL ENABLEEXTENSIONS
6 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
7 |
8 | set CURDIR=%~dp0
9 | cd %CURDIR%
10 | echo Running %~n0 from %CURDIR%
11 |
12 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
13 | set PF32=C:\Program Files
14 | GOTO PFENDIF
15 | :WIN64PF
16 | set PF64=C:\Program Files
17 | set PF32=C:\Program Files (x86)
18 | :PFENDIF
19 |
20 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
21 | set PFSZ=C:\Program Files
22 | GOTO SEVENENDIF
23 | :WIN64SEVEN
24 | set PFSZ=C:\Program Files (x86)
25 | :SEVENENDIF
26 |
27 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
28 | set INNOPATH=%PF32%\Inno Setup 5
29 | GOTO INNOENDIF
30 | :INNOSIX
31 | set INNOPATH=%PF32%\Inno Setup 6
32 | :INNOENDIF
33 |
34 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF64%\FFmpeg\bin;%PF64%\eSpeak NG;%PF64%\Python39;%PF64%\Python39\Scripts;%PF64%\Git;%PF64%\Git\usr\bin;%PF64%\Git\mingw64\bin;%PATH%
35 |
36 | curl.exe --version 1>nul 2>nul
37 | if %ERRORLEVEL%==1 (
38 | set CURL=call curl-psh.bat -L
39 | ) else (
40 | set CURL=curl.exe -L
41 | )
42 |
43 | IF NOT EXIST "%cd%\Git-2.41.0-64-bit.exe" (
44 | echo Downloading Git for Windows...
45 | %CURL% "https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.1/Git-2.41.0-64-bit.exe" -o "%cd%\Git-2.41.0-64-bit.exe"
46 | )
47 | IF EXIST "%cd%\Git-2.41.0-64-bit.exe" (
48 | echo Installing Git for Windows...
49 | Git-2.41.0-64-bit.exe
50 | ) ELSE (
51 | echo Could not find Git for Windows...
52 | START https://git-scm.com/download/win
53 | )
54 |
55 | curl.exe --version 1>nul 2>nul
56 | if %ERRORLEVEL%==1 (
57 | set CURL=call curl-psh.bat -L
58 | ) else (
59 | set CURL=curl.exe -L
60 | )
61 |
62 | IF NOT EXIST "%cd%\7z2301-x64.exe" (
63 | echo Downloading 7-zip...
64 | %CURL% "https://7-zip.org/a/7z2301-x64.exe" -o "%cd%\7z2301-x64.exe"
65 | )
66 | IF EXIST "%cd%\7z1900-x64.exe" (
67 | echo Installing 7-zip...
68 | 7z1900-x64.exe
69 | ) ELSE (
70 | echo Could not find 7-zip...
71 | START http://www.7-zip.org/
72 | )
73 |
74 | IF NOT EXIST "%cd%\innosetup-6.2.2.exe" (
75 | echo Downloading Inno Setup...
76 | %CURL% "https://files.jrsoftware.org/is/6/innosetup-6.2.2.exe" -o "%cd%\innosetup-6.2.2.exe"
77 | )
78 | IF EXIST "%cd%\innosetup-6.2.2.exe" (
79 | echo Installing InnoSetup...
80 | innosetup-6.2.2.exe
81 | ) ELSE (
82 | echo Could not find InnoSetup...
83 | START http://www.jrsoftware.org/isdl.php
84 | )
85 |
86 | REM IF NOT EXIST "%cd%\python-3.9.13-amd64.exe" (
87 | REM echo Downloading Python 3.9.13...
88 | REM %CURL% "https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe" -o "%cd%\python-3.9.13-amd64.exe"
89 | REM )
90 | REM IF EXIST "%cd%\python-3.9.13-amd64.exe" (
91 | REM echo Installing Python 3.9.13...
92 | REM python-3.9.13-amd64.exe /passive InstallAllUsers=1 PrependPath=1 TargetDir="%PF64%"\Python39
93 | REM ) ELSE (
94 | REM echo Could not find Python 3.9.13...
95 | REM START https://www.python.org/downloads/release/python-385/
96 | REM )
97 |
98 | REM IF NOT EXIST "%cd%\dotNetFx35setup.exe" (
99 | REM echo Downloading Microsoft .NET Framework 3.5...
100 | REM %CURL% "https://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe" -o "%cd%\dotNetFx35setup.exe"
101 | REM )
102 | REM IF EXIST "%cd%\dotNetFx35setup.exe" (
103 | REM echo Installing Microsoft .NET Framework 3.5...
104 | REM dotNetFx35setup.exe /SILENT
105 | REM ) ELSE (
106 | REM echo Could not find Microsoft .NET Framework 3.5...
107 | REM START http://www.microsoft.com/en-us/download/details.aspx?id=21
108 | REM )
109 |
110 | REM IF NOT EXIST "%cd%\VCForPython27.msi" (
111 | REM echo Downloading Visual C++ For Python27...
112 | REM %CURL% "https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi" -o "%cd%\VCForPython27.msi"
113 | REM )
114 | REM IF EXIST "%cd%\VCForPython27.msi" (
115 | REM echo Installing Visual C++ For Python27...
116 | REM VCForPython27.msi /PASSIVE
117 | REM ) ELSE (
118 | REM echo Could not find Visual C++ For Python27...
119 | REM START http://www.microsoft.com/en-us/download/details.aspx?id=44266
120 | REM )
121 |
122 | echo You need to have Microsoft VisualStudio C++ Build Tools installed
123 | START https://visualstudio.microsoft.com/visual-cpp-build-tools/
124 |
125 | echo Now run build_packages.bat
126 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/clean.bat:
--------------------------------------------------------------------------------
1 | rm -rf numpy-*
2 | git clean -fdx
3 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/clean_up.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | del /q aeneas-win-installer-packages\*
3 | del /q python-wheels\*
4 | rmdir /s /q numpy-*
5 | rmdir /s /q aeneas-*
6 | rmdir /s /q espeak-*
7 | rmdir /s /q ffmpeg-*
8 | rmdir /s /q python-*
9 | del *.tar*
10 | del *.zip
11 | del *.whl
12 | del *.exe
13 | del *.msi
14 | del *.7z
15 |
16 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/copy_espeak_aeneas.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
14 |
15 | echo Copying espeak-ng.exe to espeak.exe
16 | copy /b/v/y "%PF64%\eSpeak NG\espeak-ng.exe" "%PF64%\eSpeak NG\espeak.exe"
17 |
18 | echo Copying libespeak-ng.dll to %PF64%\Python39\Lib\site-packages\aeneas\cew
19 | copy /b/v/y "%PF64%\eSpeak NG\libespeak-ng.dll" "%PF64%\Python39\Lib\site-packages\aeneas\cew"
20 | copy /b/v/y "%PF64%\eSpeak NG\libespeak-ng.dll" "%UserProfile%\AppData\Roaming\Python\Python39\site-packages\aeneas\cew"
21 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/create_espeak-ng-x64_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 64 libespeak-ng.dll "C:\Program Files\eSpeak NG" .
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/create_espeak-ng-x86_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 32 libespeak-ng.dll "C:\Program Files (x86)\eSpeak NG" .
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/create_espeak_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 32 espeak.dll C:\Windows\system32\ .
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/curl.bat:
--------------------------------------------------------------------------------
1 | echo on
2 | powershell "(new-object System.Net.WebClient).DownloadFile('%2', '%4')"
3 | @echo off
4 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/delete_espeak_aeneas.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
14 |
15 | echo Deleting espeak.exe from %PF64%\eSpeak NG\
16 | del /f/q "%PF64%\eSpeak NG\espeak.exe"
17 |
18 | echo Deleting libespeak-ng.dll from %PF64%\Python39\Lib\site-packages\aeneas\cew
19 | del /f/q "%PF64%\Python39\Lib\site-packages\aeneas\cew\libespeak-ng.dll"
20 | del /f/q "%UserProfile%\AppData\Roaming\Python\Python39\site-packages\aeneas\cew\libespeak-ng.dll"
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/dll2lib.bat:
--------------------------------------------------------------------------------
1 | REM Usage: dll2lib [32|64] some-file.dll path-to-dll output-path
2 | REM
3 | REM Generates some-file.lib from some-file.dll, making an intermediate
4 | REM some-file.def from the results of dumpbin /exports some-file.dll.
5 | REM Currently must run without path on DLL.
6 | REM (Fix by removing path when of lib_name for LIBRARY line below?)
7 | REM
8 | REM Requires 'dumpbin' and 'lib' in PATH - run from VS developer prompt.
9 | REM
10 | REM Script inspired by http://stackoverflow.com/questions/9946322/how-to-generate-an-import-library-lib-file-from-a-dll
11 | SETLOCAL
12 | if "%1"=="32" (set machine=x86) else (set machine=x64)
13 | set dll_file=%2
14 | set dll_path=%3
15 | set out_path=%4
16 | cd "%out_path%"
17 | set out_path="%CD%"
18 | set dll_file_no_ext=%dll_file:~0,-4%
19 | set exports_file=%dll_file_no_ext%-exports.txt
20 | set def_file=%dll_file_no_ext%.def
21 | set lib_file=%dll_file_no_ext%.lib
22 | set lib_name=%dll_file_no_ext%
23 |
24 | cd "%dll_path%"
25 | dumpbin /exports %dll_file% > "%out_path%\%exports_file%"
26 | cd "%out_path%"
27 |
28 | echo LIBRARY %lib_name% > %def_file%
29 | echo EXPORTS >> %def_file%
30 | for /f "skip=19 tokens=1,4" %%A in (%exports_file%) do if NOT "%%B" == "" (echo %%B @%%A >> %def_file%)
31 |
32 | lib /def:%def_file% /out:%lib_file% /machine:%machine%
33 |
34 | REM Clean up temporary intermediate files
35 | REM del %exports_file% %def_file% %dll_file_no_ext%.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/eSpeak-NG.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/eSpeak-NG.reg
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak-exports.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak-exports.txt
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak.def:
--------------------------------------------------------------------------------
1 | LIBRARY espeak
2 | EXPORTS
3 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/espeak.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/ff-prompt.bat:
--------------------------------------------------------------------------------
1 | ECHO OFF
2 | REM FF Prompt 1.1
3 | REM Open a command prompt to run ffmpeg/ffplay/ffprobe
4 | REM Copyright (C) 2013 Kyle Schwarz
5 |
6 | TITLE FF Prompt
7 |
8 | IF NOT EXIST bin\ffmpeg.exe (
9 | CLS
10 | ECHO bin\ffmpeg.exe could not be found.
11 | GOTO:error
12 | )
13 |
14 | CD bin || GOTO:error
15 | PROMPT $G
16 | CLS
17 | ffmpeg -version
18 | SET PATH=%CD%;%PATH%
19 | ECHO.
20 | ECHO For help run: ffmpeg -h
21 | ECHO For formats run: ffmpeg -formats ^| more
22 | ECHO For codecs run: ffmpeg -codecs ^| more
23 | ECHO.
24 | ECHO Current directory is now: "%CD%"
25 | ECHO The bin directory has been added to PATH
26 | ECHO.
27 |
28 | CMD /F:ON /Q /K
29 | GOTO:EOF
30 |
31 | :error
32 | ECHO.
33 | ECHO Press any key to exit.
34 | PAUSE >nul
35 | GOTO:EOF
36 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/install_espeak-ng_extra.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | :--------------------------------------
4 | REM --> Check for permissions
5 | >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
6 |
7 | REM --> If error flag set, we do not have admin.
8 | if '%errorlevel%' NEQ '0' (
9 | echo Requesting administrative privileges...
10 | goto UACPrompt
11 | ) else ( goto gotAdmin )
12 |
13 | :UACPrompt
14 | echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
15 | echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
16 |
17 | call "%temp%\getadmin.vbs"
18 | exit /B
19 |
20 | :gotAdmin
21 | if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
22 | pushd "%CD%"
23 | CD /D "%~dp0"
24 | :--------------------------------------
25 |
26 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
27 | set PF32=C:\Program Files
28 | (call )
29 | GOTO WIN32PATH
30 | :WIN64PATH
31 | set PF64=C:\Program Files
32 | set PF32=C:\Program Files (x86)
33 | (call )
34 | :WIN32PATH
35 |
36 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
37 |
38 | echo Copying espeak-ng.exe to espeak.exe
39 | copy /b/v/y "%PF64%\eSpeak NG\espeak-ng.exe" "%PF64%\eSpeak NG\espeak.exe"
40 | echo Copying espeak-ng.lib to %PF64%\Python39\libs\
41 | copy /b/v/y "espeak-ng.lib" "%PF64%\Python39\libs\"
42 | echo Copying libespeak-ng.dll to %PF64%\Python39\Lib\site-packages\aeneas\cew
43 | copy /b/v/y "%PF64%\eSpeak NG\libespeak-ng.dll" "%PF64%\Python39\Lib\site-packages\aeneas\cew"
44 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/install_packages.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
14 |
15 | echo Copying espeak-ng.exe to espeak.exe
16 | copy /b/v/y "%PF64%\eSpeak NG\espeak-ng.exe" "%PF64%\eSpeak NG\espeak.exe"
17 | echo Copying espeak-ng.lib to %PF64%\Python39\libs\
18 | copy /b/v/y "espeak-ng.lib" "%PF64%\Python39\libs\"
19 |
20 | python -m ensurepip
21 | REM python -m pip install -U
22 | python -m pip install -U numpy-1.25.0-cp39-cp39-win_amd64.whl
23 | python -m pip install -U lxml-4.9.2-cp39-cp39-win_amd64.whl
24 | python -m pip install -U soupsieve-2.4.1-py3-none-any.whl
25 | python -m pip install -U beautifulsoup4-4.12.2-py3-none-any.whl
26 | python -m pip install -U aeneas-1.7.3.0-cp39-cp39-win_amd64.whl
27 |
28 | echo Copying libespeak-ng.dll to %PF64%\Python39\Lib\site-packages\aeneas\cew
29 | copy /b/v/y "%PF64%\eSpeak NG\libespeak-ng.dll" "%PF64%\Python39\Lib\site-packages\aeneas\cew"
30 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/install_packages_TEMPLATE.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF64%\Python39\;%PF64%\Python39\Scripts;%PF64%\eSpeak NG;%PF64%\FFmpeg\bin;%PATH%
14 |
15 | echo Copying espeak-ng.exe to espeak.exe
16 | copy /b/v/y "%PF64%\eSpeak NG\espeak-ng.exe" "%PF64%\eSpeak NG\espeak.exe"
17 | echo Copying espeak-ng.lib to %PF64%\Python39\libs\
18 | copy /b/v/y "espeak-ng.lib" "%PF64%\Python39\libs\"
19 |
20 | python -m ensurepip
21 | REM python -m pip install -U [PIP_FILE]
22 | python -m pip install -U [NUMPY_FILE]
23 | python -m pip install -U [LXML_FILE]
24 | python -m pip install -U [SOUPSIEVE_FILE]
25 | python -m pip install -U [BS4_FILE]
26 | python -m pip install -U [AENEAS_FILE]
27 |
28 | echo Copying libespeak-ng.dll to %PF64%\Python39\Lib\site-packages\aeneas\cew
29 | copy /b/v/y "%PF64%\eSpeak NG\libespeak-ng.dll" "%PF64%\Python39\Lib\site-packages\aeneas\cew"
30 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 0003CE40 DllCanUnloadNow
21 | 2 1 0003CDB0 DllGetClassObject
22 | 3 2 000240C0 GetFileLength
23 | 4 3 00015780 create_text_decoder
24 | 5 4 000157B0 destroy_text_decoder
25 | 6 5 00016470 espeak_Cancel
26 | 7 6 000161D0 espeak_Char
27 | 8 7 00016580 espeak_CompileDictionary
28 | 9 8 00039AB0 espeak_GetCurrentVoice
29 | 10 9 00024E60 espeak_GetParameter
30 | 11 A 00025110 espeak_Info
31 | 12 B 00015EF0 espeak_Initialize
32 | 13 C 00015770 espeak_IsPlaying
33 | 14 D 00016110 espeak_Key
34 | 15 E 00039890 espeak_ListVoices
35 | 16 F 000162B0 espeak_SetParameter
36 | 17 10 00024D80 espeak_SetPhonemeCallback
37 | 18 11 00024EA0 espeak_SetPhonemeTrace
38 | 19 12 00016310 espeak_SetPunctuationList
39 | 20 13 00024D60 espeak_SetSynthCallback
40 | 21 14 00024D70 espeak_SetUriCallback
41 | 22 15 000163C0 espeak_SetVoiceByFile
42 | 23 16 00016360 espeak_SetVoiceByName
43 | 24 17 00016420 espeak_SetVoiceByProperties
44 | 25 18 000164D0 espeak_Synchronize
45 | 26 19 00015FE0 espeak_Synth
46 | 27 1A 00016080 espeak_Synth_Mark
47 | 28 1B 00016520 espeak_Terminate
48 | 29 1C 00024ED0 espeak_TextToPhonemes
49 | 30 1D 00016470 espeak_ng_Cancel
50 | 31 1E 00015C50 espeak_ng_ClearErrorContext
51 | 32 1F 0000F3B0 espeak_ng_CompileDictionary
52 | 33 20 0000BF10 espeak_ng_CompileIntonation
53 | 34 21 0000F890 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000B8A0 espeak_ng_CompilePhonemeData
55 | 36 23 0000B8C0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 000153D0 espeak_ng_EncodingFromName
57 | 38 25 000246A0 espeak_ng_GetSampleRate
58 | 39 26 00015C90 espeak_ng_GetStatusCodeMessage
59 | 40 27 00024270 espeak_ng_Initialize
60 | 41 28 00023EA0 espeak_ng_InitializeOutput
61 | 42 29 00024140 espeak_ng_InitializePath
62 | 43 2A 00015E30 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00024E90 espeak_ng_SetParameter
64 | 45 2C 00016310 espeak_ng_SetPunctuationList
65 | 46 2D 000395F0 espeak_ng_SetVoiceByFile
66 | 47 2E 00039700 espeak_ng_SetVoiceByName
67 | 48 2F 00039840 espeak_ng_SetVoiceByProperties
68 | 49 30 00024D00 espeak_ng_SpeakCharacter
69 | 50 31 00024DF0 espeak_ng_SpeakKeyName
70 | 51 32 00024F90 espeak_ng_Synchronize
71 | 52 33 00024D90 espeak_ng_Synthesize
72 | 53 34 00024DC0 espeak_ng_SynthesizeMark
73 | 54 35 00024FB0 espeak_ng_Terminate
74 | 55 36 0000FCE0 strncpy0
75 | 56 37 000157C0 text_decoder_decode_string
76 | 57 38 00015850 text_decoder_decode_string_auto
77 | 58 39 00015940 text_decoder_decode_string_multibyte
78 | 59 3A 000158D0 text_decoder_decode_wstring
79 | 60 3B 00015B40 text_decoder_eof
80 | 61 3C 00015BA0 text_decoder_get_buffer
81 | 62 3D 00015B50 text_decoder_getc
82 | 63 3E 00015B60 text_decoder_peekc
83 | 64 3F 0002E1B0 utf8_in
84 |
85 | Summary
86 |
87 | 2A000 .data
88 | 2000 .pdata
89 | 2B000 .rdata
90 | 1000 .reloc
91 | 1000 .rsrc
92 | 3F000 .text
93 | 1000 _RDATA
94 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 000371A0 DllCanUnloadNow
21 | 2 1 000370F0 DllGetClassObject
22 | 3 2 00021560 GetFileLength
23 | 4 3 00014650 create_text_decoder
24 | 5 4 00014680 destroy_text_decoder
25 | 6 5 000150B0 espeak_Cancel
26 | 7 6 00014E60 espeak_Char
27 | 8 7 000151A0 espeak_CompileDictionary
28 | 9 8 000346F0 espeak_GetCurrentVoice
29 | 10 9 00022150 espeak_GetParameter
30 | 11 A 000223C0 espeak_Info
31 | 12 B 00014C60 espeak_Initialize
32 | 13 C 00014640 espeak_IsPlaying
33 | 14 D 00014E10 espeak_Key
34 | 15 E 00034550 espeak_ListVoices
35 | 16 F 00014F20 espeak_SetParameter
36 | 17 10 00022060 espeak_SetPhonemeCallback
37 | 18 11 00022190 espeak_SetPhonemeTrace
38 | 19 12 00014F80 espeak_SetPunctuationList
39 | 20 13 00022040 espeak_SetSynthCallback
40 | 21 14 00022050 espeak_SetUriCallback
41 | 22 15 00015020 espeak_SetVoiceByFile
42 | 23 16 00014FD0 espeak_SetVoiceByName
43 | 24 17 00015070 espeak_SetVoiceByProperties
44 | 25 18 00015100 espeak_Synchronize
45 | 26 19 00014D30 espeak_Synth
46 | 27 1A 00014DA0 espeak_Synth_Mark
47 | 28 1B 00015150 espeak_Terminate
48 | 29 1C 000221C0 espeak_TextToPhonemes
49 | 30 1D 00022250 espeak_ng_Cancel
50 | 31 1E 000149E0 espeak_ng_ClearErrorContext
51 | 32 1F 0000E6F0 espeak_ng_CompileDictionary
52 | 33 20 0000B3F0 espeak_ng_CompileIntonation
53 | 34 21 0000EB20 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000AC90 espeak_ng_CompilePhonemeData
55 | 36 23 0000ACB0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 00014300 espeak_ng_EncodingFromName
57 | 38 25 00021AA0 espeak_ng_GetSampleRate
58 | 39 26 00014A10 espeak_ng_GetStatusCodeMessage
59 | 40 27 000216E0 espeak_ng_Initialize
60 | 41 28 000213B0 espeak_ng_InitializeOutput
61 | 42 29 000215D0 espeak_ng_InitializePath
62 | 43 2A 00014BA0 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00022170 espeak_ng_SetParameter
64 | 45 2C 00014F80 espeak_ng_SetPunctuationList
65 | 46 2D 00034210 espeak_ng_SetVoiceByFile
66 | 47 2E 00034340 espeak_ng_SetVoiceByName
67 | 48 2F 000344C0 espeak_ng_SetVoiceByProperties
68 | 49 30 000220F0 espeak_ng_SpeakCharacter
69 | 50 31 000220E0 espeak_ng_SpeakKeyName
70 | 51 32 000222A0 espeak_ng_Synchronize
71 | 52 33 00022070 espeak_ng_Synthesize
72 | 53 34 000220B0 espeak_ng_SynthesizeMark
73 | 54 35 000222B0 espeak_ng_Terminate
74 | 55 36 0000EF90 strncpy0
75 | 56 37 000146A0 text_decoder_decode_string
76 | 57 38 00014720 text_decoder_decode_string_auto
77 | 58 39 00014810 text_decoder_decode_string_multibyte
78 | 59 3A 000147A0 text_decoder_decode_wstring
79 | 60 3B 000148F0 text_decoder_eof
80 | 61 3C 00014950 text_decoder_get_buffer
81 | 62 3D 00014910 text_decoder_getc
82 | 63 3E 00014920 text_decoder_peekc
83 | 64 3F 00029830 utf8_in
84 |
85 | Summary
86 |
87 | 24000 .data
88 | 27000 .rdata
89 | 5000 .reloc
90 | 1000 .rsrc
91 | 39000 .text
92 | 1000 _RDATA
93 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 000371A0 DllCanUnloadNow
21 | 2 1 000370F0 DllGetClassObject
22 | 3 2 00021560 GetFileLength
23 | 4 3 00014650 create_text_decoder
24 | 5 4 00014680 destroy_text_decoder
25 | 6 5 000150B0 espeak_Cancel
26 | 7 6 00014E60 espeak_Char
27 | 8 7 000151A0 espeak_CompileDictionary
28 | 9 8 000346F0 espeak_GetCurrentVoice
29 | 10 9 00022150 espeak_GetParameter
30 | 11 A 000223C0 espeak_Info
31 | 12 B 00014C60 espeak_Initialize
32 | 13 C 00014640 espeak_IsPlaying
33 | 14 D 00014E10 espeak_Key
34 | 15 E 00034550 espeak_ListVoices
35 | 16 F 00014F20 espeak_SetParameter
36 | 17 10 00022060 espeak_SetPhonemeCallback
37 | 18 11 00022190 espeak_SetPhonemeTrace
38 | 19 12 00014F80 espeak_SetPunctuationList
39 | 20 13 00022040 espeak_SetSynthCallback
40 | 21 14 00022050 espeak_SetUriCallback
41 | 22 15 00015020 espeak_SetVoiceByFile
42 | 23 16 00014FD0 espeak_SetVoiceByName
43 | 24 17 00015070 espeak_SetVoiceByProperties
44 | 25 18 00015100 espeak_Synchronize
45 | 26 19 00014D30 espeak_Synth
46 | 27 1A 00014DA0 espeak_Synth_Mark
47 | 28 1B 00015150 espeak_Terminate
48 | 29 1C 000221C0 espeak_TextToPhonemes
49 | 30 1D 00022250 espeak_ng_Cancel
50 | 31 1E 000149E0 espeak_ng_ClearErrorContext
51 | 32 1F 0000E6F0 espeak_ng_CompileDictionary
52 | 33 20 0000B3F0 espeak_ng_CompileIntonation
53 | 34 21 0000EB20 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000AC90 espeak_ng_CompilePhonemeData
55 | 36 23 0000ACB0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 00014300 espeak_ng_EncodingFromName
57 | 38 25 00021AA0 espeak_ng_GetSampleRate
58 | 39 26 00014A10 espeak_ng_GetStatusCodeMessage
59 | 40 27 000216E0 espeak_ng_Initialize
60 | 41 28 000213B0 espeak_ng_InitializeOutput
61 | 42 29 000215D0 espeak_ng_InitializePath
62 | 43 2A 00014BA0 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00022170 espeak_ng_SetParameter
64 | 45 2C 00014F80 espeak_ng_SetPunctuationList
65 | 46 2D 00034210 espeak_ng_SetVoiceByFile
66 | 47 2E 00034340 espeak_ng_SetVoiceByName
67 | 48 2F 000344C0 espeak_ng_SetVoiceByProperties
68 | 49 30 000220F0 espeak_ng_SpeakCharacter
69 | 50 31 000220E0 espeak_ng_SpeakKeyName
70 | 51 32 000222A0 espeak_ng_Synchronize
71 | 52 33 00022070 espeak_ng_Synthesize
72 | 53 34 000220B0 espeak_ng_SynthesizeMark
73 | 54 35 000222B0 espeak_ng_Terminate
74 | 55 36 0000EF90 strncpy0
75 | 56 37 000146A0 text_decoder_decode_string
76 | 57 38 00014720 text_decoder_decode_string_auto
77 | 58 39 00014810 text_decoder_decode_string_multibyte
78 | 59 3A 000147A0 text_decoder_decode_wstring
79 | 60 3B 000148F0 text_decoder_eof
80 | 61 3C 00014950 text_decoder_get_buffer
81 | 62 3D 00014910 text_decoder_getc
82 | 63 3E 00014920 text_decoder_peekc
83 | 64 3F 00029830 utf8_in
84 |
85 | Summary
86 |
87 | 24000 .data
88 | 27000 .rdata
89 | 5000 .reloc
90 | 1000 .rsrc
91 | 39000 .text
92 | 1000 _RDATA
93 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/MS_Windows_64-bit_Installer/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/runas_admin.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
3 |
4 | IF "%~1"=="" (
5 | echo "USAGE: runas_admin script_name"
6 | exit /B 1
7 | )
8 | echo copy "%~s1" "%temp%\%~snx1"
9 | copy /b/v/y "%~s1" "%temp%\%~snx1"
10 |
11 | :--------------------------------------
12 | REM --> Check for permissions
13 | >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
14 |
15 | REM --> If error flag set, we do not have admin.
16 | if '%errorlevel%' NEQ '0' (
17 | echo Requesting administrative privileges...
18 | goto UACPrompt
19 | ) else ( goto gotAdmin )
20 |
21 | :UACPrompt
22 | echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
23 | echo UAC.ShellExecute "%temp%\%~snx1", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
24 |
25 | call "%temp%\getadmin.vbs"
26 | exit /B
27 |
28 | :gotAdmin
29 | if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
30 | pushd "%CD%"
31 | CD /D "%~dp0"
32 | :--------------------------------------
33 |
34 | call "%temp%\%~snx1"
35 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/sign_installer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | osslsigncode sign -pkcs12 "$HOME/MacInstaller.p12" -askpass -n "Aeneas Tools" -i "http://www.readbeyond.it/aeneas/" -t "http://timestamp.comodoca.com/authenticode" -in "./aeneas-win64-setup-1.7.3.0_3.exe" -out "./aeneas-win64-setup-1.7.3.0_3_signed.exe"
4 | osslsigncode verify "./aeneas-win64-setup-1.7.3.0_3_signed.exe"
5 |
6 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/x64 Native Tools Command Prompt for VS 2017.lnk.txt:
--------------------------------------------------------------------------------
1 |
2 | Link File: x64 Native Tools Command Prompt for VS 2017.lnk
3 | Link Flags: HAS SHELLIDLIST | POINTS TO FILE/DIR | HAS DESCRIPTION | HAS RELATIVE PATH STRING | HAS WORKING DIRECTORY | HAS CMD LINE ARGS | NO CUSTOM ICON |
4 | File Attributes: ARCHIVE
5 | Create Time: Sat Jul 16 2016 18:42:36
6 | Last Accessed time: Sat Jul 16 2016 18:42:36
7 | Last Modified Time: Sat Jul 16 2016 18:42:36
8 | Target Length: 232960
9 | Icon Index: 0
10 | ShowWnd: 1 SW_NORMAL
11 | HotKey: 0
12 | Target is on local volume
13 | Volume Type: Fixed (Hard Disk)
14 | Volume Serial: 1235dde9
15 | Vol Label: Windows 10
16 | Base Path: C:\Windows\System32\cmd.exe
17 | (App Path:) Remaining Path:
18 | Description: O p e n V i s u a l S t u d i o 2 0 1 7 T o o l s C o m m a n d P r o m p t f o r t a r g e t i n g x 6 4
19 | Relative Path: . . \ . . \ . . \ . . \ . . \ . . \ . . \ . . \ W i n d o w s \ S y s t e m 3 2 \ c m d . e x e
20 | Working Dir: C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \
21 | Command Line: / k " C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \ V C \ A u x i l i a r y \ B u i l d \ v c v a r s 6 4 . b a t "
22 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/MS_Windows_64-bit_Installer/x86_x64 Cross Tools Command Prompt for VS 2017.lnk.txt:
--------------------------------------------------------------------------------
1 |
2 | Link File: x86_x64 Cross Tools Command Prompt for VS 2017.lnk
3 | Link Flags: HAS SHELLIDLIST | POINTS TO FILE/DIR | HAS DESCRIPTION | HAS RELATIVE PATH STRING | HAS WORKING DIRECTORY | HAS CMD LINE ARGS | NO CUSTOM ICON |
4 | File Attributes: ARCHIVE
5 | Create Time: Sat Jul 16 2016 18:42:36
6 | Last Accessed time: Sat Jul 16 2016 18:42:36
7 | Last Modified Time: Sat Jul 16 2016 18:42:36
8 | Target Length: 232960
9 | Icon Index: 0
10 | ShowWnd: 1 SW_NORMAL
11 | HotKey: 0
12 | Target is on local volume
13 | Volume Type: Fixed (Hard Disk)
14 | Volume Serial: 1235dde9
15 | Vol Label: Windows 10
16 | Base Path: C:\Windows\System32\cmd.exe
17 | (App Path:) Remaining Path:
18 | Description: O p e n V i s u a l S t u d i o 2 0 1 7 T o o l s C o m m a n d P r o m p t f o r t a r g e t i n g x 6 4 w i t h x 8 6 - h o s t e d t o o l s
19 | Relative Path: . . \ . . \ . . \ . . \ . . \ . . \ . . \ . . \ W i n d o w s \ S y s t e m 3 2 \ c m d . e x e
20 | Working Dir: C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \
21 | Command Line: / k " C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \ V C \ A u x i l i a r y \ B u i l d \ v c v a r s x 8 6 _ a m d 6 4 . b a t "
22 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/README.txt:
--------------------------------------------------------------------------------
1 | This setup wizard was developed by Daniel Bair and is distributed by SIL International, and the source code is available for download at: https://github.com/sillsdev/aeneas-installer
2 |
3 | --------------------------------------------------------------------
4 |
5 | aeneas is developed by Alberto Pettarin, ReadBeyond, and the source code is available for download at http://www.readbeyond.it/aeneas/
6 |
7 | --------------------------------------------------------------------
8 |
9 | eSpeak-ng is a text-to-speech engine, developed by Reece H. Dunn, and is available for download at https://github.com/espeak-ng/espeak-ng
10 |
11 | --------------------------------------------------------------------
12 |
13 | FFmpeg is a video and audio converter, developed by Fabrice Bellard, and is available for download at http://www.ffmpeg.org/
14 |
15 | --------------------------------------------------------------------
16 |
17 | Python is a programming language, developed by the Python Software Foundation, and is available for download at http://www.python.org/
18 |
19 | --------------------------------------------------------------------
20 |
21 | Python BeautifulSoup sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree, and is available for download at https://www.crummy.com/software/BeautifulSoup/
22 |
23 | --------------------------------------------------------------------
24 |
25 | Python lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries, which provides safe and convenient access to these libraries using the ElementTree API, and is available for download at http://lxml.de/
26 |
27 | --------------------------------------------------------------------
28 |
29 | Python NumPy is a general-purpose array-processing package designed to efficiently manipulate large multi-dimensional arrays of arbitrary records without sacrificing too much speed for small multi-dimensional arrays, and is available for download at http://www.numpy.org/
30 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/ReadMe.md:
--------------------------------------------------------------------------------
1 | This provides a simple installer for [Aeneas](https://github.com/readbeyond/aeneas) for MS Windows 8 and up.
2 |
3 | 1. To build this installer for MS Windows first download (and extract) or clone this repository.
4 | 2. Then open Command Prompt and _cd_ to _MS\_Windows\_Installer_
5 | 3. Next run `build_setup.bat` which will install the necessary applications for building.
6 | 4. Then run `build_packages.bat` which will then build all the individual packages.
7 | 5. Finally run `build_installer.bat` which will then build the main installer.
8 |
9 | NOTE: This will build an installer for 32-bit Windows setups.
10 |
11 | The 64-bit installer scripts can be found in the _MS\_Windows\_64-bit\_Installer_ folder.
12 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/aeneas-patches/patch-py38-utf8.diff:
--------------------------------------------------------------------------------
1 | diff --git a/aeneas/diagnostics.py b/aeneas/diagnostics.py
2 | index 7d9e98a1fbe287c0286fdab504bb2e26a691b2d2..6f4e291f115ecba3f9db810e92f083deaafc1542 100644
3 | --- a/aeneas/diagnostics.py
4 | +++ b/aeneas/diagnostics.py
5 | @@ -56,9 +56,9 @@ def check_shell_encoding(cls):
6 | """
7 | is_in_utf8 = True
8 | is_out_utf8 = True
9 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
10 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
11 | is_in_utf8 = False
12 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
13 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
14 | is_out_utf8 = False
15 | if (is_in_utf8) and (is_out_utf8):
16 | gf.print_success(u"shell encoding OK")
17 |
18 | diff --git a/aeneas/tools/abstract_cli_program.py b/aeneas/tools/abstract_cli_program.py
19 | index be5bb2fa8bfda1de88e4ed5a418aab2c00d625f7..b5b9faddc255a7e46e0316864766fec09f292b5b 100644
20 | --- a/aeneas/tools/abstract_cli_program.py
21 | +++ b/aeneas/tools/abstract_cli_program.py
22 | @@ -295,10 +295,10 @@ def run(self, arguments, show_help=True):
23 | if self.use_sys:
24 | # check that sys.stdin.encoding and sys.stdout.encoding are set to utf-8
25 | if not gf.FROZEN:
26 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
27 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
28 | self.print_warning(u"The default input encoding is not UTF-8.")
29 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
30 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
31 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
32 | self.print_warning(u"The default output encoding is not UTF-8.")
33 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
34 | # decode using sys.stdin.encoding
35 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/aeneas_check_setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
3 | :WIN32PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO ENDIFPATH
7 | :WIN64PATH
8 | set PF32=C:\Program Files (x86)
9 | (call )
10 | :ENDIFPATH
11 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
12 | set PYTHONIOENCODING=UTF-8
13 | python -m aeneas.diagnostics
14 | C:\Windows\System32\ping 127.0.0.1 -n 5 -w 1000 > NUL
15 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_aeneas_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF32=C:\Program Files (x86)
18 | :PFENDIF
19 |
20 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
21 | set PFSZ=C:\Program Files
22 | GOTO SEVENENDIF
23 | :WIN64SEVEN
24 | set PFSZ=C:\Program Files (x86)
25 | :SEVENENDIF
26 |
27 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
28 | set INNOPATH=%PF32%\Inno Setup 5
29 | GOTO INNOENDIF
30 | :INNOSIX
31 | set INNOPATH=%PF32%\Inno Setup 6
32 | :INNOENDIF
33 |
34 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
35 |
36 | curl.exe --version 1>nul 2>nul
37 | if %ERRORLEVEL%==1 (
38 | set CURL=call curl-psh.bat -L
39 | ) else (
40 | set CURL=curl.exe -L
41 | )
42 |
43 | mkdir python-wheels 1>nul 2>nul
44 |
45 | rmdir /q/s %USERPROFILE%\AppData\Roaming\Python\Python38\site-packages
46 | set PATH=%USERPROFILE%\AppData\Roaming\Python\Python38\Scripts;%PATH%
47 | python.exe -m ensurepip
48 | python -m pip install -U pip setuptools wheel
49 |
50 | DEL /Q *.whl 1>nul 2>nul
51 | DEL /Q python-wheels\*.whl 1>nul 2>nul
52 |
53 | python -m pip install -U numpy
54 | python -m pip install -U lxml beautifulsoup4 soupsieve
55 |
56 | REM python -m pip wheel pip
57 | python -m pip wheel numpy
58 | python -m pip wheel lxml beautifulsoup4 soupsieve
59 |
60 | python -m pip download aeneas==1.7.3.0 --no-cache-dir
61 |
62 | IF EXIST "%cd%\aeneas-1.7.3.0.tar.gz" GOTO ENDGET
63 | echo Downloading aeneas...
64 | %CURL% https://github.com/readbeyond/aeneas/archive/v1.7.3.tar.gz -o aeneas-1.7.3.0.tar.gz
65 | IF %ERRORLEVEL%==0 GOTO ENDIF
66 | echo Could not download aeneas...
67 | START https://github.com/readbeyond/aeneas/archive
68 | :ENDIF
69 | :ENDGET
70 |
71 | RMDIR /S /Q aeneas-1.7.3.0
72 | "7z.exe" e aeneas-1.7.3.0.tar.gz -aoa
73 | "7z.exe" x aeneas-1.7.3.0.tar -aoa
74 |
75 | IF EXIST "%cd%\aeneas-1.7.3" (
76 | move /y aeneas-1.7.3 aeneas-1.7.3.0
77 | )
78 |
79 | cd aeneas-1.7.3.0
80 | echo "Checking for patch.exe"
81 | 2>nul patch.exe --version
82 | if %ERRORLEVEL%==1 (
83 | python -m pip install -U patch
84 | python.exe -m patch -v -p 1 --debug ..\aeneas-patches\patch-espeak-ng.diff
85 | python.exe -m patch -v -p 1 --debug ..\aeneas-patches\patch-py38-utf8.diff
86 | ) ELSE (
87 | patch.exe -p1 < ..\aeneas-patches\patch-espeak-ng.diff
88 | patch.exe -p1 < ..\aeneas-patches\patch-py38-utf8.diff
89 | )
90 | move /y aeneas\cew\speak_lib.h thirdparty\speak_lib.h
91 | copy /b/v/y ..\libespeak-ng-dll2lib-x64\libespeak-ng.lib thirdparty\libespeak-ng-x64.lib
92 | copy /b/v/y ..\libespeak-ng-dll2lib-x86\libespeak-ng.lib thirdparty\libespeak-ng-x86.lib
93 | set AENEAS_USE_ESPEAKNG=True
94 | python.exe setup.py build_ext --inplace
95 | python.exe setup.py bdist_wheel
96 | echo.
97 | set PYTHONIOENCODING=UTF-8
98 | python.exe -m aeneas.diagnostics
99 | python.exe -m aeneas.tools.execute_task --version
100 | python.exe -m aeneas.tools.synthesize_text list "This is a test|with two lines" eng -v C:\Windows\Temp\test.wav
101 | echo.
102 | copy /b/v/y dist\aeneas-*.whl ..\
103 | cd %CURDIR%
104 |
105 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir aeneas-*.whl /b`) DO (SET aeneas_file=%%F)
106 | IF %ERRORLEVEL%==0 (
107 | python -m pip install -U pip %aeneas_file%
108 | RMDIR /S /Q aeneas-1.7.3.0
109 | DEL /Q aeneas-1.7.3.0.tar
110 | DEL /Q aeneas-1.7.3.0.tar.gz
111 | MOVE /Y *.whl "%cd%\python-wheels"
112 | )
113 |
114 | ENDLOCAL
115 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_espeak_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF32=C:\Program Files (x86)
18 | :PFENDIF
19 |
20 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
21 | set PFSZ=C:\Program Files
22 | GOTO SEVENENDIF
23 | :WIN64SEVEN
24 | set PFSZ=C:\Program Files (x86)
25 | :SEVENENDIF
26 |
27 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
28 | set INNOPATH=%PF32%\Inno Setup 5
29 | GOTO INNOENDIF
30 | :INNOSIX
31 | set INNOPATH=%PF32%\Inno Setup 6
32 | :INNOENDIF
33 |
34 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
35 |
36 | curl.exe --version 1>nul 2>nul
37 | if %ERRORLEVEL%==1 (
38 | set CURL=call curl-psh.bat -L
39 | ) else (
40 | set CURL=curl.exe -L
41 | )
42 |
43 | mkdir aeneas-win-installer-packages 1>nul 2>nul
44 |
45 | IF EXIST "%cd%\aeneas-win-installer-packages\espeak-ng-1.50-x86.msi" GOTO ENDGET
46 | echo Downloading eSpeak-ng...
47 | %CURL% https://github.com/espeak-ng/espeak-ng/releases/download/1.50/espeak-ng-20191129-b702b03-x86.msi -o espeak-ng-1.50-x86.msi
48 | IF %ERRORLEVEL%==0 GOTO ENDIF
49 | echo Could not download eSpeak-ng...
50 | START https://github.com/espeak-ng/espeak-ng/releases
51 | :ENDIF
52 | :ENDGET
53 | IF EXIST "%cd%\espeak-ng-1.50-x86.msi" (
54 | echo Installing eSpeak-ng...
55 | "%cd%\espeak-ng-1.50-x86.msi" /PASSIVE
56 | copy /b/v/y "%cd%\install_espeak-ng_extra.bat" "%temp%\install_espeak-ng_extra.bat"
57 | call "%temp%\install_espeak-ng_extra.bat"
58 | move /y "%cd%\espeak-ng-1.50-x86.msi" "%cd%\aeneas-win-installer-packages"
59 | )
60 |
61 | ENDLOCAL
62 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_ffmpeg_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF32=C:\Program Files (x86)
18 | :PFENDIF
19 |
20 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
21 | set PFSZ=C:\Program Files
22 | GOTO SEVENENDIF
23 | :WIN64SEVEN
24 | set PFSZ=C:\Program Files (x86)
25 | :SEVENENDIF
26 |
27 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
28 | set INNOPATH=%PF32%\Inno Setup 5
29 | GOTO INNOENDIF
30 | :INNOSIX
31 | set INNOPATH=%PF32%\Inno Setup 6
32 | :INNOENDIF
33 |
34 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
35 |
36 | curl.exe --version 1>nul 2>nul
37 | if %ERRORLEVEL%==1 (
38 | set CURL=call curl-psh.bat -L
39 | ) else (
40 | set CURL=curl.exe -L
41 | )
42 |
43 | mkdir aeneas-win-installer-packages 1>nul 2>nul
44 | cd %CURDIR%
45 |
46 | IF EXIST "%cd%\aeneas-win-installer-packages\ffmpeg-4.3-win32-static.exe" GOTO ENDGET
47 | echo Downloading FFmpeg...
48 | %CURL% https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-4.3-win32-static.zip -o ffmpeg-4.3-win32-static.zip
49 | IF %ERRORLEVEL%==0 GOTO ENDIF
50 | echo Could not download FFmpeg...
51 | START https://ffmpeg.zeranoe.com/builds/
52 | :ENDIF
53 | rmdir /q/s ffmpeg-4.3 1>nul 2>nul
54 | rmdir /q/s ffmpeg-4.3-win32-static 1>nul 2>nul
55 | "7z.exe" x ffmpeg-4.3-win32-static.zip -aoa
56 | copy /b/v/y ff-prompt.bat ffmpeg-4.3-win32-static
57 | "ISCC.exe" FFmpeg_Installer.iss
58 | :ENDGET
59 | IF EXIST "%cd%\ffmpeg-4.3-win32-static.exe" (
60 | echo Installing FFmpeg...
61 | "%cd%\ffmpeg-4.3-win32-static.exe" /SILENT /ALLUSERS
62 | move /y "%cd%\ffmpeg-4.3-win32-static.exe" "%cd%\aeneas-win-installer-packages"
63 | del /q ffmpeg-4.3-win32-static.zip 1>nul 2>nul
64 | rmdir /q/s ffmpeg-4.3-win32-static 1>nul 2>nul
65 | rmdir /q/s ffmpeg-4.3 1>nul 2>nul
66 | )
67 |
68 | ENDLOCAL
69 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_installer.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | VERIFY OTHER 2>nul
5 | SETLOCAL ENABLEEXTENSIONS
6 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
7 |
8 | set CURDIR=%~dp0
9 | cd %CURDIR%
10 | echo Running %~n0 from %CURDIR%
11 |
12 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
13 | set PF32=C:\Program Files
14 | GOTO PFENDIF
15 | :WIN64PF
16 | set PF32=C:\Program Files (x86)
17 | :PFENDIF
18 |
19 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
20 | set PFSZ=C:\Program Files
21 | GOTO SEVENENDIF
22 | :WIN64SEVEN
23 | set PFSZ=C:\Program Files (x86)
24 | :SEVENENDIF
25 |
26 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
27 | set INNOPATH=%PF32%\Inno Setup 5
28 | GOTO INNOENDIF
29 | :INNOSIX
30 | set INNOPATH=%PF32%\Inno Setup 6
31 | :INNOENDIF
32 |
33 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
34 |
35 | curl.exe --version 1>nul 2>nul
36 | if %ERRORLEVEL%==1 (
37 | set CURL=call curl-psh.bat -L
38 | ) else (
39 | set CURL=curl.exe -L
40 | )
41 |
42 | set cat="cat.exe"
43 | set cut="cut.exe"
44 | set sed="sed.exe"
45 | set grep="grep.exe"
46 |
47 | echo.
48 | echo Finding package versions
49 | FOR /F "tokens=* USEBACKQ" %%F IN (`ffmpeg -version ^| %grep% version -m 1 ^| %cut% -d' ' -f3`) DO (SET ffmpeg_ver=%%F)
50 | FOR /F "tokens=* USEBACKQ" %%F IN (`espeak-ng --version ^| %cut% -d':' -f2 ^| %cut% -d' ' -f2`) DO (SET espeak_ver=%%F)
51 | FOR /F "tokens=* USEBACKQ" %%F IN (`python --version ^| %cut% -d' ' -f2`) DO (SET python_ver=%%F)
52 |
53 | REM FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show pip ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET pip_ver=%%F)
54 | FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show aeneas ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET aeneas_ver=%%F)
55 | FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show numpy ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET numpy_ver=%%F)
56 | FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show lxml ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET lxml_ver=%%F)
57 | FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show beautifulsoup4 ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET bs4_ver=%%F)
58 | FOR /F "tokens=* USEBACKQ" %%F IN (`python -m pip show soupsieve ^| %grep% Version ^| %cut% -d' ' -f2`) DO (SET soupsieve_ver=%%F)
59 |
60 | echo.
61 | echo Finding package files
62 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir aeneas-win-installer-packages\espeak-ng-*.msi /b`) DO (SET espeak_file=%%F)
63 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir aeneas-win-installer-packages\ffmpeg-*.exe /b`) DO (SET ffmpeg_file=%%F)
64 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir aeneas-win-installer-packages\python-*.exe /b`) DO (SET python_file=%%F)
65 |
66 | REM FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\pip-%pip_ver%*.whl /b`) DO (SET pip_file=%%F)
67 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\aeneas-%aeneas_ver%*.whl /b`) DO (SET aeneas_file=%%F)
68 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\numpy-%numpy_ver%*.whl /b`) DO (SET numpy_file=%%F)
69 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\lxml-%lxml_ver%*.whl /b`) DO (SET lxml_file=%%F)
70 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\beautifulsoup4-%bs4_ver%*.whl /b`) DO (SET bs4_file=%%F)
71 | FOR /F "tokens=* USEBACKQ" %%F IN (`dir python-wheels\soupsieve-%soupsieve_ver%*.whl /b`) DO (SET soupsieve_file=%%F)
72 |
73 | echo.
74 | echo Parsing templates
75 | REM echo "%cat% install_packages_TEMPLATE.bat | %sed% -e 's/\[PIP_FILE\]/'%pip_file%'/g' | %sed% -e 's/\[FFMPEG_VER\]/'%ffmpeg_ver%'/g' | %sed% -e 's/\[FFMPEG_FILE\]/'%ffmpeg_file%'/g' | %sed% -e 's/\[ESPEAK_VER\]/'%espeak_ver%'/g' | %sed% -e 's/\[ESPEAK_FILE\]/'%espeak_file%'/g' | %sed% -e 's/\[PYTHON_VER\]/'%python_ver%'/g' | %sed% -e 's/\[PYTHON_FILE\]/'%python_file%'/g' | %sed% -e 's/\[NUMPY_VER\]/'%numpy_ver%'/g' | %sed% -e 's/\[NUMPY_FILE\]/'%numpy_file%'/g' | %sed% -e 's/\[LXML_VER\]/'%lxml_ver%'/g' | %sed% -e 's/\[LXML_FILE\]/'%lxml_file%'/g' | %sed% -e 's/\[BS4_VER\]/'%bs4_ver%'/g' | %sed% -e 's/\[BS4_FILE\]/'%bs4_file%'/g' | %sed% -e 's/\[SOUPSIEVE_VER\]/'%soupsieve_ver%'/g' | %sed% -e 's/\[SOUPSIEVE_FILE\]/'%soupsieve_file%'/g' | %sed% -e 's/\[AENEAS_VER\]/'%aeneas_ver%'/g' | %sed% -e 's/\[AENEAS_FILE\]/'%aeneas_file%'/g' > install_packages.bat"
76 | REM echo "%cat% Aeneas_Installer_TEMPLATE.iss | %sed% -e 's/\[PIP_FILE\]/'%pip_file%'/g' | %sed% -e 's/\[FFMPEG_VER\]/'%ffmpeg_ver%'/g' | %sed% -e 's/\[FFMPEG_FILE\]/'%ffmpeg_file%'/g' | %sed% -e 's/\[ESPEAK_VER\]/'%espeak_ver%'/g' | %sed% -e 's/\[ESPEAK_FILE\]/'%espeak_file%'/g' | %sed% -e 's/\[PYTHON_VER\]/'%python_ver%'/g' | %sed% -e 's/\[PYTHON_FILE\]/'%python_file%'/g' | %sed% -e 's/\[NUMPY_VER\]/'%numpy_ver%'/g' | %sed% -e 's/\[NUMPY_FILE\]/'%numpy_file%'/g' | %sed% -e 's/\[LXML_VER\]/'%lxml_ver%'/g' | %sed% -e 's/\[LXML_FILE\]/'%lxml_file%'/g' | %sed% -e 's/\[BS4_VER\]/'%bs4_ver%'/g' | %sed% -e 's/\[BS4_FILE\]/'%bs4_file%'/g' | %sed% -e 's/\[SOUPSIEVE_VER\]/'%soupsieve_ver%'/g' | %sed% -e 's/\[SOUPSIEVE_FILE\]/'%soupsieve_file%'/g' | %sed% -e 's/\[AENEAS_VER\]/'%aeneas_ver%'/g' | %sed% -e 's/\[AENEAS_FILE\]/'%aeneas_file%'/g' > Aeneas_Installer.iss"
77 |
78 | %cat% install_packages_TEMPLATE.bat | %sed% -e 's/\[PIP_FILE\]/'%pip_file%'/g' | %sed% -e 's/\[FFMPEG_VER\]/'%ffmpeg_ver%'/g' | %sed% -e 's/\[FFMPEG_FILE\]/'%ffmpeg_file%'/g' | %sed% -e 's/\[ESPEAK_VER\]/'%espeak_ver%'/g' | %sed% -e 's/\[ESPEAK_FILE\]/'%espeak_file%'/g' | %sed% -e 's/\[PYTHON_VER\]/'%python_ver%'/g' | %sed% -e 's/\[PYTHON_FILE\]/'%python_file%'/g' | %sed% -e 's/\[NUMPY_VER\]/'%numpy_ver%'/g' | %sed% -e 's/\[NUMPY_FILE\]/'%numpy_file%'/g' | %sed% -e 's/\[LXML_VER\]/'%lxml_ver%'/g' | %sed% -e 's/\[LXML_FILE\]/'%lxml_file%'/g' | %sed% -e 's/\[BS4_VER\]/'%bs4_ver%'/g' | %sed% -e 's/\[BS4_FILE\]/'%bs4_file%'/g' | %sed% -e 's/\[SOUPSIEVE_VER\]/'%soupsieve_ver%'/g' | %sed% -e 's/\[SOUPSIEVE_FILE\]/'%soupsieve_file%'/g' | %sed% -e 's/\[AENEAS_VER\]/'%aeneas_ver%'/g' | %sed% -e 's/\[AENEAS_FILE\]/'%aeneas_file%'/g' > install_packages.bat
79 | %cat% Aeneas_Installer_TEMPLATE.iss | %sed% -e 's/\[PIP_FILE\]/'%pip_file%'/g' | %sed% -e 's/\[FFMPEG_VER\]/'%ffmpeg_ver%'/g' | %sed% -e 's/\[FFMPEG_FILE\]/'%ffmpeg_file%'/g' | %sed% -e 's/\[ESPEAK_VER\]/'%espeak_ver%'/g' | %sed% -e 's/\[ESPEAK_FILE\]/'%espeak_file%'/g' | %sed% -e 's/\[PYTHON_VER\]/'%python_ver%'/g' | %sed% -e 's/\[PYTHON_FILE\]/'%python_file%'/g' | %sed% -e 's/\[NUMPY_VER\]/'%numpy_ver%'/g' | %sed% -e 's/\[NUMPY_FILE\]/'%numpy_file%'/g' | %sed% -e 's/\[LXML_VER\]/'%lxml_ver%'/g' | %sed% -e 's/\[LXML_FILE\]/'%lxml_file%'/g' | %sed% -e 's/\[BS4_VER\]/'%bs4_ver%'/g' | %sed% -e 's/\[BS4_FILE\]/'%bs4_file%'/g' | %sed% -e 's/\[SOUPSIEVE_VER\]/'%soupsieve_ver%'/g' | %sed% -e 's/\[SOUPSIEVE_FILE\]/'%soupsieve_file%'/g' | %sed% -e 's/\[AENEAS_VER\]/'%aeneas_ver%'/g' | %sed% -e 's/\[AENEAS_FILE\]/'%aeneas_file%'/g' > Aeneas_Installer.iss
80 |
81 | copy /b/v/y libespeak-ng-dll2lib-x86\libespeak-ng.lib espeak-ng.lib
82 |
83 | "%INNOPATH%\ISCC.exe" Aeneas_Installer.iss
84 |
85 | ENDLOCAL
86 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_packages.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | VERIFY OTHER 2>nul
5 | SETLOCAL ENABLEEXTENSIONS
6 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
7 |
8 | set CURDIR=%~dp0
9 | cd %CURDIR%
10 | echo Running %~n0 from %CURDIR%
11 |
12 | call "%cd%\build_espeak_package.bat" %1
13 | call "%cd%\build_ffmpeg_package.bat" %1
14 | call "%cd%\build_python_package.bat" %1
15 | call "%cd%\build_aeneas_package.bat" %1
16 |
17 | echo Now run build_installer.bat
18 |
19 | ENDLOCAL
20 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_python_package.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 | IF /i {%2}=={ECHO} ECHO ON&SHIFT
4 |
5 | VERIFY OTHER 2>nul
6 | SETLOCAL ENABLEEXTENSIONS
7 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
8 |
9 | set CURDIR=%~dp0
10 | cd %CURDIR%
11 | echo Running %~n0 from %CURDIR%
12 |
13 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
14 | set PF32=C:\Program Files
15 | GOTO PFENDIF
16 | :WIN64PF
17 | set PF32=C:\Program Files (x86)
18 | :PFENDIF
19 |
20 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
21 | set PFSZ=C:\Program Files
22 | GOTO SEVENENDIF
23 | :WIN64SEVEN
24 | set PFSZ=C:\Program Files (x86)
25 | :SEVENENDIF
26 |
27 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
28 | set INNOPATH=%PF32%\Inno Setup 5
29 | GOTO INNOENDIF
30 | :INNOSIX
31 | set INNOPATH=%PF32%\Inno Setup 6
32 | :INNOENDIF
33 |
34 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
35 |
36 | curl.exe --version 1>nul 2>nul
37 | if %ERRORLEVEL%==1 (
38 | set CURL=call curl-psh.bat -L
39 | ) else (
40 | set CURL=curl.exe -L
41 | )
42 |
43 | mkdir aeneas-win-installer-packages 1>nul 2>nul
44 |
45 | IF EXIST "%cd%\aeneas-win-installer-packages\python-3.8.5.exe" GOTO ENDGET
46 | echo Downloading Python 3.8.5...
47 | %CURL% https://www.python.org/ftp/python/3.8.5/python-3.8.5.exe -o python-3.8.5.exe
48 | IF %ERRORLEVEL%==0 GOTO ENDIF
49 | echo Could not download Python...
50 | START https://www.python.org/downloads/release/python-385/
51 | :ENDIF
52 | :ENDGET
53 | IF EXIST "%cd%\python-3.8.5.exe" (
54 | echo Installing Python 3.8.5...
55 | "%cd%\python-3.8.5.exe" /passive InstallAllUsers=1 PrependPath=1 TargetDir="%PF32%"\Python38
56 | move /y "%cd%\python-3.8.5.exe" "%cd%\aeneas-win-installer-packages"
57 | )
58 |
59 | ENDLOCAL
60 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/build_setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | VERIFY OTHER 2>nul
5 | SETLOCAL ENABLEEXTENSIONS
6 | IF ERRORLEVEL 1 ECHO Unable to enable extensions
7 |
8 | set CURDIR=%~dp0
9 | cd %CURDIR%
10 | echo Running %~n0 from %CURDIR%
11 |
12 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PF
13 | set PF32=C:\Program Files
14 | GOTO PFENDIF
15 | :WIN64PF
16 | set PF32=C:\Program Files (x86)
17 | :PFENDIF
18 |
19 | IF EXIST "C:\Program Files (x86)\7-Zip" GOTO WIN64SEVEN
20 | set PFSZ=C:\Program Files
21 | GOTO SEVENENDIF
22 | :WIN64SEVEN
23 | set PFSZ=C:\Program Files (x86)
24 | :SEVENENDIF
25 |
26 | IF EXIST "%PF32%\Inno Setup 6" GOTO INNOSIX
27 | set INNOPATH=%PF32%\Inno Setup 5
28 | GOTO INNOENDIF
29 | :INNOSIX
30 | set INNOPATH=%PF32%\Inno Setup 6
31 | :INNOENDIF
32 |
33 | set PATH=%INNOPATH%;%PFSZ%\7-Zip;%PF32%\FFmpeg\bin;%PF32%\eSpeak NG;%PF32%\Python38;%PF32%\Python38\Scripts;%PF32%\Git;%PF32%\Git\usr\bin;%PF32%\Git\mingw32\bin;%PATH%
34 |
35 | curl.exe --version 1>nul 2>nul
36 | if %ERRORLEVEL%==1 (
37 | set CURL=call curl-psh.bat -L
38 | ) else (
39 | set CURL=curl.exe -L
40 | )
41 |
42 | IF NOT EXIST "%cd%\Git-2.41.0-32-bit.exe" (
43 | echo Downloading Git for Windows...
44 | %CURL% "https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.1/Git-2.41.0-32-bit.exe" -o "%cd%\Git-2.41.0-32-bit.exe"
45 | )
46 | IF EXIST "%cd%\Git-2.41.0-32-bit.exe" (
47 | echo Installing Git for Windows...
48 | Git-2.41.0-32-bit.exe
49 | ) ELSE (
50 | echo Could not find Git for Windows...
51 | START https://git-scm.com/download/win
52 | )
53 |
54 | curl.exe --version 1>nul 2>nul
55 | if %ERRORLEVEL%==1 (
56 | set CURL=call curl-psh.bat -L
57 | ) else (
58 | set CURL=curl.exe -L
59 | )
60 |
61 | IF NOT EXIST "%cd%\7z1900.exe" (
62 | echo Downloading 7-zip...
63 | %CURL% "https://www.7-zip.org/a/7z1900.exe" -o "%cd%\7z1900.exe"
64 | )
65 | IF EXIST "%cd%\7z1900.exe" (
66 | echo Installing 7-zip...
67 | 7z1900.exe
68 | ) ELSE (
69 | echo Could not find 7-zip...
70 | START http://www.7-zip.org/
71 | )
72 |
73 | IF NOT EXIST "%cd%\innosetup-6.0.5.exe" (
74 | echo Downloading Inno Setup...
75 | %CURL% "https://files.jrsoftware.org/is/6/innosetup-6.0.5.exe" -o "%cd%\innosetup-6.0.5.exe"
76 | )
77 | IF EXIST "%cd%\innosetup-6.0.5.exe" (
78 | echo Installing InnoSetup...
79 | innosetup-6.0.5.exe
80 | ) ELSE (
81 | echo Could not find InnoSetup...
82 | START http://www.jrsoftware.org/isdl.php
83 | )
84 |
85 | REM IF NOT EXIST "%cd%\python-3.9.13.exe" (
86 | REM echo Downloading Python 3.9.13...
87 | REM %CURL% "https://www.python.org/ftp/python/3.9.13/python-3.9.13.exe" -o "%cd%\python-3.9.13.exe"
88 | REM )
89 | REM IF EXIST "%cd%\python-3.9.13.exe" (
90 | REM echo Installing Python 3.9.13...
91 | REM python-3.9.13.exe /passive InstallAllUsers=1 PrependPath=1 TargetDir="%PF32%"\Python38
92 | REM ) ELSE (
93 | REM echo Could not find Python 3.9.13...
94 | REM START https://www.python.org/downloads/release/python-385/
95 | REM )
96 |
97 | REM IF NOT EXIST "%cd%\dotNetFx35setup.exe" (
98 | REM echo Downloading Microsoft .NET Framework 3.5...
99 | REM %CURL% "https://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe" -o "%cd%\dotNetFx35setup.exe"
100 | REM )
101 | REM IF EXIST "%cd%\dotNetFx35setup.exe" (
102 | REM echo Installing Microsoft .NET Framework 3.5...
103 | REM dotNetFx35setup.exe /SILENT
104 | REM ) ELSE (
105 | REM echo Could not find Microsoft .NET Framework 3.5...
106 | REM START http://www.microsoft.com/en-us/download/details.aspx?id=21
107 | REM )
108 |
109 | REM IF NOT EXIST "%cd%\VCForPython27.msi" (
110 | REM echo Downloading Visual C++ For Python27...
111 | REM %CURL% "https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi" -o "%cd%\VCForPython27.msi"
112 | REM )
113 | REM IF EXIST "%cd%\VCForPython27.msi" (
114 | REM echo Installing Visual C++ For Python27...
115 | REM VCForPython27.msi /PASSIVE
116 | REM ) ELSE (
117 | REM echo Could not find Visual C++ For Python27...
118 | REM START http://www.microsoft.com/en-us/download/details.aspx?id=44266
119 | REM )
120 |
121 | echo You need to have Microsoft VisualStudio C++ Build Tools installed
122 | START https://visualstudio.microsoft.com/visual-cpp-build-tools/
123 |
124 | echo Now run build_packages.bat
125 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/clean.bat:
--------------------------------------------------------------------------------
1 | rm -rf numpy-*
2 | git clean -fdx
3 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/clean_up.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | del /q aeneas-win-installer-packages\*
3 | del /q python-wheels\*
4 | rmdir /s /q numpy-*
5 | rmdir /s /q aeneas-*
6 | rmdir /s /q espeak-*
7 | rmdir /s /q ffmpeg-*
8 | rmdir /s /q python-*
9 | del *.tar*
10 | del *.zip
11 | del *.whl
12 | del *.exe
13 | del *.msi
14 | del *.7z
15 |
16 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/copy_espeak_aeneas.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
14 |
15 | echo Copying espeak-ng.exe to espeak.exe
16 | copy /b/v/y "%PF32%\eSpeak NG\espeak-ng.exe" "%PF32%\eSpeak NG\espeak.exe"
17 |
18 | echo Copying libespeak-ng.dll to %PF32%\Python38\Lib\site-packages\aeneas\cew
19 | copy /b/v/y "%PF32%\eSpeak NG\libespeak-ng.dll" "%PF32%\Python38\Lib\site-packages\aeneas\cew"
20 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/create_espeak-ng-x64_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 64 libespeak-ng.dll "C:\Program Files\eSpeak NG" .
--------------------------------------------------------------------------------
/MS_Windows_Installer/create_espeak-ng-x86_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 32 libespeak-ng.dll "C:\Program Files (x86)\eSpeak NG" .
--------------------------------------------------------------------------------
/MS_Windows_Installer/create_espeak_lib.bat:
--------------------------------------------------------------------------------
1 | echo off
2 | REM xcopy /y C:\Windows\system32\espeak.dll .
3 | dll2lib 32 espeak.dll C:\Windows\system32\ .
--------------------------------------------------------------------------------
/MS_Windows_Installer/curl-psh.bat:
--------------------------------------------------------------------------------
1 | echo on
2 | powershell "(new-object System.Net.WebClient).DownloadFile('%2', '%4')"
3 | @echo off
4 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/delete_espeak_aeneas.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF64=C:\Program Files
9 | set PF32=C:\Program Files (x86)
10 | (call )
11 | :WIN32PATH
12 |
13 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
14 |
15 | echo Deleting espeak.exe from %PF32%\eSpeak NG\
16 | del /f/q "%PF32%\eSpeak NG\espeak.exe"
17 |
18 | echo Deleting libespeak-ng.dll from %PF32%\Python38\Lib\site-packages\aeneas\cew
19 | del /f/q "%PF32%\Python38\Lib\site-packages\aeneas\cew\libespeak-ng.dll"
20 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/dll2lib.bat:
--------------------------------------------------------------------------------
1 | REM Usage: dll2lib [32|64] some-file.dll path-to-dll output-path
2 | REM
3 | REM Generates some-file.lib from some-file.dll, making an intermediate
4 | REM some-file.def from the results of dumpbin /exports some-file.dll.
5 | REM Currently must run without path on DLL.
6 | REM (Fix by removing path when of lib_name for LIBRARY line below?)
7 | REM
8 | REM Requires 'dumpbin' and 'lib' in PATH - run from VS developer prompt.
9 | REM
10 | REM Script inspired by http://stackoverflow.com/questions/9946322/how-to-generate-an-import-library-lib-file-from-a-dll
11 | SETLOCAL
12 | if "%1"=="32" (set machine=x86) else (set machine=x64)
13 | set dll_file=%2
14 | set dll_path=%3
15 | set out_path=%4
16 | cd "%out_path%"
17 | set out_path="%CD%"
18 | set dll_file_no_ext=%dll_file:~0,-4%
19 | set exports_file=%dll_file_no_ext%-exports.txt
20 | set def_file=%dll_file_no_ext%.def
21 | set lib_file=%dll_file_no_ext%.lib
22 | set lib_name=%dll_file_no_ext%
23 |
24 | cd "%dll_path%"
25 | dumpbin /exports %dll_file% > "%out_path%\%exports_file%"
26 | cd "%out_path%"
27 |
28 | echo LIBRARY %lib_name% > %def_file%
29 | echo EXPORTS >> %def_file%
30 | for /f "skip=19 tokens=1,4" %%A in (%exports_file%) do if NOT "%%B" == "" (echo %%B @%%A >> %def_file%)
31 |
32 | lib /def:%def_file% /out:%lib_file% /machine:%machine%
33 |
34 | REM Clean up temporary intermediate files
35 | REM del %exports_file% %def_file% %dll_file_no_ext%.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/eSpeak-NG.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/eSpeak-NG.reg
--------------------------------------------------------------------------------
/MS_Windows_Installer/espeak-exports.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/espeak-exports.txt
--------------------------------------------------------------------------------
/MS_Windows_Installer/espeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/espeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/espeak.def:
--------------------------------------------------------------------------------
1 | LIBRARY espeak
2 | EXPORTS
3 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/espeak.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/espeak.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/ff-prompt.bat:
--------------------------------------------------------------------------------
1 | ECHO OFF
2 | REM FF Prompt 1.1
3 | REM Open a command prompt to run ffmpeg/ffplay/ffprobe
4 | REM Copyright (C) 2013 Kyle Schwarz
5 |
6 | TITLE FF Prompt
7 |
8 | IF NOT EXIST bin\ffmpeg.exe (
9 | CLS
10 | ECHO bin\ffmpeg.exe could not be found.
11 | GOTO:error
12 | )
13 |
14 | CD bin || GOTO:error
15 | PROMPT $G
16 | CLS
17 | ffmpeg -version
18 | SET PATH=%CD%;%PATH%
19 | ECHO.
20 | ECHO For help run: ffmpeg -h
21 | ECHO For formats run: ffmpeg -formats ^| more
22 | ECHO For codecs run: ffmpeg -codecs ^| more
23 | ECHO.
24 | ECHO Current directory is now: "%CD%"
25 | ECHO The bin directory has been added to PATH
26 | ECHO.
27 |
28 | CMD /F:ON /Q /K
29 | GOTO:EOF
30 |
31 | :error
32 | ECHO.
33 | ECHO Press any key to exit.
34 | PAUSE >nul
35 | GOTO:EOF
36 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/install_espeak-ng_extra.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | :--------------------------------------
4 | REM --> Check for permissions
5 | >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
6 |
7 | REM --> If error flag set, we do not have admin.
8 | if '%errorlevel%' NEQ '0' (
9 | echo Requesting administrative privileges...
10 | goto UACPrompt
11 | ) else ( goto gotAdmin )
12 |
13 | :UACPrompt
14 | echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
15 | echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
16 |
17 | call "%temp%\getadmin.vbs"
18 | exit /B
19 |
20 | :gotAdmin
21 | if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
22 | pushd "%CD%"
23 | CD /D "%~dp0"
24 | :--------------------------------------
25 |
26 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
27 | set PF32=C:\Program Files
28 | (call )
29 | GOTO WIN32PATH
30 | :WIN64PATH
31 | set PF32=C:\Program Files (x86)
32 | (call )
33 | :WIN32PATH
34 |
35 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
36 |
37 | echo Copying espeak-ng.exe to espeak.exe
38 | copy /b/v/y "%PF32%\eSpeak NG\espeak-ng.exe" "%PF32%\eSpeak NG\espeak.exe"
39 | echo Copying espeak-ng.lib to %PF32%\Python38\libs\
40 | copy /b/v/y "espeak-ng.lib" "%PF32%\Python38\libs\"
41 | echo Copying libespeak-ng.dll to %PF32%\Python38\Lib\site-packages\aeneas\cew
42 | copy /b/v/y "%PF32%\eSpeak NG\libespeak-ng.dll" "%PF32%\Python38\Lib\site-packages\aeneas\cew"
43 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/install_packages.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF32=C:\Program Files (x86)
9 | (call )
10 | :WIN32PATH
11 |
12 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
13 |
14 | echo Copying espeak-ng.exe to espeak.exe
15 | copy /b/v/y "%PF32%\eSpeak NG\espeak-ng.exe" "%PF32%\eSpeak NG\espeak.exe"
16 | echo Copying espeak-ng.lib to %PF32%\Python38\libs\
17 | copy /b/v/y "espeak-ng.lib" "%PF32%\Python38\libs\"
18 |
19 | python -m ensurepip
20 | REM python -m pip install -U
21 | python -m pip install -U numpy-1.19.1-cp38-cp38-win32.whl
22 | python -m pip install -U lxml-4.5.2-cp38-cp38-win32.whl
23 | python -m pip install -U soupsieve-2.0.1-py3-none-any.whl
24 | python -m pip install -U beautifulsoup4-4.9.1-py3-none-any.whl
25 | python -m pip install -U aeneas-1.7.3.0-cp38-cp38-win32.whl
26 |
27 | echo Copying libespeak-ng.dll to %PF32%\Python38\Lib\site-packages\aeneas\cew
28 | copy /b/v/y "%PF32%\eSpeak NG\libespeak-ng.dll" "%PF32%\Python38\Lib\site-packages\aeneas\cew"
29 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/install_packages_TEMPLATE.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | IF EXIST "C:\Program Files (x86)" GOTO WIN64PATH
4 | set PF32=C:\Program Files
5 | (call )
6 | GOTO WIN32PATH
7 | :WIN64PATH
8 | set PF32=C:\Program Files (x86)
9 | (call )
10 | :WIN32PATH
11 |
12 | set PATH=%PF32%\Python38\;%PF32%\Python38\Scripts;%PF32%\eSpeak NG;%PF32%\FFmpeg\bin;%PATH%
13 |
14 | echo Copying espeak-ng.exe to espeak.exe
15 | copy /b/v/y "%PF32%\eSpeak NG\espeak-ng.exe" "%PF32%\eSpeak NG\espeak.exe"
16 | echo Copying espeak-ng.lib to %PF32%\Python38\libs\
17 | copy /b/v/y "espeak-ng.lib" "%PF32%\Python38\libs\"
18 |
19 | python -m ensurepip
20 | REM python -m pip install -U [PIP_FILE]
21 | python -m pip install -U [NUMPY_FILE]
22 | python -m pip install -U [LXML_FILE]
23 | python -m pip install -U [SOUPSIEVE_FILE]
24 | python -m pip install -U [BS4_FILE]
25 | python -m pip install -U [AENEAS_FILE]
26 |
27 | echo Copying libespeak-ng.dll to %PF32%\Python38\Lib\site-packages\aeneas\cew
28 | copy /b/v/y "%PF32%\eSpeak NG\libespeak-ng.dll" "%PF32%\Python38\Lib\site-packages\aeneas\cew"
29 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 0003CE40 DllCanUnloadNow
21 | 2 1 0003CDB0 DllGetClassObject
22 | 3 2 000240C0 GetFileLength
23 | 4 3 00015780 create_text_decoder
24 | 5 4 000157B0 destroy_text_decoder
25 | 6 5 00016470 espeak_Cancel
26 | 7 6 000161D0 espeak_Char
27 | 8 7 00016580 espeak_CompileDictionary
28 | 9 8 00039AB0 espeak_GetCurrentVoice
29 | 10 9 00024E60 espeak_GetParameter
30 | 11 A 00025110 espeak_Info
31 | 12 B 00015EF0 espeak_Initialize
32 | 13 C 00015770 espeak_IsPlaying
33 | 14 D 00016110 espeak_Key
34 | 15 E 00039890 espeak_ListVoices
35 | 16 F 000162B0 espeak_SetParameter
36 | 17 10 00024D80 espeak_SetPhonemeCallback
37 | 18 11 00024EA0 espeak_SetPhonemeTrace
38 | 19 12 00016310 espeak_SetPunctuationList
39 | 20 13 00024D60 espeak_SetSynthCallback
40 | 21 14 00024D70 espeak_SetUriCallback
41 | 22 15 000163C0 espeak_SetVoiceByFile
42 | 23 16 00016360 espeak_SetVoiceByName
43 | 24 17 00016420 espeak_SetVoiceByProperties
44 | 25 18 000164D0 espeak_Synchronize
45 | 26 19 00015FE0 espeak_Synth
46 | 27 1A 00016080 espeak_Synth_Mark
47 | 28 1B 00016520 espeak_Terminate
48 | 29 1C 00024ED0 espeak_TextToPhonemes
49 | 30 1D 00016470 espeak_ng_Cancel
50 | 31 1E 00015C50 espeak_ng_ClearErrorContext
51 | 32 1F 0000F3B0 espeak_ng_CompileDictionary
52 | 33 20 0000BF10 espeak_ng_CompileIntonation
53 | 34 21 0000F890 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000B8A0 espeak_ng_CompilePhonemeData
55 | 36 23 0000B8C0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 000153D0 espeak_ng_EncodingFromName
57 | 38 25 000246A0 espeak_ng_GetSampleRate
58 | 39 26 00015C90 espeak_ng_GetStatusCodeMessage
59 | 40 27 00024270 espeak_ng_Initialize
60 | 41 28 00023EA0 espeak_ng_InitializeOutput
61 | 42 29 00024140 espeak_ng_InitializePath
62 | 43 2A 00015E30 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00024E90 espeak_ng_SetParameter
64 | 45 2C 00016310 espeak_ng_SetPunctuationList
65 | 46 2D 000395F0 espeak_ng_SetVoiceByFile
66 | 47 2E 00039700 espeak_ng_SetVoiceByName
67 | 48 2F 00039840 espeak_ng_SetVoiceByProperties
68 | 49 30 00024D00 espeak_ng_SpeakCharacter
69 | 50 31 00024DF0 espeak_ng_SpeakKeyName
70 | 51 32 00024F90 espeak_ng_Synchronize
71 | 52 33 00024D90 espeak_ng_Synthesize
72 | 53 34 00024DC0 espeak_ng_SynthesizeMark
73 | 54 35 00024FB0 espeak_ng_Terminate
74 | 55 36 0000FCE0 strncpy0
75 | 56 37 000157C0 text_decoder_decode_string
76 | 57 38 00015850 text_decoder_decode_string_auto
77 | 58 39 00015940 text_decoder_decode_string_multibyte
78 | 59 3A 000158D0 text_decoder_decode_wstring
79 | 60 3B 00015B40 text_decoder_eof
80 | 61 3C 00015BA0 text_decoder_get_buffer
81 | 62 3D 00015B50 text_decoder_getc
82 | 63 3E 00015B60 text_decoder_peekc
83 | 64 3F 0002E1B0 utf8_in
84 |
85 | Summary
86 |
87 | 2A000 .data
88 | 2000 .pdata
89 | 2B000 .rdata
90 | 1000 .reloc
91 | 1000 .rsrc
92 | 3F000 .text
93 | 1000 _RDATA
94 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng-dll2lib-x64/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 000371A0 DllCanUnloadNow
21 | 2 1 000370F0 DllGetClassObject
22 | 3 2 00021560 GetFileLength
23 | 4 3 00014650 create_text_decoder
24 | 5 4 00014680 destroy_text_decoder
25 | 6 5 000150B0 espeak_Cancel
26 | 7 6 00014E60 espeak_Char
27 | 8 7 000151A0 espeak_CompileDictionary
28 | 9 8 000346F0 espeak_GetCurrentVoice
29 | 10 9 00022150 espeak_GetParameter
30 | 11 A 000223C0 espeak_Info
31 | 12 B 00014C60 espeak_Initialize
32 | 13 C 00014640 espeak_IsPlaying
33 | 14 D 00014E10 espeak_Key
34 | 15 E 00034550 espeak_ListVoices
35 | 16 F 00014F20 espeak_SetParameter
36 | 17 10 00022060 espeak_SetPhonemeCallback
37 | 18 11 00022190 espeak_SetPhonemeTrace
38 | 19 12 00014F80 espeak_SetPunctuationList
39 | 20 13 00022040 espeak_SetSynthCallback
40 | 21 14 00022050 espeak_SetUriCallback
41 | 22 15 00015020 espeak_SetVoiceByFile
42 | 23 16 00014FD0 espeak_SetVoiceByName
43 | 24 17 00015070 espeak_SetVoiceByProperties
44 | 25 18 00015100 espeak_Synchronize
45 | 26 19 00014D30 espeak_Synth
46 | 27 1A 00014DA0 espeak_Synth_Mark
47 | 28 1B 00015150 espeak_Terminate
48 | 29 1C 000221C0 espeak_TextToPhonemes
49 | 30 1D 00022250 espeak_ng_Cancel
50 | 31 1E 000149E0 espeak_ng_ClearErrorContext
51 | 32 1F 0000E6F0 espeak_ng_CompileDictionary
52 | 33 20 0000B3F0 espeak_ng_CompileIntonation
53 | 34 21 0000EB20 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000AC90 espeak_ng_CompilePhonemeData
55 | 36 23 0000ACB0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 00014300 espeak_ng_EncodingFromName
57 | 38 25 00021AA0 espeak_ng_GetSampleRate
58 | 39 26 00014A10 espeak_ng_GetStatusCodeMessage
59 | 40 27 000216E0 espeak_ng_Initialize
60 | 41 28 000213B0 espeak_ng_InitializeOutput
61 | 42 29 000215D0 espeak_ng_InitializePath
62 | 43 2A 00014BA0 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00022170 espeak_ng_SetParameter
64 | 45 2C 00014F80 espeak_ng_SetPunctuationList
65 | 46 2D 00034210 espeak_ng_SetVoiceByFile
66 | 47 2E 00034340 espeak_ng_SetVoiceByName
67 | 48 2F 000344C0 espeak_ng_SetVoiceByProperties
68 | 49 30 000220F0 espeak_ng_SpeakCharacter
69 | 50 31 000220E0 espeak_ng_SpeakKeyName
70 | 51 32 000222A0 espeak_ng_Synchronize
71 | 52 33 00022070 espeak_ng_Synthesize
72 | 53 34 000220B0 espeak_ng_SynthesizeMark
73 | 54 35 000222B0 espeak_ng_Terminate
74 | 55 36 0000EF90 strncpy0
75 | 56 37 000146A0 text_decoder_decode_string
76 | 57 38 00014720 text_decoder_decode_string_auto
77 | 58 39 00014810 text_decoder_decode_string_multibyte
78 | 59 3A 000147A0 text_decoder_decode_wstring
79 | 60 3B 000148F0 text_decoder_eof
80 | 61 3C 00014950 text_decoder_get_buffer
81 | 62 3D 00014910 text_decoder_getc
82 | 63 3E 00014920 text_decoder_peekc
83 | 64 3F 00029830 utf8_in
84 |
85 | Summary
86 |
87 | 24000 .data
88 | 27000 .rdata
89 | 5000 .reloc
90 | 1000 .rsrc
91 | 39000 .text
92 | 1000 _RDATA
93 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng-dll2lib-x86/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng-exports.txt:
--------------------------------------------------------------------------------
1 | Microsoft (R) COFF/PE Dumper Version 14.12.25830.2
2 | Copyright (C) Microsoft Corporation. All rights reserved.
3 |
4 |
5 | Dump of file libespeak-ng.dll
6 |
7 | File Type: DLL
8 |
9 | Section contains the following exports for libespeak-ng.dll
10 |
11 | 00000000 characteristics
12 | FFFFFFFF time date stamp
13 | 0.00 version
14 | 1 ordinal base
15 | 64 number of functions
16 | 64 number of names
17 |
18 | ordinal hint RVA name
19 |
20 | 1 0 000371A0 DllCanUnloadNow
21 | 2 1 000370F0 DllGetClassObject
22 | 3 2 00021560 GetFileLength
23 | 4 3 00014650 create_text_decoder
24 | 5 4 00014680 destroy_text_decoder
25 | 6 5 000150B0 espeak_Cancel
26 | 7 6 00014E60 espeak_Char
27 | 8 7 000151A0 espeak_CompileDictionary
28 | 9 8 000346F0 espeak_GetCurrentVoice
29 | 10 9 00022150 espeak_GetParameter
30 | 11 A 000223C0 espeak_Info
31 | 12 B 00014C60 espeak_Initialize
32 | 13 C 00014640 espeak_IsPlaying
33 | 14 D 00014E10 espeak_Key
34 | 15 E 00034550 espeak_ListVoices
35 | 16 F 00014F20 espeak_SetParameter
36 | 17 10 00022060 espeak_SetPhonemeCallback
37 | 18 11 00022190 espeak_SetPhonemeTrace
38 | 19 12 00014F80 espeak_SetPunctuationList
39 | 20 13 00022040 espeak_SetSynthCallback
40 | 21 14 00022050 espeak_SetUriCallback
41 | 22 15 00015020 espeak_SetVoiceByFile
42 | 23 16 00014FD0 espeak_SetVoiceByName
43 | 24 17 00015070 espeak_SetVoiceByProperties
44 | 25 18 00015100 espeak_Synchronize
45 | 26 19 00014D30 espeak_Synth
46 | 27 1A 00014DA0 espeak_Synth_Mark
47 | 28 1B 00015150 espeak_Terminate
48 | 29 1C 000221C0 espeak_TextToPhonemes
49 | 30 1D 00022250 espeak_ng_Cancel
50 | 31 1E 000149E0 espeak_ng_ClearErrorContext
51 | 32 1F 0000E6F0 espeak_ng_CompileDictionary
52 | 33 20 0000B3F0 espeak_ng_CompileIntonation
53 | 34 21 0000EB20 espeak_ng_CompileMbrolaVoice
54 | 35 22 0000AC90 espeak_ng_CompilePhonemeData
55 | 36 23 0000ACB0 espeak_ng_CompilePhonemeDataPath
56 | 37 24 00014300 espeak_ng_EncodingFromName
57 | 38 25 00021AA0 espeak_ng_GetSampleRate
58 | 39 26 00014A10 espeak_ng_GetStatusCodeMessage
59 | 40 27 000216E0 espeak_ng_Initialize
60 | 41 28 000213B0 espeak_ng_InitializeOutput
61 | 42 29 000215D0 espeak_ng_InitializePath
62 | 43 2A 00014BA0 espeak_ng_PrintStatusCodeMessage
63 | 44 2B 00022170 espeak_ng_SetParameter
64 | 45 2C 00014F80 espeak_ng_SetPunctuationList
65 | 46 2D 00034210 espeak_ng_SetVoiceByFile
66 | 47 2E 00034340 espeak_ng_SetVoiceByName
67 | 48 2F 000344C0 espeak_ng_SetVoiceByProperties
68 | 49 30 000220F0 espeak_ng_SpeakCharacter
69 | 50 31 000220E0 espeak_ng_SpeakKeyName
70 | 51 32 000222A0 espeak_ng_Synchronize
71 | 52 33 00022070 espeak_ng_Synthesize
72 | 53 34 000220B0 espeak_ng_SynthesizeMark
73 | 54 35 000222B0 espeak_ng_Terminate
74 | 55 36 0000EF90 strncpy0
75 | 56 37 000146A0 text_decoder_decode_string
76 | 57 38 00014720 text_decoder_decode_string_auto
77 | 58 39 00014810 text_decoder_decode_string_multibyte
78 | 59 3A 000147A0 text_decoder_decode_wstring
79 | 60 3B 000148F0 text_decoder_eof
80 | 61 3C 00014950 text_decoder_get_buffer
81 | 62 3D 00014910 text_decoder_getc
82 | 63 3E 00014920 text_decoder_peekc
83 | 64 3F 00029830 utf8_in
84 |
85 | Summary
86 |
87 | 24000 .data
88 | 27000 .rdata
89 | 5000 .reloc
90 | 1000 .rsrc
91 | 39000 .text
92 | 1000 _RDATA
93 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng.def:
--------------------------------------------------------------------------------
1 | LIBRARY libespeak-ng
2 | EXPORTS
3 | DllCanUnloadNow @1
4 | DllGetClassObject @2
5 | GetFileLength @3
6 | create_text_decoder @4
7 | destroy_text_decoder @5
8 | espeak_Cancel @6
9 | espeak_Char @7
10 | espeak_CompileDictionary @8
11 | espeak_GetCurrentVoice @9
12 | espeak_GetParameter @10
13 | espeak_Info @11
14 | espeak_Initialize @12
15 | espeak_IsPlaying @13
16 | espeak_Key @14
17 | espeak_ListVoices @15
18 | espeak_SetParameter @16
19 | espeak_SetPhonemeCallback @17
20 | espeak_SetPhonemeTrace @18
21 | espeak_SetPunctuationList @19
22 | espeak_SetSynthCallback @20
23 | espeak_SetUriCallback @21
24 | espeak_SetVoiceByFile @22
25 | espeak_SetVoiceByName @23
26 | espeak_SetVoiceByProperties @24
27 | espeak_Synchronize @25
28 | espeak_Synth @26
29 | espeak_Synth_Mark @27
30 | espeak_Terminate @28
31 | espeak_TextToPhonemes @29
32 | espeak_ng_Cancel @30
33 | espeak_ng_ClearErrorContext @31
34 | espeak_ng_CompileDictionary @32
35 | espeak_ng_CompileIntonation @33
36 | espeak_ng_CompileMbrolaVoice @34
37 | espeak_ng_CompilePhonemeData @35
38 | espeak_ng_CompilePhonemeDataPath @36
39 | espeak_ng_EncodingFromName @37
40 | espeak_ng_GetSampleRate @38
41 | espeak_ng_GetStatusCodeMessage @39
42 | espeak_ng_Initialize @40
43 | espeak_ng_InitializeOutput @41
44 | espeak_ng_InitializePath @42
45 | espeak_ng_PrintStatusCodeMessage @43
46 | espeak_ng_SetParameter @44
47 | espeak_ng_SetPunctuationList @45
48 | espeak_ng_SetVoiceByFile @46
49 | espeak_ng_SetVoiceByName @47
50 | espeak_ng_SetVoiceByProperties @48
51 | espeak_ng_SpeakCharacter @49
52 | espeak_ng_SpeakKeyName @50
53 | espeak_ng_Synchronize @51
54 | espeak_ng_Synthesize @52
55 | espeak_ng_SynthesizeMark @53
56 | espeak_ng_Terminate @54
57 | strncpy0 @55
58 | text_decoder_decode_string @56
59 | text_decoder_decode_string_auto @57
60 | text_decoder_decode_string_multibyte @58
61 | text_decoder_decode_wstring @59
62 | text_decoder_eof @60
63 | text_decoder_get_buffer @61
64 | text_decoder_getc @62
65 | text_decoder_peekc @63
66 | utf8_in @64
67 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng.exp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng.exp
--------------------------------------------------------------------------------
/MS_Windows_Installer/libespeak-ng.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/MS_Windows_Installer/libespeak-ng.lib
--------------------------------------------------------------------------------
/MS_Windows_Installer/runas_admin.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | IF /i {%1}=={ECHO} ECHO ON&SHIFT
3 |
4 | IF "%~1"=="" (
5 | echo "USAGE: runas_admin script_name"
6 | exit /B 1
7 | )
8 | echo copy "%~s1" "%temp%\%~snx1"
9 | copy /b/v/y "%~s1" "%temp%\%~snx1"
10 |
11 | :--------------------------------------
12 | REM --> Check for permissions
13 | >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
14 |
15 | REM --> If error flag set, we do not have admin.
16 | if '%errorlevel%' NEQ '0' (
17 | echo Requesting administrative privileges...
18 | goto UACPrompt
19 | ) else ( goto gotAdmin )
20 |
21 | :UACPrompt
22 | echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
23 | echo UAC.ShellExecute "%temp%\%~snx1", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
24 |
25 | call "%temp%\getadmin.vbs"
26 | exit /B
27 |
28 | :gotAdmin
29 | if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
30 | pushd "%CD%"
31 | CD /D "%~dp0"
32 | :--------------------------------------
33 |
34 | call "%temp%\%~snx1"
35 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/sign_installer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | osslsigncode sign -pkcs12 "$HOME/MacInstaller.p12" -askpass -n "Aeneas Tools" -i "http://www.readbeyond.it/aeneas/" -t "http://timestamp.comodoca.com/authenticode" -in "./aeneas-win32-setup-1.7.3.0_3.exe" -out "./aeneas-win32-setup-1.7.3.0_3_signed.exe"
4 | osslsigncode verify "./aeneas-win32-setup-1.7.3.0_3_signed.exe"
5 |
6 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/wget-py.bat:
--------------------------------------------------------------------------------
1 | echo on
2 | python.exe -m pip show wget 1>nul 2>nul
3 | if %ERRORLEVEL%==1 (
4 | python.exe -m pip install -U wget
5 | )
6 | python.exe -m wget -o "%4" %2
7 | @echo off
8 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/x64_x86 Cross Tools Command Prompt for VS 2017.lnk.txt:
--------------------------------------------------------------------------------
1 |
2 | Link File: x64_x86 Cross Tools Command Prompt for VS 2017.lnk
3 | Link Flags: HAS SHELLIDLIST | POINTS TO FILE/DIR | HAS DESCRIPTION | HAS RELATIVE PATH STRING | HAS WORKING DIRECTORY | HAS CMD LINE ARGS | NO CUSTOM ICON |
4 | File Attributes: ARCHIVE
5 | Create Time: Sat Jul 16 2016 18:42:36
6 | Last Accessed time: Sat Jul 16 2016 18:42:36
7 | Last Modified Time: Sat Jul 16 2016 18:42:36
8 | Target Length: 232960
9 | Icon Index: 0
10 | ShowWnd: 1 SW_NORMAL
11 | HotKey: 0
12 | Target is on local volume
13 | Volume Type: Fixed (Hard Disk)
14 | Volume Serial: 1235dde9
15 | Vol Label: Windows 10
16 | Base Path: C:\Windows\System32\cmd.exe
17 | (App Path:) Remaining Path:
18 | Description: O p e n V i s u a l S t u d i o 2 0 1 7 T o o l s C o m m a n d P r o m p t f o r t a r g e t i n g x 8 6 w i t h x 6 4 - h o s t e d t o o l s
19 | Relative Path: . . \ . . \ . . \ . . \ . . \ . . \ . . \ . . \ W i n d o w s \ S y s t e m 3 2 \ c m d . e x e
20 | Working Dir: C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \
21 | Command Line: / k " C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \ V C \ A u x i l i a r y \ B u i l d \ v c v a r s a m d 6 4 _ x 8 6 . b a t "
22 |
--------------------------------------------------------------------------------
/MS_Windows_Installer/x86 Native Tools Command Prompt for VS 2017.lnk.txt:
--------------------------------------------------------------------------------
1 |
2 | Link File: x86 Native Tools Command Prompt for VS 2017.lnk
3 | Link Flags: HAS SHELLIDLIST | POINTS TO FILE/DIR | HAS DESCRIPTION | HAS RELATIVE PATH STRING | HAS WORKING DIRECTORY | HAS CMD LINE ARGS | NO CUSTOM ICON |
4 | File Attributes: ARCHIVE
5 | Create Time: Sat Jul 16 2016 18:42:36
6 | Last Accessed time: Sat Jul 16 2016 18:42:36
7 | Last Modified Time: Sat Jul 16 2016 18:42:36
8 | Target Length: 232960
9 | Icon Index: 0
10 | ShowWnd: 1 SW_NORMAL
11 | HotKey: 0
12 | Target is on local volume
13 | Volume Type: Fixed (Hard Disk)
14 | Volume Serial: 1235dde9
15 | Vol Label: Windows 10
16 | Base Path: C:\Windows\System32\cmd.exe
17 | (App Path:) Remaining Path:
18 | Description: O p e n V i s u a l S t u d i o 2 0 1 7 T o o l s C o m m a n d P r o m p t f o r t a r g e t i n g x 8 6
19 | Relative Path: . . \ . . \ . . \ . . \ . . \ . . \ . . \ . . \ W i n d o w s \ S y s t e m 3 2 \ c m d . e x e
20 | Working Dir: C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \
21 | Command Line: / k " C : \ P r o g r a m F i l e s ( x 8 6 ) \ M i c r o s o f t V i s u a l S t u d i o \ 2 0 1 7 \ B u i l d T o o l s \ V C \ A u x i l i a r y \ B u i l d \ v c v a r s 3 2 . b a t "
22 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/INFO.txt:
--------------------------------------------------------------------------------
1 | This will install aeneas 1.7.3 on your computer.
2 |
3 | aeneas is a Python library and a set of tools for automated audio and text synchronization.
4 |
5 | In addition to aeneas, the following independent programs necessary for running aeneas are contained in this installer:
6 | 1. eSpeak-ng
7 | 2. FFmpeg
8 | 3. Python
9 |
10 | You will be guided through the steps necessary to install this software.
11 |
12 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/LICENSE.txt:
--------------------------------------------------------------------------------
1 | aeneas is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU AGPL, see .
2 |
3 | --------------------------------------------------------------------
4 |
5 | eSpeak-ng is licensed under the GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
6 |
7 | --------------------------------------------------------------------
8 |
9 | FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later. However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. Copyright (C) 2007 Free Software Foundation, Inc. . For more information on this, and how to apply and follow the GNU GPLv3, see .
10 |
11 | --------------------------------------------------------------------
12 |
13 | Python is licensed under the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved. For more information on this, and how to apply and follow the PSFLv2, see https://www.python.org/download/releases/2.7/license/
14 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/ReadMe.md:
--------------------------------------------------------------------------------
1 | This provides a simple installer for Scripture App Builder for Mac with Aeneas included.
2 | Or, *build\_dmg.sh* can bundle Scripture App Builder for Mac and Aeneas_Installer in a standard DMG file.
3 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/SAB_License.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \paperw11900\paperh16840\margl1440\margr1440\vieww11940\viewh7800\viewkind0
5 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
6 |
7 | \f0\fs28 \cf0 \
8 | This software is copyright \'a9 2014-2016, SIL International. It is released under the following license:\
9 | \
10 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \'93Software\'94), to use and redistribute the software, to build and distribute Android apps and EPUB documents from text and audio data, provided that you are the owner of the data or have permission to distribute it.\
11 | \
12 | The Software is protected by international copyright treaty provisions. You may not remove any copyright or other proprietary notice from the software. You may not reverse engineer, decompile, or disassemble the software.\
13 | \
14 | THE SOFTWARE IS PROVIDED \'93AS IS\'94, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
15 | \
16 | }
17 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/SAB_ReadMe.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 LucidaGrande;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \paperw11900\paperh16840\margl1440\margr1440\vieww37900\viewh22200\viewkind0
5 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
6 |
7 | \f0\fs28 \cf0 \
8 | WARNING: You will need to know how to handle certificates and provision profiles, which is outside the scope of this document.\
9 | \
10 | General Prerequisites\
11 | \uc0\u9679 Java SDK 8 \'ad\'ad {\field{\*\fldinst{HYPERLINK "http://www.oracle.com/technetwork/java/javase/downloads/index.html"}}{\fldrslt http://www.oracle.com/technetwork/java/javase/downloads/index.html}}\
12 | \uc0\u9679 Android SDK \'ad\'ad {\field{\*\fldinst{HYPERLINK "http://developer.android.com/sdk/index.html#mac-tools"}}{\fldrslt http://developer.android.com/sdk/index.html#mac-tools}}\
13 | \uc0\u9679 Xcode Tools {\field{\*\fldinst{HYPERLINK "https://itunes.apple.com/en/app/xcode/id497799835?mt=12"}}{\fldrslt https://itunes.apple.com/en/app/xcode/id497799835}}\
14 | \
15 | iOS App Publishing\
16 | 1. To distribute apps through the Apple App Store, you need to Enroll in the Apple Developer Program\
17 | a. {\field{\*\fldinst{HYPERLINK "https://developer.apple.com/programs/enroll/"}}{\fldrslt https://developer.apple.com/programs/enroll/}}\
18 | b. This is not required to download tools, build, and test on phone before App Store Submission\
19 | 2a. Install Xcode Command\'adLine Tools (stand\'adalone) or 2b\
20 | a. {\field{\*\fldinst{HYPERLINK "https://developer.apple.com/downloads/"}}{\fldrslt https://developer.apple.com/downloads/}}\
21 | b. Login to developer account\
22 | c. Search for \'93command line tools\'94 and select the newest version that matches your OS X version \
23 | 2b. Install Xcode from App Store or 2c\
24 | a. Search for Xcode and install\
25 | 2c. Use terminal to to run \'93xcode-select --install\'94\
26 | 3. Install sigh tool\
27 | a. Use terminal to to run \'93sudo gem install sigh\'94 (this requires command line tools)\
28 | 5. Install Scripture App Builder\
29 | 6. Run SAB and set Android SDK Location in Setting\
30 | 7. Run Android SDK Manager to install packages (just like Windows)\
31 | 8. Download Apple Worldwide Developer Relations Certification Authority\
32 | a. Download {\field{\*\fldinst{HYPERLINK "https://developer.apple.com/certificationauthority/AppleWWDRCA.cer"}}{\fldrslt https://developer.apple.com/certificationauthority/AppleWWDRCA.cer}}\
33 | b. Double\'ad click in Finder to install into Keychain Access 9. Install signing certificate (p12 file)\
34 | 10. Download mobile provision files\
35 | a. Create directory to download files (e.g. ~/Documents/)\
36 | b. Use terminal to to run \'93sigh download_all\'94 (enter Apple ID Username & Password at prompts)\
37 | 11. Open SAB\
38 | 12. Got to Signing (iOS) tab for project\
39 | 13. Select Identity and Provisioning Profile\
40 | 14. Click on Build iOS App (and carefully look at output)\
41 | 15. Output IPA is in ~/App\\ Builder/Scripture\\ Apps/Ipa\\ Output/\
42 | \
43 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/Mac_OSX_Installer/Mac_SAB_Installer/background.png
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/build_dmg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
4 |
5 | CURDIR=`dirname $0`
6 | echo cd $CURDIR
7 | cd $CURDIR
8 |
9 | brew install danielbair/tap/create-dmg
10 |
11 | # mkdir -p aeneas-mac-uninstall-scripts
12 | # cp _*.sh aeneas-mac-uninstall-scripts
13 | DMGFILE="Scripture_App_Builder-3.3.dmg"
14 | BUILDTMP="$(mktemp -d -t createdmg.tmp.XXXXXXXX)"
15 | cp -r /Applications/Scripture\ App\ Builder.app $BUILDTMP
16 | rm -f "$DMGFILE"
17 | create-dmg --volname Scripture_App_Builder \
18 | --window-pos 20 20 \
19 | --icon-size 80 \
20 | --icon 'Scripture App Builder.app' 144 144 \
21 | --app-drop-link 344 144 \
22 | $DMGFILE $BUILDTMP
23 | # rm -rf aeneas-mac-uninstall-scripts
24 | rm -rf "$BUILDTMP"
25 | open -R "$DMGFILE"
26 | open "$DMGFILE"
27 |
28 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/build_full_dmg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
4 |
5 | CURDIR=`dirname $0`
6 | echo cd $CURDIR
7 | cd $CURDIR
8 |
9 | brew install danielbair/tap/create-dmg
10 |
11 | mkdir -p aeneas-mac-uninstall-scripts
12 | cp ../_*.sh aeneas-mac-uninstall-scripts
13 | VERSION="1.7.2"
14 | DMGFILE="Scripture_App_Builder-full-3.3.dmg"
15 | BUILDTMP="$(mktemp -d -t createdmg.tmp.XXXXXXXX)"
16 | cp -r /Applications/Scripture\ App\ Builder.app $BUILDTMP
17 | rm -f "$DMGFILE"
18 | create-dmg --volname Scripture_App_Builder \
19 | --icon-size 80 \
20 | --window-pos 20 20 \
21 | --window-size 800 480 \
22 | --background background.png \
23 | --icon 'Scripture App Builder.app' 142 344 \
24 | --app-drop-link 398 344 \
25 | --add-file aeneas-mac-setup-$VERSION.pkg ../aeneas-mac-setup-$VERSION.pkg 654 344 \
26 | --add-folder aeneas-mac-uninstall-scripts aeneas-mac-uninstall-scripts 398 544 \
27 | $DMGFILE $BUILDTMP
28 | rm -rf aeneas-mac-uninstall-scripts
29 | rm -rf "$BUILDTMP"
30 | open -R "$DMGFILE"
31 | open "$DMGFILE"
32 |
33 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/dmg_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/Mac_OSX_Installer/Mac_SAB_Installer/dmg_preview.png
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sillsdev/aeneas-installer/0a6c4a29d36b978b2c44a59486b41c71653c0640/Mac_OSX_Installer/Mac_SAB_Installer/icon.png
--------------------------------------------------------------------------------
/Mac_OSX_Installer/Mac_SAB_Installer/sab_install_scripts/postinstall:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #xcode-select -p
4 | xcode-select --install
5 |
6 | #which sigh
7 | if [ ! -f "/usr/local/bin/sigh" ]; then
8 | sudo gem install sigh
9 | fi
10 |
11 | if type -p java; then
12 | echo found java executable in PATH
13 | _java=java
14 | elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
15 | echo found java executable in JAVA_HOME
16 | _java="$JAVA_HOME/bin/java"
17 | else
18 | echo "no java"
19 | fi
20 | if [[ "$_java" ]]; then
21 | version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
22 | echo version "$version"
23 | if [[ "$version" > "1.8" ]]; then
24 | echo 'version is more than 1.8'
25 | else
26 | echo 'version is less than 1.8'
27 | fi
28 | fi
29 |
30 | #su $USER -c 'java -jar /Applications/Scripture\ App\ Builder.app/Contents/Java/bin/scripture-app-builder.jar'
31 |
32 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/README.txt:
--------------------------------------------------------------------------------
1 | This setup wizard was developed by Daniel Bair and is distributed by SIL International, and the source code is available for download at: https://github.com/sillsdev/aeneas-installer
2 |
3 | --------------------------------------------------------------------
4 |
5 | aeneas is developed by Alberto Pettarin, ReadBeyond, and the source code is available for download at http://www.readbeyond.it/aeneas/
6 |
7 | --------------------------------------------------------------------
8 |
9 | eSpeak-ng is a text-to-speech engine, developed by Reece H. Dunn, and is available for download at https://github.com/espeak-ng/espeak-ng
10 |
11 | --------------------------------------------------------------------
12 |
13 | FFmpeg is a video and audio converter, developed by Fabrice Bellard, and is available for download at http://www.ffmpeg.org/
14 |
15 | --------------------------------------------------------------------
16 |
17 | Python is a programming language, developed by the Python Software Foundation, and is available for download at http://www.python.org/
18 |
19 | --------------------------------------------------------------------
20 |
21 | Python BeautifulSoup sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree, and is available for download at https://www.crummy.com/software/BeautifulSoup/
22 |
23 | --------------------------------------------------------------------
24 |
25 | Python lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries, which provides safe and convenient access to these libraries using the ElementTree API, and is available for download at http://lxml.de/
26 |
27 | --------------------------------------------------------------------
28 |
29 | Python NumPy is a general-purpose array-processing package designed to efficiently manipulate large multi-dimensional arrays of arbitrary records without sacrificing too much speed for small multi-dimensional arrays, and is available for download at http://www.numpy.org/
30 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/ReadMe.md:
--------------------------------------------------------------------------------
1 | This provides a simple installer for [Aeneas](https://github.com/readbeyond/aeneas) for Mac OS X 10.9 and up.
2 |
3 | 1. To build this installer for Mac OS X first download (and extract) or clone this repository.
4 | 2. Then open Terminal and _cd_ to _Mac\_OSX\_Installer_
5 | 3. Then run `build_setup.sh` which will install the necessary applications needed for building.
6 | 4. Then run `build_packages.sh` which will then build the individual packages.
7 | 5. Finally run `build_installer.sh` which will then build the main installer.
8 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_complete_uninstall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | #python -m ensurepip > /dev/null
7 | #sudo -H pip uninstall -y setuptools
8 |
9 | echo "Uninstalling aeneas and all its dependencies..."
10 |
11 | CURDIR=`dirname $0`
12 | cd $CURDIR
13 |
14 | for uninstaller in _uninstall_*.sh; do
15 | bash $uninstaller
16 | done
17 |
18 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_aeneas.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | python3 -m ensurepip > /dev/null
7 |
8 | echo "Uninstalling python-aeneas..."
9 |
10 | sudo -H pip3 uninstall -y aeneas
11 |
12 | function pkgutil-rm {
13 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
14 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
15 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
16 | for file in `pkgutil --only-files --files $1`; do
17 | sudo rm -v "$path/$file";
18 | done
19 | find /usr/local -empty -type d -print -delete
20 | sudo pkgutil --forget $1
21 | }
22 |
23 | pkg=`pkgutil --pkgs | grep "aeneas"`
24 | if [[ ! -z $pkg ]]; then
25 | pkgutil-rm $pkg
26 | # sudo rm -f /usr/local/bin/aeneas*
27 | fi
28 |
29 | sudo chown -R $USER:admin /usr/local
30 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_bs4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | python3 -m ensurepip > /dev/null
7 |
8 | echo "Uninstalling python-beautifulsoup4..."
9 |
10 | sudo -H pip3 uninstall -y beautifulsoup4 soupsieve
11 |
12 | function pkgutil-rm {
13 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
14 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
15 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
16 | for file in `pkgutil --only-files --files $1`; do
17 | sudo rm -v "$path/$file";
18 | done
19 | find /usr/local -empty -type d -print -delete
20 | sudo pkgutil --forget $1
21 | }
22 |
23 | pkg=`pkgutil --pkgs | grep "bs4"`
24 | if [[ ! -z $pkg ]]; then
25 | pkgutil-rm $pkg
26 | fi
27 |
28 | sudo chown -R $USER:admin /usr/local
29 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_espeak.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | echo "Uninstalling espeak..."
7 |
8 | function pkgutil-rm {
9 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
10 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
11 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
12 | for file in `pkgutil --only-files --files $1`; do
13 | sudo rm -v "$path/$file";
14 | done
15 | find /usr/local -empty -type d -print -delete
16 | sudo pkgutil --forget $1
17 | }
18 |
19 | pkg=`pkgutil --pkgs | grep "espeak"`
20 | if [[ ! -z $pkg ]]; then
21 | # sudo rm -rf /usr/local/Cellar/espeak*
22 | pkgutil-rm $pkg
23 | fi
24 |
25 | sudo chown -R $USER:admin /usr/local
26 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_ffmpeg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | echo "Uninstalling ffmpeg..."
7 |
8 | function pkgutil-rm {
9 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
10 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
11 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
12 | for file in `pkgutil --only-files --files $1`; do
13 | sudo rm -v "$path/$file";
14 | done
15 | find /usr/local -empty -type d -print -delete
16 | sudo pkgutil --forget $1
17 | }
18 |
19 | pkg=`pkgutil --pkgs | grep "ffmpeg"`
20 | if [[ ! -z $pkg ]]; then
21 | pkgutil-rm $pkg
22 | fi
23 |
24 | sudo chown -R $USER:admin /usr/local
25 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_lxml.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | python3 -m ensurepip > /dev/null
7 |
8 | echo "Uninstalling python-lxml..."
9 |
10 | sudo -H pip3 uninstall -y lxml
11 |
12 | function pkgutil-rm {
13 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
14 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
15 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
16 | for file in `pkgutil --only-files --files $1`; do
17 | sudo rm -v "$path/$file";
18 | done
19 | find /usr/local -empty -type d -print -delete
20 | sudo pkgutil --forget $1
21 | }
22 |
23 | pkg=`pkgutil --pkgs | grep "lxml"`
24 | if [[ ! -z $pkg ]]; then
25 | pkgutil-rm $pkg
26 | fi
27 |
28 | sudo chown -R $USER:admin /usr/local
29 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_numpy.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | python3 -m ensurepip > /dev/null
7 |
8 | echo "Uninstalling python-numpy..."
9 |
10 | sudo -H pip3 uninstall -y numpy
11 |
12 | function pkgutil-rm {
13 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
14 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
15 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
16 | for file in `pkgutil --only-files --files $1`; do
17 | sudo rm -v "$path/$file";
18 | done
19 | find /usr/local -empty -type d -print -delete
20 | sudo pkgutil --forget $1
21 | }
22 |
23 | pkg=`pkgutil --pkgs | grep "numpy"`
24 | if [[ ! -z $pkg ]]; then
25 | pkgutil-rm $pkg
26 | fi
27 |
28 | sudo chown -R $USER:admin /usr/local
29 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-mac-uninstall-scripts/_uninstall_python.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=$'\n'
3 |
4 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5 |
6 | #python -m ensurepip > /dev/null
7 | #sudo -H pip uninstall -y setuptools
8 |
9 | echo "Uninstalling python packages..."
10 |
11 | function pkgutil-rm {
12 | location=$(pkgutil --pkg-info $1 | grep "location:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
13 | volume=$(pkgutil --pkg-info $1 | grep "volume:" | cut -d':' -f2 | sed -e "s/^[[:space:]]*//")
14 | path=$(echo "$volume/$location/" | sed -e 's#//#/#g' -e 's#//#/#g' -e 's#//#/#g' -e 's#/$##');
15 | for file in `pkgutil --only-files --files $1`; do
16 | sudo rm -v "$path/$file";
17 | done
18 | find /usr/local -empty -type d -print -delete
19 | sudo pkgutil --forget $1
20 | }
21 |
22 | pkgs=`pkgutil --pkgs | grep "org.python"`
23 | if [[ ! -z $pkgs ]]; then
24 | sudo rm -rf /usr/local/Cellar/python
25 | for pkg in $pkgs; do
26 | pkgutil-rm $pkg
27 | done
28 | fi
29 |
30 | sudo chown -R $USER:admin /usr/local
31 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-patches/patch-py38-utf8-mac.diff:
--------------------------------------------------------------------------------
1 | diff --git a/aeneas/diagnostics.py b/aeneas/diagnostics.py
2 | index 7d9e98a1fbe287c0286fdab504bb2e26a691b2d2..6f4e291f115ecba3f9db810e92f083deaafc1542 100644
3 | --- a/aeneas/diagnostics.py
4 | +++ b/aeneas/diagnostics.py
5 | @@ -56,9 +56,9 @@ def check_shell_encoding(cls):
6 | """
7 | is_in_utf8 = True
8 | is_out_utf8 = True
9 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
10 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
11 | is_in_utf8 = False
12 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
13 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
14 | is_out_utf8 = False
15 | if (is_in_utf8) and (is_out_utf8):
16 | gf.print_success(u"shell encoding OK")
17 |
18 | diff --git a/aeneas/tools/abstract_cli_program.py b/aeneas/tools/abstract_cli_program.py
19 | index be5bb2fa8bfda1de88e4ed5a418aab2c00d625f7..b5b9faddc255a7e46e0316864766fec09f292b5b 100644
20 | --- a/aeneas/tools/abstract_cli_program.py
21 | +++ b/aeneas/tools/abstract_cli_program.py
22 | @@ -295,10 +295,10 @@ def run(self, arguments, show_help=True):
23 | if self.use_sys:
24 | # check that sys.stdin.encoding and sys.stdout.encoding are set to utf-8
25 | if not gf.FROZEN:
26 | - if sys.stdin.encoding not in ["UTF-8", "UTF8"]:
27 | + if sys.stdin.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
28 | self.print_warning(u"The default input encoding is not UTF-8.")
29 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
30 | - if sys.stdout.encoding not in ["UTF-8", "UTF8"]:
31 | + if sys.stdout.encoding not in ["UTF-8", "UTF8", "utf-8", "utf8"]:
32 | self.print_warning(u"The default output encoding is not UTF-8.")
33 | self.print_warning(u"You might want to set 'PYTHONIOENCODING=UTF-8' in your shell.")
34 | # decode using sys.stdin.encoding
35 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/aeneas-patches/patch-ttswrapper-mac.diff:
--------------------------------------------------------------------------------
1 | diff --git a/aeneas/ttswrappers/macosttswrapper.py b/aeneas/ttswrappers/macosttswrapper.py
2 | index cb85ed608a90f0528cc8558b1298d9e238defc47..e2137436f5395c7639b206b3f9b278f5f3e7c959 100644
3 | --- a/aeneas/ttswrappers/macosttswrapper.py
4 | +++ b/aeneas/ttswrappers/macosttswrapper.py
5 | @@ -218,7 +218,7 @@ class MacOSTTSWrapper(BaseTTSWrapper):
6 | }
7 | DEFAULT_LANGUAGE = ENG
8 |
9 | - OUTPUT_AUDIO_FORMAT = ("pcm_s16le", 1, 22050)
10 | + OUTPUT_AUDIO_FORMAT = ("pcm_s16le", 1, 16000)
11 |
12 | HAS_SUBPROCESS_CALL = True
13 |
14 | @@ -235,5 +235,5 @@ def __init__(self, rconf=None, logger=None):
15 | self.CLI_PARAMETER_WAVE_PATH, # it will be replaced by the actual output file
16 | self.CLI_PARAMETER_TEXT_STDIN, # text is read from stdin,
17 | u"--data-format", # set output data format
18 | - u"LEF32@22050" # data format string
19 | + u"LEI16@16000" # data format string
20 | ])
21 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_aeneas_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | echo -e "\n\nPreparing python environment for build\n\n"
9 |
10 | python3 -m ensurepip
11 | python3 -m pip install -U wheel pip setuptools
12 |
13 | python3 -m pip install -U numpy
14 |
15 | export AENEAS_WITH_CEW=False
16 | python3 -m pip install -U aeneas
17 |
18 | #python3 -m aeneas.diagnostics
19 | #python3 -m aeneas.tools.synthesize_text list "This is a test|with two lines" eng -v /tmp/test.wav
20 |
21 | export AENEAS_VER=`python3 -m pip show aeneas | grep "Version:" | cut -d' ' -f2`
22 | export NUMPY_VER=`python3 -m pip show numpy | grep "Version:" | cut -d' ' -f2`
23 | export LXML_VER=`python3 -m pip show lxml | grep "Version:" | cut -d' ' -f2`
24 | export BS4_VER=`python3 -m pip show beautifulsoup4 | grep "Version:" | cut -d' ' -f2`
25 | export SOUPSIEVE_VER=`python3 -m pip show soupsieve | grep "Version:" | cut -d' ' -f2`
26 |
27 | if [ ! -f "aeneas-mac-installer-packages/aeneas-$AENEAS_VER.pkg" ]; then
28 | echo -e "\n\nBuilding aeneas-$AENEAS_VER.pkg\n\n"
29 | export -n AENEAS_WITH_CEW
30 | python3 -m pip download --no-binary aeneas aeneas
31 | rm -rf aeneas-1.7.3.0
32 | tar -xf aeneas-1.7.3.0.tar.gz
33 | cd aeneas-1.7.3.0
34 | patch -p1 < ../aeneas-patches/patch-ttswrapper-mac.diff
35 | patch -p1 < ../aeneas-patches/patch-py38-utf8-mac.diff
36 | patch -p1 < ../aeneas-patches/patch-espeak-ng-mac.diff
37 | mv -v aeneas/cew/speak_lib.h thirdparty/speak_lib.h
38 | export AENEAS_USE_ESPEAKNG=True
39 | #python3 setup.py build_ext --inplace
40 | python3 setup.py bdist_wheel
41 | cp -v dist/aeneas-$AENEAS_VER*.whl ../
42 | BUILDTMP="$(mktemp -d -t aeneas.tmp.XXXXXXXX)"
43 | cd "$CURDIR"
44 | AENEAS_FILE=`ls -1 aeneas-$AENEAS_VER*.whl`
45 | unzip $AENEAS_FILE -d $BUILDTMP/$AENEAS_FILE
46 | cd "$BUILDTMP"
47 | for file in `find $AENEAS_FILE -type f -not -path "*/espeak-ng-data/*" | perl -lne 'print if -B'`; do
48 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
49 | done
50 | cd $AENEAS_FILE
51 | zip -r "$CURDIR/$AENEAS_FILE" .
52 | cd "$CURDIR"
53 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
54 | cp -v aeneas-$AENEAS_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
55 | mv -v aeneas-$AENEAS_VER*.whl python-wheels/
56 | mkdir -p $BUILDTMP/Scripts/
57 | cat postinstall-scripts/postinstall_aeneas | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
58 | chmod +x $BUILDTMP/Scripts/postinstall
59 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python.aeneas" --version "$AENEAS_VER" --scripts "$BUILDTMP/Scripts" "aeneas-$AENEAS_VER.pkg"
60 | [ $? = 0 ] || exit 1
61 | mv aeneas-$AENEAS_VER.pkg aeneas-mac-installer-packages/
62 | rm -rf $BUILDTMP
63 | else
64 | echo "Found aeneas-$AENEAS_VER.pkg"
65 | fi
66 | cd $CURDIR
67 | if [ ! -f "aeneas-mac-installer-packages/numpy-$NUMPY_VER.pkg" ]; then
68 | echo -e "\n\nBuilding numpy-$NUMPY_VER.pkg\n\n"
69 | python3 -m pip wheel numpy
70 | BUILDTMP="$(mktemp -d -t numpy.tmp.XXXXXXXX)"
71 | cd "$CURDIR"
72 | NUMPY_FILE=`ls -1 numpy-$NUMPY_VER*.whl`
73 | unzip $NUMPY_FILE -d $BUILDTMP/$NUMPY_FILE
74 | cd "$BUILDTMP"
75 | for file in `find $NUMPY_FILE -type f | perl -lne 'print if -B'`; do
76 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
77 | done
78 | cd $NUMPY_FILE
79 | zip -r "$CURDIR/$NUMPY_FILE" .
80 | cd "$CURDIR"
81 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
82 | cp -v numpy-$NUMPY_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
83 | mv -v numpy-$NUMPY_VER*.whl python-wheels/
84 | mkdir -p $BUILDTMP/Scripts/
85 | cat postinstall-scripts/postinstall_numpy | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
86 | chmod +x $BUILDTMP/Scripts/postinstall
87 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python.numpy" --version "$NUMPY_VER" --scripts "$BUILDTMP/Scripts" "numpy-$NUMPY_VER.pkg"
88 | [ $? = 0 ] || exit 1
89 | mv numpy-$NUMPY_VER.pkg aeneas-mac-installer-packages/
90 | rm -rf $BUILDTMP
91 | else
92 | echo "Found numpy-$NUMPY_VER.pkg"
93 | fi
94 | if [ ! -f "aeneas-mac-installer-packages/lxml-$LXML_VER.pkg" ]; then
95 | echo -e "\n\nBuilding lxml-$LXML_VER.pkg\n\n"
96 | python3 -m pip wheel --verbose --no-binary lxml lxml
97 | BUILDTMP="$(mktemp -d -t lxml.tmp.XXXXXXXX)"
98 | cd "$CURDIR"
99 | LXML_FILE=`ls -1 lxml-$LXML_VER*.whl`
100 | unzip $LXML_FILE -d $BUILDTMP/$LXML_FILE
101 | cd "$BUILDTMP"
102 | for file in `find $LXML_FILE -type f | perl -lne 'print if -B'`; do
103 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
104 | done
105 | cd $LXML_FILE
106 | zip -r "$CURDIR/$LXML_FILE" .
107 | cd "$CURDIR"
108 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
109 | cp -v lxml-$LXML_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
110 | mv -v lxml-$LXML_VER*.whl python-wheels/
111 | mkdir -p $BUILDTMP/Scripts/
112 | cat postinstall-scripts/postinstall_lxml | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
113 | chmod +x $BUILDTMP/Scripts/postinstall
114 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python.lxml" --version "$LXML_VER" --scripts "$BUILDTMP/Scripts" "lxml-$LXML_VER.pkg"
115 | [ $? = 0 ] || exit 1
116 | mv lxml-$LXML_VER.pkg aeneas-mac-installer-packages/
117 | rm -rf $BUILDTMP
118 | else
119 | echo "Found lxml-$LXML_VER.pkg"
120 | fi
121 | if [ ! -f "aeneas-mac-installer-packages/bs4-$BS4_VER.pkg" ]; then
122 | echo -e "\n\nBuilding bs4-$BS4_VER.pkg\n\n"
123 | python3 -m pip wheel beautifulsoup4
124 | BUILDTMP="$(mktemp -d -t bs4.tmp.XXXXXXXX)"
125 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
126 | cp -v beautifulsoup4-$BS4_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
127 | mv -v beautifulsoup4-$BS4_VER*.whl python-wheels/
128 | cp -v soupsieve-$SOUPSIEVE_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
129 | mv -v soupsieve-$SOUPSIEVE_VER*.whl python-wheels/
130 | mkdir -p $BUILDTMP/Scripts/
131 | cat postinstall-scripts/postinstall_bs4 | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
132 | chmod +x $BUILDTMP/Scripts/postinstall
133 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python.bs4" --version "$BS4_VER" --scripts "$BUILDTMP/Scripts" "bs4-$BS4_VER.pkg"
134 | [ $? = 0 ] || exit 1
135 | mv bs4-$BS4_VER.pkg aeneas-mac-installer-packages/
136 | rm -rf $BUILDTMP
137 | else
138 | echo "Found bs4-$BS4_VER.pkg"
139 | fi
140 |
141 | cd $CURDIR
142 |
143 | #echo -e "\n\nNow run build_installer.sh\n\n"
144 |
145 | exit 0
146 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_dmg.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | DMGFILE="Aeneas_Tools-$VERSION.dmg"
6 | BUILDTMP="$(mktemp -d -t createdmg.tmp.XXXXXXXX)"
7 |
8 | rm -f "$DMGFILE"
9 | ./create-dmg --volname Aeneas_Tools \
10 | --window-pos 20 20 \
11 | --icon-size 80 \
12 | --add-file aeneas-mac-setup-$VERSION.pkg aeneas-mac-setup-$VERSION.pkg 244 4 \
13 | --add-folder aeneas-mac-uninstall-scripts aeneas-mac-uninstall-scripts 344 184 \
14 | --add-folder aeneas-mac-installer-packages aeneas-mac-installer-packages 144 184 \
15 | $DMGFILE $BUILDTMP
16 | rm -rf "$BUILDTMP"
17 | open -R "$DMGFILE"
18 | open "$DMGFILE"
19 |
20 | cp -v Aeneas_Tools-$VERSION.dmg aeneas-mac-setup-$VERSION.dmg
21 |
22 | exit 0
23 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_env.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export IFS=$'\n'
4 |
5 | #export PATH="/usr/libexec/git-core/:$PATH"
6 | export MP_PREFIX="/opt/usr"
7 | export PATH="$MP_PREFIX/bin:$MP_PREFIX/sbin:$PATH"
8 | export PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH"
9 |
10 | CURDIR=`dirname $0`
11 | if [ $? = 0 ]; then
12 | cd `dirname $0`
13 | fi
14 | export CURDIR=`pwd`
15 | echo -e "\n\nRunning `basename $0`\n from $CURDIR\n"
16 |
17 | export REVISION=_4
18 |
19 | export FFMPEG_VER=`curl -JLks https://evermeet.cx/ffmpeg/info/ffmpeg/release | jq -r '.version'`
20 | export ESPEAK_VER=`port info --version espeak-ng | cut -d' ' -f2`
21 | #export PYTHON_VER=`port info --version python39 | cut -d' ' -f2`
22 | export PYTHON_VER='3.9.13'
23 | export AENEAS_VER=`python3 -m pip show aeneas | grep "Version:" | cut -d' ' -f2`
24 | export NUMPY_VER=`python3 -m pip show numpy | grep "Version:" | cut -d' ' -f2`
25 | export LXML_VER=`python3 -m pip show lxml | grep "Version:" | cut -d' ' -f2`
26 | export BS4_VER=`python3 -m pip show beautifulsoup4 | grep "Version:" | cut -d' ' -f2`
27 | export SOUPSIEVE_VER=`python3 -m pip show soupsieve | grep "Version:" | cut -d' ' -f2`
28 | export VERSION="$AENEAS_VER$REVISION"
29 |
30 | export CPLUS_INCLUDE_PATH="/opt/usr/include"
31 | export C_INCLUDE_PATH="/opt/usr/include"
32 | export LIBRARY_PATH="/opt/usr/lib"
33 | export LDFLAGS="-L/opt/usr/lib"
34 |
35 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_espeak_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | if [ ! -f "aeneas-mac-installer-packages/espeak-ng-$ESPEAK_VER.pkg" ]; then
9 | echo -e "\n\nBuilding espeak-ng-$ESPEAK_VER.pkg\n\n"
10 | sudo port -Npfu uninstall espeak-ng pcaudiolib sonic
11 | sudo port -Npfk install espeak-ng
12 | sudo port -Npf mpkg espeak-ng
13 | SOURCETMP="$(mktemp -d -t espeak.src.XXXXXXXX)"
14 | BUILDTMP="$(mktemp -d -t espeak.build.XXXXXXXX)"
15 | pkgutil --expand-full `port work espeak-ng`/espeak-ng-$ESPEAK_VER.mpkg $SOURCETMP/espeak-ng-$ESPEAK_VER.mpkg
16 | SOURCETMP="$SOURCETMP/espeak-ng-$ESPEAK_VER.mpkg"
17 | mkdir -vp $BUILDTMP/Payload
18 | mkdir -vp $BUILDTMP/Scripts
19 | for PKG in $SOURCETMP/*.pkg; do
20 | ditto -v $PKG/Payload $BUILDTMP/Payload
21 | done
22 | cat postinstall-scripts/postinstall_espeak | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
23 | chmod +x $BUILDTMP/Scripts/postinstall
24 | cd "$BUILDTMP"
25 | for file in `find Payload -type f | perl -lne 'print if -B'`; do
26 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
27 | done
28 | cd "$CURDIR"
29 | pkgbuild --prior `port work espeak-ng`/espeak-ng-$ESPEAK_VER-component.pkg --version "$ESPEAK_VER" --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "espeak-ng-$ESPEAK_VER.pkg"
30 | [ $? = 0 ] || exit 1
31 | sudo installer -pkg espeak-ng-$ESPEAK_VER.pkg -target / -dumplog -verboseR
32 | [ $? = 0 ] || exit 1
33 | mv espeak-ng-$ESPEAK_VER.pkg aeneas-mac-installer-packages/
34 | rm -rf $SOURCETMP
35 | rm -rf $BUILDTMP
36 | else
37 | echo "Found espeak-ng-$ESPEAK_VER.pkg"
38 | fi
39 |
40 | cd $CURDIR
41 |
42 | #echo -e "\n\nNow run build_installer.sh\n\n"
43 |
44 | exit 0
45 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_ffmpeg_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | if [ ! -f "aeneas-mac-installer-packages/ffmpeg-$FFMPEG_VER.pkg" ]; then
9 | echo -e "\n\nBuilding ffmpeg-$FFMPEG_VER.pkg\n\n"
10 | BUILDTMP="$(mktemp -d -t ffmpeg.tmp.XXXXXXXX)"
11 | mkdir -vp $BUILDTMP/Payload
12 | mkdir -vp $BUILDTMP/Scripts
13 | rm -rf ff*.zip
14 | wget --trust-server-names https://ffmpeg.zeranoe.com/builds/macos64/static/ffmpeg-$FFMPEG_VER-macos64-static.zip
15 | if [ $? = 0 ]; then
16 | mkdir -vp $BUILDTMP/Payload/opt
17 | unzip ffmpeg-$FFMPEG_VER-macos64-static.zip -d $BUILDTMP
18 | mv -v $BUILDTMP/ffmpeg-$FFMPEG_VER-macos64-static $BUILDTMP/Payload/opt/usr
19 | mkdir -vp $BUILDTMP/Payload/opt/usr/share/ffmpeg
20 | mv -v $BUILDTMP/Payload/opt/usr/doc $BUILDTMP/Payload/opt/usr/share/ffmpeg/
21 | mv -v $BUILDTMP/Payload/opt/usr/presets $BUILDTMP/Payload/opt/usr/share/ffmpeg/
22 | mv -v $BUILDTMP/Payload/opt/usr/LICENSE* $BUILDTMP/Payload/opt/usr/share/ffmpeg/
23 | mv -v $BUILDTMP/Payload/opt/usr/README* $BUILDTMP/Payload/opt/usr/share/ffmpeg/
24 | fi
25 | if [ ! -f "./ffmpeg-$FFMPEG_VER-macos64-static.zip" ]; then
26 | wget --trust-server-names -N https://evermeet.cx/ffmpeg/ffmpeg-$FFMPEG_VER.zip
27 | wget --trust-server-names -N https://evermeet.cx/ffmpeg/ffprobe-$FFMPEG_VER.zip
28 | wget --trust-server-names -N https://evermeet.cx/ffmpeg/ffplay-$FFMPEG_VER.zip
29 | mkdir -vp $BUILDTMP/Payload/opt/usr/bin
30 | unzip ffmpeg-$FFMPEG_VER.zip -d $BUILDTMP/Payload/opt/usr/bin/
31 | unzip ffprobe-$FFMPEG_VER.zip -d $BUILDTMP/Payload/opt/usr/bin/
32 | unzip ffplay-$FFMPEG_VER.zip -d $BUILDTMP/Payload/opt/usr/bin/
33 | wget --trust-server-names -N https://ffmpeg.org/releases/ffmpeg-$FFMPEG_VER.tar.gz
34 | tar -xzf ffmpeg-$FFMPEG_VER.tar.gz -C $BUILDTMP/
35 | mkdir -vp $BUILDTMP/Payload/opt/usr/share/ffmpeg
36 | mv $BUILDTMP/ffmpeg-$FFMPEG_VER/doc $BUILDTMP/Payload/opt/usr/share/ffmpeg/
37 | mv $BUILDTMP/ffmpeg-$FFMPEG_VER/presets $BUILDTMP/Payload/opt/usr/share/ffmpeg/
38 | mv $BUILDTMP/ffmpeg-$FFMPEG_VER/LICENSE* $BUILDTMP/Payload/opt/usr/share/ffmpeg/
39 | mv $BUILDTMP/ffmpeg-$FFMPEG_VER/README* $BUILDTMP/Payload/opt/usr/share/ffmpeg/
40 | fi
41 | cat postinstall-scripts/postinstall_ffmpeg | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
42 | chmod +x $BUILDTMP/Scripts/postinstall
43 | cd "$BUILDTMP"
44 | for file in `find Payload -type f | perl -lne 'print if -B'`; do
45 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
46 | done
47 | cd "$CURDIR"
48 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.ffmpeg.ffmpeg" --version "$FFMPEG_VER" --scripts "$BUILDTMP/Scripts" "ffmpeg-$FFMPEG_VER.pkg"
49 | [ $? = 0 ] || exit 1
50 | sudo installer -pkg ffmpeg-$FFMPEG_VER.pkg -target / -dumplog -verboseR
51 | mv ffmpeg-$FFMPEG_VER.pkg aeneas-mac-installer-packages/
52 | rm -rf $BUILDTMP
53 | else
54 | echo "Found ffmpeg-$FFMPEG_VER.pkg"
55 | fi
56 |
57 | cd $CURDIR
58 |
59 | #echo -e "\n\nNow run build_installer.sh\n\n"
60 |
61 | exit 0
62 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_installer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | pkgutil --pkgs | grep "pkg.Packages"
4 | if [ $? = 0 ]; then
5 | if [ ! -f "./Packages.dmg" ]; then
6 | wget --trust-server-names -N http://s.sudre.free.fr/Software/files/Packages.dmg
7 | fi
8 | mkdir -p /tmp/packages-installer/
9 | hdiutil attach Packages.dmg -mountpoint /tmp/packages-installer/
10 | sudo installer -pkg /tmp/packages-installer/ -target /
11 | hdiutil detach /tmp/packages-installer/
12 | fi
13 |
14 | source ./build_env.sh
15 |
16 | bash ./sign_packages.sh
17 |
18 | cat Aeneas_Installer_TEMPLATE.pkgproj |\
19 | sed -e 's/\[FFMPEG_VER\]/'$FFMPEG_VER'/g' |\
20 | sed -e 's/\[ESPEAK_VER\]/'$ESPEAK_VER'/g' |\
21 | sed -e 's/\[PYTHON_VER\]/'$PYTHON_VER'/g' |\
22 | sed -e 's/\[NUMPY_VER\]/'$NUMPY_VER'/g' |\
23 | sed -e 's/\[LXML_VER\]/'$LXML_VER'/g' |\
24 | sed -e 's/\[BS4_VER\]/'$BS4_VER'/g' |\
25 | sed -e 's/\[AENEAS_VER\]/'$AENEAS_VER'/g' |\
26 | sed -e 's/\[INSTALLER_VER\]/'$VERSION'/g' |\
27 | sed -e 's/\[USER\]/'$USER'/g' |\
28 | tee Aeneas_Installer.pkgproj
29 |
30 | packagesbuild -v Aeneas_Installer.pkgproj
31 | [ $? = 0 ] || exit 1
32 |
33 | if [ -f "aeneas-mac-setup-$VERSION.pkg" ]; then
34 | echo -e "Resulting Installer program filename is:\n$(pwd)/aeneas-mac-setup-$VERSION.pkg"
35 | productsign --timestamp --sign "Developer ID Installer" aeneas-mac-setup-$VERSION.pkg /tmp/aeneas-mac-setup-$VERSION.pkg
36 | cp -v /tmp/aeneas-mac-setup-$VERSION.pkg ./
37 | xcrun notarytool submit --keychain-profile "notarytool" --wait aeneas-mac-setup-$VERSION.pkg
38 | xcrun stapler staple aeneas-mac-setup-$VERSION.pkg
39 | fi
40 |
41 | exit 0
42 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | cd $CURDIR
6 |
7 | echo -e "\n\nBegining package builds\n\n"
8 |
9 | sudo port selfupdate
10 |
11 | mkdir -p ./aeneas-mac-installer-packages
12 | mkdir -p ./python-wheels
13 |
14 | bash ./build_espeak_package.sh
15 | bash ./build_ffmpeg_package.sh
16 | bash ./build_python_package.sh
17 | bash ./build_aeneas_package.sh
18 |
19 | echo -e "\n\nNow run build_installer.sh\n\n"
20 |
21 | exit 0
22 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_python_mp_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | if [ ! -f "aeneas-mac-installer-packages/python-$PYTHON_VER.pkg" ]; then
9 | echo -e "\n\nBuilding python-$PYTHON_VER.pkg\n\n"
10 | #sudo port -Npfu uninstall --follow-dependents python38
11 | #sudo port -Npfk install --no-rev-upgrade python38
12 | #sudo port select --set python python38
13 | #sudo port select --set python3 python38
14 | sudo port -Npf mpkg python38
15 | SOURCETMP="$(mktemp -d -t python.src.XXXXXXXX)"
16 | BUILDTMP="$(mktemp -d -t python.build.XXXXXXXX)"
17 | pkgutil --expand-full `port work python38`/python38-$PYTHON_VER.mpkg $SOURCETMP/python38-$PYTHON_VER.mpkg
18 | SOURCETMP="$SOURCETMP/python38-$PYTHON_VER.mpkg"
19 | mkdir -vp $BUILDTMP/Payload
20 | mkdir -vp $BUILDTMP/Scripts
21 | for PKG in $SOURCETMP/*.pkg; do
22 | #cp -va $PKG/Payload/* $BUILDTMP/Payload/
23 | ditto -v $PKG/Payload $BUILDTMP/Payload
24 | done
25 | cat postinstall-scripts/postinstall_python | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
26 | chmod +x $BUILDTMP/Scripts/postinstall
27 | cd "$BUILDTMP"
28 | #find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
29 | for file in `find Payload -type f | perl -lne 'print if -B'`; do
30 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
31 | done
32 | cd "$CURDIR"
33 | pkgbuild --prior `port work python38`/python38-$PYTHON_VER-component.pkg --version "$PYTHON_VER" --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "python-$PYTHON_VER.pkg"
34 | [ $? = 0 ] || exit 1
35 | sudo installer -pkg python-$PYTHON_VER.pkg -target / -dumplog -verboseR
36 | [ $? = 0 ] || exit 1
37 | mv python-$PYTHON_VER.pkg aeneas-mac-installer-packages/
38 | rm -rf $SOURCETMP
39 | rm -rf $BUILDTMP
40 | else
41 | echo "Found python-$PYTHON_VER.pkg"
42 | fi
43 |
44 | sudo -H /opt/usr/bin/python3 -m ensurepip
45 | sudo -H /opt/usr/bin/python3 -m pip install -U setuptools pip wheel
46 |
47 | cd $CURDIR
48 |
49 | #echo -e "\n\nNow run build_installer.sh\n\n"
50 |
51 | exit 0
52 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_python_org_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | if [ ! -f "aeneas-mac-installer-packages/python-$PYTHON_VER.pkg" ]; then
9 | echo -e "\n\nBuilding python-$PYTHON_VER.pkg\n\n"
10 | if [ ! -f "./python-$PYTHON_VER-macosx10.9.pkg" ]; then
11 | wget --trust-server-names https://www.python.org/ftp/python/$PYTHON_VER/python-$PYTHON_VER-macosx10.9.pkg
12 | fi
13 | SOURCETMP="$(mktemp -d -t python.src.XXXXXXXX)"
14 | BUILDTMP="$(mktemp -d -t python.build.XXXXXXXX)"
15 |
16 | pkgutil --expand-full python-$PYTHON_VER-macosx10.9.pkg $SOURCETMP/python-$PYTHON_VER-macosx10.9.pkg
17 | SOURCETMP="$SOURCETMP/python-$PYTHON_VER-macosx10.9.pkg"
18 |
19 | mkdir -vp $BUILDTMP/Payload
20 | mkdir -vp $BUILDTMP/Scripts
21 | #touch $BUILDTMP/Scripts/postinstall
22 | echo "#!/bin/sh" > $BUILDTMP/Scripts/postinstall
23 | PKGS="Python_Framework.pkg
24 | Python_Command_Line_Tools.pkg
25 | Python_Shell_Profile_Updater.pkg
26 | Python_Install_Pip.pkg
27 | Python_Documentation.pkg
28 | Python_Applications.pkg"
29 | for PKG in $PKGS; do
30 | PKG_ROOT=`cat $SOURCETMP/$PKG/PackageInfo | grep "install-location" | cut -d' ' -f10 | cut -d'=' -f2 | cut -d'"' -f2`
31 | if [ -n "$PKG_ROOT" ]; then
32 | #mkdir -vp $BUILDTMP/Payload$PKG_ROOT
33 | ditto -v $SOURCETMP/$PKG/Payload $BUILDTMP/Payload$PKG_ROOT
34 | fi
35 | SCRIPT_NAME="`basename $PKG`-postinstall"
36 | if [ -f "$SOURCETMP/$PKG/Scripts/postinstall" ]; then
37 | cp -va $SOURCETMP/$PKG/Scripts/postinstall $BUILDTMP/Scripts/$SCRIPT_NAME
38 | echo "/bin/sh ./$SCRIPT_NAME" >> $BUILDTMP/Scripts/postinstall
39 | fi
40 | done
41 | echo "exit 0" >> $BUILDTMP/Scripts/postinstall
42 | chmod +x $BUILDTMP/Scripts/postinstall
43 | cd "$BUILDTMP"
44 | for file in `find Payload -type f | perl -lne 'print if -B'`; do
45 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
46 | done
47 | cd "$CURDIR"
48 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python" --version "$PYTHON_VER" --scripts "$BUILDTMP/Scripts" "python-$PYTHON_VER.pkg"
49 | [ $? = 0 ] || exit 1
50 | sudo installer -pkg python-$PYTHON_VER.pkg -target / -dumplog -verboseR
51 | [ $? = 0 ] || exit 1
52 | mv python-$PYTHON_VER.pkg aeneas-mac-installer-packages/
53 | rm -rf $SOURCETMP
54 | rm -rf $BUILDTMP
55 | else
56 | echo "Found python-$PYTHON_VER.pkg"
57 | fi
58 |
59 | sudo -H /opt/usr/bin/python3 -m ensurepip
60 | sudo -H /opt/usr/bin/python3 -m pip install -U setuptools pip wheel
61 |
62 | cd $CURDIR
63 |
64 | #echo -e "\n\nNow run build_installer.sh\n\n"
65 |
66 | exit 0
67 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_python_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | CURDIR=`pwd`
6 | cd "$CURDIR"
7 |
8 | if [ ! -f "aeneas-mac-installer-packages/python-$PYTHON_VER.pkg" ]; then
9 | echo -e "\n\nBuilding python-$PYTHON_VER.pkg\n\n"
10 | if [ ! -f "./python-$PYTHON_VER-macosx10.9.pkg" ]; then
11 | wget --trust-server-names https://www.python.org/ftp/python/$PYTHON_VER/python-$PYTHON_VER-macosx10.9.pkg
12 | fi
13 | SOURCETMP="$(mktemp -d -t python.src.XXXXXXXX)"
14 | BUILDTMP="$(mktemp -d -t python.build.XXXXXXXX)"
15 |
16 | pkgutil --expand-full python-$PYTHON_VER-macosx10.9.pkg $SOURCETMP/python-$PYTHON_VER-macosx10.9.pkg
17 | SOURCETMP="$SOURCETMP/python-$PYTHON_VER-macosx10.9.pkg"
18 |
19 | mkdir -vp $BUILDTMP/Payload
20 | mkdir -vp $BUILDTMP/Scripts
21 | #touch $BUILDTMP/Scripts/postinstall
22 | echo "#!/bin/sh" > $BUILDTMP/Scripts/postinstall
23 | PKGS="Python_Framework.pkg
24 | Python_Command_Line_Tools.pkg
25 | Python_Shell_Profile_Updater.pkg
26 | Python_Install_Pip.pkg
27 | Python_Documentation.pkg
28 | Python_Applications.pkg"
29 | for PKG in $PKGS; do
30 | PKG_ROOT=`cat $SOURCETMP/$PKG/PackageInfo | grep "install-location" | cut -d' ' -f10 | cut -d'=' -f2 | cut -d'"' -f2`
31 | if [ -n "$PKG_ROOT" ]; then
32 | #mkdir -vp $BUILDTMP/Payload$PKG_ROOT
33 | ditto -v $SOURCETMP/$PKG/Payload $BUILDTMP/Payload$PKG_ROOT
34 | fi
35 | SCRIPT_NAME="`basename $PKG`-postinstall"
36 | if [ -f "$SOURCETMP/$PKG/Scripts/postinstall" ]; then
37 | cp -va $SOURCETMP/$PKG/Scripts/postinstall $BUILDTMP/Scripts/$SCRIPT_NAME
38 | echo "/bin/sh ./$SCRIPT_NAME" >> $BUILDTMP/Scripts/postinstall
39 | fi
40 | done
41 | echo "exit 0" >> $BUILDTMP/Scripts/postinstall
42 | chmod +x $BUILDTMP/Scripts/postinstall
43 | cd "$BUILDTMP"
44 | for file in `find Payload -type f | perl -lne 'print if -B'`; do
45 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options hard "$file"
46 | done
47 | cd "$CURDIR"
48 | pkgbuild --root "$BUILDTMP/Payload" --identifier "org.python.python" --version "$PYTHON_VER" --scripts "$BUILDTMP/Scripts" "python-$PYTHON_VER.pkg"
49 | [ $? = 0 ] || exit 1
50 | sudo installer -pkg python-$PYTHON_VER.pkg -target / -dumplog -verboseR
51 | [ $? = 0 ] || exit 1
52 | mv python-$PYTHON_VER.pkg aeneas-mac-installer-packages/
53 | rm -rf $SOURCETMP
54 | rm -rf $BUILDTMP
55 | else
56 | echo "Found python-$PYTHON_VER.pkg"
57 | fi
58 |
59 | sudo -H /opt/usr/bin/python3 -m ensurepip
60 | sudo -H /opt/usr/bin/python3 -m pip install -U setuptools pip wheel
61 |
62 | cd $CURDIR
63 |
64 | #echo -e "\n\nNow run build_installer.sh\n\n"
65 |
66 | exit 0
67 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/build_setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #export PATH="/usr/libexec/git-core/:$PATH"
4 | export PATH=/bin:/sbin:/usr/bin:/usr/sbin
5 |
6 | export MP_PREFIX="/opt/usr"
7 | export PATH="$MP_PREFIX/bin:$MP_PREFIX/sbin:$PATH"
8 | export PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH"
9 |
10 | cd `dirname $0`
11 | export CURDIR=`pwd`
12 | echo -e "\n\nRunning `basename $0`\n from $CURDIR\n"
13 |
14 | export CPLUS_INCLUDE_PATH="/opt/usr/include"
15 | export C_INCLUDE_PATH="/opt/usr/include"
16 | export LIBRARY_PATH="/opt/usr/lib"
17 | export LDFLAGS="-L/opt/usr/lib"
18 |
19 |
20 | cd $CURDIR
21 |
22 | echo -e "\n\nPreparing package build environment\n\n"
23 |
24 | #./install_xcode_cl_tools.sh
25 | xcode-select --install
26 |
27 | curl https://www.python.org/ftp/python/3.9.13/python-3.9.13-macosx10.9.pkg --output python-3.9.13-macosx10.9.pkg
28 | sudo installer -pkg python-3.9.13-macosx10.9.pkg -target /
29 |
30 | sudo mkdir -p $MP_PREFIX
31 | cd $MP_PREFIX
32 | sudo git clone https://github.com/macports/macports-base.git
33 | sudo git checkout v2.8.1
34 | cd macports-base
35 | sudo ./configure --enable-readline --prefix=$MP_PREFIX --with-applications-dir=/Applications/MacPorts`echo $MP_PREFIX | sed 's#/#-#g'` --without-startupitems
36 | sudo make
37 | sudo make install
38 | sudo make distclean
39 |
40 | cd $MP_PREFIX
41 | #sudo git clone https://github.com/macports/macports-ports.git
42 | sudo git clone https://github.com/danielbair/custom-macports-ports.git
43 |
44 | cd $CURDIR
45 | sudo cp -v ./etc-macports-sources.conf $MP_PREFIX/etc/macports/sources.conf
46 | sudo port selfupdate
47 |
48 | sudo port install jq wget
49 |
50 | pkgutil --pkgs | grep "pkg.Packages"
51 | if [ $? = 0 ]; then
52 | if [ ! -f "./Packages.dmg" ]; then
53 | wget --trust-server-names -N http://s.sudre.free.fr/Software/files/Packages.dmg
54 | fi
55 | mkdir -p /tmp/packages-installer/
56 | hdiutil attach Packages.dmg -mountpoint /tmp/packages-installer/
57 | sudo installer -pkg /tmp/packages-installer/ -target /
58 | hdiutil detach /tmp/packages-installer/
59 | fi
60 |
61 | echo -e "\n\nNow run build_packages.sh\n\n"
62 |
63 | exit 0
64 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/check_python.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -eq 0 ]
4 | then
5 | echo "Useage: `basename $0` version"
6 | exit 2
7 | fi
8 |
9 | vercomp () {
10 | if [[ $1 == $2 ]]
11 | then
12 | return 0
13 | fi
14 | local IFS=.
15 | local i ver1=($1) ver2=($2)
16 | # fill empty fields in ver1 with zeros
17 | for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
18 | do
19 | ver1[i]=0
20 | done
21 | for ((i=0; i<${#ver1[@]}; i++))
22 | do
23 | if [[ -z ${ver2[i]} ]]
24 | then
25 | # fill empty fields in ver2 with zeros
26 | ver2[i]=0
27 | fi
28 | if ((10#${ver1[i]} > 10#${ver2[i]}))
29 | then
30 | return 1
31 | fi
32 | if ((10#${ver1[i]} < 10#${ver2[i]}))
33 | then
34 | return 2
35 | fi
36 | done
37 | return 0
38 | }
39 |
40 | testvercomp () {
41 | vercomp $1 $3
42 | case $? in
43 | 0) op='=';;
44 | 1) op='>';;
45 | 2) op='<';;
46 | esac
47 | if [[ $op != $2 ]]
48 | then
49 | echo "FAIL: Expected '$2', Actual '$op'; Arg1 '$1', Arg2 '$2', Arg3 '$3'"
50 | else
51 | echo "Pass: '$1 $op $2'"
52 | fi
53 | }
54 |
55 | V=`python3 --version | cut -d' ' -f2`
56 |
57 | testvercomp $V '<' $1
58 |
59 | exit 0
60 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/clean_up.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | find . -name "*.mpkg" -print0 -exec rm -vrf "{}" \;
4 | find . -name "*.pkg" -print -delete
5 | find . -name "*.dmg" -print -delete
6 | find . -name "*.zip" -print -delete
7 | find . -name "*.gz" -print -delete
8 | find . -name aeneas-1.7* -type d -print0 -exec rm -vrf "{}" \;
9 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.cs.allow-jit
6 |
7 | com.apple.security.cs.allow-unsigned-executable-memory
8 |
9 | com.apple.security.cs.disable-executable-page-protection
10 |
11 | com.apple.security.cs.allow-dyld-environment-variables
12 |
13 | com.apple.security.cs.disable-library-validation
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/etc-macports-sources.conf:
--------------------------------------------------------------------------------
1 | # MacPorts system-wide configuration file for ports tree sources.
2 | #
3 | # To change how MacPorts fetches base, see rsync_server and rsync_dir in
4 | # macports.conf.
5 |
6 | # To add a local source, add a "file://" entry.
7 | #
8 | # Example: file:///Users/landonf/misc/MacPorts/ports
9 | #
10 | # To prevent a source from synchronizing when `port sync` is used,
11 | # append "[nosync]" at the end.
12 | #
13 | # Example: file:///Users/landonf/misc/MacPorts/ports [nosync]
14 | #
15 | # Note that MacPorts parses source URLs in order; when a port appears in
16 | # multiple sources, it installs the first occurrence. For local sources
17 | # to shadow remote ones, "file://" URLs must come before other URLs.
18 |
19 | # A list of rsync mirrors is available at
20 | # https://trac.macports.org/wiki/Mirrors#Portfiles.
21 | #
22 | # If an "rsync://" URL points to a .tar file, a signed .rmd160 file must
23 | # exist in the same directory on the server and will be used to verify
24 | # its integrity.
25 | #
26 | # For proper functionality of various resources (port groups, mirror
27 | # sites, etc.), the primary MacPorts source must always be tagged
28 | # "[default]", even if switched from the default "rsync://" URL.
29 |
30 | rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]
31 | file:///opt/usr/custom-macports-ports
32 | #file:///opt/usr/macports-ports [default]
33 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/install_xcode_cl_tools.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Installing the Xcode command line tools on 10.7.x or higher
4 |
5 | osx_vers=$(sw_vers -productVersion | awk -F "." '{print $2}')
6 | cmd_line_tools_temp_file="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
7 |
8 | # Installing the latest Xcode command line tools on 10.9.x or higher
9 |
10 | if [[ "$osx_vers" -ge 9 ]]; then
11 |
12 | # Create the placeholder file which is checked by the softwareupdate tool
13 | # before allowing the installation of the Xcode command line tools.
14 |
15 | touch "$cmd_line_tools_temp_file"
16 |
17 | # Find the last listed update in the Software Update feed with "Command Line Tools" in the name
18 |
19 | cmd_line_tools=$(softwareupdate -l | awk '/\*\ Command Line Tools/ { $1=$1;print }' | tail -1 | sed 's/^[[ \t]]*//;s/[[ \t]]*$//;s/*//' | cut -c 2-)
20 |
21 | #Install the command line tools
22 |
23 | softwareupdate -i "$cmd_line_tools" -v
24 |
25 | # Remove the temp file
26 |
27 | if [[ -f "$cmd_line_tools_temp_file" ]]; then
28 | rm "$cmd_line_tools_temp_file"
29 | fi
30 | fi
31 |
32 | # Installing the latest Xcode command line tools on 10.7.x and 10.8.x
33 |
34 | # on 10.7/10.8, instead of using the software update feed, the command line tools are downloaded
35 | # instead from public download URLs, which can be found in the dvtdownloadableindex:
36 | # https://devimages.apple.com.edgekey.net/downloads/xcode/simulators/index-3905972D-B609-49CE-8D06-51ADC78E07BC.dvtdownloadableindex
37 |
38 | if [[ "$osx_vers" -eq 7 ]] || [[ "$osx_vers" -eq 8 ]]; then
39 |
40 | if [[ "$osx_vers" -eq 7 ]]; then
41 | DMGURL=http://devimages.apple.com/downloads/xcode/command_line_tools_for_xcode_os_x_lion_april_2013.dmg
42 | fi
43 |
44 | if [[ "$osx_vers" -eq 8 ]]; then
45 | DMGURL=http://devimages.apple.com/downloads/xcode/command_line_tools_for_osx_mountain_lion_april_2014.dmg
46 | fi
47 |
48 | TOOLS=cltools.dmg
49 | curl "$DMGURL" -o "$TOOLS"
50 | TMPMOUNT=`/usr/bin/mktemp -d /tmp/clitools.XXXX`
51 | hdiutil attach "$TOOLS" -mountpoint "$TMPMOUNT" -nobrowse
52 | # The "-allowUntrusted" flag has been added to the installer
53 | # command to accomodate for now-expired certificates used
54 | # to sign the downloaded command line tools.
55 | sudo installer -allowUntrusted -pkg "$(find $TMPMOUNT -name '*.mpkg')" -target /
56 | hdiutil detach "$TMPMOUNT"
57 | rm -rf "$TMPMOUNT"
58 | rm "$TOOLS"
59 | fi
60 |
61 | exit 0
62 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/notarize_installer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | source ./build_env.sh
4 |
5 | if [ "$1" == "sign" ]; then
6 | mv -v aeneas-mac-setup-$VERSION.pkg aeneas-mac-setup-$VERSION-unsigned.pkg
7 | productsign --timestamp --sign "Developer ID Installer" aeneas-mac-setup-$VERSION-unsigned.pkg aeneas-mac-setup-$VERSION.pkg
8 | exit 0
9 | fi
10 |
11 | if [ "$1" == "log" ]; then
12 | xcrun altool --notarization-info $2 --verbose -p "@keychain:altool"
13 | exit 0
14 | fi
15 |
16 | if [ "$1" == "notarize" ]; then
17 | xcrun altool --notarize-app -f "aeneas-mac-setup-$VERSION.pkg" --primary-bundle-id com.danielbair.pkg.aeneas-mac-setup --verbose -p "@keychain:altool"
18 | exit 0
19 | fi
20 |
21 | if [ "$1" == "staple" ]; then
22 | xcrun stapler staple "aeneas-mac-setup-$VERSION.pkg"
23 | spctl -a -vvv -t install "aeneas-mac-setup-$VERSION.pkg"
24 | exit 0
25 | fi
26 |
27 | xcrun notarytool submit "aeneas-mac-setup-$VERSION.pkg" --keychain-profile "notarytool" --wait
28 |
29 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | echo "This script will update your shell profile."
4 | echo "These changes will be effective only in shell windows that you open"
5 | echo "after running this script."
6 |
7 | AENEAS_VER=1.7.3.0
8 | AENEAS_ROOT="/opt/usr"
9 |
10 | if [ `id -ur` = 0 ]; then
11 | # Run from the installer, do some trickery to fetch the information
12 | # we need.
13 | theShell="`finger $USER | grep Shell: | head -1 | awk '{ print $NF }'`"
14 |
15 | else
16 | theShell="${SHELL}"
17 | fi
18 |
19 | # Make sure the directory ${AENEAS_ROOT}/bin is on the users PATH.
20 | BSH="`basename "${theShell}"`"
21 | case "${BSH}" in
22 | bash|ksh|sh|*csh|zsh)
23 | if [ `id -ur` = 0 ]; then
24 | P=`su - ${USER} -c 'echo A-X-4-X@@$PATH@@X-4-X-A' | grep 'A-X-4-X@@.*@@X-4-X-A' | sed -e 's/^A-X-4-X@@//g' -e 's/@@X-4-X-A$//g'`
25 | else
26 | P="`(exec -l ${theShell} -c 'echo $PATH')`"
27 | fi
28 | ;;
29 | *)
30 | echo "Sorry, I don't know how to patch $BSH shells"
31 | exit 0
32 | ;;
33 | esac
34 |
35 | # Now ensure that our bin directory is on $P and before /usr/bin at that
36 | for elem in `echo $P | tr ':' ' '`
37 | do
38 | if [ "${elem}" = "${AENEAS_ROOT}/bin" ]; then
39 | echo "All right, you're a aeneas lover already"
40 | exit 0
41 | elif [ "${elem}" = "/usr/bin" ]; then
42 | break
43 | fi
44 | done
45 |
46 | echo "${AENEAS_ROOT}/bin is not on your PATH or at least not early enough"
47 | case "${BSH}" in
48 | *csh)
49 | if [ -f "${HOME}/.tcshrc" ]; then
50 | RC="${HOME}/.tcshrc"
51 | else
52 | RC="${HOME}/.cshrc"
53 | fi
54 | # Create backup copy before patching
55 | if [ -f "${RC}" ]; then
56 | cp -fp "${RC}" "${RC}.pysave"
57 | fi
58 | echo "" >> "${RC}"
59 | echo "# Setting PATH for aeneas ${AENEAS_VER}" >> "${RC}"
60 | echo "# The original version is saved in .cshrc.pysave" >> "${RC}"
61 | echo "set path=(${AENEAS_ROOT}/sbin "'$path'")" >> "${RC}"
62 | echo "set path=(${AENEAS_ROOT}/bin "'$path'")" >> "${RC}"
63 | if [ `id -ur` = 0 ]; then
64 | chown "${USER}" "${RC}"
65 | fi
66 | exit 0
67 | ;;
68 | bash)
69 | if [ -e "${HOME}/.bash_profile" ]; then
70 | PR="${HOME}/.bash_profile"
71 | elif [ -e "${HOME}/.bash_login" ]; then
72 | PR="${HOME}/.bash_login"
73 | elif [ -e "${HOME}/.profile" ]; then
74 | PR="${HOME}/.profile"
75 | else
76 | PR="${HOME}/.bash_profile"
77 | fi
78 | ;;
79 | zsh)
80 | PR="${HOME}/.zprofile"
81 | ;;
82 | *sh)
83 | PR="${HOME}/.profile"
84 | ;;
85 | esac
86 |
87 | # Create backup copy before patching
88 | if [ -f "${PR}" ]; then
89 | cp -fp "${PR}" "${PR}.pysave"
90 | fi
91 | echo "" >> "${PR}"
92 | echo "# Setting PATH for aeneas ${AENEAS_VER}" >> "${PR}"
93 | echo "# The original version is saved in `basename ${PR}`.pysave" >> "${PR}"
94 | echo 'PATH="'"${AENEAS_ROOT}/sbin"':${PATH}"' >> "${PR}"
95 | echo 'PATH="'"${AENEAS_ROOT}/bin"':${PATH}"' >> "${PR}"
96 | echo 'export PATH' >> "${PR}"
97 | if [ `id -ur` = 0 ]; then
98 | chown "${USER}" "${PR}"
99 | fi
100 | exit 0
101 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_aeneas:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"
4 |
5 | if [ ! -f $HOME/.bash_profile ]; then
6 | touch $HOME/.bash_profile
7 | /bin/chmod 0700 $HOME/.bash_profile
8 | /usr/sbin/chown $USER $HOME/.bash_profile
9 | if [ -f $HOME/.profile ]; then
10 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
11 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
12 | fi
13 | fi
14 | fi
15 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
16 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
17 | fi
18 | if [ ! -f $HOME/.zshenv ]; then
19 | touch $HOME/.zshenv
20 | /bin/chmod 0700 $HOME/.zshenv
21 | /usr/sbin/chown $USER $HOME/.zshenv
22 | fi
23 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
24 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
25 | fi
26 |
27 | python3 -m pip install -U @PREFIX@/share/aeneas_tools/aeneas-*.whl
28 |
29 | osascript <> $HOME/.bash_profile
12 | fi
13 | fi
14 | fi
15 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
16 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
17 | fi
18 | if [ ! -f $HOME/.zshenv ]; then
19 | touch $HOME/.zshenv
20 | /bin/chmod 0700 $HOME/.zshenv
21 | /usr/sbin/chown $USER $HOME/.zshenv
22 | fi
23 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
24 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
25 | fi
26 |
27 | python3 -m pip install -U @PREFIX@/share/aeneas_tools/bs4-*.whl
28 | python3 -m pip install -U @PREFIX@/share/aeneas_tools/soupsieve-*.whl
29 |
30 | exit 0
31 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_espeak:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | if [ ! -f $HOME/.bash_profile ]; then
3 | touch $HOME/.bash_profile
4 | /bin/chmod 0700 $HOME/.bash_profile
5 | /usr/sbin/chown $USER $HOME/.bash_profile
6 | if [ -f $HOME/.profile ]; then
7 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
8 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
9 | fi
10 | fi
11 | fi
12 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
13 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
14 | fi
15 | if [ ! -f $HOME/.zshenv ]; then
16 | touch $HOME/.zshenv
17 | /bin/chmod 0700 $HOME/.zshenv
18 | /usr/sbin/chown $USER $HOME/.zshenv
19 | fi
20 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
21 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
22 | fi
23 | exit 0
24 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_ffmpeg:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | if [ ! -f $HOME/.bash_profile ]; then
3 | touch $HOME/.bash_profile
4 | /bin/chmod 0700 $HOME/.bash_profile
5 | /usr/sbin/chown $USER $HOME/.bash_profile
6 | if [ -f $HOME/.profile ]; then
7 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
8 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
9 | fi
10 | fi
11 | fi
12 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
13 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
14 | fi
15 | if [ ! -f $HOME/.zshenv ]; then
16 | touch $HOME/.zshenv
17 | /bin/chmod 0700 $HOME/.zshenv
18 | /usr/sbin/chown $USER $HOME/.zshenv
19 | fi
20 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
21 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
22 | fi
23 | exit 0
24 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_lxml:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"
4 |
5 | if [ ! -f $HOME/.bash_profile ]; then
6 | touch $HOME/.bash_profile
7 | /bin/chmod 0700 $HOME/.bash_profile
8 | /usr/sbin/chown $USER $HOME/.bash_profile
9 | if [ -f $HOME/.profile ]; then
10 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
11 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
12 | fi
13 | fi
14 | fi
15 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
16 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
17 | fi
18 | if [ ! -f $HOME/.zshenv ]; then
19 | touch $HOME/.zshenv
20 | /bin/chmod 0700 $HOME/.zshenv
21 | /usr/sbin/chown $USER $HOME/.zshenv
22 | fi
23 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
24 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
25 | fi
26 |
27 | python3 -m pip install -U @PREFIX@/share/aeneas_tools/lxml-*.whl
28 |
29 | exit 0
30 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_numpy:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"
4 |
5 | if [ ! -f $HOME/.bash_profile ]; then
6 | touch $HOME/.bash_profile
7 | /bin/chmod 0700 $HOME/.bash_profile
8 | /usr/sbin/chown $USER $HOME/.bash_profile
9 | if [ -f $HOME/.profile ]; then
10 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
11 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
12 | fi
13 | fi
14 | fi
15 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
16 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
17 | fi
18 | if [ ! -f $HOME/.zshenv ]; then
19 | touch $HOME/.zshenv
20 | /bin/chmod 0700 $HOME/.zshenv
21 | /usr/sbin/chown $USER $HOME/.zshenv
22 | fi
23 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
24 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
25 | fi
26 |
27 | python3 -m pip install -U @PREFIX@/share/aeneas_tools/numpy-*.whl
28 |
29 | exit 0
30 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/postinstall-scripts/postinstall_python:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | if [ ! -f $HOME/.bash_profile ]; then
3 | touch $HOME/.bash_profile
4 | /bin/chmod 0700 $HOME/.bash_profile
5 | /usr/sbin/chown $USER $HOME/.bash_profile
6 | if [ -f $HOME/.profile ]; then
7 | if [ ! -n "$(/usr/bin/grep '. ~/.profile' $HOME/.bash_profile)" ]; then
8 | echo '[ -r ~/.profile ] && . ~/.profile' >> $HOME/.bash_profile
9 | fi
10 | fi
11 | fi
12 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.bash_profile)" ]; then
13 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.bash_profile
14 | fi
15 | if [ ! -f $HOME/.zshenv ]; then
16 | touch $HOME/.zshenv
17 | /bin/chmod 0700 $HOME/.zshenv
18 | /usr/sbin/chown $USER $HOME/.zshenv
19 | fi
20 | if [ ! -n "$(/usr/bin/grep '^export PATH="@PREFIX@/bin:@PREFIX@/sbin:' $HOME/.zshenv)" ]; then
21 | echo 'export PATH="@PREFIX@/bin:@PREFIX@/sbin:$PATH"' >> $HOME/.zshenv
22 | fi
23 |
24 | python3 -m ensurepip
25 |
26 | exit 0
27 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/resign_packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | IFS=$'\n'
4 |
5 | source ./build_env.sh
6 |
7 | cd $CURDIR
8 |
9 | echo -e "\n\nBegining package signing\n\n"
10 |
11 | mkdir -p ./aeneas-mac-installer-packages
12 | mkdir -p ./python-wheels
13 |
14 | bash ./sign_espeak_package.sh
15 | bash ./sign_ffmpeg_package.sh
16 | bash ./sign_python_package.sh
17 | bash ./sign_aeneas_package.sh
18 |
19 | echo -e "\n\nNow run build_installer.sh\n\n"
20 |
21 | exit 0
22 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/sign_aeneas_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | IFS=$'\n'
4 |
5 | source ./build_env.sh
6 |
7 | CURDIR=`pwd`
8 | cd "$CURDIR"
9 |
10 | AENEAS_FILE=$(basename `ls -1 python-wheels/aeneas-$AENEAS_VER*.whl`)
11 | if [ -f "python-wheels/$AENEAS_FILE" ]; then
12 | BUILDTMP="$(mktemp -d -t aeneas.tmp.XXXXXXXX)"
13 | cd "$CURDIR"
14 | unzip python-wheels/$AENEAS_FILE -d $BUILDTMP/$AENEAS_FILE
15 | cd "$BUILDTMP"
16 | for file in `find $AENEAS_FILE -type f -not -path "*/espeak-ng-data/*" | perl -lne 'print if -B'`; do
17 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
18 | done
19 | cd $AENEAS_FILE
20 | zip -r "$CURDIR/$AENEAS_FILE" .
21 | cd "$CURDIR"
22 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
23 | cp -v aeneas-$AENEAS_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
24 | mv -v aeneas-$AENEAS_VER*.whl python-wheels/
25 | mkdir -p $BUILDTMP/Scripts/
26 | cat postinstall-scripts/postinstall_aeneas | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
27 | chmod +x $BUILDTMP/Scripts/postinstall
28 | pkgbuild --identifier "org.python.python.aeneas" --version "$AENEAS_VER" --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "aeneas-$AENEAS_VER.pkg"
29 | [ $? = 0 ] || exit 1
30 | productsign --timestamp --sign "Developer ID Installer" aeneas-$AENEAS_VER.pkg aeneas-mac-installer-packages/aeneas-$AENEAS_VER.pkg
31 | rm -rf $BUILDTMP
32 | else
33 | echo "Found aeneas-$AENEAS_VER.pkg"
34 | fi
35 | cd $CURDIR
36 | NUMPY_FILE=$(basename `ls -1 python-wheels/numpy-$NUMPY_VER*.whl`)
37 | if [ -f "python-wheels/$NUMPY_FILE" ]; then
38 | BUILDTMP="$(mktemp -d -t numpy.tmp.XXXXXXXX)"
39 | cd "$CURDIR"
40 | unzip python-wheels/$NUMPY_FILE -d $BUILDTMP/$NUMPY_FILE
41 | cd "$BUILDTMP"
42 | for file in `find $NUMPY_FILE -type f | perl -lne 'print if -B'`; do
43 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
44 | done
45 | cd $NUMPY_FILE
46 | zip -r "$CURDIR/$NUMPY_FILE" .
47 | cd "$CURDIR"
48 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
49 | cp -v numpy-$NUMPY_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
50 | mv -v numpy-$NUMPY_VER*.whl python-wheels/
51 | mkdir -p $BUILDTMP/Scripts/
52 | cat postinstall-scripts/postinstall_numpy | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
53 | chmod +x $BUILDTMP/Scripts/postinstall
54 | pkgbuild --identifier "org.python.python.numpy" --version "$NUMPY_VER" --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "numpy-$NUMPY_VER.pkg"
55 | [ $? = 0 ] || exit 1
56 | productsign --timestamp --sign "Developer ID Installer" numpy-$NUMPY_VER.pkg aeneas-mac-installer-packages/numpy-$NUMPY_VER.pkg
57 | rm -rf $BUILDTMP
58 | else
59 | echo "Found numpy-$NUMPY_VER.pkg"
60 | fi
61 | cd $CURDIR
62 | LXML_FILE=$(basename `ls -1 python-wheels/lxml-$LXML_VER*.whl`)
63 | if [ -f "python-wheels/$LXML_FILE" ]; then
64 | BUILDTMP="$(mktemp -d -t lxml.tmp.XXXXXXXX)"
65 | cd "$CURDIR"
66 | unzip python-wheels/$LXML_FILE -d $BUILDTMP/$LXML_FILE
67 | cd "$BUILDTMP"
68 | for file in `find $LXML_FILE -type f | perl -lne 'print if -B'`; do
69 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
70 | done
71 | cd $LXML_FILE
72 | zip -r "$CURDIR/$LXML_FILE" .
73 | cd "$CURDIR"
74 | mkdir -p $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
75 | cp -v lxml-$LXML_VER*.whl $BUILDTMP/Payload/opt/usr/share/aeneas_tools/
76 | mv -v lxml-$LXML_VER*.whl python-wheels/
77 | mkdir -p $BUILDTMP/Scripts/
78 | cat postinstall-scripts/postinstall_lxml | sed 's#@PREFIX@#/opt/usr#g' > $BUILDTMP/Scripts/postinstall
79 | chmod +x $BUILDTMP/Scripts/postinstall
80 | pkgbuild --identifier "org.python.python.lxml" --version "$LXML_VER" --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "lxml-$LXML_VER.pkg"
81 | [ $? = 0 ] || exit 1
82 | productsign --timestamp --sign "Developer ID Installer" lxml-$LXML_VER.pkg aeneas-mac-installer-packages/lxml-$LXML_VER.pkg
83 | rm -rf $BUILDTMP
84 | else
85 | echo "Found lxml-$LXML_VER.pkg"
86 | fi
87 |
88 | cd $CURDIR
89 |
90 | #echo -e "\n\nNow run build_installer.sh\n\n"
91 |
92 | exit 0
93 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/sign_espeak_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | IFS=$'\n'
4 |
5 | source ./build_env.sh
6 |
7 | CURDIR=`pwd`
8 | cd "$CURDIR"
9 |
10 | if [ -f "aeneas-mac-installer-packages/espeak-ng-$ESPEAK_VER.pkg" ]; then
11 | BUILDTMP="$(mktemp -d -t espeak.build.XXXXXXXX)"
12 | pkgutil --expand-full aeneas-mac-installer-packages/espeak-ng-$ESPEAK_VER.pkg $BUILDTMP/espeak-ng-$ESPEAK_VER.pkg
13 | BUILDTMP="$BUILDTMP/espeak-ng-$ESPEAK_VER.pkg"
14 | cd "$BUILDTMP"
15 | for file in `find $BUILDTMP/Payload -type f | perl -lne 'print if -B'`; do
16 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
17 | done
18 | cd "$CURDIR"
19 | pkgbuild --prior aeneas-mac-installer-packages/espeak-ng-$ESPEAK_VER.pkg --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "espeak-ng-$ESPEAK_VER.pkg"
20 | [ $? = 0 ] || exit 1
21 | productsign --timestamp --sign "Developer ID Installer" espeak-ng-$ESPEAK_VER.pkg aeneas-mac-installer-packages/espeak-ng-$ESPEAK_VER.pkg
22 | rm -rf $BUILDTMP
23 | else
24 | echo "Found espeak-ng-$ESPEAK_VER.pkg"
25 | fi
26 |
27 | cd $CURDIR
28 |
29 | #echo -e "\n\nNow run build_installer.sh\n\n"
30 |
31 | exit 0
32 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/sign_ffmpeg_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | IFS=$'\n'
4 |
5 | source ./build_env.sh
6 |
7 | CURDIR=`pwd`
8 | cd "$CURDIR"
9 |
10 | if [ -f "aeneas-mac-installer-packages/ffmpeg-$FFMPEG_VER.pkg" ]; then
11 | BUILDTMP="$(mktemp -d -t ffmpeg.tmp.XXXXXXXX)"
12 | pkgutil --expand-full aeneas-mac-installer-packages/ffmpeg-$FFMPEG_VER.pkg $BUILDTMP/ffmpeg-$FFMPEG_VER.pkg
13 | BUILDTMP="$BUILDTMP/ffmpeg-$FFMPEG_VER.pkg"
14 | cd "$BUILDTMP"
15 | for file in `find $BUILDTMP/Payload -type f | perl -lne 'print if -B'`; do
16 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
17 | done
18 | cd "$CURDIR"
19 | pkgbuild --prior aeneas-mac-installer-packages/ffmpeg-$FFMPEG_VER.pkg --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "ffmpeg-$FFMPEG_VER.pkg"
20 | [ $? = 0 ] || exit 1
21 | productsign --timestamp --sign "Developer ID Installer" ffmpeg-$FFMPEG_VER.pkg aeneas-mac-installer-packages/ffmpeg-$FFMPEG_VER.pkg
22 | rm -rf $BUILDTMP
23 | else
24 | echo "Found ffmpeg-$FFMPEG_VER.pkg"
25 | fi
26 |
27 | cd $CURDIR
28 |
29 | #echo -e "\n\nNow run build_installer.sh\n\n"
30 |
31 | exit 0
32 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/sign_packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH=/usr/local/bin:/usr/local/sbin:$PATH
4 |
5 | CURDIR=`dirname $0`
6 | cd $CURDIR
7 |
8 | bash ./sign_espeak_package.sh
9 | bash ./sign_ffmpeg_package.sh
10 | bash ./sign_python_package.sh
11 | bash ./sign_aeneas_package.sh
12 |
13 | cd aeneas-mac-installer-packages
14 | for file in *.pkg; do
15 | xcrun notarytool submit --keychain-profile "notarytool" --wait $file
16 | xcrun stapler staple $file
17 | done
18 |
19 |
--------------------------------------------------------------------------------
/Mac_OSX_Installer/sign_python_package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | IFS=$'\n'
4 |
5 | source ./build_env.sh
6 |
7 | CURDIR=`pwd`
8 | cd "$CURDIR"
9 |
10 | if [ -f "aeneas-mac-installer-packages/python-$PYTHON_VER.pkg" ]; then
11 | BUILDTMP="$(mktemp -d "$TMPDIR"/python.build.XXXXXXXX)"
12 | pkgutil --expand-full aeneas-mac-installer-packages/python-$PYTHON_VER.pkg $BUILDTMP/python-$PYTHON_VER.pkg
13 | BUILDTMP="$BUILDTMP/python-$PYTHON_VER.pkg"
14 | cd "$BUILDTMP"
15 | for file in `find $BUILDTMP/Payload -type f | perl -lne 'print if -B'`; do
16 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime "$file"
17 | done
18 | codesign -s "Developer ID Application" -v --force --entitlements "$CURDIR/entitlements.plist" --deep --options runtime Payload/Library/Frameworks/Python.framework/Versions/3.9/Python
19 | cd "$CURDIR"
20 | pkgbuild --prior aeneas-mac-installer-packages/python-$PYTHON_VER.pkg --root "$BUILDTMP/Payload" --scripts "$BUILDTMP/Scripts" "python-$PYTHON_VER.pkg"
21 | [ $? = 0 ] || exit 1
22 | productsign --timestamp --sign "Developer ID Installer" python-$PYTHON_VER.pkg aeneas-mac-installer-packages/python-$PYTHON_VER.pkg
23 | rm -rf $BUILDTMP
24 | else
25 | echo "Found python-$PYTHON_VER.pkg"
26 | fi
27 |
28 | cd $CURDIR
29 |
30 | #echo -e "\n\nNow run build_installer.sh\n\n"
31 |
32 | exit 0
33 |
--------------------------------------------------------------------------------
/ReadMe.md:
--------------------------------------------------------------------------------
1 | This provides a simple installer for [Aeneas](https://github.com/readbeyond/aeneas) for Mac OS X 10.9 and up, and for MS Windows 8 and up.
2 |
3 | You can download prebuilt installers from the [releases](https://github.com/sillsdev/aeneas-installer/releases) section.
4 |
5 | To build this installer for Mac OS X first download (and extract) or clone this repository.
6 | Then open Terminal and _cd_ to _Mac\_OSX\_Installer_ and follow the Readme.md instructions there.
7 |
8 | Or to build this installer for MS Windows first download (and extract) or clone this repository.
9 | Then open Command Prompt and _cd_ to _MS\_Windows\_Installer_ and follow the Readme.md instructions there.
10 |
--------------------------------------------------------------------------------