From 17e2c0bdf61b16ab43b7b1fc42c9e6233e77371e Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Tue, 16 Nov 2021 17:22:08 +0000 Subject: [PATCH 1/7] Add flags to devices command --- .gitignore | 2 ++ .idea/.gitignore | 8 ++++++++ commands/devices/Entry.go | 29 ++++++++++++++++++----------- commands/devices/Structs.go | 28 ++++++++++++++++++++++++---- 4 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 .idea/.gitignore diff --git a/.gitignore b/.gitignore index 9a2f2cb..1684d6b 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ github.com .idea/codeStyles/codeStyleConfig.xml + +build diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/commands/devices/Entry.go b/commands/devices/Entry.go index 476561e..b8997e8 100644 --- a/commands/devices/Entry.go +++ b/commands/devices/Entry.go @@ -21,9 +21,10 @@ along with this program. If not, see . package devices import ( + "flag" "github.com/bandev/lux/api/general" "github.com/bandev/lux/api/keymanager" - "github.com/fatih/color" + "os" ) // Entry function is the entry point for @@ -32,9 +33,17 @@ func Entry(args []string) { // If lux is not setup, throw an error if !keymanager.PrintLuxHasAPIKey() { return } - // Determine the command the user wants - var command string - if len(args) > 2 { command = args[2] } else { command = "simple" } + // Use flags package to parse flags + // provided to the sub command + devicesCmd := flag.NewFlagSet("devices",flag.ExitOnError) + expert := devicesCmd.Bool("expert", false, "show more technical device details") + limit := devicesCmd.Int("limit", 0, "add a limit to the number of devices shown") + + // Parse flags & handle errors + err := devicesCmd.Parse(os.Args[2:]) + if err != nil { + return + } // Create a new connection struct var c general.Connection @@ -45,12 +54,10 @@ func Entry(args []string) { var devices Devices devices.Get(c) - // Device on the command to run - if command == "complex" { - devices.ComplexList() - }else if command == "simple" { - devices.SimpleList() - }else { - general.PrintHeading("Unknown command '" + command + "' for devices", color.FgRed) + // Decide on the command to run + if *expert { + devices.ComplexList(*limit) + } else { + devices.SimpleList(*limit) } } \ No newline at end of file diff --git a/commands/devices/Structs.go b/commands/devices/Structs.go index 98bd283..049df82 100644 --- a/commands/devices/Structs.go +++ b/commands/devices/Structs.go @@ -71,8 +71,18 @@ func (d *Devices) Get(c general.Connection) { // the terminal, the list includes the name, // model and if the device is controllable or // not by this app. -func (d *Devices) SimpleList() { - for i := 0; i < len(d.Data.Devices); i++ { +func (d *Devices) SimpleList(limit int) { + + var iterations int + var devices = len(d.Data.Devices) + + if limit != 0 && limit <= devices { + iterations = limit + } else { + iterations = devices + } + + for i := 0; i < iterations; i++ { var device = d.Data.Devices[i] general.PrintHeading("DEVICE " + strconv.Itoa(i), color.FgWhite) general.PrintStringParagraph("Name:", device.Name, color.FgWhite) @@ -85,8 +95,18 @@ func (d *Devices) SimpleList() { // nice but complex way. It pretty much dumps // everything the app knows about their device // to the console. -func (d *Devices) ComplexList() { - for i := 0; i < len(d.Data.Devices); i++ { +func (d *Devices) ComplexList(limit int) { + + var iterations int + var devices = len(d.Data.Devices) + + if limit != 0 && limit <= devices { + iterations = limit + } else { + iterations = devices + } + + for i := 0; i < iterations; i++ { var device = d.Data.Devices[i] general.PrintHeading("DEVICE " + strconv.Itoa(i), color.FgWhite) general.PrintStringParagraph("MAC Address:", device.MAC, color.FgWhite) From 504023896989cc6ff7e39be33e6d9e4e08275616 Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Tue, 16 Nov 2021 17:59:35 +0000 Subject: [PATCH 2/7] Update build metadata --- api/general/General.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/general/General.go b/api/general/General.go index cb74e79..72c42c6 100644 --- a/api/general/General.go +++ b/api/general/General.go @@ -56,9 +56,9 @@ func HexTo2Places(h string) string { // about Lux // BuildName is the name of the build -const BuildName = "v1.0.0" +const BuildName = "v1.1.0" // BuildNo is the build number -const BuildNo = 0 +const BuildNo = 1 // GHRepo is the repo url const GHRepo = "https://github.com/bandev/lux" // License is the license From 5eb56a4837d14b1c38d686fb7a859f59c2b0521d Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Mon, 22 Nov 2021 17:19:33 +0000 Subject: [PATCH 3/7] Revert "Add flags to devices command" This reverts commit 17e2c0bdf61b16ab43b7b1fc42c9e6233e77371e. --- .gitignore | 2 -- .idea/.gitignore | 8 -------- commands/devices/Entry.go | 29 +++++++++++------------------ commands/devices/Structs.go | 28 ++++------------------------ 4 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 .idea/.gitignore diff --git a/.gitignore b/.gitignore index 1684d6b..9a2f2cb 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,3 @@ github.com .idea/codeStyles/codeStyleConfig.xml - -build diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 73f69e0..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/commands/devices/Entry.go b/commands/devices/Entry.go index b8997e8..476561e 100644 --- a/commands/devices/Entry.go +++ b/commands/devices/Entry.go @@ -21,10 +21,9 @@ along with this program. If not, see . package devices import ( - "flag" "github.com/bandev/lux/api/general" "github.com/bandev/lux/api/keymanager" - "os" + "github.com/fatih/color" ) // Entry function is the entry point for @@ -33,17 +32,9 @@ func Entry(args []string) { // If lux is not setup, throw an error if !keymanager.PrintLuxHasAPIKey() { return } - // Use flags package to parse flags - // provided to the sub command - devicesCmd := flag.NewFlagSet("devices",flag.ExitOnError) - expert := devicesCmd.Bool("expert", false, "show more technical device details") - limit := devicesCmd.Int("limit", 0, "add a limit to the number of devices shown") - - // Parse flags & handle errors - err := devicesCmd.Parse(os.Args[2:]) - if err != nil { - return - } + // Determine the command the user wants + var command string + if len(args) > 2 { command = args[2] } else { command = "simple" } // Create a new connection struct var c general.Connection @@ -54,10 +45,12 @@ func Entry(args []string) { var devices Devices devices.Get(c) - // Decide on the command to run - if *expert { - devices.ComplexList(*limit) - } else { - devices.SimpleList(*limit) + // Device on the command to run + if command == "complex" { + devices.ComplexList() + }else if command == "simple" { + devices.SimpleList() + }else { + general.PrintHeading("Unknown command '" + command + "' for devices", color.FgRed) } } \ No newline at end of file diff --git a/commands/devices/Structs.go b/commands/devices/Structs.go index 049df82..98bd283 100644 --- a/commands/devices/Structs.go +++ b/commands/devices/Structs.go @@ -71,18 +71,8 @@ func (d *Devices) Get(c general.Connection) { // the terminal, the list includes the name, // model and if the device is controllable or // not by this app. -func (d *Devices) SimpleList(limit int) { - - var iterations int - var devices = len(d.Data.Devices) - - if limit != 0 && limit <= devices { - iterations = limit - } else { - iterations = devices - } - - for i := 0; i < iterations; i++ { +func (d *Devices) SimpleList() { + for i := 0; i < len(d.Data.Devices); i++ { var device = d.Data.Devices[i] general.PrintHeading("DEVICE " + strconv.Itoa(i), color.FgWhite) general.PrintStringParagraph("Name:", device.Name, color.FgWhite) @@ -95,18 +85,8 @@ func (d *Devices) SimpleList(limit int) { // nice but complex way. It pretty much dumps // everything the app knows about their device // to the console. -func (d *Devices) ComplexList(limit int) { - - var iterations int - var devices = len(d.Data.Devices) - - if limit != 0 && limit <= devices { - iterations = limit - } else { - iterations = devices - } - - for i := 0; i < iterations; i++ { +func (d *Devices) ComplexList() { + for i := 0; i < len(d.Data.Devices); i++ { var device = d.Data.Devices[i] general.PrintHeading("DEVICE " + strconv.Itoa(i), color.FgWhite) general.PrintStringParagraph("MAC Address:", device.MAC, color.FgWhite) From 4698814fee0cd39689d54d58e3225b316d6b5d12 Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Mon, 22 Nov 2021 19:38:01 +0000 Subject: [PATCH 4/7] Add x86 or x64 bit identifier in build --- .gitignore | 5 +++++ api/general/General.go | 9 +++++++++ commands/help/Entry.go | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9a2f2cb..03526be 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,8 @@ github.com .idea/codeStyles/codeStyleConfig.xml + +# Local dirs for development +installer/ +binaries/ +build/ diff --git a/api/general/General.go b/api/general/General.go index 72c42c6..5e7f52b 100644 --- a/api/general/General.go +++ b/api/general/General.go @@ -66,3 +66,12 @@ const License = "GPL-3.0" // Description is the description const Description = "Lux is a cli for controlling and monitoring Govee lighting strips" +// GetBits returns x64 or x86 depending on the +// installed version +func GetBits() string { + if uint64(^uintptr(0)) == ^uint64(0) { + return "x64" + } + return "x86" +} + diff --git a/commands/help/Entry.go b/commands/help/Entry.go index 549d8e4..ff17cac 100644 --- a/commands/help/Entry.go +++ b/commands/help/Entry.go @@ -43,7 +43,7 @@ func Entry() { general.PrintHeading("ABOUT LUX", color.FgWhite) general.PrintBoolParagraph("logged in", color.FgWhite, keymanager.LuxHasAPIKey()) general.PrintStringParagraph("description", general.Description, color.FgWhite) - general.PrintStringParagraph("build", general.BuildName, color.FgWhite) + general.PrintStringParagraph("build", general.BuildName + " (" + general.GetBits() + ")", color.FgWhite) general.PrintStringParagraph("license", general.License, color.FgWhite) general.PrintStringParagraph("repository", general.GHRepo, color.FgWhite) general.PrintBoolParagraph("up to date", color.FgWhite, general.BuildNo == c.BuildNo) From c868e24186b7cf91aa22adee89596c103e38a139 Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Mon, 22 Nov 2021 20:09:56 +0000 Subject: [PATCH 5/7] Fix outdated bug when running pre-release --- .gitignore | 4 +--- commands/help/Entry.go | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 03526be..8aaf836 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,4 @@ github.com .idea/codeStyles/codeStyleConfig.xml # Local dirs for development -installer/ -binaries/ -build/ +installer/ \ No newline at end of file diff --git a/commands/help/Entry.go b/commands/help/Entry.go index ff17cac..abd9cc8 100644 --- a/commands/help/Entry.go +++ b/commands/help/Entry.go @@ -30,7 +30,7 @@ import ( // the devices module. func Entry() { - // Get latest commands from server + // Get the latest commands from server var c Commands c.Fill() @@ -46,5 +46,5 @@ func Entry() { general.PrintStringParagraph("build", general.BuildName + " (" + general.GetBits() + ")", color.FgWhite) general.PrintStringParagraph("license", general.License, color.FgWhite) general.PrintStringParagraph("repository", general.GHRepo, color.FgWhite) - general.PrintBoolParagraph("up to date", color.FgWhite, general.BuildNo == c.BuildNo) + general.PrintBoolParagraph("up to date", color.FgWhite, general.BuildNo >= c.BuildNo) } \ No newline at end of file From d73cb6a2f204963be414694c0ee8cf669d3bfb98 Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Mon, 22 Nov 2021 20:11:10 +0000 Subject: [PATCH 6/7] Introduce iss setup config files to VCS --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8aaf836..5a07737 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,4 @@ github.com .idea/codeStyles/codeStyleConfig.xml # Local dirs for development -installer/ \ No newline at end of file +build/ \ No newline at end of file From 8f97e87db49be04b49b31dfa3dab9536c4c11105 Mon Sep 17 00:00:00 2001 From: Jack Devey Date: Mon, 22 Nov 2021 20:12:39 +0000 Subject: [PATCH 7/7] Add installer files --- installer/script-x64.iss | 57 ++++ installer/script-x86.iss | 56 ++++ installer/src/LICENSE.txt | 674 ++++++++++++++++++++++++++++++++++++++ installer/src/lux.ico | Bin 0 -> 132505 bytes 4 files changed, 787 insertions(+) create mode 100644 installer/script-x64.iss create mode 100644 installer/script-x86.iss create mode 100644 installer/src/LICENSE.txt create mode 100644 installer/src/lux.ico diff --git a/installer/script-x64.iss b/installer/script-x64.iss new file mode 100644 index 0000000..6bb2185 --- /dev/null +++ b/installer/script-x64.iss @@ -0,0 +1,57 @@ +#define AppName "Lux" +#define Version "1.1.0" +#define Publisher "BanDev" +#define URL "https://bandev.uk/lux" +#define ExeName "lux.exe" + +[Setup] +AppId={{E17378AA-71AA-4EFC-8B09-B9A18F395B2F} +AppName={#Name} +AppVersion={#Version} +AppPublisher={#Publisher} +SetupIconFile=src/lux.ico +UninstallIconFile=src/lux.ico +UninstallDisplayName={#AppName} (x64) +AppPublisherURL={#URL} +DefaultDirName={autopf}\{#AppName} +DisableDirPage=yes +DefaultGroupName={#AppName} +DisableProgramGroupPage=yes +LicenseFile=src/LICENSE.txt +PrivilegesRequired=lowest +OutputDir=/ +OutputBaseFilename=setup-x64 +Compression=lzma +SolidCompression=yes +WizardStyle=modern +ChangesEnvironment=yes +ArchitecturesAllowed=x64 +ArchitecturesInstallIn64BitMode=x64 + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Files] +Source: "src\x64\{#ExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "src\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion + +[Registry] +Root: HKCU; Subkey: "Environment"; \ + ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}"; \ + Check: NeedsAddPath(ExpandConstant('{app}')) + +[Code] +function NeedsAddPath(Param: string): boolean; +var + OrigPath: string; +begin + if not RegQueryStringValue(HKEY_CURRENT_USER, + '\Environment', + 'Path', OrigPath) + then begin + Result := True; + exit; + end; + Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0; +end; + diff --git a/installer/script-x86.iss b/installer/script-x86.iss new file mode 100644 index 0000000..eb41761 --- /dev/null +++ b/installer/script-x86.iss @@ -0,0 +1,56 @@ +#define AppName "Lux" +#define Version "1.1.0" +#define Publisher "BanDev" +#define URL "https://bandev.uk/lux" +#define ExeName "lux.exe" + +[Setup] +AppId={{E17378AA-71AA-4EFC-8B09-B9A18F395B2F} +AppName={#AppName} +AppVersion={#Version} +AppPublisher={#Publisher} +SetupIconFile=src/lux.ico +UninstallIconFile=src/lux.ico +UninstallDisplayName={#AppName} (x86) +AppPublisherURL={#URL} +DefaultDirName={autopf}\{#AppName} +DisableDirPage=yes +DefaultGroupName={#AppName} +DisableProgramGroupPage=yes +LicenseFile=src/LICENSE.txt +PrivilegesRequired=lowest +OutputDir=/ +OutputBaseFilename=setup-x86 +Compression=lzma +SolidCompression=yes +WizardStyle=modern +ChangesEnvironment=yes +ArchitecturesAllowed=x86 x64 + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Files] +Source: "src\x86\{#ExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "src\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion + +[Registry] +Root: HKCU; Subkey: "Environment"; \ + ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}"; \ + Check: NeedsAddPath(ExpandConstant('{app}')) + +[Code] +function NeedsAddPath(Param: string): boolean; +var + OrigPath: string; +begin + if not RegQueryStringValue(HKEY_CURRENT_USER, + '\Environment', + 'Path', OrigPath) + then begin + Result := True; + exit; + end; + Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0; +end; + diff --git a/installer/src/LICENSE.txt b/installer/src/LICENSE.txt new file mode 100644 index 0000000..e72bfdd --- /dev/null +++ b/installer/src/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/installer/src/lux.ico b/installer/src/lux.ico new file mode 100644 index 0000000000000000000000000000000000000000..14b72a09db5720d49415d17975d25f7384e2232f GIT binary patch literal 132505 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 GcmF@_u%2B2 literal 0 HcmV?d00001