···11/**
22- Generates documentation for [nix modules](https://nix.dev/tutorials/module-system/module-system.html).
22+ Generates documentation for [nix modules](https://nix.dev/tutorials/module-system/index.html).
3344 It uses the declared `options` to generate documentation in various formats.
55
+86-5
nixos/lib/utils.nix
···2323 isPath
2424 isString
2525 listToAttrs
2626+ mapAttrs
2627 nameValuePair
2728 optionalString
2829 removePrefix
···140141 ];
141142 } "_secret" -> { ".example[1].relevant.secret" = "/path/to/secret"; }
142143 */
143143- recursiveGetAttrWithJqPrefix = item: attr:
144144+ recursiveGetAttrWithJqPrefix = item: attr: mapAttrs (_name: set: set.${attr}) (recursiveGetAttrsetWithJqPrefix item attr);
145145+146146+ /* Similar to `recursiveGetAttrWithJqPrefix`, but returns the whole
147147+ attribute set containing `attr` instead of the value of `attr` in
148148+ the set.
149149+150150+ Example:
151151+ recursiveGetAttrsetWithJqPrefix {
152152+ example = [
153153+ {
154154+ irrelevant = "not interesting";
155155+ }
156156+ {
157157+ ignored = "ignored attr";
158158+ relevant = {
159159+ secret = {
160160+ _secret = "/path/to/secret";
161161+ quote = true;
162162+ };
163163+ };
164164+ }
165165+ ];
166166+ } "_secret" -> { ".example[1].relevant.secret" = { _secret = "/path/to/secret"; quote = true; }; }
167167+ */
168168+ recursiveGetAttrsetWithJqPrefix = item: attr:
144169 let
145170 recurse = prefix: item:
146171 if item ? ${attr} then
147147- nameValuePair prefix item.${attr}
172172+ nameValuePair prefix item
148173 else if isDerivation item then []
149174 else if isAttrs item then
150175 map (name:
···206231 }
207232 ]
208233 }
234234+235235+ The attribute set { _secret = "/path/to/secret"; } can contain extra
236236+ options, currently it accepts the `quote = true|false` option.
237237+238238+ If `quote = true` (default behavior), the content of the secret file will
239239+ be quoted as a string and embedded. Otherwise, if `quote = false`, the
240240+ content of the secret file will be parsed to JSON and then embedded.
241241+242242+ Example:
243243+ If the file "/path/to/secret" contains the JSON document:
244244+245245+ [
246246+ { "a": "topsecretpassword1234" },
247247+ { "b": "topsecretpassword5678" }
248248+ ]
249249+250250+ genJqSecretsReplacementSnippet {
251251+ example = [
252252+ {
253253+ irrelevant = "not interesting";
254254+ }
255255+ {
256256+ ignored = "ignored attr";
257257+ relevant = {
258258+ secret = {
259259+ _secret = "/path/to/secret";
260260+ quote = false;
261261+ };
262262+ };
263263+ }
264264+ ];
265265+ } "/path/to/output.json"
266266+267267+ would generate a snippet that, when run, outputs the following
268268+ JSON file at "/path/to/output.json":
269269+270270+ {
271271+ "example": [
272272+ {
273273+ "irrelevant": "not interesting"
274274+ },
275275+ {
276276+ "ignored": "ignored attr",
277277+ "relevant": {
278278+ "secret": [
279279+ { "a": "topsecretpassword1234" },
280280+ { "b": "topsecretpassword5678" }
281281+ ]
282282+ }
283283+ }
284284+ ]
285285+ }
209286 */
210287 genJqSecretsReplacementSnippet = genJqSecretsReplacementSnippet' "_secret";
211288···213290 # attr which identifies the secret to be changed.
214291 genJqSecretsReplacementSnippet' = attr: set: output:
215292 let
216216- secrets = recursiveGetAttrWithJqPrefix set attr;
293293+ secretsRaw = recursiveGetAttrsetWithJqPrefix set attr;
294294+ # Set default option values
295295+ secrets = mapAttrs (_name: set: {
296296+ quote = true;
297297+ } // set) secretsRaw;
217298 stringOrDefault = str: def: if str == "" then def else str;
218299 in ''
219300 if [[ -h '${output}' ]]; then
···227308 + concatStringsSep
228309 "\n"
229310 (imap1 (index: name: ''
230230- secret${toString index}=$(<'${secrets.${name}}')
311311+ secret${toString index}=$(<'${secrets.${name}.${attr}}')
231312 export secret${toString index}
232313 '')
233314 (attrNames secrets))
···236317 + escapeShellArg (stringOrDefault
237318 (concatStringsSep
238319 " | "
239239- (imap1 (index: name: ''${name} = $ENV.secret${toString index}'')
320320+ (imap1 (index: name: ''${name} = ($ENV.secret${toString index}${optionalString (!secrets.${name}.quote) " | fromjson"})'')
240321 (attrNames secrets)))
241322 ".")
242323 + ''
···101101102102 preStart = with cfg.settings; ''
103103 if ! test -f ${password-file}; then
104104- < /dev/urandom tr -dc _A-Z-a-z-0-9 2> /dev/null | head -c32 > ${password-file}
105105- chmod 0600 ${password-file}
104104+ < /dev/urandom tr -dc _A-Z-a-z-0-9 2> /dev/null | head -c32 | install -m 600 /dev/stdin ${password-file}
106105 echo "Initialized ${password-file} from /dev/urandom"
107106 fi
108107 if [ ! -f ${data-dir}/keys/libp2p.key ]; then
+99-93
nixos/modules/services/web-apps/mediawiki.nix
···6464 else
6565 throw "Unsupported database type: ${cfg.database.type} for socket: ${cfg.database.socket}";
66666767- mediawikiConfig = pkgs.writeText "LocalSettings.php" ''
6868- <?php
6969- # Protect against web entry
7070- if ( !defined( 'MEDIAWIKI' ) ) {
7171- exit;
7272- }
6767+ mediawikiConfig = pkgs.writeTextFile {
6868+ name = "LocalSettings.php";
6969+ checkPhase = ''
7070+ ${php}/bin/php --syntax-check "$target"
7171+ '';
7272+ text = ''
7373+ <?php
7474+ # Protect against web entry
7575+ if ( !defined( 'MEDIAWIKI' ) ) {
7676+ exit;
7777+ }
73787474- $wgSitename = "${cfg.name}";
7575- $wgMetaNamespace = false;
7979+ $wgSitename = "${cfg.name}";
8080+ $wgMetaNamespace = false;
76817777- ## The URL base path to the directory containing the wiki;
7878- ## defaults for all runtime URL paths are based off of this.
7979- ## For more information on customizing the URLs
8080- ## (like /w/index.php/Page_title to /wiki/Page_title) please see:
8181- ## https://www.mediawiki.org/wiki/Manual:Short_URL
8282- $wgScriptPath = "${lib.optionalString (cfg.webserver == "nginx") "/w"}";
8282+ ## The URL base path to the directory containing the wiki;
8383+ ## defaults for all runtime URL paths are based off of this.
8484+ ## For more information on customizing the URLs
8585+ ## (like /w/index.php/Page_title to /wiki/Page_title) please see:
8686+ ## https://www.mediawiki.org/wiki/Manual:Short_URL
8787+ $wgScriptPath = "${lib.optionalString (cfg.webserver == "nginx") "/w"}";
83888484- ## The protocol and server name to use in fully-qualified URLs
8585- $wgServer = "${cfg.url}";
8989+ ## The protocol and server name to use in fully-qualified URLs
9090+ $wgServer = "${cfg.url}";
86918787- ## The URL path to static resources (images, scripts, etc.)
8888- $wgResourceBasePath = $wgScriptPath;
9292+ ## The URL path to static resources (images, scripts, etc.)
9393+ $wgResourceBasePath = $wgScriptPath;
89949090- ${lib.optionalString (cfg.webserver == "nginx") ''
9191- $wgArticlePath = "/wiki/$1";
9292- $wgUsePathInfo = true;
9393- ''}
9595+ ${lib.optionalString (cfg.webserver == "nginx") ''
9696+ $wgArticlePath = "/wiki/$1";
9797+ $wgUsePathInfo = true;
9898+ ''}
94999595- ## The URL path to the logo. Make sure you change this from the default,
9696- ## or else you'll overwrite your logo when you upgrade!
9797- $wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";
100100+ ## The URL path to the logo. Make sure you change this from the default,
101101+ ## or else you'll overwrite your logo when you upgrade!
102102+ $wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";
981039999- ## UPO means: this is also a user preference option
104104+ ## UPO means: this is also a user preference option
100105101101- $wgEnableEmail = true;
102102- $wgEnableUserEmail = true; # UPO
106106+ $wgEnableEmail = true;
107107+ $wgEnableUserEmail = true; # UPO
103108104104- $wgPasswordSender = "${cfg.passwordSender}";
109109+ $wgPasswordSender = "${cfg.passwordSender}";
105110106106- $wgEnotifUserTalk = false; # UPO
107107- $wgEnotifWatchlist = false; # UPO
108108- $wgEmailAuthentication = true;
111111+ $wgEnotifUserTalk = false; # UPO
112112+ $wgEnotifWatchlist = false; # UPO
113113+ $wgEmailAuthentication = true;
109114110110- ## Database settings
111111- $wgDBtype = "${cfg.database.type}";
112112- $wgDBserver = "${dbAddr}";
113113- $wgDBport = "${toString cfg.database.port}";
114114- $wgDBname = "${cfg.database.name}";
115115- $wgDBuser = "${cfg.database.user}";
116116- ${optionalString (cfg.database.passwordFile != null) "$wgDBpassword = file_get_contents(\"${cfg.database.passwordFile}\");"}
115115+ ## Database settings
116116+ $wgDBtype = "${cfg.database.type}";
117117+ $wgDBserver = "${dbAddr}";
118118+ $wgDBport = "${toString cfg.database.port}";
119119+ $wgDBname = "${cfg.database.name}";
120120+ $wgDBuser = "${cfg.database.user}";
121121+ ${optionalString (cfg.database.passwordFile != null) "$wgDBpassword = file_get_contents(\"${cfg.database.passwordFile}\");"}
117122118118- ${optionalString (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) ''
119119- # MySQL specific settings
120120- $wgDBprefix = "${cfg.database.tablePrefix}";
121121- ''}
123123+ ${optionalString (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) ''
124124+ # MySQL specific settings
125125+ $wgDBprefix = "${cfg.database.tablePrefix}";
126126+ ''}
122127123123- ${optionalString (cfg.database.type == "mysql") ''
124124- # MySQL table options to use during installation or update
125125- $wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
126126- ''}
128128+ ${optionalString (cfg.database.type == "mysql") ''
129129+ # MySQL table options to use during installation or update
130130+ $wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
131131+ ''}
127132128128- ## Shared memory settings
129129- $wgMainCacheType = CACHE_NONE;
130130- $wgMemCachedServers = [];
133133+ ## Shared memory settings
134134+ $wgMainCacheType = CACHE_NONE;
135135+ $wgMemCachedServers = [];
131136132132- ${optionalString (cfg.uploadsDir != null) ''
133133- $wgEnableUploads = true;
134134- $wgUploadDirectory = "${cfg.uploadsDir}";
135135- ''}
137137+ ${optionalString (cfg.uploadsDir != null) ''
138138+ $wgEnableUploads = true;
139139+ $wgUploadDirectory = "${cfg.uploadsDir}";
140140+ ''}
136141137137- $wgUseImageMagick = true;
138138- $wgImageMagickConvertCommand = "${pkgs.imagemagick}/bin/convert";
142142+ $wgUseImageMagick = true;
143143+ $wgImageMagickConvertCommand = "${pkgs.imagemagick}/bin/convert";
139144140140- # InstantCommons allows wiki to use images from https://commons.wikimedia.org
141141- $wgUseInstantCommons = false;
145145+ # InstantCommons allows wiki to use images from https://commons.wikimedia.org
146146+ $wgUseInstantCommons = false;
142147143143- # Periodically send a pingback to https://www.mediawiki.org/ with basic data
144144- # about this MediaWiki instance. The Wikimedia Foundation shares this data
145145- # with MediaWiki developers to help guide future development efforts.
146146- $wgPingback = true;
148148+ # Periodically send a pingback to https://www.mediawiki.org/ with basic data
149149+ # about this MediaWiki instance. The Wikimedia Foundation shares this data
150150+ # with MediaWiki developers to help guide future development efforts.
151151+ $wgPingback = true;
147152148148- ## If you use ImageMagick (or any other shell command) on a
149149- ## Linux server, this will need to be set to the name of an
150150- ## available UTF-8 locale
151151- $wgShellLocale = "C.UTF-8";
153153+ ## If you use ImageMagick (or any other shell command) on a
154154+ ## Linux server, this will need to be set to the name of an
155155+ ## available UTF-8 locale
156156+ $wgShellLocale = "C.UTF-8";
152157153153- ## Set $wgCacheDirectory to a writable directory on the web server
154154- ## to make your wiki go slightly faster. The directory should not
155155- ## be publicly accessible from the web.
156156- $wgCacheDirectory = "${cacheDir}";
158158+ ## Set $wgCacheDirectory to a writable directory on the web server
159159+ ## to make your wiki go slightly faster. The directory should not
160160+ ## be publicly accessible from the web.
161161+ $wgCacheDirectory = "${cacheDir}";
157162158158- # Site language code, should be one of the list in ./languages/data/Names.php
159159- $wgLanguageCode = "en";
163163+ # Site language code, should be one of the list in ./languages/data/Names.php
164164+ $wgLanguageCode = "en";
160165161161- $wgSecretKey = file_get_contents("${stateDir}/secret.key");
166166+ $wgSecretKey = file_get_contents("${stateDir}/secret.key");
162167163163- # Changing this will log out all existing sessions.
164164- $wgAuthenticationTokenVersion = "";
168168+ # Changing this will log out all existing sessions.
169169+ $wgAuthenticationTokenVersion = "";
165170166166- ## For attaching licensing metadata to pages, and displaying an
167167- ## appropriate copyright notice / icon. GNU Free Documentation
168168- ## License and Creative Commons licenses are supported so far.
169169- $wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
170170- $wgRightsUrl = "";
171171- $wgRightsText = "";
172172- $wgRightsIcon = "";
171171+ ## For attaching licensing metadata to pages, and displaying an
172172+ ## appropriate copyright notice / icon. GNU Free Documentation
173173+ ## License and Creative Commons licenses are supported so far.
174174+ $wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
175175+ $wgRightsUrl = "";
176176+ $wgRightsText = "";
177177+ $wgRightsIcon = "";
173178174174- # Path to the GNU diff3 utility. Used for conflict resolution.
175175- $wgDiff = "${pkgs.diffutils}/bin/diff";
176176- $wgDiff3 = "${pkgs.diffutils}/bin/diff3";
179179+ # Path to the GNU diff3 utility. Used for conflict resolution.
180180+ $wgDiff = "${pkgs.diffutils}/bin/diff";
181181+ $wgDiff3 = "${pkgs.diffutils}/bin/diff3";
177182178178- # Enabled skins.
179179- ${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadSkin('${k}');") cfg.skins)}
183183+ # Enabled skins.
184184+ ${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadSkin('${k}');") cfg.skins)}
180185181181- # Enabled extensions.
182182- ${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadExtension('${k}');") cfg.extensions)}
186186+ # Enabled extensions.
187187+ ${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadExtension('${k}');") cfg.extensions)}
183188184189185185- # End of automatically generated settings.
186186- # Add more configuration options below.
190190+ # End of automatically generated settings.
191191+ # Add more configuration options below.
187192188188- ${cfg.extraConfig}
189189- '';
193193+ ${cfg.extraConfig}
194194+ '';
195195+ };
190196191197 withTrailingSlash = str: if lib.hasSuffix "/" str then str else "${str}/";
192198in
···49495050stdenv.mkDerivation (finalAttrs: {
5151 pname = "pixinsight";
5252- version = "1.8.9-3";
5252+ version = "1.8.9-3-20240625";
53535454 src = requireFile rec {
5555- name = "PI-linux-x64-${finalAttrs.version}-20240619-c.tar.xz";
5555+ name = "PI-linux-x64-${finalAttrs.version}-c.tar.xz";
5656 url = "https://pixinsight.com/";
5757- hash = "sha256-WZrD+X7zE1i29+YsGJ+wbIXmlVon9bczHvvRAkQXz6M=";
5757+ hash = "sha256-jqp5pt+fC7QvENCwRjr7ENQiCZpwNhC5q76YdzRBJis=";
5858 message = ''
5959 PixInsight is available from ${url} and requires a commercial (or trial) license.
6060 After a license has been obtained, PixInsight can be downloaded from the software distribution
···32323333 meta = with lib; {
3434 homepage = "https://github.com/mzz2017/gg";
3535+ changelog = "https://github.com/mzz2017/gg/releases/tag/${src.rev}";
3536 description = "Command-line tool for one-click proxy in your research and development";
3637 license = licenses.agpl3Only;
3738 mainProgram = "gg";
···2525 meta = {
2626 description = "Recall what you did on the last working day";
2727 homepage = "https://github.com/kamranahmedse/git-standup";
2828+ changelog = "https://github.com/kamranahmedse/git-standup/releases/tag/${finalAttrs.src.rev}";
2829 license = lib.licenses.mit;
2930 maintainers = with lib.maintainers; [ sigmanificient ];
3031 platforms = lib.platforms.all;
+1
pkgs/by-name/gi/git-together/package.nix
···2626 cargoHash = "sha256-mIkhXVuSgcsQf4be7NT0R8rkN9tdgim41gqjbq3ndPA=";
27272828 meta = with lib; {
2929+ changelog = "https://github.com/kejadlen/git-together/releases/tag/${src.rev}";
2930 description = "Better commit attribution while pairing without messing with your git workflow";
3031 homepage = "https://github.com/kejadlen/git-together";
3132 license = licenses.mit;
+1
pkgs/by-name/gi/git-upstream/package.nix
···21212222 meta = with lib; {
2323 homepage = "https://github.com/9999years/git-upstream";
2424+ changelog = "https://github.com/9999years/git-upstream/releases/tag/v${version}";
2425 description = "Shortcut for `git push --set-upstream`";
2526 license = [licenses.mit];
2627 maintainers = [maintainers._9999years];
···42424343 meta = {
4444 homepage = "http://www.thrysoee.dk/editline/";
4545+ changelog = "https://www.thrysoee.dk/editline/#changelog";
4546 description = "Port of the NetBSD Editline library (libedit)";
4647 longDescription = ''
4748 This is an autotool- and libtoolized port of the NetBSD Editline library
+1
pkgs/by-name/li/libilbm/package.nix
···3131 such as Deluxe Paint and Graphicraft to read and write images.
3232 '';
3333 homepage = "https://github.com/svanderburg/libilbm";
3434+ changelog = "https://github.com/svanderburg/libilbm/blob/master/ChangeLog";
3435 maintainers = with maintainers; [ _414owen ];
3536 platforms = platforms.all;
3637 license = licenses.mit;
···3737 runs well on both Linux, Unix, and Windows based platforms.
3838 '';
3939 homepage = "https://strophe.im/libstrophe/";
4040+ changelog = "https://github.com/strophe/libstrophe/blob/${src.rev}/ChangeLog";
4041 license = with licenses; [ gpl3Only mit ];
4142 platforms = platforms.unix;
4243 maintainers = with maintainers; [ devhell flosse ];
+1
pkgs/by-name/li/libtas/package.nix
···56565757 meta = with lib; {
5858 homepage = "https://clementgallet.github.io/libTAS/";
5959+ changelog = "https://github.com/clementgallet/libTAS/blob/${finalAttrs.src.rev}/CHANGELOG.md";
5960 description = "GNU/Linux software to give TAS tools to games";
6061 license = lib.licenses.gpl3Only;
6162 maintainers = with maintainers; [ skyrina ];
+1
pkgs/by-name/li/libusbp/package.nix
···30303131 meta = with lib; {
3232 homepage = "https://github.com/pololu/libusbp";
3333+ changelog = "https://github.com/pololu/libusbp/blob/${finalAttrs.src.rev}/README.md#version-history";
3334 description = "Pololu USB Library (also known as libusbp)";
3435 longDescription = ''
3536 libusbp is a cross-platform C library for accessing USB devices
···2929 meta = {
3030 description = "Command line license text generator";
3131 homepage = "https://github.com/nishanths/license";
3232+ changelog = "https://github.com/nishanths/license/releases/tag/v${version}";
3233 license = lib.licenses.mit;
3334 maintainers = with lib.maintainers; [ uncenter ];
3435 mainProgram = "license";
+1
pkgs/by-name/li/lightning/package.nix
···35353636 meta = {
3737 homepage = "https://www.gnu.org/software/lightning/";
3838+ changelog = "https://git.savannah.gnu.org/cgit/lightning.git/tree/ChangeLog?h=lightning-${finalAttrs.version}";
3839 description = "Run-time code generation library";
3940 longDescription = ''
4041 GNU lightning is a library that generates assembly language code at
+1
pkgs/by-name/li/likwid/package.nix
···35353636 meta = with lib; {
3737 homepage = "https://hpc.fau.de/research/tools/likwid/";
3838+ changelog = "https://github.com/RRZE-HPC/likwid/releases/tag/v${version}";
3839 description = "Performance monitoring and benchmarking suite";
3940 license = licenses.gpl3Only;
4041 # Might work on ARM by appropriately setting COMPILER in config.mk
+1
pkgs/by-name/li/linien-gui/package.nix
···4242 description = "Graphical user interface of the Linien spectroscopy lock application";
4343 mainProgram = "linien";
4444 homepage = "https://github.com/linien-org/linien/tree/develop/linien-gui";
4545+ changelog = "https://github.com/linien-org/linien/blob/v${version}/CHANGELOG.md";
4546 license = licenses.gpl3Plus;
4647 maintainers = with maintainers; [ fsagbuya doronbehar ];
4748 };
···2323 mainProgram = "loco";
2424 description = "Loco CLI is a powerful command-line tool designed to streamline the process of generating Loco websites";
2525 homepage = "https://loco.rs";
2626+ changelog = "https://github.com/loco-rs/loco/blob/master/CHANGELOG.md";
2627 license = with licenses; [ asl20 ];
2728 maintainers = with maintainers; [ sebrut ];
2829 };
+1
pkgs/by-name/ls/lshw/package.nix
···4242 enableParallelBuilding = true;
43434444 meta = with lib; {
4545+ changelog = "https://github.com/lyonel/lshw/blob/master/docs/Changelog";
4546 description = "Provide detailed information on the hardware configuration of the machine";
4647 homepage = "https://ezix.org/project/wiki/HardwareLiSter";
4748 license = licenses.gpl2;
-1
pkgs/by-name/ma/mackup/package.nix
···23232424 nativeBuildInputs = with python3Packages; [
2525 poetry-core
2626- pythonRelaxDepsHook
2726 nose
2827 ];
2928
···22222323 meta = with lib; {
2424 homepage = "https://github.com/AmokHuginnsson/replxx";
2525+ changelog = "https://github.com/AmokHuginnsson/replxx/releases/tag/release-${finalAttrs.version}";
2526 description = "Readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed";
2627 license = licenses.bsd3;
2728 maintainers = with maintainers; [ ];
+1
pkgs/by-name/re/restinio/package.nix
···7070 meta = with lib; {
7171 description = "Cross-platform, efficient, customizable, and robust asynchronous HTTP(S)/WebSocket server C++ library";
7272 homepage = "https://github.com/Stiffstream/restinio";
7373+ changelog = "https://github.com/Stiffstream/restinio/releases/tag/${finalAttrs.src.rev}";
7374 license = licenses.bsd3;
7475 platforms = platforms.all;
7576 maintainers = with maintainers; [ tobim ];
+1
pkgs/by-name/re/restinio_0_6/package.nix
···2323 meta = with lib; {
2424 description = "Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library";
2525 homepage = "https://github.com/Stiffstream/restinio";
2626+ changelog = "https://github.com/Stiffstream/restinio/releases/tag/v.${version}";
2627 license = licenses.bsd3;
2728 platforms = platforms.all;
2829 };
+1
pkgs/by-name/re/restls/package.nix
···18181919 meta = with lib; {
2020 homepage = "https://github.com/3andne/restls";
2121+ changelog = "https://github.com/3andne/restls/releases/tag/${src.rev}";
2122 description = "Perfect Impersonation of TLS";
2223 license = licenses.bsd3;
2324 mainProgram = "restls";
+1
pkgs/by-name/re/retool/package.nix
···4949 meta = with lib; {
5050 description = "Better filter tool for Redump and No-Intro dats";
5151 homepage = "https://github.com/unexpectedpanda/retool";
5252+ changelog = "https://github.com/unexpectedpanda/retool/blob/v${version}/changelog.md";
5253 license = licenses.bsd3;
5354 maintainers = with maintainers; [ thiagokokada ];
5455 };
+1
pkgs/by-name/re/retrospy/package.nix
···8181 meta = {
8282 description = "Live controller viewer for Nintendo consoles as well as many other retro consoles and computers";
8383 homepage = "https://retro-spy.com/";
8484+ changelog = "https://github.com/retrospy/RetroSpy/releases/tag/${src.rev}";
8485 license = lib.licenses.gpl3;
8586 maintainers = [ lib.maintainers.naxdy ];
8687 platforms = lib.platforms.linux;
···4949 '';
50505151 meta = with lib; {
5252+ changelog = "https://gitlab.freedesktop.org/ofourdan/xwayland-run/-/releases/${src.rev}";
5253 description = "Set of small utilities revolving around running Xwayland and various Wayland compositor headless";
5354 homepage = "https://gitlab.freedesktop.org/ofourdan/xwayland-run";
5455 license = licenses.gpl2Only;
···22 # To test your changes in androidEnv run `nix-shell android-sdk-with-emulator-shell.nix`
3344 # If you copy this example out of nixpkgs, use these lines instead of the next.
55- # This example pins nixpkgs: https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html
55+ # This example pins nixpkgs: https://nix.dev/tutorials/first-steps/towards-reproducibility-pinning-nixpkgs.html
66 /*nixpkgsSource ? (builtins.fetchTarball {
77 name = "nixpkgs-20.09";
88 url = "https://github.com/NixOS/nixpkgs/archive/20.09.tar.gz";
···22 # To test your changes in androidEnv run `nix-shell android-sdk-with-emulator-shell.nix`
3344 # If you copy this example out of nixpkgs, use these lines instead of the next.
55- # This example pins nixpkgs: https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html
55+ # This example pins nixpkgs: https://nix.dev/tutorials/first-steps/towards-reproducibility-pinning-nixpkgs.html
66 /*nixpkgsSource ? (builtins.fetchTarball {
77 name = "nixpkgs-20.09";
88 url = "https://github.com/NixOS/nixpkgs/archive/20.09.tar.gz";
···11{
22 # If you copy this example out of nixpkgs, use these lines instead of the next.
33- # This example pins nixpkgs: https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html
33+ # This example pins nixpkgs: https://nix.dev/tutorials/first-steps/towards-reproducibility-pinning-nixpkgs.html
44 /*nixpkgsSource ? (builtins.fetchTarball {
55 name = "nixpkgs-20.09";
66 url = "https://github.com/NixOS/nixpkgs/archive/20.09.tar.gz";
···6677 fetchzip,
88 substitute,
99- pythonRelaxDepsHook,
109 pytestCheckHook,
11101211 setuptools,
···7271 # Magic patch from upstream - what does this even do??
7372 echo "from .rapidocr_onnxruntime.main import RapidOCR, VisRes" > __init__.py
7473 '';
7575-7676- nativeBuildInputs = [ pythonRelaxDepsHook ];
77747875 # Upstream expects the source files to be under rapidocr_onnxruntime/rapidocr_onnxruntime
7976 # instead of rapidocr_onnxruntime for the wheel to build correctly.
···953953 );
954954 nix-review = throw "'nix-review' has been renamed to/replaced by 'nixpkgs-review'"; # Converted to throw 2023-09-10
955955 nix-template-rpm = throw "'nix-template-rpm' has been removed as it is broken and unmaintained"; # Added 2023-11-20
956956- nix-top = throw "The nix-top package was dropped since it was unmaintained."; # Added 2024-06-21
957956 nix-universal-prefetch = throw "The nix-universal-prefetch package was dropped since it was unmaintained."; # Added 2024-06-21
958957 nixFlakes = nixVersions.stable; # Added 2021-05-21
959958 nixStable = nixVersions.stable; # Added 2022-01-24
···13731372 trustedGrub-for-HP = throw "trustedGrub-for-HP has been removed, because it is not maintained upstream anymore"; # Added 2023-05-10
13741373 tvbrowser-bin = tvbrowser; # Added 2023-03-02
13751374 typst-fmt = typstfmt; # Added 2023-07-15
13751375+ typst-preview = throw "The features of this program have been consolidated to 'tinymist', an all-in-one language server for typst"; # Added 2024-07-07
1376137613771377 ### U ###
13781378
···3737 acebinf = throw "acebinf has been removed because it is abandoned and broken."; # Added 2023-05-19
3838 adafruit-nrfutil = throw "adafruit-nrfutil has been promoted to a top-level attribute name: `pkgs.adafruit-nrfutil`."; # Added 2023-11-19
3939 aioaladdinconnect = throw "aioaladdinconnect has been removed, as the API is supported was obsoleted on 2024-01-24."; # Added 2024-06-07
4040+ aiomysensors = throw "aiomysensors has been removed, as it was packaged for Home Assistant, which migrated to pymysensors."; # Added 2024-07-07
4041 aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
4142 aionotify = throw "aionotify has been removed because is unmaintained and incompatible with python3.11."; # Added 2023-10-27
4243 aiosenseme = throw "aiosenseme has been removed, because it does no longer work with the latest firmware and has become unmaintained"; # Added 2023-07-05
···5354 APScheduler = apscheduler; # added 2023-02-19
5455 async_generator = async-generator; # added 2023-08-08
5556 async_stagger = async-stagger; # added 2023-08-08
5757+ asyncio-mqtt = throw "asyncio-mqtt has been replaced by aiomqtt, which is not API compatible."; # added 2024-07-07
5658 asyncio-nats-client = nats-py; # added 2022-02-08
5759 atsim_potentials = atsim-potentials; # added 2023-10-08
5860 awkward0 = throw "awkward0 has been removed, use awkward instead"; # added 2022-12-13