1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

Give Inno Setup DA its own folder

This commit is contained in:
James Crook
2019-04-21 21:27:55 +01:00
parent 1b023ee4c1
commit f7f1f5cd86
5 changed files with 366 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
[FromInno]

View File

@@ -0,0 +1,341 @@
; Audacity: A Digital Audio Editor
; Audacity(R) is copyright (c) 1999-2016 Audacity Team.
; License: GPL v2. See License.txt.
;
; audacity.iss
; Vaughan Johnson, Leland Lucius, Martyn Shaw, Richard Ash, & others
;
; This requires that the ISS Preprocessor be installed
#define AppExe "..\release\darkaudacity.exe"
#define AppMajor ""
#define AppMinor ""
#define AppRev ""
#define AppBuild ""
#define FullVersion ParseVersion(AppExe, AppMajor, AppMinor, AppRev, AppBuild)
#define AppVersion Str(AppMajor) + "." + Str(AppMinor) + "." + Str(AppRev)
#define AppName GetStringFileInfo(AppExe, PRODUCT_NAME)
[UninstallRun]
; Uninstall prior installations.
Filename: "{app}\unins*.*";
[Setup]
; compiler-related directives
OutputBaseFilename=darkaudacity-win-{#AppVersion}
WizardImageFile=".\audacity_InnoWizardImage.bmp"
WizardSmallImageFile=".\audacity_InnoWizardSmallImage.bmp"
SolidCompression=yes
; installer-related directives
; From Inno 5.5.7, Inno defaults to disabling the Welcome page as recommended
; by Microsoft's desktop applications guideline, but we don't want to do that.
DisableWelcomePage=no
AppName={#AppName}
AppVerName=DarkAudacity {#AppVersion}
; Specify AppVersion as well, so it appears in the Add/Remove Programs entry.
AppVersion={#AppVersion}
AppPublisher="DarkAudacity Team"
AppPublisherURL=http://www.darkaudacity.com
AppSupportURL=http://www.darkaudacity.com
AppUpdatesURL=http://www.darkaudacity.com
ChangesAssociations=yes
DefaultDirName={pf}\DarkAudacity
VersionInfoProductName={#AppName}
VersionInfoProductTextVersion={#GetFileProductVersion(AppExe)}
VersionInfoDescription={#AppName + " " + AppVersion + " Setup"}
VersionInfoVersion={#GetFileVersion(AppExe)}
VersionInfoCopyright={#GetFileCopyright(AppExe)}
; Don't disable the "Select Destination Location" wizard, even if
; Audacity is already installed.
DisableDirPage=no
; Always warn if dir exists, because we'll overwrite previous Audacity.
DirExistsWarning=yes
DisableProgramGroupPage=yes
UninstallDisplayIcon="{app}\darkaudacity.exe"
; No longer force them to accept the license, just display it. LicenseFile=..\LICENSE.txt
InfoBeforeFile=".\audacity_InnoWizard_InfoBefore.rtf"
InfoAfterFile="..\..\README.txt"
; We no longer produce new ANSI builds.
; As we use Inno Setup (u), the Unicode version, to build this script,
; the MinVersion will automatically be set to what we need.
; We no longer explicitly set it.
; MinVersion=4.0,5.0
; cosmetic-related directives
SetupIconFile="..\darkaudacity.ico"
[INI]
Filename: "{app}\FirstTime.ini"; Section: "FromInno"; Key: "ResetPrefs"; String: "1"; Tasks: resetPrefs;
Filename: "{app}\FirstTime.ini"; Section: "FromInno"; Key: "Language"; String: "{language}"
[Tasks]
Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
Name: resetPrefs; Description: "{cm:ResetPrefs}"; Flags: unchecked
; No longer allow user to choose whether to associate AUP file type with Audacity.
; Name: associate_aup; Description: "&Associate Audacity project files"; GroupDescription: "Other tasks:"; Flags: checkedonce
[Files]
; Prime the first time .ini file so the permissions can be set
Source: ".\FirstTimeModel.ini"; DestDir: "{app}"; DestName: "FirstTime.ini"; Permissions: users-modify
; Don't display in separate window, rather as InfoAfterFile. Source: "..\README.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme
Source: "..\..\README.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#AppExe}"; DestDir: "{app}"; Flags: ignoreversion
; Manual, which should be got from the manual wiki using ..\scripts\mw2html_audacity\wiki2htm.bat
;Source: "..\help\manual\*"; DestDir: "{app}\help\manual\"; Flags: ignoreversion recursesubdirs
Source: "..\..\presets\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
; wxWidgets DLLs. Be specific (not *.dll) so we don't accidentally distribute avformat.dll, for example.
; Don't use the WXWIN environment variable, because...
; 1) Can't get the documented {%WXWIN|default dir} parsing to work.
; 2) Need the DLL's in the release dir for testing, anyway.
Source: "..\release\wxbase311u_net_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxbase311u_xml_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxbase311u_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxmsw311u_adv_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxmsw311u_core_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxmsw311u_html_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\wxmsw311u_qa_vc_custom.dll"; DestDir: "{app}"; Flags: ignoreversion
; MSVC runtime DLLs. Some users can't put these in the system dir, so just put them in the EXE dir.
; It's legal, per http://www.fsf.org/licensing/licenses/gpl-faq.html#WindowsRuntimeAndGPL .
; This is not an ideal solution, but should need the least tech support.
; We'll know we have the right version, don't step on anybody else's older version, and
; it's easy to make the zip (and they match better).
; Copy the two required DLL's from
; "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\"
; or "C:\Program Files\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\"
; according to your system
Source: "..\release\msvcp140.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\release\vcruntime140.dll"; DestDir: "{app}"; Flags: ignoreversion
;Source: "..\release\languages\*"; DestDir: "{app}\Languages\"; Flags: ignoreversion recursesubdirs
; We don't currently ship any modules, so the next line is commented out
; Source: "..\release\modules\*"; DestDir: "{app}\Modules\"; Flags: ignoreversion recursesubdirs skipifsourcedoesntexist
Source: "..\release\nyquist\*"; DestDir: "{app}\Nyquist\"; Flags: ignoreversion recursesubdirs
Source: "..\release\plug-ins\*"; DestDir: "{app}\Plug-Ins\"; Flags: ignoreversion
Source: "..\release\modules\mod-script-pipe.dll"; DestDir: "{app}\modules\"; Flags: ignoreversion
[Icons]
Name: "{commonprograms}\DarkAudacity"; Filename: "{app}\darkaudacity.exe"
Name: "{commondesktop}\DarkAudacity"; Filename: "{app}\darkaudacity.exe"; Tasks: desktopicon
[InstallDelete]
Type: files; Name: "{app}\msvcp120.dll"
Type: files; Name: "{app}\msvcr120.dll"
; Get rid of previous help folder.
Type: filesandordirs; Name: "{app}\help"
; Don't want to do this because user may have stored their own.
; Type: filesandordirs; Name: "{app}\vst"
;Get rid of previous uninstall item
Type: files; Name: "{app}\unins*.*"
; Get rid of old nyquist plugins that we no longer ship
Type: files; Name: "{app}\Plug-Ins\crossfadein.ny"
Type: files; Name: "{app}\Plug-Ins\crossfadeout.ny"
Type: files; Name: "{app}\Plug-Ins\clicktrack.ny"
[Registry]
; No longer allow user to choose whether to associate AUP file type with Audacity.
; Leaving this one commented out example of the old way.
; Root: HKCR; Subkey: ".AUP"; ValueType: string; ValueData: "Audacity.Project"; Flags: createvalueifdoesntexist uninsdeletekey; Tasks: associate_aup
Root: HKCR; Subkey: ".AUP"; ValueType: string; ValueData: "DarkAudacity.Project"; Flags: createvalueifdoesntexist uninsdeletekey;
Root: HKCR; Subkey: "DarkAudacity.Project\OpenWithList\audacity.exe"; Flags: createvalueifdoesntexist uninsdeletekey;
Root: HKCR; Subkey: "DarkAudacity.Project"; ValueType: string; ValueData: "DarkAudacity Project File"; Flags: createvalueifdoesntexist uninsdeletekey;
Root: HKCR; Subkey: "DarkAudacity.Project\shell"; ValueType: string; ValueData: ""; Flags: createvalueifdoesntexist uninsdeletekey;
Root: HKCR; Subkey: "DarkAudacity.Project\shell\open"; Flags: createvalueifdoesntexist uninsdeletekey;
Root: HKCR; Subkey: "DarkAudacity.Project\shell\open\command"; ValueType: string; ValueData: """{app}\audacity.exe"" ""%1"""; Flags: createvalueifdoesntexist uninsdeletekey;
;The following would allow a following 'help' installer to know where to put the 'help' files.
;Root: HKCR; Subkey: "Audacity.Project\Path"; ValueType: string; ValueData: {app}; Flags: createvalueifdoesntexist uninsdeletekey;
[Run]
Filename: "{app}\darkaudacity.exe"; Description: "{cm:LaunchProgram,DarkAudacity}"; Flags: nowait postinstall skipifsilent
[Languages]
; NOTE: "0" in locale name will be translated to "@" when read by Audacity.
; Create subdirectories where we'll store the unofficial and dummy translation files
{#expr Exec("cmd", "/c mkdir """ + CompilerPath + "Languages\dummy""", , , SW_HIDE), \
Exec("cmd", "/c mkdir """ + CompilerPath + "Languages\unofficial""", , , SW_HIDE)}
; Download Additional Inno Setup translations from:
;
; http://www.jrsoftware.org/files/istrans/
;
; Set this to the base of the unofficial Inno Setup translations
#define UrlBase "http://raw.github.com/jrsoftware/issrc/master/Files/Languages/Unofficial/"
; This macro will use the Windows PowerShell to download the given translation into
; the Inno Setup Languages folder if it hasn't already been downloaded.
; (Sorry, it's not a quick process, but it only happens once.)
#define Get(URL) \
Local[0] = "Languages\unofficial\" + Copy(URL, RPos("/", URL) + 1), \
Local[1] = (FileExists(CompilerPath + Local[0]) \
? "alreadyexists" \
: Exec("powershell", "echo 'Downloading: " + URL + "'; $wc = new-object System.Net.WebClient; $wc.DownloadFile('" + URLBase + URL + "', '" + Local[0] + "')", , , SW_NORMAL)), \
"compiler:" + Local[0]
; This macro will define a dummy translation based on the Defaults.isl
#define Dummy(NAME, ID) \
Local[0] = "Languages\dummy\", \
Local[1] = Local[0] + NAME + ".isl", \
Local[2] = CompilerPath + Local[1], \
Local[3] = (FileExists(Local[2]) \
? "alreadyexists" \
: (CopyFile(CompilerPath + "Default.isl", Local[2]), \
WriteIni(Local[2], "LangOptions", "LanguageName", NAME), \
WriteIni(Local[2], "LangOptions", "LanguageID", "$" + ID))), \
"compiler:" + Local[1]
;Name: "af"; MessagesFile: "{#Get('Afrikaans.isl')}"
;Name: "ar"; MessagesFile: "{#Get('Arabic.isl')}"
;Name: "be"; MessagesFile: "{#Get('Belarusian.isl')}"
;Name: "bg"; MessagesFile: "{#Get('Bulgarian.isl')}"
;Name: "bn"; MessagesFile: "{#Get('Bengali.islu')}"
;Name: "bs"; MessagesFile: "{#Get('Bosnian.isl')}"
;Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl"
;Name: "ca_ES0valencia"; MessagesFile: "{#Get('Valencian.isl')}"
;Name: "co"; MessagesFile: "compiler:Languages\Corsican.isl"
;Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl"
;Name: "cy"; MessagesFile: "{#Dummy('Welsh', '0452')}"
;Name: "da"; MessagesFile: "compiler:Languages\Danish.isl"
;Name: "de"; MessagesFile: "compiler:Languages\German.isl"
;Name: "el"; MessagesFile: "compiler:Languages\Greek.isl"
Name: "en"; MessagesFile: "compiler:Default.isl"
;Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"
;Name: "eu"; MessagesFile: "{#Get('Basque.isl')}"
;Name: "fa"; MessagesFile: "{#Get('Farsi.isl')}"
;Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl"
;Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
;Name: "ga"; MessagesFile: "{#Dummy('Gaeilge', '083C')}"
;Name: "gl"; MessagesFile: "{#Get('Galician.isl')}"
;Name: "he"; MessagesFile: "compiler:Languages\Hebrew.isl"
;Name: "hi"; MessagesFile: "{#Get('Hindi.islu')}"
;Name: "hr"; MessagesFile: "{#Get('Croatian.isl')}"
;Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl"
;Name: "hy"; MessagesFile: "compiler:Languages\Armenian.islu"
;Name: "id"; MessagesFile: "{#Get('Indonesian.isl')}"
;Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
;Name: "ja"; MessagesFile: "compiler:Languages\Japanese.isl"
;Name: "ka"; MessagesFile: "{#Get('Georgian.islu')}"
;Name: "km"; MessagesFile: "{#Dummy('Khmer', '0409')}"
;Name: "ko"; MessagesFile: "{#Dummy('Korean', '0412')}"
;Name: "lt"; MessagesFile: "{#Get('Lithuanian.isl')}"
;Name: "mk"; MessagesFile: "{#Get('Macedonian.isl')}"
;Name: "my"; MessagesFile: "{#Dummy('Burmese', '0409')}"
;Name: "nb"; MessagesFile: "compiler:Languages\Norwegian.isl"
;Name: "ne"; MessagesFile: "compiler:Languages\Nepali.islu"
;Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
;Name: "oc"; MessagesFile: "{#Get('Occitan.isl')}"
;Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl"
;Name: "pt_PT"; MessagesFile: "compiler:Languages\Portuguese.isl"
;Name: "pt_BR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
;Name: "ro"; MessagesFile: "{#Get('Romanian.isl')}"
;Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
;Name: "sk"; MessagesFile: "{#Get('Slovak.isl')}"
;Name: "sl"; MessagesFile: "compiler:Languages\Slovenian.isl"
;Name: "sr_RS"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl"
;Name: "sr_RS0latin"; MessagesFile: "compiler:Languages\SerbianLatin.isl"
;Name: "sv"; MessagesFile: "{#Get('Swedish.isl')}"
;Name: "ta"; MessagesFile: "{#Dummy('Tamil', '0449')}"
;Name: "tg"; MessagesFile: "{#Dummy('Tajik', '0428')}"
;Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl"
;Name: "uk"; MessagesFile: "compiler:Languages\Ukrainian.isl"
;Name: "vi"; MessagesFile: "{#Get('Vietnamese.islu')}"
;Name: "zh_CN"; MessagesFile: "{#Get('ChineseSimplified.isl')}"
;Name: "zh_TW"; MessagesFile: "{#Get('ChineseTraditional.isl')}"
; To include additional translations add it to the win/InnoSetupLanguages directory.
; The filename must be the locale name and the ".isl" extension. For example, "af.isl"
; would have the "Afrikaans" translation.
; Pull in additional translations from the win/InnoSetupLanguages directory
#define FindHandle
#define FindResult
#sub AddLanguage
#define FileName FindGetFileName(FindHandle)
#define LangCode Local[0] = Copy(FileName, 1, Pos(".", FileName) - 1)
Name: {#LangCode}; MessagesFile: "InnoSetupLanguages\{#FileName}"
#endsub
#for {FindHandle = FindResult = FindFirst("InnoSetupLanguages\*.isl", 0); FindResult; FindResult = FindNext(FindHandle)} AddLanguage
#if FindHandle
#expr FindClose(FindHandle)
#endif
; These could be included from a different file to make it easier to update...
[CustomMessages]
;af.ResetPrefs=Reset Preferences
;ar.ResetPrefs=Reset Preferences
;be.ResetPrefs=Reset Preferences
;bg.ResetPrefs=Да се нулират ли настройките?
;bn.ResetPrefs=Reset Preferences
;bs.ResetPrefs=Reset Preferences
;ca.ResetPrefs=Voleu restablir les preferències?
;ca_ES0valencia.ResetPrefs=Reset Preferences
;co.ResetPrefs=Reset Preferences
;cs.ResetPrefs=Vynulovat nastavení?
;cy.ResetPrefs=Reset Preferences
;da.ResetPrefs=Gendan indstillinger?
;de.ResetPrefs=Einstellungen zurücksetzen?
;el.ResetPrefs=Επαναφορά προτιμήσεων;
en.ResetPrefs=Reset Preferences
;es.ResetPrefs=¿Desea restablecer las preferencias?
;eu.ResetPrefs=Berrezarri Hobespenak?
;fa.ResetPrefs=Reset Preferences
;fi.ResetPrefs=Reset Preferences
;fr.ResetPrefs=Réinitialiser les préférences ?
;ga.ResetPrefs=Reset Preferences
;gl.ResetPrefs=Restabelecer as preferencias?
;he.ResetPrefs=?אתה רוצה לשחזר העדפות
;hi.ResetPrefs=वरीयताएँ रीसेट करें?
;hr.ResetPrefs=Resetirati Postavke?
;hu.ResetPrefs=Alapra állítja a beállításokat?
;hy.ResetPrefs=Վերափոխե՞լ կարգավորումները:
;id.ResetPrefs=Reset Preferences
;it.ResetPrefs=Ripristino Preferenze?
;ja.ResetPrefs=設定をリセットする
;ka.ResetPrefs=Reset Preferences
;km.ResetPrefs=Reset Preferences
;ko.ResetPrefs=기본 설정을 재설정하시겠습니까?
;lt.ResetPrefs=Reset Preferences
;mk.ResetPrefs=Reset Preferences
;my.ResetPrefs=Reset Preferences
;nb.ResetPrefs=Reset Preferences
;ne.ResetPrefs=Reset Preferences
;nl.ResetPrefs=Voorkeuren herstellen?
;oc.ResetPrefs=Reset Preferences
;pl.ResetPrefs=Zresetować ustawienia?
;pt_PT.ResetPrefs=Reconfigurar as Preferências?
;pt_BR.ResetPrefs=Repor Preferências?
;ro.ResetPrefs=Reset Preferences
;ru.ResetPrefs=Сбросить Параметры?
;sk.ResetPrefs=Obnoviť nastavenia?
;sl.ResetPrefs=Želite ponastaviti možnosti?
;sr_RS.ResetPrefs=Да вратим на старе поставке?
;sr_RS0latin.ResetPrefs=Da vratim na stare postavke?
;sv.ResetPrefs=Återställ inställningar?
;ta.ResetPrefs="விருப்பங்களை மீட்டமைக்க?
;tg.ResetPrefs=Reset Preferences
;tr.ResetPrefs=Ayarlar Sıfırlansın mı?
;uk.ResetPrefs=Відновити початкові значення параметрів?
;vi.ResetPrefs=Reset Preferences
;zh_CN.ResetPrefs=重置偏好设置
;zh_TW.ResetPrefs=重置偏好設定

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,23 @@
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f16\fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
{\f17\froman\fcharset238\fprq2 Times New Roman CE;}{\f18\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f20\froman\fcharset161\fprq2 Times New Roman Greek;}{\f21\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f22\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f113\fswiss\fcharset238\fprq2 Calibri CE;}{\f114\fswiss\fcharset204\fprq2 Calibri Cyr;}{\f116\fswiss\fcharset161\fprq2 Calibri Greek;}{\f117\fswiss\fcharset162\fprq2 Calibri Tur;}
{\f118\fswiss\fcharset186\fprq2 Calibri Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar\widctlpar\adjustright \fs20\lang2057\cgrid
\snext0 Normal;}{\*\cs10 \additive Default Paragraph Font;}}{\info{\author James}{\operator James}{\creatim\yr2016\mo8\dy23\hr14\min45}{\revtim\yr2016\mo8\dy23\hr14\min50}{\version2}{\edmins5}{\nofpages1}{\nofwords102}{\nofchars583}{\*\company Catalase}
{\nofcharsws715}{\vern71}}\widowctrl\ftnbj\aenddoc\hyphcaps0\viewkind4\viewscale200 \fet0\sectd \linex0\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3
\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}
{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \nowidctlpar\adjustright
\fs20\lang2057\cgrid {\b\f16\cgrid0 DarkAudacity is free, open source software for recording and editing sounds.}{\f16\cgrid0 It is currently available for Microsoft Windows only.
\par
\par }{\b\f16\cgrid0 License}{\f16\cgrid0 : DarkAudacity is }{\field{\*\fldinst {\f16\cgrid0 HYPERLINK "http://manual.audacityteam.org/man/faq_about_audacity.html#free" }{\f16\cgrid0 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b020000000b000000e0c9ea79f9bace118c8200aa004ba90b8e00000068007400740070003a002f002f006d0061006e00750061006c002e00610075006400610063006900740079007400650061006d002e006f00720067002f006d0061006e002f006600610071005f0061006200
6f00750074005f00610075006400610063006900740079002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab00030500000066007200650065000000}}}{\fldrslt {\f16\ul\cf2\cgrid0 free software}}}{\f16\cgrid0
. You may use it for any personal, commercial or educational purpose, including installing it on as many different computers as you wish. We use the }{\field{\*\fldinst {\f16\cgrid0 HYPERLINK "http://www.gnu.org/licenses/licenses.html" \\\\l "GPL" }{
\f16\cgrid0 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c00000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006c006900630065006e007300650073002e00680074006d006c00
0000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\f16\ul\cf2\cgrid0 GNU General Public License (GPL)}}}{\f16\cgrid0 , }{\field{\*\fldinst {\f16\cgrid0 HYPERLINK "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" }{\f16\cgrid0
{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8400000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064002d006c006900630065006e007300650073002f00
670070006c002d0032002e0030002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\f16\ul\cf2\cgrid0 version 2}}}{\f16\cgrid0 . This means, for example, that source code of DarkAudacity and of
any modifications to it must be made freely available too.
\par }}