|
1 |
| -## Summary |
2 |
| -How do I create packages? See https://docs.chocolatey.org/en-us/create/create-packages |
3 |
| - |
4 |
| -If you are submitting packages to the community feed (https://community.chocolatey.org) |
5 |
| -always try to ensure you have read, understood and adhere to the create |
6 |
| -packages wiki link above. |
7 |
| - |
8 |
| -## Automatic Packaging Updates? |
9 |
| -Consider making this package an automatic package, for the best |
10 |
| -maintainability over time. Read up at https://docs.chocolatey.org/en-us/create/automatic-packages |
11 |
| - |
12 |
| -## Shim Generation |
13 |
| -Any executables you include in the package or download (but don't call |
14 |
| -install against using the built-in functions) will be automatically shimmed. |
15 |
| - |
16 |
| -This means those executables will automatically be included on the path. |
17 |
| -Shim generation runs whether the package is self-contained or uses automation |
18 |
| -scripts. |
19 |
| - |
20 |
| -By default, these are considered console applications. |
21 |
| - |
22 |
| -If the application is a GUI, you should create an empty file next to the exe |
23 |
| -named 'name.exe.gui' e.g. 'bob.exe' would need a file named 'bob.exe.gui'. |
24 |
| -See https://docs.chocolatey.org/en-us/create/create-packages#how-do-i-set-up-shims-for-applications-that-have-a-gui |
25 |
| - |
26 |
| -If you want to ignore the executable, create an empty file next to the exe |
27 |
| -named 'name.exe.ignore' e.g. 'bob.exe' would need a file named |
28 |
| -'bob.exe.ignore'. |
29 |
| -See https://docs.chocolatey.org/en-us/create/create-packages#how-do-i-exclude-executables-from-getting-shims |
30 |
| - |
31 |
| -## Self-Contained? |
32 |
| -If you have a self-contained package, you can remove the automation scripts |
33 |
| -entirely and just include the executables, they will automatically get shimmed, |
34 |
| -which puts them on the path. Ensure you have the legal right to distribute |
35 |
| -the application though. See https://docs.chocolatey.org/en-us/information/legal. |
36 |
| - |
37 |
| -You should read up on the Shim Generation section to familiarize yourself |
38 |
| -on what to do with GUI applications and/or ignoring shims. |
39 |
| - |
40 |
| -## Automation Scripts |
41 |
| -You have a powerful use of Chocolatey, as you are using PowerShell. So you |
42 |
| -can do just about anything you need. Choco has some very handy built-in |
43 |
| -functions that you can use, these are sometimes called the helpers. |
44 |
| - |
45 |
| -### Built-In Functions |
46 |
| -https://docs.chocolatey.org/en-us/create/functions |
47 |
| - |
48 |
| -A note about a couple: |
49 |
| -* Get-ToolsLocation - used to get you the 'tools' root, which by default is set to 'c:\tools', not the chocolateyInstall bin folder - see https://docs.chocolatey.org/en-us/create/functions/get-toolslocation |
50 |
| -* Install-BinFile - used for non-exe files - executables are automatically shimmed... - see https://docs.chocolatey.org/en-us/create/functions/install-binfile |
51 |
| -* Uninstall-BinFile - used for non-exe files - executables are automatically shimmed - see https://docs.chocolatey.org/en-us/create/functions/uninstall-binfile |
52 |
| - |
53 |
| -### Getting package specific information |
54 |
| -Use the package parameters pattern - see https://docs.chocolatey.org/en-us/guides/create/parse-packageparameters-argument |
55 |
| - |
56 |
| -### Need to mount an ISO? |
57 |
| -https://docs.chocolatey.org/en-us/guides/create/mount-an-iso-in-chocolatey-package |
58 |
| - |
59 |
| -### Environment Variables |
60 |
| -Chocolatey makes a number of environment variables available (You can access any of these with $env:TheVariableNameBelow): |
61 |
| - |
62 |
| - * TEMP/TMP - Overridden to the CacheLocation, but may be the same as the original TEMP folder |
63 |
| - * ChocolateyInstall - Top level folder where Chocolatey is installed |
64 |
| - * ChocolateyPackageName - The name of the package, equivalent to the `<id />` field in the nuspec |
65 |
| - * ChocolateyPackageTitle - The title of the package, equivalent to the `<title />` field in the nuspec |
66 |
| - * ChocolateyPackageVersion - The normalized version of the package, equivalent to a normalized edition of the `<version />` field in the nuspec |
67 |
| - * ChocolateyPackageFolder - The top level location of the package folder - the folder where Chocolatey has downloaded and extracted the NuGet package, typically `C:\ProgramData\chocolatey\lib\packageName`. |
68 |
| - |
69 |
| -#### Advanced Environment Variables |
70 |
| -The following are more advanced settings: |
71 |
| - |
72 |
| - * ChocolateyPackageParameters - Parameters to use with packaging, not the same as install arguments (which are passed directly to the native installer). Based on `--package-parameters`. |
73 |
| - * CHOCOLATEY_VERSION - The version of Choco you normally see. Use if you are 'lighting' things up based on choco version. Otherwise take a dependency on the specific version you need. |
74 |
| - * ChocolateyForceX86 = If available and set to 'true', then user has requested 32bit version. Automatically handled in built in Choco functions. |
75 |
| - * OS_PLATFORM - Like Windows, macOS, Linux. |
76 |
| - * OS_VERSION - The version of OS, like 10.0 something something for Windows. |
77 |
| - * OS_NAME - The reported name of the OS. |
78 |
| - * USER_NAME = The user name |
79 |
| - * USER_DOMAIN = The user domain name (could also be local computer name) |
80 |
| - * IS_PROCESSELEVATED = Is the process elevated? |
81 |
| - * IS_SYSTEM = Is the user the system account? |
82 |
| - * IS_REMOTEDESKTOP = Is the user in a terminal services session? |
83 |
| - * ChocolateyToolsLocation - formerly 'ChocolateyBinRoot' ('ChocolateyBinRoot' will be removed with Chocolatey v2.0.0), this is where tools being installed outside of Chocolatey packaging will go. |
84 |
| - |
85 |
| -#### Set By Options and Configuration |
86 |
| -Some environment variables are set based on options that are passed, configuration and/or features that are turned on: |
87 |
| - |
88 |
| - * ChocolateyEnvironmentDebug - Was `--debug` passed? If using the built-in PowerShell host, this is always true (but only logs debug messages to console if `--debug` was passed) |
89 |
| - * ChocolateyEnvironmentVerbose - Was `--verbose` passed? If using the built-in PowerShell host, this is always true (but only logs verbose messages to console if `--verbose` was passed). |
90 |
| - * ChocolateyExitOnRebootDetected - Are we exiting on a detected reboot? Set by ` --exit-when-reboot-detected` or the feature `exitOnRebootDetected` |
91 |
| - * ChocolateyForce - Was `--force` passed? |
92 |
| - * ChocolateyForceX86 - Was `-x86` passed? |
93 |
| - * ChocolateyRequestTimeout - How long before a web request will time out. Set by config `webRequestTimeoutSeconds` |
94 |
| - * ChocolateyResponseTimeout - How long to wait for a download to complete? Set by config `commandExecutionTimeoutSeconds` |
95 |
| - * ChocolateyPowerShellHost - Are we using the built-in PowerShell host? Set by `--use-system-powershell` or the feature `powershellHost` |
96 |
| - |
97 |
| -#### Business Edition Variables |
98 |
| - |
99 |
| - * ChocolateyInstallArgumentsSensitive - Encrypted arguments passed from command line `--install-arguments-sensitive` that are not logged anywhere. |
100 |
| - * ChocolateyPackageParametersSensitive - Package parameters passed from command line `--package-parameters-sensitive` that are not logged anywhere. |
101 |
| - * ChocolateyLicensedVersion - What version is the licensed edition on? |
102 |
| - * ChocolateyLicenseType - What edition / type of the licensed edition is installed? |
103 |
| - * USER_CONTEXT - The original user context - different when self-service is used (Licensed) |
104 |
| - |
105 |
| -#### Experimental Environment Variables |
106 |
| -The following are experimental or use not recommended: |
107 |
| - |
108 |
| - * OS_IS64BIT = This may not return correctly - it may depend on the process the app is running under |
109 |
| - * CHOCOLATEY_VERSION_PRODUCT = the version of Choco that may match CHOCOLATEY_VERSION but may be different - based on git describe |
110 |
| - * IS_ADMIN = Is the user an administrator? But doesn't tell you if the process is elevated. |
111 |
| - * IS_REMOTE = Is the user in a remote session? |
112 |
| - |
113 |
| -#### Not Useful Or Anti-Pattern If Used |
114 |
| - |
115 |
| - * ChocolateyInstallOverride = Not for use in package automation scripts. Based on `--override-arguments` being passed. |
116 |
| - * ChocolateyInstallArguments = The installer arguments meant for the native installer. You should use chocolateyPackageParameters instead. Based on `--install-arguments` being passed. |
117 |
| - * ChocolateyIgnoreChecksums - Was `--ignore-checksums` passed or the feature `checksumFiles` turned off? |
118 |
| - * ChocolateyAllowEmptyChecksums - Was `--allow-empty-checksums` passed or the feature `allowEmptyChecksums` turned on? |
119 |
| - * ChocolateyAllowEmptyChecksumsSecure - Was `--allow-empty-checksums-secure` passed or the feature `allowEmptyChecksumsSecure` turned on? |
120 |
| - * ChocolateyChecksum32 - Was `--download-checksum` passed? |
121 |
| - * ChocolateyChecksumType32 - Was `--download-checksum-type` passed? |
122 |
| - * ChocolateyChecksum64 - Was `--download-checksum-x64` passed? |
123 |
| - * ChocolateyChecksumType64 - Was `--download-checksum-type-x64` passed? |
124 |
| - * ChocolateyPackageExitCode - The exit code of the script that just ran - usually set by `Set-PowerShellExitCode` |
125 |
| - * ChocolateyLastPathUpdate - Set by Chocolatey as part of install, but not used for anything in particular in packaging. |
126 |
| - * ChocolateyProxyLocation - The explicit proxy location as set in the configuration `proxy` |
127 |
| - * ChocolateyDownloadCache - Use available download cache? Set by `--skip-download-cache`, `--use-download-cache`, or feature `downloadCache` |
128 |
| - * ChocolateyProxyBypassList - Explicitly set locations to ignore in configuration `proxyBypassList` |
129 |
| - * ChocolateyProxyBypassOnLocal - Should the proxy bypass on local connections? Set based on configuration `proxyBypassOnLocal` |
130 |
| - * http_proxy - Set by original `http_proxy` passthrough, or same as `ChocolateyProxyLocation` if explicitly set. |
131 |
| - * https_proxy - Set by original `https_proxy` passthrough, or same as `ChocolateyProxyLocation` if explicitly set. |
132 |
| - * no_proxy- Set by original `no_proxy` passthrough, or same as `ChocolateyProxyBypassList` if explicitly set. |
| 1 | +<!--markdownlint-disable-next-line MD033 MD045 --> |
| 2 | +# <img src="https://cdn.jsdelivr.net/gh/brogers5/chocolatey-package-openrgb.install@4559dfe2a59c5e2a7df1cb69957ab8e5125d4401/openrgb.install.png" width="48" height="48" alt="OpenRGB (Install) icon"/> Chocolatey Package: [OpenRGB (Install)](https://community.chocolatey.org/packages/openrgb.install) |
133 | 3 |
|
| 4 | +[](https://community.chocolatey.org/packages/openrgb.install) |
| 5 | +[](https://community.chocolatey.org/packages/openrgb.install) |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +This package is part of a family of packages published for OpenRGB. This repository is for the installer package. |
| 10 | + |
| 11 | +* For the meta package, see [chocolatey-package-openrgb](https://github.com/brogers5/chocolatey-package-openrgb). |
| 12 | +* For the portable package, see [chocolatey-package-openrgb.portable](https://github.com/brogers5/chocolatey-package-openrgb.portable). |
| 13 | + |
| 14 | +See the [Chocolatey FAQs](https://docs.chocolatey.org/en-us/faqs) for more information on [meta packages](https://docs.chocolatey.org/en-us/faqs/#what-is-the-difference-between-packages-no-suffix-as-compared-to-install-portable) and [installer/portable packages](https://docs.chocolatey.org/en-us/faqs#what-distinction-does-chocolatey-make-between-an-installable-and-a-portable-application). |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## Install |
| 19 | + |
| 20 | +[Install Chocolatey](https://chocolatey.org/install), and run the following command to install the latest approved stable version from the Chocolatey Community Repository: |
| 21 | + |
| 22 | +```shell |
| 23 | +choco install openrgb.install --source="'https://community.chocolatey.org/api/v2'" |
| 24 | +``` |
| 25 | + |
| 26 | +Alternatively, the packages as published on the Chocolatey Community Repository will also be mirrored on this repository's [Releases page](https://github.com/brogers5/chocolatey-package-openrgb.install/releases). The `nupkg` can be installed from the current directory (with dependencies sourced from the Community Repository) as follows: |
| 27 | + |
| 28 | +```shell |
| 29 | +choco install openrgb.install --source="'.;https://community.chocolatey.org/api/v2/'" |
| 30 | +``` |
| 31 | + |
| 32 | +This package also supports the project's Release Candidate builds. Opt into these with the `--prerelease` switch. |
| 33 | + |
| 34 | +## Build |
| 35 | + |
| 36 | +[Install Chocolatey](https://chocolatey.org/install), and the [Chocolatey Automatic Package Updater Module](https://github.com/majkinetor/au), then clone this repository. |
| 37 | + |
| 38 | +Once cloned, simply run `build.ps1`. The MSI is intentionally untracked to avoid bloating the repository, so the script will download the OpenRGB installer MSI from the official distribution point, then packs everything together. |
| 39 | + |
| 40 | +A successful build will create `openrgb.install.x.y.z.nupkg`, where `x.y.z` should be the Nuspec's normalized `version` value at build time. |
| 41 | + |
| 42 | +>[!Note] |
| 43 | +>Chocolatey package builds are non-deterministic. Consequently, an independently built package's checksum will not match that of the officially published package. |
| 44 | +
|
| 45 | +## Update |
| 46 | + |
| 47 | +This package should be automatically updated by the [Chocolatey Automatic Package Updater Module](https://github.com/majkinetor/au). If it is outdated by more than a few days, please [open an issue](https://github.com/brogers5/chocolatey-package-openrgb.install/issues). |
| 48 | + |
| 49 | +AU expects the parent directory that contains this repository to share a name with the Nuspec (`openrgb.install`). Your local repository should therefore be cloned accordingly: |
| 50 | + |
| 51 | +```shell |
| 52 | +git clone git@github.com:brogers5/chocolatey-package-openrgb.install.git openrgb.install |
| 53 | +``` |
| 54 | + |
| 55 | +Alternatively, a junction point can be created that points to the local repository (preferably within a repository adopting the [AU packages template](https://github.com/majkinetor/au-packages-template)): |
| 56 | + |
| 57 | +```shell |
| 58 | +mklink /J openrgb.install ..\chocolatey-package-openrgb.install |
| 59 | +``` |
| 60 | + |
| 61 | +Once created, simply run `update.ps1` from within the created directory/junction point. Assuming all goes well, all relevant files should change to reflect the latest version available. This will also build a new package version using the modified files. |
| 62 | + |
| 63 | +To limit the scope of update checks to a specific update channel, pass the `-IncludeStream` parameter with the desired Stream name: |
| 64 | + |
| 65 | +```powershell |
| 66 | +.\update.ps1 -IncludeStream 'Stable' |
| 67 | +``` |
| 68 | + |
| 69 | +```powershell |
| 70 | +.\update.ps1 -IncludeStream 'ReleaseCandidate' |
| 71 | +``` |
| 72 | + |
| 73 | +Before submitting a pull request, please [test the package](https://docs.chocolatey.org/en-us/community-repository/moderation/package-verifier#steps-for-each-package) using the latest [Chocolatey Testing Environment](https://github.com/chocolatey-community/chocolatey-test-environment) first. |
0 commit comments