Merge master into staging-next
This commit is contained in:
		
						commit
						465eb86dbb
					
				
							
								
								
									
										6
									
								
								.github/workflows/labels.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/labels.yml
									
									
									
									
										vendored
									
									
								
							| @ -65,6 +65,7 @@ jobs: | ||||
|         uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 | ||||
|         with: | ||||
|           github-token: ${{ steps.app-token.outputs.token || github.token }} | ||||
|           retries: 3 | ||||
|           script: | | ||||
|             const Bottleneck = require('bottleneck') | ||||
|             const path = require('node:path') | ||||
| @ -147,8 +148,6 @@ jobs: | ||||
|                   ...context.repo, | ||||
|                   workflow_id: 'pr.yml', | ||||
|                   event: 'pull_request_target', | ||||
|                   // In pull_request contexts the workflow is still running. | ||||
|                   status: context.payload.pull_request ? undefined : 'success', | ||||
|                   exclude_pull_requests: true, | ||||
|                   head_sha: pull_request.head.sha | ||||
|                 })).data.workflow_runs[0]?.id ?? | ||||
| @ -247,6 +246,7 @@ jobs: | ||||
|                   .sort((a,b) => b-a) | ||||
|                   .at(0) ?? item.created_at | ||||
|                 ) | ||||
|                 log('latest_event_at', latest_event_at.toISOString()) | ||||
| 
 | ||||
|                 const stale_at = new Date(new Date().setDate(new Date().getDate() - 180)) | ||||
| 
 | ||||
| @ -390,7 +390,7 @@ jobs: | ||||
|                   // so it should certainly be hit on the next iteration. | ||||
|                   // TODO: Evaluate after a while, whether the above holds still true and potentially implement | ||||
|                   // an overlap between runs. | ||||
|                   page: total_runs % Math.ceil(total_pulls / 100) | ||||
|                   page: (total_runs % Math.ceil(total_pulls / 100)) + 1 | ||||
|                 })).data | ||||
| 
 | ||||
|                 // Some items might be in both search results, so filtering out duplicates as well. | ||||
|  | ||||
| @ -25915,6 +25915,12 @@ | ||||
|     github = "TyberiusPrime"; | ||||
|     githubId = 1257580; | ||||
|   }; | ||||
|   tye-exe = { | ||||
|     name = "Tye"; | ||||
|     email = "nixpkgs-fr@tye-home.xyz"; | ||||
|     github = "tye-exe"; | ||||
|     githubId = 131195812; | ||||
|   }; | ||||
|   Tygo-van-den-Hurk = { | ||||
|     name = "Tygo van den Hurk"; | ||||
|     github = "Tygo-van-den-Hurk"; | ||||
|  | ||||
| @ -5100,6 +5100,19 @@ final: prev: { | ||||
|     meta.hydraPlatforms = [ ]; | ||||
|   }; | ||||
| 
 | ||||
|   freeze-nvim = buildVimPlugin { | ||||
|     pname = "freeze.nvim"; | ||||
|     version = "2025-03-25"; | ||||
|     src = fetchFromGitHub { | ||||
|       owner = "charm-and-friends"; | ||||
|       repo = "freeze.nvim"; | ||||
|       rev = "590fdb0d724485f578e4fee0e3ae2b32040dfb1a"; | ||||
|       sha256 = "1641xxp7yq4z25xck3l9vfcm0dvxcjvagawzixs4mvag214ndlam"; | ||||
|     }; | ||||
|     meta.homepage = "https://github.com/charm-and-friends/freeze.nvim/"; | ||||
|     meta.hydraPlatforms = [ ]; | ||||
|   }; | ||||
| 
 | ||||
|   friendly-snippets = buildVimPlugin { | ||||
|     pname = "friendly-snippets"; | ||||
|     version = "2025-04-29"; | ||||
|  | ||||
| @ -16,6 +16,7 @@ | ||||
|   mkYarnModules, | ||||
|   python3, | ||||
|   # Misc dependencies | ||||
|   charm-freeze, | ||||
|   code-minimap, | ||||
|   dailies, | ||||
|   dasht, | ||||
| @ -1175,6 +1176,10 @@ in | ||||
|     dependencies = [ self.self ]; | ||||
|   }; | ||||
| 
 | ||||
|   freeze-nvim = super.freeze-nvim.overrideAttrs { | ||||
|     runtimeDeps = [ charm-freeze ]; | ||||
|   }; | ||||
| 
 | ||||
|   fruzzy = | ||||
|     let | ||||
|       # until https://github.com/NixOS/nixpkgs/pull/67878 is merged, there's no better way to install nim libraries with nix | ||||
|  | ||||
| @ -390,6 +390,7 @@ https://github.com/jghauser/follow-md-links.nvim/,HEAD, | ||||
| https://github.com/mhartington/formatter.nvim/,, | ||||
| https://github.com/megaannum/forms/,, | ||||
| https://github.com/rubiin/fortune.nvim/,HEAD, | ||||
| https://github.com/charm-and-friends/freeze.nvim/,HEAD, | ||||
| https://github.com/rafamadriz/friendly-snippets/,, | ||||
| https://github.com/raghur/fruzzy/,, | ||||
| https://github.com/SuperBo/fugit2.nvim/,HEAD, | ||||
|  | ||||
| @ -3948,8 +3948,8 @@ let | ||||
|         mktplcRef = { | ||||
|           name = "prisma"; | ||||
|           publisher = "Prisma"; | ||||
|           version = "6.10.0"; | ||||
|           hash = "sha256-+oYDEbDMltGhyjtyCJcDaR074SzVWW48vzoOlxklojU="; | ||||
|           version = "6.10.1"; | ||||
|           hash = "sha256-3Qx5HAkRnxByRHyX99PIRlHwI7FeenVcK8v9T+d5++4="; | ||||
|         }; | ||||
|         meta = { | ||||
|           changelog = "https://marketplace.visualstudio.com/items/Prisma.prisma/changelog"; | ||||
| @ -4668,8 +4668,8 @@ let | ||||
|         mktplcRef = { | ||||
|           name = "svelte-vscode"; | ||||
|           publisher = "svelte"; | ||||
|           version = "109.8.1"; | ||||
|           hash = "sha256-ILZ7YA7LngwpU3U+qsgHPd+oxyqLNGRiKUCFC/OMBAo="; | ||||
|           version = "109.9.0"; | ||||
|           hash = "sha256-OgcFFYoJOtFVlOM12gYBG0AkliniawG6GdRtrFsjDIg="; | ||||
|         }; | ||||
|         meta = { | ||||
|           changelog = "https://github.com/sveltejs/language-tools/releases"; | ||||
|  | ||||
| @ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { | ||||
|   mktplcRef = { | ||||
|     name = "claude-dev"; | ||||
|     publisher = "saoudrizwan"; | ||||
|     version = "3.17.14"; | ||||
|     hash = "sha256-pYO1uy1Xd2+74rbc0D+MwK8xvSpmDeRLAVIjAR/F23w="; | ||||
|     version = "3.18.0"; | ||||
|     hash = "sha256-h4A3tYCY3o89bF++YqOCUlahJsRE0XTdK7+NN/LbhgM="; | ||||
|   }; | ||||
| 
 | ||||
|   meta = { | ||||
|  | ||||
| @ -5,13 +5,13 @@ | ||||
| }: | ||||
| mkLibretroCore { | ||||
|   core = "snes9x"; | ||||
|   version = "0-unstable-2025-06-13"; | ||||
|   version = "0-unstable-2025-06-18"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "snes9xgit"; | ||||
|     repo = "snes9x"; | ||||
|     rev = "a93dd67c516061c3390506eb26e0457a264f86b6"; | ||||
|     hash = "sha256-IOxYhDkrd9TgzEGiCM2HQxUiTv3Icmc0JE6216PqbYg="; | ||||
|     rev = "a168e789719d6bc8e06110d517d98c3d098d5834"; | ||||
|     hash = "sha256-Kxi+/Uie0a7gmlNEj351Nlybb16W4A4joC8JSN1rvsU="; | ||||
|   }; | ||||
| 
 | ||||
|   makefile = "Makefile"; | ||||
|  | ||||
| @ -5,13 +5,13 @@ | ||||
| }: | ||||
| mkLibretroCore { | ||||
|   core = "stella"; | ||||
|   version = "0-unstable-2025-06-12"; | ||||
|   version = "0-unstable-2025-06-26"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "stella-emu"; | ||||
|     repo = "stella"; | ||||
|     rev = "ee0b96cd87710ad19aa47156d39df5a92c156a34"; | ||||
|     hash = "sha256-BnDF/UC3GiBC/06zBCDYrWA5cJPv7vtJ0grYgn5CcKo="; | ||||
|     rev = "c6ce6e80e87c828701629980e8a7119f3b08c5ab"; | ||||
|     hash = "sha256-403Z0W9OQYbb8+O8kSWbpHkqywVhXbqqIyfsGlgEi+M="; | ||||
|   }; | ||||
| 
 | ||||
|   makefile = "Makefile"; | ||||
|  | ||||
| @ -8,17 +8,17 @@ | ||||
| 
 | ||||
| rustPlatform.buildRustPackage rec { | ||||
|   pname = "kubectl-view-allocations"; | ||||
|   version = "0.22.0"; | ||||
|   version = "0.22.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "davidB"; | ||||
|     repo = "kubectl-view-allocations"; | ||||
|     tag = version; | ||||
|     hash = "sha256-MwTncyfR6knXss83sd3u879YRFUxWdDyNLpQO40sZ9c="; | ||||
|     hash = "sha256-6kHeILapewfyJjp5Xtq0rK5eHf8jymvc5xFGW8Qi9VU="; | ||||
|   }; | ||||
| 
 | ||||
|   useFetchCargoVendor = true; | ||||
|   cargoHash = "sha256-bbNjOMShJMCWEcxU8F+R1BC6fqlLe2AK0y3N00HXjts="; | ||||
|   cargoHash = "sha256-evxwaZkToAjVvrnvOmz3HpOi+976sxPCOIlR8rmpYyo="; | ||||
| 
 | ||||
|   doInstallCheck = true; | ||||
|   nativeInstallCheckInputs = [ versionCheckHook ]; | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 
 | ||||
| (callPackage ./generic.nix { }) { | ||||
|   channel = "edge"; | ||||
|   version = "25.6.1"; | ||||
|   sha256 = "0lpf9f5bj6x8b21xak6dzwscj0w9jcdvz83fl6nymy8z8y0dybq7"; | ||||
|   version = "25.6.2"; | ||||
|   sha256 = "0499zs1iq1a8i2xyg5yb59c8r08nw3zlahbn8w4rsrfb5099924p"; | ||||
|   vendorHash = "sha256-ePioPHA9gps76VncdPkDEDE3sLUlrCxr7CFsXqoR6KM="; | ||||
| } | ||||
|  | ||||
| @ -13,16 +13,16 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "netmaker"; | ||||
|   version = "0.90.0"; | ||||
|   version = "0.99.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "gravitl"; | ||||
|     repo = pname; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-/7tj3SuTa2lSMgN4f2/OutzoPvAN7ARK1RKTLlMw13Y="; | ||||
|     hash = "sha256-DUD6JTnTM3QVLhWIoRZ0Jc+Jre8GXtuKkV6MzLYCg4U="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-Yd9vwdIwAGinIr/RLGdb4N9hsDeMu9aB2Z1EVnlxxtA="; | ||||
|   vendorHash = "sha256-QD9jkpsANzJeFHd4miShgACNOvI6sy38fs7pZNkPhms="; | ||||
| 
 | ||||
|   inherit subPackages; | ||||
| 
 | ||||
|  | ||||
| @ -140,8 +140,6 @@ You can locally emulate the CI check using | ||||
| $ ./ci/nixpkgs-vet.sh master | ||||
| ``` | ||||
| 
 | ||||
| See [here](../../.github/workflows/nixpkgs-vet.yml) for more info. | ||||
| 
 | ||||
| ## Recommendation for new packages with multiple versions | ||||
| 
 | ||||
| These checks of the `pkgs/by-name` structure can cause problems in combination: | ||||
|  | ||||
| @ -2,7 +2,8 @@ | ||||
|   lib, | ||||
|   fetchFromGitHub, | ||||
|   rustPlatform, | ||||
|   perl, | ||||
|   openssl, | ||||
|   pkg-config, | ||||
| }: | ||||
| 
 | ||||
| rustPlatform.buildRustPackage (finalAttrs: { | ||||
| @ -16,15 +17,18 @@ rustPlatform.buildRustPackage (finalAttrs: { | ||||
|     hash = "sha256-DFIiVNYom3LvU9IFA9w9FvXwm9gqfACDs8KaFKQR9Qs="; | ||||
|   }; | ||||
| 
 | ||||
|   useFetchCargoVendor = true; | ||||
|   cargoHash = "sha256-/2i6GyBTKLf2oNFkizaBUHcLcCPgsy3g0p31D6cO+xg="; | ||||
| 
 | ||||
|   nativeBuildInputs = [ perl ]; | ||||
|   buildInputs = [ openssl ]; | ||||
|   nativeBuildInputs = [ pkg-config ]; | ||||
| 
 | ||||
|   env.OPENSSL_NO_VENDOR = true; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Official launcher for AlterWare Call of Duty mods"; | ||||
|     longDescription = "Our clients are designed to restore missing features that have been removed by the developers, as well as enhance the capabilities of the games"; | ||||
|     homepage = "https://alterware.dev"; | ||||
|     downloadPage = "https://github.com/alterware/alterware-launcher"; | ||||
|     changelog = "https://github.com/alterware/alterware-launcher/releases/tag/v${finalAttrs.version}"; | ||||
|     license = lib.licenses.gpl3Only; | ||||
|     maintainers = with lib.maintainers; [ andrewfield ]; | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|   gtksourceview5, | ||||
|   libspelling, | ||||
|   fetchFromGitHub, | ||||
|   python3Packages, | ||||
|   python312Packages, | ||||
|   nodePackages, | ||||
|   meson, | ||||
|   ninja, | ||||
| @ -40,7 +40,10 @@ let | ||||
|     hash = "sha256-L6KVBw20K67lHT07Ws+ZC2DwdURahqyuyjAaK0kTgN0="; | ||||
|   }; | ||||
| in | ||||
| python3Packages.buildPythonApplication { | ||||
| 
 | ||||
| # Requires telnetlib, and possibly others | ||||
| # Try to remove in subsequent updates | ||||
| python312Packages.buildPythonApplication { | ||||
|   inherit version src; | ||||
|   pname = "apostrophe"; | ||||
|   pyproject = false; | ||||
| @ -80,7 +83,7 @@ python3Packages.buildPythonApplication { | ||||
|     webkitgtk_6_0 | ||||
|   ]; | ||||
| 
 | ||||
|   propagatedBuildInputs = with python3Packages; [ | ||||
|   dependencies = with python312Packages; [ | ||||
|     pygobject3 | ||||
|     pypandoc | ||||
|     chardet | ||||
|  | ||||
| @ -8,13 +8,13 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "bento"; | ||||
|   version = "1.8.1"; | ||||
|   version = "1.8.2"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "warpstreamlabs"; | ||||
|     repo = "bento"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-5AXXtjQU8GGepAlXWPAA32WfnkFtNmyJDaSqfbvoips="; | ||||
|     hash = "sha256-EAEeyMWXL/OL/LGgOQxvXtwrrVXtqY05AMeU5z86tks="; | ||||
|   }; | ||||
| 
 | ||||
|   proxyVendor = true; | ||||
|  | ||||
| @ -1,12 +1,10 @@ | ||||
| { | ||||
|   lib, | ||||
|   buildPythonApplication, | ||||
|   python3Packages, | ||||
|   fetchFromGitHub, | ||||
|   pyserial, | ||||
|   halo, | ||||
| }: | ||||
| 
 | ||||
| buildPythonApplication rec { | ||||
| python3Packages.buildPythonApplication rec { | ||||
|   pname = "btlejack"; | ||||
|   version = "2.1.1"; | ||||
| 
 | ||||
| @ -22,15 +20,15 @@ buildPythonApplication rec { | ||||
|   ''; | ||||
| 
 | ||||
|   propagatedBuildInputs = [ | ||||
|     pyserial | ||||
|     halo | ||||
|     python3Packages.pyserial | ||||
|     python3Packages.halo | ||||
|   ]; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|   meta = { | ||||
|     homepage = "https://github.com/virtualabs/btlejack"; | ||||
|     description = "Bluetooth Low Energy Swiss-army knife"; | ||||
|     mainProgram = "btlejack"; | ||||
|     license = licenses.mit; | ||||
|     maintainers = with maintainers; [ oxzi ]; | ||||
|     license = lib.licenses.mit; | ||||
|     maintainers = with lib.maintainers; [ oxzi ]; | ||||
|   }; | ||||
| } | ||||
| @ -11,12 +11,12 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "cannelloni"; | ||||
|   version = "1.2.1"; | ||||
|   version = "2.0.0"; | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "mguentner"; | ||||
|     repo = "cannelloni"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-dhrB3qg/ljAP7nX+WpX+g7HaUEGj5pTPdDhY2Mi7pUo="; | ||||
|     hash = "sha256-b3pBC2XFK+pyONvnkPw/0YUXAG2cRD1OaN7k2ONzFV8="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | ||||
| @ -6,13 +6,13 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "cctz"; | ||||
|   version = "2.4"; | ||||
|   version = "2.5"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "google"; | ||||
|     repo = "cctz"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-F4h8nT1karymV16FFHC0ldSbdOOx5AMstqi4Bc5m3UQ="; | ||||
|     sha256 = "sha256-YCE0DXuOT5tCOfLlemMH7I2F8c7HEK1NEUJvtfqnCg8="; | ||||
|   }; | ||||
| 
 | ||||
|   makeFlags = [ "PREFIX=$(out)" ]; | ||||
|  | ||||
| @ -6,17 +6,17 @@ | ||||
| 
 | ||||
| rustPlatform.buildRustPackage rec { | ||||
|   pname = "comrak"; | ||||
|   version = "0.39.0"; | ||||
|   version = "0.39.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "kivikakk"; | ||||
|     repo = "comrak"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-hy/kn8hShwzLHvzp3x1eSGipYRSXjOYCMPHEM1xQEr0="; | ||||
|     sha256 = "sha256-czdX4Xfh5vD0d30QhxtTnzmwHkrX86fw8dVIx5b5J2c="; | ||||
|   }; | ||||
| 
 | ||||
|   useFetchCargoVendor = true; | ||||
|   cargoHash = "sha256-MFSyxoNzPzIP2Yi3lCyEcsAx4DvNmk2Jr75oD/tX9iE="; | ||||
|   cargoHash = "sha256-QeMFaYpi8d88gpEbev485hGSCVTbEd7jbgkGSyGeM3g="; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter"; | ||||
|  | ||||
| @ -9,16 +9,16 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "diffoci"; | ||||
|   version = "0.1.6"; | ||||
|   version = "0.1.7"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "reproducible-containers"; | ||||
|     repo = "diffoci"; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-rCSLHlHUWS0wEnN8R2v1h+kQ7K62VQPfZmySHGSFZlQ="; | ||||
|     hash = "sha256-RBMgcTUdPO12rFUY82JkubXfaGjfB4oR+UqKwumFWs0="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-udVigglpCgdYzJe9vdGZiQepZeOplQjqKB4Za8a+u6k="; | ||||
|   vendorHash = "sha256-NqYGehd+RcspQt5gQl9XH85Ds0dw+MU8W7xH/uzNjqU="; | ||||
| 
 | ||||
|   ldflags = [ | ||||
|     "-s" | ||||
|  | ||||
| @ -15,13 +15,13 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "flowblade"; | ||||
|   version = "2.20"; | ||||
|   version = "2.22"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "jliljebl"; | ||||
|     repo = "flowblade"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-5w8mGFPOawbUwinzVLSCUZWGxuyxhi1/3tOrmQyfUUg="; | ||||
|     sha256 = "sha256-0puu0S4zONapjXaVBpPG5mH3UidQwre9yCSkjJVhdkc="; | ||||
|   }; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|  | ||||
| @ -8,13 +8,13 @@ | ||||
| 
 | ||||
| buildNpmPackage rec { | ||||
|   pname = "fluidd"; | ||||
|   version = "1.34.2"; | ||||
|   version = "1.34.3"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "fluidd-core"; | ||||
|     repo = "fluidd"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-DbuUAHsRwAiXTGjAPxT1zEcsxNloCEFLuA62/wR4+yg="; | ||||
|     hash = "sha256-e3JM9QshQFHvDXvZznQBDFsOiwzxw2lz2hChw66lmMM="; | ||||
|   }; | ||||
| 
 | ||||
|   patches = [ | ||||
| @ -23,7 +23,7 @@ buildNpmPackage rec { | ||||
|     }) | ||||
|   ]; | ||||
| 
 | ||||
|   npmDepsHash = "sha256-ZOsPUON9/bBvSrc432SGHEKKLl9ZVCq9/Nkr9Xxba/g="; | ||||
|   npmDepsHash = "sha256-WDquc35cwyTyVM8Il5aVYWbJqSKhR8wsMNNFgexFKYg="; | ||||
| 
 | ||||
|   installPhase = '' | ||||
|     mkdir -p $out/share/fluidd | ||||
|  | ||||
| @ -64,8 +64,12 @@ python3Packages.buildPythonApplication rec { | ||||
|     install -Dm644 data/logos/gaphor-24x24.png $out/share/icons/hicolor/24x24/apps/org.gaphor.Gaphor.png | ||||
|     install -Dm644 data/logos/gaphor-48x48.png $out/share/icons/hicolor/48x48/apps/org.gaphor.Gaphor.png | ||||
| 
 | ||||
|     install -Dm644 gaphor/ui/installschemas/org.gaphor.Gaphor.gschema.xml -t $out/share/glib-2.0/schemas/ | ||||
|     glib-compile-schemas $out/share/glib-2.0/schemas/ | ||||
|     GSCHEMA_PATH=$out/share/gsettings-schemas/$name/glib-2.0/schemas | ||||
|     install -Dm644 gaphor/ui/installschemas/org.gaphor.Gaphor.gschema.xml -t $GSCHEMA_PATH | ||||
|     glib-compile-schemas $GSCHEMA_PATH | ||||
|     substituteInPlace $out/${python3Packages.python.sitePackages}/gaphor/settings.py \ | ||||
|       --replace-fail 'Gio.SettingsSchemaSource.get_default()' \ | ||||
|         "Gio.SettingsSchemaSource.new_from_directory('$GSCHEMA_PATH', Gio.SettingsSchemaSource.get_default(), False)" | ||||
| 
 | ||||
|     install -Dm644 data/org.gaphor.Gaphor.service -t $out/share/dbus-1/services/ | ||||
|     substituteInPlace $out/share/dbus-1/services/org.gaphor.Gaphor.service \ | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   lib, | ||||
|   clangStdenv, | ||||
|   stdenv, | ||||
|   fetchFromGitLab, | ||||
|   rustPlatform, | ||||
|   cargo, | ||||
| @ -11,23 +11,17 @@ | ||||
|   glib, | ||||
|   gtk4, | ||||
|   libadwaita, | ||||
|   zbar, | ||||
|   sqlite, | ||||
|   openssl, | ||||
|   pipewire, | ||||
|   gstreamer, | ||||
|   gst-plugins-base, | ||||
|   gst-plugins-bad, | ||||
|   gst-plugins-good, | ||||
|   gst-plugins-rs, | ||||
|   gst_all_1, | ||||
|   wrapGAppsHook4, | ||||
|   appstream-glib, | ||||
|   desktop-file-utils, | ||||
|   glycin-loaders, | ||||
|   nix-update-script, | ||||
| }: | ||||
| 
 | ||||
| clangStdenv.mkDerivation rec { | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "gnome-decoder"; | ||||
|   version = "0.7.1"; | ||||
| 
 | ||||
| @ -35,28 +29,21 @@ clangStdenv.mkDerivation rec { | ||||
|     domain = "gitlab.gnome.org"; | ||||
|     owner = "World"; | ||||
|     repo = "decoder"; | ||||
|     rev = version; | ||||
|     tag = finalAttrs.version; | ||||
|     hash = "sha256-lLZ8tll/R9cwk3t/MULmrR1KWZ1e+zneXL93035epPE="; | ||||
|   }; | ||||
| 
 | ||||
|   cargoDeps = rustPlatform.fetchCargoVendor { | ||||
|     inherit pname version src; | ||||
|     inherit (finalAttrs) pname version src; | ||||
|     hash = "sha256-USfC7HSL1TtjP1SmBRTKkPyKE4DkSn6xeH4mzfIBQWg="; | ||||
|   }; | ||||
| 
 | ||||
|   preFixup = '' | ||||
|     gappsWrapperArgs+=( | ||||
|       # vp8enc preset | ||||
|       --prefix GST_PRESET_PATH : "${gst-plugins-good}/share/gstreamer-1.0/presets" | ||||
|       # See https://gitlab.gnome.org/sophie-h/glycin/-/blob/0.1.beta.2/glycin/src/config.rs#L44 | ||||
|       --prefix XDG_DATA_DIRS : "${glycin-loaders}/share" | ||||
|     ) | ||||
|   ''; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     meson | ||||
|     ninja | ||||
|     pkg-config | ||||
|     glib | ||||
|     gtk4 | ||||
|     wrapGAppsHook4 | ||||
|     appstream-glib | ||||
|     desktop-file-utils | ||||
| @ -70,28 +57,34 @@ clangStdenv.mkDerivation rec { | ||||
|     glib | ||||
|     gtk4 | ||||
|     libadwaita | ||||
|     zbar | ||||
|     sqlite | ||||
|     openssl | ||||
|     pipewire | ||||
|     gstreamer | ||||
|     gst-plugins-base | ||||
|     gst-plugins-bad | ||||
|     gst-plugins-good | ||||
|     gst-plugins-rs # for gtk4paintablesink | ||||
|     gst_all_1.gstreamer | ||||
|     gst_all_1.gst-plugins-base | ||||
|     gst_all_1.gst-plugins-bad | ||||
|     gst_all_1.gst-plugins-good | ||||
|     gst_all_1.gst-plugins-rs # for gtk4paintablesink | ||||
|   ]; | ||||
| 
 | ||||
|   # Adds vp8enc preset for camera enablement | ||||
|   preFixup = '' | ||||
|     gappsWrapperArgs+=( | ||||
|       --prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets" | ||||
|     ) | ||||
|   ''; | ||||
| 
 | ||||
|   passthru = { | ||||
|     updateScript = nix-update-script { }; | ||||
|   }; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|     description = "Scan and Generate QR Codes"; | ||||
|   meta = { | ||||
|     description = "Scan and generate QR codes"; | ||||
|     homepage = "https://gitlab.gnome.org/World/decoder"; | ||||
|     license = licenses.gpl3Plus; | ||||
|     platforms = platforms.linux; | ||||
|     license = lib.licenses.gpl3Plus; | ||||
|     maintainers = with lib.maintainers; [ zendo ]; | ||||
|     mainProgram = "decoder"; | ||||
|     maintainers = with maintainers; [ zendo ]; | ||||
|     teams = [ teams.gnome-circle ]; | ||||
|     platforms = lib.platforms.linux; | ||||
|     teams = [ lib.teams.gnome-circle ]; | ||||
|   }; | ||||
| } | ||||
| }) | ||||
| @ -15,17 +15,17 @@ let | ||||
| in | ||||
| buildGoModule rec { | ||||
|   pname = "go-ethereum"; | ||||
|   version = "1.15.11"; | ||||
|   version = "1.16.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "ethereum"; | ||||
|     repo = "go-ethereum"; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-2XGKkimwe9h8RxO3SzUta5Bh2Ooldl2LiHqUpn8FK7I="; | ||||
|     hash = "sha256-eu6VeG/vMdCOk15HWnKbtKRZbbYhH3y6SJrwEGxJs8w="; | ||||
|   }; | ||||
| 
 | ||||
|   proxyVendor = true; | ||||
|   vendorHash = "sha256-R9Qg6estiyjMAwN6tvuN9ZuE7+JqjEy+qYOPAg5lIJY="; | ||||
|   vendorHash = "sha256-Ggng6EDd5qRqcSbdycfivO8yiQcMOCSZt229JZcOlVs="; | ||||
| 
 | ||||
|   doCheck = false; | ||||
| 
 | ||||
|  | ||||
| @ -8,16 +8,16 @@ | ||||
| 
 | ||||
| buildGo124Module rec { | ||||
|   pname = "gowebly"; | ||||
|   version = "3.0.3"; | ||||
|   version = "3.0.4"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "gowebly"; | ||||
|     repo = "gowebly"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-iCdChT/eAWfeZyl5W1UHIjET3MGUD1YakjTToSS7iGs="; | ||||
|     hash = "sha256-oz/O5scGJigWjrmA2wnagDbf+epvwuyRI2CaSQY8K5I="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-mFCNrcdwSExjVym4BN1Yb/lsfQHxCDrlWoa9vyQ74ko="; | ||||
|   vendorHash = "sha256-BDdH6cFicbjT2WOldNRc8NcFKrIaeqy+mw113PRnwa8="; | ||||
| 
 | ||||
|   env.CGO_ENABLED = 0; | ||||
| 
 | ||||
|  | ||||
| @ -4,9 +4,7 @@ | ||||
|   cmake, | ||||
|   desktopToDarwinBundle, | ||||
|   pkg-config, | ||||
|   qtbase, | ||||
|   qtsvg, | ||||
|   qtwayland, | ||||
|   qt6Packages, | ||||
|   gnuradioMinimal, | ||||
|   thrift, | ||||
|   mpir, | ||||
| @ -14,7 +12,6 @@ | ||||
|   alsa-lib, | ||||
|   libjack2, | ||||
|   wrapGAppsHook3, | ||||
|   wrapQtAppsHook, | ||||
|   # drivers (optional): | ||||
|   rtl-sdr, | ||||
|   hackrf, | ||||
| @ -44,7 +41,7 @@ gnuradioMinimal.pkgs.mkDerivation rec { | ||||
|   nativeBuildInputs = [ | ||||
|     cmake | ||||
|     pkg-config | ||||
|     wrapQtAppsHook | ||||
|     qt6Packages.wrapQtAppsHook | ||||
|     wrapGAppsHook3 | ||||
|   ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; | ||||
| 
 | ||||
| @ -55,15 +52,15 @@ gnuradioMinimal.pkgs.mkDerivation rec { | ||||
|       fftwFloat | ||||
|       libjack2 | ||||
|       gnuradioMinimal.unwrapped.boost | ||||
|       qtbase | ||||
|       qtsvg | ||||
|       qt6Packages.qtbase | ||||
|       qt6Packages.qtsvg | ||||
|       gnuradioMinimal.pkgs.osmosdr | ||||
|       rtl-sdr | ||||
|       hackrf | ||||
|     ] | ||||
|     ++ lib.optionals stdenv.hostPlatform.isLinux [ | ||||
|       alsa-lib | ||||
|       qtwayland | ||||
|       qt6Packages.qtwayland | ||||
|     ] | ||||
|     ++ lib.optionals (gnuradioMinimal.hasFeature "gr-ctrlport") [ | ||||
|       thrift | ||||
| @ -92,7 +89,7 @@ gnuradioMinimal.pkgs.mkDerivation rec { | ||||
|     qtWrapperArgs+=("''${gappsWrapperArgs[@]}") | ||||
|   ''; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|   meta = { | ||||
|     description = "Software defined radio (SDR) receiver"; | ||||
|     mainProgram = "gqrx"; | ||||
|     longDescription = '' | ||||
| @ -104,9 +101,9 @@ gnuradioMinimal.pkgs.mkDerivation rec { | ||||
|     homepage = "https://gqrx.dk/"; | ||||
|     # Some of the code comes from the Cutesdr project, with a BSD license, but | ||||
|     # it's currently unknown which version of the BSD license that is. | ||||
|     license = licenses.gpl3Plus; | ||||
|     platforms = platforms.linux ++ platforms.darwin; | ||||
|     maintainers = with maintainers; [ | ||||
|     license = lib.licenses.gpl3Plus; | ||||
|     platforms = lib.platforms.linux ++ lib.platforms.darwin; | ||||
|     maintainers = with lib.maintainers; [ | ||||
|       bjornfor | ||||
|       fpletz | ||||
|     ]; | ||||
							
								
								
									
										38
									
								
								pkgs/by-name/iw/iw4x-launcher/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								pkgs/by-name/iw/iw4x-launcher/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| { | ||||
|   lib, | ||||
|   fetchFromGitHub, | ||||
|   rustPlatform, | ||||
|   openssl, | ||||
|   pkg-config, | ||||
| }: | ||||
| 
 | ||||
| rustPlatform.buildRustPackage (finalAttrs: { | ||||
|   pname = "iw4x-launcher"; | ||||
|   version = "0.10.10"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "iw4x"; | ||||
|     repo = "launcher"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-VJxOkgk96DnmnlBh5jDFjKVDv7eMtx8RHg7qn0gQpaU="; | ||||
|   }; | ||||
| 
 | ||||
|   cargoHash = "sha256-nAqT4lkn9H9Yh87Ud+GtRAwgoFbAZNhJtWq2GgrcFbk="; | ||||
| 
 | ||||
|   buildInputs = [ openssl ]; | ||||
|   nativeBuildInputs = [ pkg-config ]; | ||||
| 
 | ||||
|   env.OPENSSL_NO_VENDOR = true; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Official launcher for the IW4x mod"; | ||||
|     longDescription = "IW4x allows you to relive Call of Duty: Modern Warfare 2 (2009) in a secure environment with expanded modding capabilites"; | ||||
|     homepage = "https://iw4x.dev"; | ||||
|     downloadPage = "https://github.com/iw4x/launcher"; | ||||
|     changelog = "https://github.com/iw4x/launcher/releases/tag/v${finalAttrs.version}"; | ||||
|     license = lib.licenses.gpl3Only; | ||||
|     maintainers = with lib.maintainers; [ andrewfield ]; | ||||
|     mainProgram = "iw4x-launcher"; | ||||
|     platforms = lib.platforms.linux ++ lib.platforms.darwin; | ||||
|   }; | ||||
| }) | ||||
| @ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec { | ||||
|   # Tests output a few exceptions but still succeed | ||||
|   checkPhase = '' | ||||
|     runHook preCheck | ||||
|     stestr run | ||||
|     stestr run -e <(echo "test_load_ok") | ||||
|     runHook postCheck | ||||
|   ''; | ||||
| 
 | ||||
|  | ||||
| @ -6,16 +6,16 @@ | ||||
| 
 | ||||
| buildGoModule (finalAttrs: { | ||||
|   pname = "mcphost"; | ||||
|   version = "0.13.1"; | ||||
|   version = "0.18.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "mark3labs"; | ||||
|     repo = "mcphost"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-vPho1fotkvGr1H+XiWpCukjgKifu3bALUQL6y5y+R08="; | ||||
|     hash = "sha256-5w42N2RJeZXyM7XiKuwYlGxwH6KIJajGnJ9HCHnBNZ8="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-4jr73N8WcRQTRNvabOrUb2uRCW2LYxhGy0wshsZOcxc="; | ||||
|   vendorHash = "sha256-U/XtO4OhcioaSU2iGTNmvEilp9+Yu3TVafzNEaFcWEg="; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP)"; | ||||
|  | ||||
| @ -6,13 +6,13 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "mcpp"; | ||||
|   version = "2.7.2.1"; | ||||
|   version = "2.7.2.2"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "museoa"; | ||||
|     repo = "mcpp"; | ||||
|     rev = finalAttrs.version; | ||||
|     hash = "sha256-T4feegblOeG+NU+c+PAobf8HT8KDSfcINkRAa1hNpkY="; | ||||
|     hash = "sha256-wz225bhBF0lFerOAhl8Rwmw8ItHd9BXQceweD9BqvEQ="; | ||||
|   }; | ||||
| 
 | ||||
|   env = lib.optionalAttrs stdenv.cc.isGNU { | ||||
|  | ||||
| @ -4,21 +4,24 @@ | ||||
|   fetchFromGitHub, | ||||
|   lib, | ||||
| }: | ||||
| stdenv.mkDerivation rec { | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "micronucleus"; | ||||
|   version = "2.04"; | ||||
|   version = "2.6"; | ||||
| 
 | ||||
|   sourceRoot = "${src.name}/commandline"; | ||||
|   sourceRoot = "${finalAttrs.src.name}/commandline"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "micronucleus"; | ||||
|     repo = "micronucleus"; | ||||
|     rev = version; | ||||
|     sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in"; | ||||
|     rev = "v${finalAttrs.version}"; | ||||
|     sha256 = "sha256-IngVHeYgPUwSsboTZ5h55iLUxtdBSdugiLk5HbyHIvI="; | ||||
|   }; | ||||
| 
 | ||||
|   buildInputs = [ libusb-compat-0_1 ]; | ||||
|   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; | ||||
|   makeFlags = [ | ||||
|     "CC=${stdenv.cc.targetPrefix}cc" | ||||
|     "STATIC=" | ||||
|   ]; | ||||
| 
 | ||||
|   installPhase = '' | ||||
|     mkdir -p $out/bin | ||||
| @ -27,11 +30,14 @@ stdenv.mkDerivation rec { | ||||
|     cp 49-micronucleus.rules $out/lib/udev | ||||
|   ''; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|   meta = { | ||||
|     description = "Upload tool for micronucleus"; | ||||
|     mainProgram = "micronucleus"; | ||||
|     homepage = "https://github.com/micronucleus/micronucleus"; | ||||
|     license = licenses.gpl3; | ||||
|     maintainers = [ maintainers.cab404 ]; | ||||
|     license = lib.licenses.gpl3; | ||||
|     maintainers = with lib.maintainers; [ | ||||
|       cab404 | ||||
|       kuflierl | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
| }) | ||||
|  | ||||
| @ -6,13 +6,13 @@ | ||||
| }: | ||||
| buildDotnetModule rec { | ||||
|   pname = "min-ed-launcher"; | ||||
|   version = "0.12.0"; | ||||
|   version = "0.12.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "rfvgyhn"; | ||||
|     repo = "min-ed-launcher"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-x3T88bhjxlf6K+COGfZGLsgwlEBSs9WR9zV+ZiTzh7g="; | ||||
|     hash = "sha256-/dzcWwpg1nIrqICAQIxzwMgfrCB1G9bu2bT7Cv1khFM="; | ||||
| 
 | ||||
|     leaveDotGit = true; # During build the current commit is appended to the version | ||||
|   }; | ||||
|  | ||||
							
								
								
									
										2063
									
								
								pkgs/by-name/mi/minhtml/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2063
									
								
								pkgs/by-name/mi/minhtml/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										43
									
								
								pkgs/by-name/mi/minhtml/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								pkgs/by-name/mi/minhtml/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| { | ||||
|   lib, | ||||
|   fetchFromGitHub, | ||||
|   rustPlatform, | ||||
| }: | ||||
| rustPlatform.buildRustPackage (finalAttrs: { | ||||
|   pname = "minhtml"; | ||||
|   version = "0.16.4"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "wilsonzlin"; | ||||
|     repo = "minify-html"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-SoCSHhgTLfztSfvzxxpZn/nQpXbKlkE4iiP0YZ0MVjY="; | ||||
|   }; | ||||
| 
 | ||||
|   # Upstream does not include a lock file so one has to be patched in. | ||||
|   cargoLock = { | ||||
|     lockFile = ./Cargo.lock; | ||||
|   }; | ||||
|   postPatch = '' | ||||
|     cp ${./Cargo.lock} Cargo.lock | ||||
|   ''; | ||||
| 
 | ||||
|   # Ensures that only the correct package gets built, as upstream contains multiple. | ||||
|   cargoBuildFlags = [ | ||||
|     "-p" | ||||
|     "minhtml" | ||||
|   ]; | ||||
|   cargoTestFlags = [ | ||||
|     "-p" | ||||
|     "minhtml" | ||||
|   ]; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Minifier for HTML, JavaScript, and CSS"; | ||||
|     mainProgram = "minhtml"; | ||||
|     homepage = "https://github.com/wilsonzlin/minify-html"; | ||||
|     changelog = "https://github.com/wilsonzlin/minify-html/releases/tag/v${finalAttrs.version}"; | ||||
|     license = lib.licenses.mit; | ||||
|     maintainers = with lib.maintainers; [ tye-exe ]; | ||||
|   }; | ||||
| }) | ||||
| @ -1,57 +0,0 @@ | ||||
| --- a/src/nerofs.cpp
 | ||||
| +++ b/src/nerofs.cpp
 | ||||
| @@ -173,31 +173,19 @@
 | ||||
|   | ||||
|  QString NeroFS::GetIcoextract() | ||||
|  { | ||||
| -    // TODO: this is for flexibility in sandboxed environments(?)
 | ||||
| -    // idk what the "good" path should be for Flatpak, so...
 | ||||
| -    if(QDir("/usr/bin").exists("icoextract")) {
 | ||||
| -        return "/usr/bin/icoextract";
 | ||||
| -    } else return "";
 | ||||
| +    return QStandardPaths::findExecutable("icoextract");
 | ||||
|  } | ||||
|   | ||||
|   | ||||
|  QString NeroFS::GetIcoutils() | ||||
|  { | ||||
| -    // TODO: this is for flexibility in sandboxed environments(?)
 | ||||
| -    // idk what the "good" path should be for Flatpak, so...
 | ||||
| -    if(QDir("/usr/bin").exists("icotool")) {
 | ||||
| -        return "/usr/bin/icotool";
 | ||||
| -    } else return "";
 | ||||
| +    return QStandardPaths::findExecutable("icotool");
 | ||||
|  } | ||||
|   | ||||
|   | ||||
|  QString NeroFS::GetUmU() | ||||
|  { | ||||
| -    // TODO: this is for flexibility in sandboxed environments(?)
 | ||||
| -    // idk what the "good" path should be for Flatpak, so...
 | ||||
| -    if(QDir("/usr/bin").exists("umu-run")) {
 | ||||
| -        return "/usr/bin/umu-run";
 | ||||
| -    } else return "";
 | ||||
| +    return QStandardPaths::findExecutable("umu-run");
 | ||||
|  } | ||||
|   | ||||
|  QString NeroFS::GetWinetricks(const QString &runner) | ||||
| @@ -207,17 +195,13 @@
 | ||||
|              return protonsPath.path() + '/' + runner + "/protonfixes/winetricks"; | ||||
|          else { | ||||
|              // fall back to system winetricks | ||||
| -            if(QDir("/usr/bin").exists("winetricks"))
 | ||||
| -                return "/usr/bin/winetricks";
 | ||||
| -            else return "";
 | ||||
| +            return QStandardPaths::findExecutable("winetricks");
 | ||||
|          } | ||||
|      } else if(QDir(protonsPath.path() + '/' + currentRunner + "/protonfixes").exists("winetricks")) | ||||
|          return protonsPath.path() + '/' + currentRunner + "/protonfixes/winetricks"; | ||||
|      else { | ||||
|          // fall back to system winetricks | ||||
| -        if(QDir("/usr/bin").exists("winetricks"))
 | ||||
| -            return "/usr/bin/winetricks";
 | ||||
| -        else return "";
 | ||||
| +        return QStandardPaths::findExecutable("winetricks");
 | ||||
|      } | ||||
|  } | ||||
|   | ||||
| @ -1,11 +0,0 @@ | ||||
| --- a/src/neroprefixsettings.cpp
 | ||||
| +++ b/src/neroprefixsettings.cpp
 | ||||
| @@ -598,7 +598,7 @@
 | ||||
|          tmpDir.mkdir("nero-manager"); | ||||
|      QProcess process; | ||||
|      process.setWorkingDirectory(tmpDir.path()+"/nero-manager"); | ||||
| -    process.start("/usr/bin/curl", { "-o", "bridge.zip", "-L", "https://github.com/EnderIce2/rpc-bridge/releases/latest/download/bridge.zip" });
 | ||||
| +    process.start(QStandardPaths::findExecutable("curl"), { "-o", "bridge.zip", "-L", "https://github.com/EnderIce2/rpc-bridge/releases/latest/download/bridge.zip" });
 | ||||
|      printf("Downloading Discord RPC Bridge...\n"); | ||||
|   | ||||
|      NeroPrefixSettingsWindow::blockSignals(true); | ||||
| @ -18,13 +18,13 @@ | ||||
| }: | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "nero-umu"; | ||||
|   version = "1.1.1"; | ||||
|   version = "1.1.2"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "SeongGino"; | ||||
|     repo = "Nero-umu"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-sX/Z/b5stauut8qg6IV/DdsCIkdx1N3+y1jwoXHr1LY="; | ||||
|     hash = "sha256-7Wmha/WsSmbEgD2Dw2izSRzw8ldIrWcRIdUMp2okHWY="; | ||||
|   }; | ||||
| 
 | ||||
|   #Replace quazip git submodule with pre-packaged quazip | ||||
| @ -62,12 +62,6 @@ stdenv.mkDerivation (finalAttrs: { | ||||
|     (lib.cmakeFeature "NERO_QT_VERSION" "Qt6") | ||||
|   ]; | ||||
| 
 | ||||
|   #Fixes to be able to find binaries for nix | ||||
|   patches = [ | ||||
|     ./nerofs.patch | ||||
|     ./neroprefix.patch | ||||
|   ]; | ||||
| 
 | ||||
|   installPhase = '' | ||||
|     runHook preInstall | ||||
|     install -Dm755 "nero-umu" "$out/bin/nero-umu" | ||||
|  | ||||
| @ -8,16 +8,16 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "netclient"; | ||||
|   version = "0.90.0"; | ||||
|   version = "0.99.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "gravitl"; | ||||
|     repo = "netclient"; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-/drujpz0oeAZmV24Fxy3N6aqa5z72WiVxkjccbc6xmE="; | ||||
|     hash = "sha256-hSylhELMfiYNFHt03bJN1gTfy3EXSHJOj+ayUeU3+4w="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-l2Vx1lD+LF/4N0QLVTDD1/TmWpR3JPAgMyrgw7aT2EQ="; | ||||
|   vendorHash = "sha256-bpXGXK97ohepYoAyJFZE49vo48ch3gAsVyax1+uLIfE="; | ||||
| 
 | ||||
|   buildInputs = lib.optional stdenv.hostPlatform.isLinux libX11; | ||||
| 
 | ||||
|  | ||||
| @ -111,6 +111,10 @@ python3Packages.buildPythonApplication rec { | ||||
|       }; | ||||
| 
 | ||||
|       tests = { | ||||
|         with_reexec = nixos-rebuild-ng.override { | ||||
|           withReexec = true; | ||||
|           withNgSuffix = false; | ||||
|         }; | ||||
|         with_nix_latest = nixos-rebuild-ng.override { | ||||
|           nix = nixVersions.latest; | ||||
|         }; | ||||
| @ -122,11 +126,9 @@ python3Packages.buildPythonApplication rec { | ||||
|           nix = nixVersions.nix_2_3; | ||||
|         }; | ||||
|         with_lix_latest = nixos-rebuild-ng.override { | ||||
|           # oldest / minimum supported version in nixpkgs | ||||
|           nix = lixPackageSets.latest.lix; | ||||
|         }; | ||||
|         with_lix_stable = nixos-rebuild-ng.override { | ||||
|           # oldest / minimum supported version in nixpkgs | ||||
|           nix = lixPackageSets.stable.lix; | ||||
|         }; | ||||
| 
 | ||||
|  | ||||
| @ -3,17 +3,15 @@ import json | ||||
| import logging | ||||
| import os | ||||
| import sys | ||||
| from pathlib import Path | ||||
| from subprocess import CalledProcessError, run | ||||
| from typing import Final, assert_never | ||||
| 
 | ||||
| from . import nix, tmpdir | ||||
| from . import nix | ||||
| from .constants import EXECUTABLE, WITH_NIX_2_18, WITH_REEXEC, WITH_SHELL_FILES | ||||
| from .models import Action, BuildAttr, Flake, ImageVariants, NixOSRebuildError, Profile | ||||
| from .process import Remote, cleanup_ssh | ||||
| from .utils import Args, LogFormatter, tabulate | ||||
| 
 | ||||
| NIXOS_REBUILD_ATTR: Final = "config.system.build.nixos-rebuild" | ||||
| from .models import Action, BuildAttr, Flake, Profile | ||||
| from .process import Remote | ||||
| from .services import build_and_activate_system, reexec | ||||
| from .utils import LogFormatter, tabulate | ||||
| 
 | ||||
| logger: Final = logging.getLogger(__name__) | ||||
| logger.setLevel(logging.INFO) | ||||
| @ -271,72 +269,6 @@ def parse_args( | ||||
|     return args, args_groups | ||||
| 
 | ||||
| 
 | ||||
| def reexec( | ||||
|     argv: list[str], | ||||
|     args: argparse.Namespace, | ||||
|     build_flags: Args, | ||||
|     flake_build_flags: Args, | ||||
| ) -> None: | ||||
|     drv = None | ||||
|     try: | ||||
|         # Parsing the args here but ignore ask_sudo_password since it is not | ||||
|         # needed and we would end up asking sudo password twice | ||||
|         if flake := Flake.from_arg(args.flake, Remote.from_arg(args.target_host, None)): | ||||
|             drv = nix.build_flake( | ||||
|                 NIXOS_REBUILD_ATTR, | ||||
|                 flake, | ||||
|                 flake_build_flags | {"no_link": True}, | ||||
|             ) | ||||
|         else: | ||||
|             build_attr = BuildAttr.from_arg(args.attr, args.file) | ||||
|             drv = nix.build( | ||||
|                 NIXOS_REBUILD_ATTR, | ||||
|                 build_attr, | ||||
|                 build_flags | {"no_out_link": True}, | ||||
|             ) | ||||
|     except CalledProcessError: | ||||
|         logger.warning( | ||||
|             "could not build a newer version of nixos-rebuild, using current version", | ||||
|             exc_info=logger.isEnabledFor(logging.DEBUG), | ||||
|         ) | ||||
| 
 | ||||
|     if drv: | ||||
|         new = drv / f"bin/{EXECUTABLE}" | ||||
|         current = Path(argv[0]) | ||||
|         if new != current: | ||||
|             logger.debug( | ||||
|                 "detected newer version of script, re-exec'ing, current=%s, new=%s", | ||||
|                 current, | ||||
|                 new, | ||||
|             ) | ||||
|             # Manually call clean-up functions since os.execve() will replace | ||||
|             # the process immediately | ||||
|             cleanup_ssh() | ||||
|             tmpdir.TMPDIR.cleanup() | ||||
|             try: | ||||
|                 os.execve(new, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"}) | ||||
|             except Exception: | ||||
|                 # Possible errors that we can have here: | ||||
|                 # - Missing the binary | ||||
|                 # - Exec format error (e.g.: another OS/CPU arch) | ||||
|                 logger.warning( | ||||
|                     "could not re-exec in a newer version of nixos-rebuild, " | ||||
|                     "using current version", | ||||
|                     exc_info=logger.isEnabledFor(logging.DEBUG), | ||||
|                 ) | ||||
|                 # We already run clean-up, let's re-exec in the current version | ||||
|                 # to avoid issues | ||||
|                 os.execve(current, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"}) | ||||
| 
 | ||||
| 
 | ||||
| def validate_image_variant(image_variant: str, variants: ImageVariants) -> None: | ||||
|     if image_variant not in variants: | ||||
|         raise NixOSRebuildError( | ||||
|             "please specify one of the following supported image variants via " | ||||
|             "--image-variant:\n" + "\n".join(f"- {v}" for v in variants) | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| def execute(argv: list[str]) -> None: | ||||
|     args, args_groups = parse_args(argv) | ||||
| 
 | ||||
| @ -395,147 +327,20 @@ def execute(argv: list[str]) -> None: | ||||
|             | Action.BUILD_VM | ||||
|             | Action.BUILD_VM_WITH_BOOTLOADER | ||||
|         ): | ||||
|             logger.info("building the system configuration...") | ||||
| 
 | ||||
|             dry_run = action == Action.DRY_BUILD | ||||
|             no_link = action in (Action.SWITCH, Action.BOOT) | ||||
|             rollback = bool(args.rollback) | ||||
| 
 | ||||
|             match action: | ||||
|                 case Action.BUILD_IMAGE if flake: | ||||
|                     variants = nix.get_build_image_variants_flake( | ||||
|                         flake, | ||||
|                         eval_flags=flake_common_flags, | ||||
|                     ) | ||||
|                     validate_image_variant(args.image_variant, variants) | ||||
|                     attr = f"config.system.build.images.{args.image_variant}" | ||||
|                 case Action.BUILD_IMAGE: | ||||
|                     variants = nix.get_build_image_variants( | ||||
|                         build_attr, | ||||
|                         instantiate_flags=common_flags, | ||||
|                     ) | ||||
|                     validate_image_variant(args.image_variant, variants) | ||||
|                     attr = f"config.system.build.images.{args.image_variant}" | ||||
|                 case Action.BUILD_VM: | ||||
|                     attr = "config.system.build.vm" | ||||
|                 case Action.BUILD_VM_WITH_BOOTLOADER: | ||||
|                     attr = "config.system.build.vmWithBootLoader" | ||||
|                 case _: | ||||
|                     attr = "config.system.build.toplevel" | ||||
| 
 | ||||
|             match (action, rollback, build_host, flake): | ||||
|                 case (Action.SWITCH | Action.BOOT, True, _, _): | ||||
|                     path_to_config = nix.rollback(profile, target_host, sudo=args.sudo) | ||||
|                 case (Action.TEST | Action.BUILD, True, _, _): | ||||
|                     maybe_path_to_config = nix.rollback_temporary_profile( | ||||
|                         profile, | ||||
|                         target_host, | ||||
|                         sudo=args.sudo, | ||||
|                     ) | ||||
|                     if maybe_path_to_config:  # kinda silly but this makes mypy happy | ||||
|                         path_to_config = maybe_path_to_config | ||||
|                     else: | ||||
|                         raise NixOSRebuildError("could not find previous generation") | ||||
|                 case (_, True, _, _): | ||||
|                     raise NixOSRebuildError( | ||||
|                         f"--rollback is incompatible with '{action}'" | ||||
|                     ) | ||||
|                 case (_, False, Remote(_), Flake(_)): | ||||
|                     path_to_config = nix.build_remote_flake( | ||||
|                         attr, | ||||
|                         flake, | ||||
|                         build_host, | ||||
|                         eval_flags=flake_common_flags, | ||||
|                         flake_build_flags=flake_build_flags | ||||
|                         | {"no_link": no_link, "dry_run": dry_run}, | ||||
|                         copy_flags=copy_flags, | ||||
|                     ) | ||||
|                 case (_, False, None, Flake(_)): | ||||
|                     path_to_config = nix.build_flake( | ||||
|                         attr, | ||||
|                         flake, | ||||
|                         flake_build_flags=flake_build_flags | ||||
|                         | {"no_link": no_link, "dry_run": dry_run}, | ||||
|                     ) | ||||
|                 case (_, False, Remote(_), None): | ||||
|                     path_to_config = nix.build_remote( | ||||
|                         attr, | ||||
|                         build_attr, | ||||
|                         build_host, | ||||
|                         realise_flags=common_flags, | ||||
|                         instantiate_flags=build_flags, | ||||
|                         copy_flags=copy_flags, | ||||
|                     ) | ||||
|                 case (_, False, None, None): | ||||
|                     path_to_config = nix.build( | ||||
|                         attr, | ||||
|                         build_attr, | ||||
|                         build_flags=build_flags | ||||
|                         | {"no_out_link": no_link, "dry_run": dry_run}, | ||||
|                     ) | ||||
|                 case never: | ||||
|                     # should never happen, but mypy is not smart enough to | ||||
|                     # handle this with assert_never | ||||
|                     # https://github.com/python/mypy/issues/16650 | ||||
|                     # https://github.com/python/mypy/issues/16722 | ||||
|                     raise AssertionError( | ||||
|                         f"expected code to be unreachable, but got: {never}" | ||||
|                     ) | ||||
| 
 | ||||
|             if not rollback: | ||||
|                 nix.copy_closure( | ||||
|                     path_to_config, | ||||
|                     to_host=target_host, | ||||
|                     from_host=build_host, | ||||
|                     copy_flags=copy_flags, | ||||
|                 ) | ||||
|                 if action in (Action.SWITCH, Action.BOOT): | ||||
|                     nix.set_profile( | ||||
|                         profile, | ||||
|                         path_to_config, | ||||
|                         target_host=target_host, | ||||
|                         sudo=args.sudo, | ||||
|                     ) | ||||
| 
 | ||||
|             # Print only the result to stdout to make it easier to script | ||||
|             def print_result(msg: str, result: str | Path) -> None: | ||||
|                 print(msg, end=" ", file=sys.stderr, flush=True) | ||||
|                 print(result, flush=True) | ||||
| 
 | ||||
|             match action: | ||||
|                 case Action.SWITCH | Action.BOOT | Action.TEST | Action.DRY_ACTIVATE: | ||||
|                     nix.switch_to_configuration( | ||||
|                         path_to_config, | ||||
|                         action, | ||||
|                         target_host=target_host, | ||||
|                         sudo=args.sudo, | ||||
|                         specialisation=args.specialisation, | ||||
|                         install_bootloader=args.install_bootloader, | ||||
|                     ) | ||||
|                     print_result("Done. The new configuration is", path_to_config) | ||||
|                 case Action.BUILD: | ||||
|                     print_result("Done. The new configuration is", path_to_config) | ||||
|                 case Action.BUILD_VM | Action.BUILD_VM_WITH_BOOTLOADER: | ||||
|                     # If you get `not-found`, please open an issue | ||||
|                     vm_path = next(path_to_config.glob("bin/run-*-vm"), "not-found") | ||||
|                     print_result( | ||||
|                         "Done. The virtual machine can be started by running", vm_path | ||||
|                     ) | ||||
|                 case Action.BUILD_IMAGE: | ||||
|                     if flake: | ||||
|                         image_name = nix.get_build_image_name_flake( | ||||
|                             flake, | ||||
|                             args.image_variant, | ||||
|                             eval_flags=flake_common_flags, | ||||
|                         ) | ||||
|                     else: | ||||
|                         image_name = nix.get_build_image_name( | ||||
|                             build_attr, | ||||
|                             args.image_variant, | ||||
|                             instantiate_flags=flake_common_flags, | ||||
|                         ) | ||||
|                     disk_path = path_to_config / image_name | ||||
|                     print_result("Done. The disk image can be found in", disk_path) | ||||
|             build_and_activate_system( | ||||
|                 action=action, | ||||
|                 args=args, | ||||
|                 build_host=build_host, | ||||
|                 target_host=target_host, | ||||
|                 profile=profile, | ||||
|                 flake=flake, | ||||
|                 build_attr=build_attr, | ||||
|                 build_flags=build_flags, | ||||
|                 common_flags=common_flags, | ||||
|                 copy_flags=copy_flags, | ||||
|                 flake_build_flags=flake_build_flags, | ||||
|                 flake_common_flags=flake_common_flags, | ||||
|             ) | ||||
| 
 | ||||
|         case Action.EDIT: | ||||
|             nix.edit(flake, flake_build_flags) | ||||
| @ -561,9 +366,9 @@ def execute(argv: list[str]) -> None: | ||||
| 
 | ||||
|         case Action.REPL: | ||||
|             if flake: | ||||
|                 nix.repl_flake("toplevel", flake, flake_build_flags) | ||||
|                 nix.repl_flake(flake, flake_build_flags) | ||||
|             else: | ||||
|                 nix.repl("system", build_attr, build_flags) | ||||
|                 nix.repl(build_attr, build_flags) | ||||
| 
 | ||||
|         case _: | ||||
|             assert_never(action) | ||||
|  | ||||
| @ -154,7 +154,7 @@ class Flake: | ||||
|             return cls(path, nixos_attr) | ||||
| 
 | ||||
|     @classmethod | ||||
|     def from_arg(cls, flake_arg: Any, target_host: Remote | None) -> Self | None: | ||||
|     def from_arg(cls, flake_arg: Any, target_host: Remote | None) -> Self | None:  # noqa: ANN401 | ||||
|         match flake_arg: | ||||
|             case str(s): | ||||
|                 return cls.parse(s, target_host) | ||||
|  | ||||
| @ -545,14 +545,14 @@ def list_generations(profile: Profile) -> list[GenerationJson]: | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| def repl(attr: str, build_attr: BuildAttr, nix_flags: Args | None = None) -> None: | ||||
| def repl(build_attr: BuildAttr, nix_flags: Args | None = None) -> None: | ||||
|     run_args = ["nix", "repl", "--file", build_attr.path] | ||||
|     if build_attr.attr: | ||||
|         run_args.append(build_attr.attr) | ||||
|     run_wrapper([*run_args, *dict_to_flags(nix_flags)]) | ||||
| 
 | ||||
| 
 | ||||
| def repl_flake(attr: str, flake: Flake, flake_flags: Args | None = None) -> None: | ||||
| def repl_flake(flake: Flake, flake_flags: Args | None = None) -> None: | ||||
|     expr = Template( | ||||
|         files(__package__).joinpath(FLAKE_REPL_TEMPLATE).read_text() | ||||
|     ).substitute( | ||||
|  | ||||
							
								
								
									
										317
									
								
								pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										317
									
								
								pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,317 @@ | ||||
| import argparse | ||||
| import logging | ||||
| import os | ||||
| import sys | ||||
| from pathlib import Path | ||||
| from subprocess import CalledProcessError | ||||
| from typing import Final | ||||
| 
 | ||||
| from . import nix, tmpdir | ||||
| from .constants import EXECUTABLE | ||||
| from .models import Action, BuildAttr, Flake, ImageVariants, NixOSRebuildError, Profile | ||||
| from .process import Remote, cleanup_ssh | ||||
| from .utils import Args | ||||
| 
 | ||||
| NIXOS_REBUILD_ATTR: Final = "config.system.build.nixos-rebuild" | ||||
| 
 | ||||
| logger: Final = logging.getLogger(__name__) | ||||
| logger.setLevel(logging.INFO) | ||||
| 
 | ||||
| 
 | ||||
| def reexec( | ||||
|     argv: list[str], | ||||
|     args: argparse.Namespace, | ||||
|     build_flags: Args, | ||||
|     flake_build_flags: Args, | ||||
| ) -> None: | ||||
|     drv = None | ||||
|     try: | ||||
|         # Parsing the args here but ignore ask_sudo_password since it is not | ||||
|         # needed and we would end up asking sudo password twice | ||||
|         if flake := Flake.from_arg(args.flake, Remote.from_arg(args.target_host, None)): | ||||
|             drv = nix.build_flake( | ||||
|                 NIXOS_REBUILD_ATTR, | ||||
|                 flake, | ||||
|                 flake_build_flags | {"no_link": True}, | ||||
|             ) | ||||
|         else: | ||||
|             build_attr = BuildAttr.from_arg(args.attr, args.file) | ||||
|             drv = nix.build( | ||||
|                 NIXOS_REBUILD_ATTR, | ||||
|                 build_attr, | ||||
|                 build_flags | {"no_out_link": True}, | ||||
|             ) | ||||
|     except CalledProcessError: | ||||
|         logger.warning( | ||||
|             "could not build a newer version of nixos-rebuild, using current version", | ||||
|             exc_info=logger.isEnabledFor(logging.DEBUG), | ||||
|         ) | ||||
| 
 | ||||
|     if drv: | ||||
|         new = drv / f"bin/{EXECUTABLE}" | ||||
|         current = Path(argv[0]) | ||||
|         if new != current: | ||||
|             logger.debug( | ||||
|                 "detected newer version of script, re-exec'ing, current=%s, new=%s", | ||||
|                 current, | ||||
|                 new, | ||||
|             ) | ||||
|             # Manually call clean-up functions since os.execve() will replace | ||||
|             # the process immediately | ||||
|             cleanup_ssh() | ||||
|             tmpdir.TMPDIR.cleanup() | ||||
|             try: | ||||
|                 os.execve(new, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"}) | ||||
|             except Exception: | ||||
|                 # Possible errors that we can have here: | ||||
|                 # - Missing the binary | ||||
|                 # - Exec format error (e.g.: another OS/CPU arch) | ||||
|                 logger.warning( | ||||
|                     "could not re-exec in a newer version of nixos-rebuild, " | ||||
|                     "using current version", | ||||
|                     exc_info=logger.isEnabledFor(logging.DEBUG), | ||||
|                 ) | ||||
|                 # We already run clean-up, let's re-exec in the current version | ||||
|                 # to avoid issues | ||||
|                 os.execve(current, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"}) | ||||
| 
 | ||||
| 
 | ||||
| def _validate_image_variant(image_variant: str, variants: ImageVariants) -> None: | ||||
|     if image_variant not in variants: | ||||
|         raise NixOSRebuildError( | ||||
|             "please specify one of the following supported image variants via " | ||||
|             "--image-variant:\n" + "\n".join(f"- {v}" for v in variants) | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| def _get_system_attr( | ||||
|     action: Action, | ||||
|     args: argparse.Namespace, | ||||
|     flake: Flake | None, | ||||
|     build_attr: BuildAttr, | ||||
|     common_flags: Args, | ||||
|     flake_common_flags: Args, | ||||
| ) -> str: | ||||
|     match action: | ||||
|         case Action.BUILD_IMAGE if flake: | ||||
|             variants = nix.get_build_image_variants_flake( | ||||
|                 flake, | ||||
|                 eval_flags=flake_common_flags, | ||||
|             ) | ||||
|             _validate_image_variant(args.image_variant, variants) | ||||
|             attr = f"config.system.build.images.{args.image_variant}" | ||||
|         case Action.BUILD_IMAGE: | ||||
|             variants = nix.get_build_image_variants( | ||||
|                 build_attr, | ||||
|                 instantiate_flags=common_flags, | ||||
|             ) | ||||
|             _validate_image_variant(args.image_variant, variants) | ||||
|             attr = f"config.system.build.images.{args.image_variant}" | ||||
|         case Action.BUILD_VM: | ||||
|             attr = "config.system.build.vm" | ||||
|         case Action.BUILD_VM_WITH_BOOTLOADER: | ||||
|             attr = "config.system.build.vmWithBootLoader" | ||||
|         case _: | ||||
|             attr = "config.system.build.toplevel" | ||||
| 
 | ||||
|     return attr | ||||
| 
 | ||||
| 
 | ||||
| def _build_system( | ||||
|     attr: str, | ||||
|     action: Action, | ||||
|     args: argparse.Namespace, | ||||
|     build_host: Remote | None, | ||||
|     target_host: Remote | None, | ||||
|     profile: Profile, | ||||
|     flake: Flake | None, | ||||
|     build_attr: BuildAttr, | ||||
|     build_flags: Args, | ||||
|     common_flags: Args, | ||||
|     copy_flags: Args, | ||||
|     flake_build_flags: Args, | ||||
|     flake_common_flags: Args, | ||||
| ) -> Path: | ||||
|     dry_run = action == Action.DRY_BUILD | ||||
|     no_link = action in (Action.SWITCH, Action.BOOT) | ||||
| 
 | ||||
|     match (action, args.rollback, build_host, flake): | ||||
|         case (Action.SWITCH | Action.BOOT, True, _, _): | ||||
|             path_to_config = nix.rollback(profile, target_host, sudo=args.sudo) | ||||
|         case (Action.TEST | Action.BUILD, True, _, _): | ||||
|             maybe_path_to_config = nix.rollback_temporary_profile( | ||||
|                 profile, | ||||
|                 target_host, | ||||
|                 sudo=args.sudo, | ||||
|             ) | ||||
|             if maybe_path_to_config:  # kinda silly but this makes mypy happy | ||||
|                 path_to_config = maybe_path_to_config | ||||
|             else: | ||||
|                 raise NixOSRebuildError("could not find previous generation") | ||||
|         case (_, True, _, _): | ||||
|             raise NixOSRebuildError(f"--rollback is incompatible with '{action}'") | ||||
|         case (_, False, Remote(_), Flake(_)): | ||||
|             path_to_config = nix.build_remote_flake( | ||||
|                 attr, | ||||
|                 flake, | ||||
|                 build_host, | ||||
|                 eval_flags=flake_common_flags, | ||||
|                 flake_build_flags=flake_build_flags | ||||
|                 | {"no_link": no_link, "dry_run": dry_run}, | ||||
|                 copy_flags=copy_flags, | ||||
|             ) | ||||
|         case (_, False, None, Flake(_)): | ||||
|             path_to_config = nix.build_flake( | ||||
|                 attr, | ||||
|                 flake, | ||||
|                 flake_build_flags=flake_build_flags | ||||
|                 | {"no_link": no_link, "dry_run": dry_run}, | ||||
|             ) | ||||
|         case (_, False, Remote(_), None): | ||||
|             path_to_config = nix.build_remote( | ||||
|                 attr, | ||||
|                 build_attr, | ||||
|                 build_host, | ||||
|                 realise_flags=common_flags, | ||||
|                 instantiate_flags=build_flags, | ||||
|                 copy_flags=copy_flags, | ||||
|             ) | ||||
|         case (_, False, None, None): | ||||
|             path_to_config = nix.build( | ||||
|                 attr, | ||||
|                 build_attr, | ||||
|                 build_flags=build_flags | {"no_out_link": no_link, "dry_run": dry_run}, | ||||
|             ) | ||||
|         case never: | ||||
|             # should never happen, but mypy is not smart enough to | ||||
|             # handle this with assert_never | ||||
|             # https://github.com/python/mypy/issues/16650 | ||||
|             # https://github.com/python/mypy/issues/16722 | ||||
|             raise AssertionError(f"expected code to be unreachable, but got: {never}") | ||||
| 
 | ||||
|     if not args.rollback: | ||||
|         nix.copy_closure( | ||||
|             path_to_config, | ||||
|             to_host=target_host, | ||||
|             from_host=build_host, | ||||
|             copy_flags=copy_flags, | ||||
|         ) | ||||
| 
 | ||||
|     return path_to_config | ||||
| 
 | ||||
| 
 | ||||
| def _activate_system( | ||||
|     path_to_config: Path, | ||||
|     action: Action, | ||||
|     args: argparse.Namespace, | ||||
|     target_host: Remote | None, | ||||
|     profile: Profile, | ||||
|     flake: Flake | None, | ||||
|     build_attr: BuildAttr, | ||||
|     flake_common_flags: Args, | ||||
|     common_flags: Args, | ||||
| ) -> None: | ||||
|     # Print only the result to stdout to make it easier to script | ||||
|     def print_result(msg: str, result: str | Path) -> None: | ||||
|         print(msg, end=" ", file=sys.stderr, flush=True) | ||||
|         print(result, flush=True) | ||||
| 
 | ||||
|     match action: | ||||
|         case Action.SWITCH | Action.BOOT if not args.rollback: | ||||
|             nix.set_profile( | ||||
|                 profile, | ||||
|                 path_to_config, | ||||
|                 target_host=target_host, | ||||
|                 sudo=args.sudo, | ||||
|             ) | ||||
|             nix.switch_to_configuration( | ||||
|                 path_to_config, | ||||
|                 action, | ||||
|                 target_host=target_host, | ||||
|                 sudo=args.sudo, | ||||
|                 specialisation=args.specialisation, | ||||
|                 install_bootloader=args.install_bootloader, | ||||
|             ) | ||||
|             print_result("Done. The new configuration is", path_to_config) | ||||
|         case Action.SWITCH | Action.BOOT | Action.TEST | Action.DRY_ACTIVATE: | ||||
|             nix.switch_to_configuration( | ||||
|                 path_to_config, | ||||
|                 action, | ||||
|                 target_host=target_host, | ||||
|                 sudo=args.sudo, | ||||
|                 specialisation=args.specialisation, | ||||
|                 install_bootloader=args.install_bootloader, | ||||
|             ) | ||||
|             print_result("Done. The new configuration is", path_to_config) | ||||
|         case Action.BUILD: | ||||
|             print_result("Done. The new configuration is", path_to_config) | ||||
|         case Action.BUILD_VM | Action.BUILD_VM_WITH_BOOTLOADER: | ||||
|             # If you get `not-found`, please open an issue | ||||
|             vm_path = next(path_to_config.glob("bin/run-*-vm"), "not-found") | ||||
|             print_result("Done. The virtual machine can be started by running", vm_path) | ||||
|         case Action.BUILD_IMAGE: | ||||
|             if flake: | ||||
|                 image_name = nix.get_build_image_name_flake( | ||||
|                     flake, | ||||
|                     args.image_variant, | ||||
|                     eval_flags=flake_common_flags, | ||||
|                 ) | ||||
|             else: | ||||
|                 image_name = nix.get_build_image_name( | ||||
|                     build_attr, | ||||
|                     args.image_variant, | ||||
|                     instantiate_flags=common_flags, | ||||
|                 ) | ||||
|             disk_path = path_to_config / image_name | ||||
|             print_result("Done. The disk image can be found in", disk_path) | ||||
| 
 | ||||
| 
 | ||||
| def build_and_activate_system( | ||||
|     action: Action, | ||||
|     args: argparse.Namespace, | ||||
|     build_host: Remote | None, | ||||
|     target_host: Remote | None, | ||||
|     profile: Profile, | ||||
|     flake: Flake | None, | ||||
|     build_attr: BuildAttr, | ||||
|     build_flags: Args, | ||||
|     common_flags: Args, | ||||
|     copy_flags: Args, | ||||
|     flake_build_flags: Args, | ||||
|     flake_common_flags: Args, | ||||
| ) -> None: | ||||
|     logger.info("building the system configuration...") | ||||
|     attr = _get_system_attr( | ||||
|         action=action, | ||||
|         args=args, | ||||
|         flake=flake, | ||||
|         build_attr=build_attr, | ||||
|         common_flags=common_flags, | ||||
|         flake_common_flags=flake_common_flags, | ||||
|     ) | ||||
|     path_to_config = _build_system( | ||||
|         attr, | ||||
|         action=action, | ||||
|         args=args, | ||||
|         build_host=build_host, | ||||
|         target_host=target_host, | ||||
|         profile=profile, | ||||
|         flake=flake, | ||||
|         build_attr=build_attr, | ||||
|         build_flags=build_flags, | ||||
|         common_flags=common_flags, | ||||
|         copy_flags=copy_flags, | ||||
|         flake_build_flags=flake_build_flags, | ||||
|         flake_common_flags=flake_common_flags, | ||||
|     ) | ||||
|     _activate_system( | ||||
|         path_to_config, | ||||
|         action=action, | ||||
|         args=args, | ||||
|         target_host=target_host, | ||||
|         profile=profile, | ||||
|         flake=flake, | ||||
|         build_attr=build_attr, | ||||
|         common_flags=common_flags, | ||||
|         flake_common_flags=flake_common_flags, | ||||
|     ) | ||||
| @ -65,10 +65,21 @@ extend-select = [ | ||||
|     "ISC001", | ||||
|     "ISC002", | ||||
|     "ISC003", | ||||
|     # unused arguments | ||||
|     "ARG001", | ||||
|     "ARG002", | ||||
|     "ARG003", | ||||
|     "ARG004", | ||||
|     "ARG005", | ||||
| ] | ||||
| ignore = [ | ||||
| 
 | ||||
| [tool.ruff.lint.per-file-ignores] | ||||
| "tests/*" = [ | ||||
|     # allow unused arguments in tests (e.g., mocks) | ||||
|     "ARG001", | ||||
|     "ARG005", | ||||
|     # allow Any type | ||||
|    "ANN401" | ||||
|     "ANN401" | ||||
| ] | ||||
| 
 | ||||
| [tool.pytest.ini_options] | ||||
|  | ||||
| @ -132,7 +132,7 @@ def test_parse_args() -> None: | ||||
| @patch("os.execve", autospec=True) | ||||
| @patch(get_qualified_name(nr.nix.build), autospec=True) | ||||
| def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) -> None: | ||||
|     monkeypatch.setattr(nr, "EXECUTABLE", "nixos-rebuild-ng") | ||||
|     monkeypatch.setattr(nr.services, "EXECUTABLE", "nixos-rebuild-ng") | ||||
|     argv = ["/path/bin/nixos-rebuild-ng", "switch", "--no-flake"] | ||||
|     args, _ = nr.parse_args(argv) | ||||
|     mock_build.return_value = Path("/path") | ||||
| @ -141,7 +141,7 @@ def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) - | ||||
|     mock_build.assert_has_calls( | ||||
|         [ | ||||
|             call( | ||||
|                 nr.NIXOS_REBUILD_ATTR, | ||||
|                 nr.services.NIXOS_REBUILD_ATTR, | ||||
|                 nr.models.BuildAttr(ANY, ANY), | ||||
|                 {"build": True, "no_out_link": True}, | ||||
|             ) | ||||
| @ -178,14 +178,14 @@ def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) - | ||||
| def test_reexec_flake( | ||||
|     mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch | ||||
| ) -> None: | ||||
|     monkeypatch.setattr(nr, "EXECUTABLE", "nixos-rebuild-ng") | ||||
|     monkeypatch.setattr(nr.services, "EXECUTABLE", "nixos-rebuild-ng") | ||||
|     argv = ["/path/bin/nixos-rebuild-ng", "switch", "--flake"] | ||||
|     args, _ = nr.parse_args(argv) | ||||
|     mock_build.return_value = Path("/path") | ||||
| 
 | ||||
|     nr.reexec(argv, args, {"build": True}, {"flake": True}) | ||||
|     mock_build.assert_called_once_with( | ||||
|         nr.NIXOS_REBUILD_ATTR, | ||||
|         nr.services.NIXOS_REBUILD_ATTR, | ||||
|         nr.models.Flake(ANY, ANY), | ||||
|         {"flake": True, "no_link": True}, | ||||
|     ) | ||||
| @ -536,7 +536,7 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None: | ||||
| ) | ||||
| @patch("subprocess.run", autospec=True) | ||||
| @patch("uuid.uuid4", autospec=True) | ||||
| @patch(get_qualified_name(nr.cleanup_ssh), autospec=True) | ||||
| @patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True) | ||||
| @pytest.mark.skipif( | ||||
|     not WITH_NIX_2_18, | ||||
|     reason="Tests internal logic based on the assumption that Nix >= 2.18", | ||||
| @ -755,7 +755,7 @@ def test_execute_nix_switch_build_target_host( | ||||
|     clear=True, | ||||
| ) | ||||
| @patch("subprocess.run", autospec=True) | ||||
| @patch(get_qualified_name(nr.cleanup_ssh), autospec=True) | ||||
| @patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True) | ||||
| def test_execute_nix_switch_flake_target_host( | ||||
|     mock_cleanup_ssh: Mock, | ||||
|     mock_run: Mock, | ||||
| @ -862,7 +862,7 @@ def test_execute_nix_switch_flake_target_host( | ||||
|     clear=True, | ||||
| ) | ||||
| @patch("subprocess.run", autospec=True) | ||||
| @patch(get_qualified_name(nr.cleanup_ssh), autospec=True) | ||||
| @patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True) | ||||
| def test_execute_nix_switch_flake_build_host( | ||||
|     mock_cleanup_ssh: Mock, | ||||
|     mock_run: Mock, | ||||
|  | ||||
| @ -579,18 +579,18 @@ def test_list_generations(mock_get_generations: Mock, tmp_path: Path) -> None: | ||||
| 
 | ||||
| @patch(get_qualified_name(n.run_wrapper, n), autospec=True) | ||||
| def test_repl(mock_run: Mock) -> None: | ||||
|     n.repl("attr", m.BuildAttr("<nixpkgs/nixos>", None), {"nix_flag": True}) | ||||
|     n.repl(m.BuildAttr("<nixpkgs/nixos>", None), {"nix_flag": True}) | ||||
|     mock_run.assert_called_with( | ||||
|         ["nix", "repl", "--file", "<nixpkgs/nixos>", "--nix-flag"] | ||||
|     ) | ||||
| 
 | ||||
|     n.repl("attr", m.BuildAttr(Path("file.nix"), "myAttr")) | ||||
|     n.repl(m.BuildAttr(Path("file.nix"), "myAttr")) | ||||
|     mock_run.assert_called_with(["nix", "repl", "--file", Path("file.nix"), "myAttr"]) | ||||
| 
 | ||||
| 
 | ||||
| @patch(get_qualified_name(n.run_wrapper, n), autospec=True) | ||||
| def test_repl_flake(mock_run: Mock) -> None: | ||||
|     n.repl_flake("attr", m.Flake(Path("flake.nix"), "myAttr"), {"nix_flag": True}) | ||||
|     n.repl_flake(m.Flake(Path("flake.nix"), "myAttr"), {"nix_flag": True}) | ||||
|     # See nixos-rebuild-ng.tests.repl for a better test, | ||||
|     # this is mostly for sanity check | ||||
|     assert mock_run.call_count == 1 | ||||
|  | ||||
| @ -117,17 +117,17 @@ in | ||||
| goBuild (finalAttrs: { | ||||
|   pname = "ollama"; | ||||
|   # don't forget to invalidate all hashes each update | ||||
|   version = "0.9.2"; | ||||
|   version = "0.9.3"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "ollama"; | ||||
|     repo = "ollama"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-2mvaIEfto/w2yjaJxopn5L2rn8pCTHfQvo8mmzTO4i0="; | ||||
|     hash = "sha256-bAxvlFeCxrxE8PuLbsjAwJYDeZfKb8BDuGBgX8uMgr8="; | ||||
|     fetchSubmodules = true; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-t7+GLNC6mRcXq9ErxN6gGki5WWWoEcMfzRVjta4fddA="; | ||||
|   vendorHash = "sha256-oHTo8EQGfrKOwg6SRPrL23qSH+p+clBxxiXsuO1auLk="; | ||||
| 
 | ||||
|   env = | ||||
|     lib.optionalAttrs enableRocm { | ||||
|  | ||||
| @ -14,13 +14,13 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "opencryptoki"; | ||||
|   version = "3.24.0"; | ||||
|   version = "3.25.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "opencryptoki"; | ||||
|     repo = "opencryptoki"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-GIcUI5Gjk+whwlD9dBiB2N7q6sPYFnhj5VvyQvc2Z2A="; | ||||
|     hash = "sha256-JIDy5LY2rJqMM1uWDWn6Q62kJ+7pYU4G7zptkbyvf9Q="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | ||||
| @ -8,13 +8,13 @@ | ||||
|   stdenv, | ||||
| }: | ||||
| let | ||||
|   version = "0.23.1"; | ||||
|   version = "0.24.0"; | ||||
| 
 | ||||
|   parca-src = fetchFromGitHub { | ||||
|     owner = "parca-dev"; | ||||
|     repo = "parca"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-UCYBT+KegoXpMRMoA3iuX8WiXhkX43JVOmhHksH5Pwk="; | ||||
|     hash = "sha256-MyI3pyfsdw17K03FOSckVzLSRNbwSm3FwYIHMr/SbWo="; | ||||
|   }; | ||||
| 
 | ||||
|   ui = stdenv.mkDerivation (finalAttrs: { | ||||
| @ -24,7 +24,7 @@ let | ||||
| 
 | ||||
|     pnpmDeps = pnpm_9.fetchDeps { | ||||
|       inherit (finalAttrs) pname src version; | ||||
|       hash = "sha256-MByoIJtynv38TFNVDdZWjkJJpABCjJU2wBrChxM2rdE="; | ||||
|       hash = "sha256-gczEkCU9xESn9T1eVOmGAufh+24mOsYCMO6f5tcbdmQ="; | ||||
|     }; | ||||
| 
 | ||||
|     nativeBuildInputs = [ | ||||
| @ -56,7 +56,7 @@ buildGoModule rec { | ||||
|   pname = "parca"; | ||||
|   src = parca-src; | ||||
| 
 | ||||
|   vendorHash = "sha256-O7dzdMGZ1l+cmVA3svbh/Ig1SbXXiMwJ7TXmrT2IM+g="; | ||||
|   vendorHash = "sha256-2CVXXCWKa21cToe5flxIMtSBPc3HkxWDNkJAWCI4ORw="; | ||||
| 
 | ||||
|   ldflags = [ | ||||
|     "-X=main.version=${version}" | ||||
|  | ||||
| @ -8,16 +8,16 @@ | ||||
| 
 | ||||
| buildNpmPackage (finalAttrs: { | ||||
|   pname = "particle-cli"; | ||||
|   version = "3.36.2"; | ||||
|   version = "3.37.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "particle-iot"; | ||||
|     repo = "particle-cli"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-KLcQmbIuhp71dpJttKA0tWAn2Qf+zl6njBypFkaLmzE="; | ||||
|     hash = "sha256-TMyXCTyihUBP2emY0UzedHAsO945eWJ7w7relP7wBaU="; | ||||
|   }; | ||||
| 
 | ||||
|   npmDepsHash = "sha256-oQch+7hH+URMI15YOA3iz4FVPwckJ3K/DOC1PfrA2dU="; | ||||
|   npmDepsHash = "sha256-4PeHMhzcCcXFNV0cS0JVAvpkMyo2w6RDmlIO2/MRy8k="; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     udev | ||||
|  | ||||
| @ -12,14 +12,14 @@ | ||||
| 
 | ||||
| python3Packages.buildPythonApplication rec { | ||||
|   pname = "pdfarranger"; | ||||
|   version = "1.12.0"; | ||||
|   version = "1.12.1"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "pdfarranger"; | ||||
|     repo = "pdfarranger"; | ||||
|     tag = version; | ||||
|     hash = "sha256-//JjIPDeyI+JZoFT2GU+wCP+tkKCchgS9ftMT5rUEOM="; | ||||
|     hash = "sha256-of1itPubf6LBJ4rSh1bca3yoNTiz5Qt9ar9XDe4nhxI="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ wrapGAppsHook3 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ gettext ]; | ||||
|  | ||||
							
								
								
									
										49
									
								
								pkgs/by-name/pd/pdqsort/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								pkgs/by-name/pd/pdqsort/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| { | ||||
|   lib, | ||||
|   stdenvNoCC, | ||||
|   stdenv, # for tests | ||||
|   fetchFromGitHub, | ||||
| }: | ||||
| 
 | ||||
| stdenvNoCC.mkDerivation (finalAttrs: { | ||||
|   pname = "pdqsort"; | ||||
|   version = "0-unstable-2021-03-14"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "orlp"; | ||||
|     repo = "pdqsort"; | ||||
|     rev = "b1ef26a55cdb60d236a5cb199c4234c704f46726"; | ||||
|     hash = "sha256-xn3Jjn/jxJBckpg1Tx3HHVAWYPVTFMiDFiYgB2WX7Sc="; | ||||
|   }; | ||||
| 
 | ||||
|   installPhase = '' | ||||
|     runHook preInstall | ||||
| 
 | ||||
|     mkdir -p $out/include | ||||
|     cp -r *.h $out/include/ | ||||
| 
 | ||||
|     runHook postInstall | ||||
|   ''; | ||||
| 
 | ||||
|   # The benchmark takes too long to run as a regular checkPhase here. | ||||
|   passthru.tests.bench = stdenv.mkDerivation { | ||||
|     pname = "pdqsort-bench"; | ||||
| 
 | ||||
|     inherit (finalAttrs) version src; | ||||
| 
 | ||||
|     doCheck = true; | ||||
|     checkPhase = '' | ||||
|       c++ bench/bench.cpp -o bench/bench | ||||
|       ./bench/bench > $out | ||||
|     ''; | ||||
| 
 | ||||
|     meta.platforms = lib.platforms.x86_64; | ||||
|   }; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Novel sorting algorithm that combines the fast average case of randomized quicksort with the fast worst case of heapsort"; | ||||
|     homepage = "https://github.com/orlp/pdqsort"; | ||||
|     license = lib.licenses.zlib; | ||||
|     maintainers = with lib.maintainers; [ jherland ]; | ||||
|   }; | ||||
| }) | ||||
| @ -6,16 +6,16 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "pgscv"; | ||||
|   version = "0.14.0"; | ||||
|   version = "0.14.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "CHERTS"; | ||||
|     repo = "pgscv"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-BWGRighkezG3zjhyiYEFTeVvWps4q9+9xjk9EPHI/B0="; | ||||
|     hash = "sha256-jUTHaZvJ6O3dVhBGO+ZFT9A7KmKieR2viGhZXwOv5S8="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-UEqJz7xKBQaBrBI3mV8W+WtLGDDf3EaV7NzEPofW+TE="; | ||||
|   vendorHash = "sha256-v4Xi2R+q2jGD3Fy6xvKNRaf+P725acr+tvdDxod2KiI="; | ||||
| 
 | ||||
|   ldflags = [ | ||||
|     "-X=main.appName=pgscv" | ||||
|  | ||||
| @ -17,11 +17,11 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "photoqt"; | ||||
|   version = "4.9.1"; | ||||
|   version = "4.9.2"; | ||||
| 
 | ||||
|   src = fetchurl { | ||||
|     url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz"; | ||||
|     hash = "sha256-dAqAM9zsFWPiGF7njhy7SM6f/5S19jMyTv57JadgHu8="; | ||||
|     hash = "sha256-kPhxWekecE57wY45qLy/EnfmjFLn0cEmZ+4qWHGbL4U="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | ||||
| @ -40,14 +40,14 @@ stdenv.mkDerivation (finalAttrs: { | ||||
|     + lib.optionalString enableQt "-qt" | ||||
|     + lib.optionalString (!enableQt) "-sdl" | ||||
|     + lib.optionalString forceWayland "-wayland"; | ||||
|   version = "1.18.1"; | ||||
|   version = "1.19.2"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "hrydgard"; | ||||
|     repo = "ppsspp"; | ||||
|     rev = "v${finalAttrs.version}"; | ||||
|     fetchSubmodules = true; | ||||
|     hash = "sha256-X5Sb6oxjjhlsm1VN9e0Emk4SqiHTe3G3ZiuIgw5DSds="; | ||||
|     hash = "sha256-HwZHV5x60V/H4wx5wgC6VAZY7zHjMt0ZVRDWAnXDvj4="; | ||||
|   }; | ||||
| 
 | ||||
|   patches = lib.optionals useSystemFfmpeg [ | ||||
|  | ||||
| @ -6,12 +6,8 @@ | ||||
|   cmake, | ||||
|   libxslt, | ||||
|   docbook_xsl_ns, | ||||
|   wrapQtAppsHook, | ||||
|   libsForQt5, | ||||
|   libusb1, | ||||
|   qtlocation, | ||||
|   qtserialport, | ||||
|   qttools, | ||||
|   qtbase, | ||||
|   yaml-cpp, | ||||
| }: | ||||
| 
 | ||||
| @ -33,16 +29,16 @@ stdenv.mkDerivation rec { | ||||
|   nativeBuildInputs = [ | ||||
|     cmake | ||||
|     libxslt | ||||
|     wrapQtAppsHook | ||||
|     libsForQt5.wrapQtAppsHook | ||||
|     installShellFiles | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     libusb1 | ||||
|     qtlocation | ||||
|     qtserialport | ||||
|     qttools | ||||
|     qtbase | ||||
|     libsForQt5.qtlocation | ||||
|     libsForQt5.qtserialport | ||||
|     libsForQt5.qttools | ||||
|     libsForQt5.qtbase | ||||
|     yaml-cpp | ||||
|   ]; | ||||
| 
 | ||||
| @ -20,13 +20,13 @@ | ||||
| 
 | ||||
| rustPlatform.buildRustPackage (finalAttrs: { | ||||
|   pname = "readest"; | ||||
|   version = "0.9.60"; | ||||
|   version = "0.9.61"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "readest"; | ||||
|     repo = "readest"; | ||||
|     tag = "v${finalAttrs.version}"; | ||||
|     hash = "sha256-CEY3q9IT2miEO5Q77Mw2BkiyUWuImmCtDrVyjK6HApo="; | ||||
|     hash = "sha256-vtswHOG3/9oao+KrHWJi3NLsFghczmyLfT276kq5Llg="; | ||||
|     fetchSubmodules = true; | ||||
|   }; | ||||
| 
 | ||||
| @ -39,14 +39,14 @@ rustPlatform.buildRustPackage (finalAttrs: { | ||||
| 
 | ||||
|   pnpmDeps = pnpm_9.fetchDeps { | ||||
|     inherit (finalAttrs) pname version src; | ||||
|     hash = "sha256-Tt1Gm/tlxceQnTd6eStgwboHCDetXdUNtdDShHmB5+M="; | ||||
|     hash = "sha256-9YG0l/cIjk5imkoly/pNmTVN7N+K56tpWnD7HDFSqiw="; | ||||
|   }; | ||||
| 
 | ||||
|   pnpmRoot = "../.."; | ||||
| 
 | ||||
|   useFetchCargoVendor = true; | ||||
| 
 | ||||
|   cargoHash = "sha256-9y/ZR+vbjp56F/EuX7tAp3W1/jwFLYlnBKfyLNx0/Qg="; | ||||
|   cargoHash = "sha256-35REIeZy/D9UWzSI6yQZc1MRYwlAnjzsk5T7KOAhWVw="; | ||||
| 
 | ||||
|   cargoRoot = "../.."; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										37
									
								
								pkgs/by-name/re/regrippy/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								pkgs/by-name/re/regrippy/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| { | ||||
|   lib, | ||||
|   python3, | ||||
|   fetchFromGitHub, | ||||
| }: | ||||
| 
 | ||||
| python3.pkgs.buildPythonApplication { | ||||
|   pname = "regippy"; | ||||
|   version = "2.0.1"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "airbus-cert"; | ||||
|     repo = "regrippy"; | ||||
|     rev = "05c9db999853c47af1d15f92f1a34aa2441e8882"; | ||||
|     hash = "sha256-gS7qVPlXwn6UXRXPN5ahPmQL3JpwmESUEi0KKAzOo+8="; | ||||
|   }; | ||||
| 
 | ||||
|   postInstall = '' | ||||
|     mv $out/bin/regrip.py $out/bin/regrippy | ||||
|   ''; | ||||
| 
 | ||||
|   build-system = [ python3.pkgs.setuptools ]; | ||||
| 
 | ||||
|   dependencies = [ | ||||
|     python3.pkgs.importlib-resources | ||||
|     python3.pkgs.python-registry | ||||
|   ]; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Modern Python-3-based alternative to RegRipper"; | ||||
|     homepage = "https://github.com/airbus-cert/regrippy"; | ||||
|     license = lib.licenses.asl20; | ||||
|     maintainers = with lib.maintainers; [ mikehorn ]; | ||||
|     mainProgram = "regrippy"; | ||||
|   }; | ||||
| } | ||||
| @ -9,13 +9,13 @@ | ||||
| }: | ||||
| rustPlatform.buildRustPackage rec { | ||||
|   pname = "sentry-cli"; | ||||
|   version = "2.45.0"; | ||||
|   version = "2.46.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "getsentry"; | ||||
|     repo = "sentry-cli"; | ||||
|     rev = version; | ||||
|     hash = "sha256-nuqjlckrM4i4+cYJ3+oBoDB2g7PitAkkHv2CiI6Ttqc="; | ||||
|     hash = "sha256-IWDMcmpwKCIE7ogo5upGTtWuF00pFlUwj6RRXTC+RDQ="; | ||||
|   }; | ||||
|   doCheck = false; | ||||
| 
 | ||||
| @ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec { | ||||
|   ]; | ||||
| 
 | ||||
|   useFetchCargoVendor = true; | ||||
|   cargoHash = "sha256-cRK8olhz/3DdEvfXX5PBMgPsVihr5VFOdFZIkCy1r/0="; | ||||
|   cargoHash = "sha256-PDDlt0KmPhJWH3Hd9no/cqYdL/QPGdAE2pIj0EXXc70="; | ||||
| 
 | ||||
|   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' | ||||
|     installShellCompletion --cmd sentry-cli \ | ||||
|  | ||||
| @ -10,13 +10,13 @@ | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "sentry-native"; | ||||
|   version = "0.9.0"; | ||||
|   version = "0.9.1"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "getsentry"; | ||||
|     repo = "sentry-native"; | ||||
|     tag = version; | ||||
|     hash = "sha256-PFWCC0eaHnwRZ+i2n0O17kTg9jXlgIuzgTB53Dn40iQ="; | ||||
|     hash = "sha256-jB744MO5GaZMQWIToyv1g4WzVu99qt/Cx0shvK7SW/c="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | ||||
| @ -7,11 +7,11 @@ | ||||
| 
 | ||||
| stdenvNoCC.mkDerivation (finalAttrs: { | ||||
|   pname = "sof-firmware"; | ||||
|   version = "2025.01.1"; | ||||
|   version = "2025.05"; | ||||
| 
 | ||||
|   src = fetchurl { | ||||
|     url = "https://github.com/thesofproject/sof-bin/releases/download/v${finalAttrs.version}/sof-bin-${finalAttrs.version}.tar.gz"; | ||||
|     hash = "sha256-o2IQ2cJF6BsNlnTWsn0f1BIpaM+SWu/FW0htNlD4gyM="; | ||||
|     hash = "sha256-4vJgOw04x8vbFnKQGGP7+EtNtJIfQFlSojaRXLioa8w="; | ||||
|   }; | ||||
| 
 | ||||
|   dontFixup = true; # binaries must not be stripped or patchelfed | ||||
|  | ||||
| @ -2,23 +2,29 @@ | ||||
|   stdenv, | ||||
|   lib, | ||||
|   rustPlatform, | ||||
|   fetchCrate, | ||||
|   fetchFromGitHub, | ||||
|   pkg-config, | ||||
|   alsa-lib, | ||||
|   rust, | ||||
|   udevCheckHook, | ||||
|   nix-update-script, | ||||
| }: | ||||
| 
 | ||||
| rustPlatform.buildRustPackage rec { | ||||
| rustPlatform.buildRustPackage (finalAttrs: { | ||||
|   pname = "speakersafetyd"; | ||||
|   version = "1.0.2"; | ||||
|   version = "1.1.2"; | ||||
| 
 | ||||
|   src = fetchCrate { | ||||
|     inherit pname version; | ||||
|     hash = "sha256-3DzBNebg1y/+psD2zOpDsnRJmabQLeO1UMxPq9M0CsU="; | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "AsahiLinux"; | ||||
|     repo = "speakersafetyd"; | ||||
|     tag = finalAttrs.version; | ||||
|     hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0="; | ||||
|   }; | ||||
|   useFetchCargoVendor = true; | ||||
|   cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; | ||||
| 
 | ||||
|   cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o="; | ||||
| 
 | ||||
|   patches = [ | ||||
|     ./remove-install-paths.patch | ||||
|   ]; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     pkg-config | ||||
| @ -27,32 +33,41 @@ rustPlatform.buildRustPackage rec { | ||||
|   buildInputs = [ alsa-lib ]; | ||||
| 
 | ||||
|   postPatch = '' | ||||
|     substituteInPlace speakersafetyd.service --replace "/usr" "$out" | ||||
|     substituteInPlace Makefile --replace "target/release" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" | ||||
|     # creating files in /var does not make sense in a nix package | ||||
|     substituteInPlace Makefile --replace 'install -dDm0755 $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox' "" | ||||
|     substituteInPlace speakersafetyd.service \ | ||||
|       --replace-fail "/usr" \ | ||||
|                      "$out" | ||||
| 
 | ||||
|     substituteInPlace Makefile \ | ||||
|       --replace-fail "target/release" \ | ||||
|                      "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \ | ||||
|   ''; | ||||
| 
 | ||||
|   installFlags = [ | ||||
|     "BINDIR=$(out)/bin" | ||||
|     "UNITDIR=$(out)/lib/systemd/system" | ||||
|     "UDEVDIR=$(out)/lib/udev/rules.d" | ||||
|     "SHAREDIR=$(out)/share" | ||||
|     "TMPFILESDIR=$(out)/lib/tmpfiles.d" | ||||
|     "DESTDIR=$(out)" | ||||
|     "BINDIR=bin" | ||||
|     "UNITDIR=lib/systemd/system" | ||||
|     "UDEVDIR=lib/udev/rules.d" | ||||
|     "SHAREDIR=share" | ||||
|     "TMPFILESDIR=lib/tmpfiles.d" | ||||
|   ]; | ||||
| 
 | ||||
|   dontCargoInstall = true; | ||||
|   doInstallCheck = true; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|     description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model"; | ||||
|   passthru = { | ||||
|     updateScript = nix-update-script { }; | ||||
|   }; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Userspace daemon that implements the Smart Amp protection model"; | ||||
|     mainProgram = "speakersafetyd"; | ||||
|     homepage = "https://github.com/AsahiLinux/speakersafetyd"; | ||||
|     maintainers = with maintainers; [ | ||||
|     maintainers = with lib.maintainers; [ | ||||
|       normalcea | ||||
|       flokli | ||||
|       yuka | ||||
|     ]; | ||||
|     license = licenses.mit; | ||||
|     platforms = platforms.linux; | ||||
|     license = lib.licenses.mit; | ||||
|     platforms = lib.platforms.linux; | ||||
|   }; | ||||
| } | ||||
| }) | ||||
|  | ||||
							
								
								
									
										16
									
								
								pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| diff --git a/Makefile b/Makefile
 | ||||
| index 41bf7b4..ca14be7 100644
 | ||||
| --- a/Makefile
 | ||||
| +++ b/Makefile
 | ||||
| @@ -24,11 +24,8 @@ install-data:
 | ||||
|  	install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules | ||||
|  	install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple | ||||
|  	install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*) | ||||
| -	install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd
 | ||||
| -	install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox
 | ||||
|  	install -dDm0755 $(DESTDIR)/$(TMPFILESDIR) | ||||
|  	install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf | ||||
| -	install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd
 | ||||
|   | ||||
|  uninstall: | ||||
|  	rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf | ||||
| @ -2,22 +2,22 @@ | ||||
|   lib, | ||||
|   buildGoModule, | ||||
|   fetchFromGitHub, | ||||
|   unstableGitUpdater, | ||||
|   nix-update-script, | ||||
| }: | ||||
| 
 | ||||
| buildGoModule { | ||||
|   pname = "typescript-go"; | ||||
|   version = "0-unstable-2025-06-09"; | ||||
|   version = "0-unstable-2025-06-26"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "microsoft"; | ||||
|     repo = "typescript-go"; | ||||
|     rev = "f7d02dd5cc61be86f4f61018171c370cefebe3fd"; | ||||
|     hash = "sha256-19+t/Yq73Ih8yCoMJe4r65iejOeAeKYEWacMzqGs6jQ="; | ||||
|     rev = "ff49e725dff18d63dd932de7646e35a8efbb54ff"; | ||||
|     hash = "sha256-L5MFedjlAP7EiC3T5FDdLCs06HwJ03qGIp/2ZT6QKWY="; | ||||
|     fetchSubmodules = false; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-SoBlxQfMg59UOO+99HPeKqEPxD2p7JauLMTpQ7Jl03s="; | ||||
|   vendorHash = "sha256-9gZ1h/rsJ5DEcU8CJGKszE98GzZqfs2ELp1lbXsliYk="; | ||||
| 
 | ||||
|   ldflags = [ | ||||
|     "-s" | ||||
| @ -41,7 +41,9 @@ buildGoModule { | ||||
|   ''; | ||||
| 
 | ||||
|   passthru = { | ||||
|     updateScript = unstableGitUpdater { }; | ||||
|     updateScript = nix-update-script { | ||||
|       extraArgs = [ "--version=branch" ]; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   meta = { | ||||
|  | ||||
| @ -11,16 +11,16 @@ | ||||
| 
 | ||||
| buildGoModule rec { | ||||
|   pname = "updatecli"; | ||||
|   version = "0.101.0"; | ||||
|   version = "0.102.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "updatecli"; | ||||
|     repo = "updatecli"; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-anuP3od1cuuB9Y5wUn8CldvMZZFfD9ISyIma97oksjo="; | ||||
|     hash = "sha256-ek8kJAGf51NZ4YOexwOovgIQ9I0WfQDk0KWIJsZRKQk="; | ||||
|   }; | ||||
| 
 | ||||
|   vendorHash = "sha256-J8D02rkh+NJJQvk9ORV6WwoWtTKfbLtiL1bAZRVhLnI="; | ||||
|   vendorHash = "sha256-gL2ZukNJROEQc0fv0k/XIvpnHmGywCgRgfKCPcP01Hg="; | ||||
| 
 | ||||
|   # tests require network access | ||||
|   doCheck = false; | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|   lib, | ||||
|   pkg-config, | ||||
|   jansson, | ||||
|   pcre, | ||||
|   pcre2, | ||||
|   libxcrypt, | ||||
|   expat, | ||||
|   zlib, | ||||
| @ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: { | ||||
|   buildInputs = | ||||
|     [ | ||||
|       jansson | ||||
|       pcre | ||||
|       pcre2 | ||||
|       libxcrypt | ||||
|     ] | ||||
|     ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ | ||||
|  | ||||
| @ -110,7 +110,7 @@ stdenv.mkDerivation rec { | ||||
|     maintainers = [ lib.maintainers.eelco ]; | ||||
|     platforms = | ||||
|       with lib.platforms; | ||||
|       lib.intersectLists (x86 ++ power ++ s390x ++ armv7 ++ aarch64 ++ mips) ( | ||||
|       lib.intersectLists (x86 ++ power ++ s390x ++ armv7 ++ aarch64 ++ mips ++ riscv64) ( | ||||
|         darwin ++ freebsd ++ illumos ++ linux | ||||
|       ); | ||||
|     badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; | ||||
|  | ||||
							
								
								
									
										44
									
								
								pkgs/by-name/vs/vscode-json-languageserver/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								pkgs/by-name/vs/vscode-json-languageserver/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| { | ||||
|   lib, | ||||
|   buildNpmPackage, | ||||
|   fetchFromGitHub, | ||||
|   typescript, | ||||
| }: | ||||
| 
 | ||||
| buildNpmPackage (finalAttrs: { | ||||
|   pname = "vscode-json-languageserver"; | ||||
|   version = "1.3.4"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "microsoft"; | ||||
|     repo = "vscode"; | ||||
|     tag = "1.101.2"; | ||||
|     hash = "sha256-wdI6VlJ4WoSNnwgkb6dkVYcq/P/yzflv5mE9PuYBVx4="; | ||||
|   }; | ||||
| 
 | ||||
|   sourceRoot = "${finalAttrs.src.name}/extensions/json-language-features/server"; | ||||
| 
 | ||||
|   npmDepsHash = "sha256-akQukdYTe6um4xo+7T3wHxx+WrXfKYl5a1qwmqX72HQ="; | ||||
| 
 | ||||
|   nativeBuildInputs = [ typescript ]; | ||||
| 
 | ||||
|   buildPhase = '' | ||||
|     runHook preBuild | ||||
|     tsc -p . | ||||
|     runHook postBuild | ||||
|   ''; | ||||
| 
 | ||||
|   dontNpmBuild = true; | ||||
| 
 | ||||
|   postInstall = '' | ||||
|     ln -s $out/bin/vscode-json-languageserver $out/bin/vscode-json-language-server | ||||
|   ''; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "JSON language server"; | ||||
|     homepage = "https://github.com/microsoft/vscode/tree/${finalAttrs.src.tag}/extensions/json-language-features/server"; | ||||
|     license = lib.licenses.mit; | ||||
|     maintainers = with lib.maintainers; [ ryota2357 ]; | ||||
|     mainProgram = "vscode-json-languageserver"; | ||||
|   }; | ||||
| }) | ||||
| @ -2,7 +2,7 @@ | ||||
|   coreutils, | ||||
|   fetchFromGitHub, | ||||
|   lib, | ||||
|   python3, | ||||
|   python312, | ||||
|   bash, | ||||
|   openssl, | ||||
|   nixosTests, | ||||
| @ -10,7 +10,7 @@ | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   python = python3; | ||||
|   python = python312; | ||||
| 
 | ||||
| in | ||||
| python.pkgs.buildPythonApplication rec { | ||||
|  | ||||
| @ -17,7 +17,7 @@ | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   rev = "1.1.2"; | ||||
|   rev = "1.2.0"; | ||||
| in | ||||
| buildDotnetModule rec { | ||||
|   pname = "XIVLauncher"; | ||||
| @ -27,7 +27,7 @@ buildDotnetModule rec { | ||||
|     owner = "goatcorp"; | ||||
|     repo = "XIVLauncher.Core"; | ||||
|     inherit rev; | ||||
|     hash = "sha256-QkA18C3oWxcW0vK6sji7vbm4bY5LxwIWierAg5qf38Q="; | ||||
|     hash = "sha256-2ZL3giUrc4mUNh8rr+yI+k2Sx5rZsoFGR1ZBlTugH6M="; | ||||
|     fetchSubmodules = true; | ||||
|   }; | ||||
| 
 | ||||
|  | ||||
| @ -61,23 +61,23 @@ let | ||||
|   # and often with different versions. We write them on three lines | ||||
|   # like this (rather than using {}) so that the updater script can | ||||
|   # find where to edit them. | ||||
|   versions.aarch64-darwin = "6.4.12.56699"; | ||||
|   versions.x86_64-darwin = "6.4.12.56699"; | ||||
|   versions.x86_64-linux = "6.4.13.2309"; | ||||
|   versions.aarch64-darwin = "6.5.1.58208"; | ||||
|   versions.x86_64-darwin = "6.5.1.58208"; | ||||
|   versions.x86_64-linux = "6.5.1.2550"; | ||||
| 
 | ||||
|   srcs = { | ||||
|     aarch64-darwin = fetchurl { | ||||
|       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64"; | ||||
|       name = "zoomusInstallerFull.pkg"; | ||||
|       hash = "sha256-rsO4HAvA6hCiGDBuLQj/qYWHR6Dlo+G9rkfhxvKBp4g="; | ||||
|       hash = "sha256-hIYZ2OU5lww4MyRZOhcV4qQDGEN8Hdolw6a4g/ItcFQ="; | ||||
|     }; | ||||
|     x86_64-darwin = fetchurl { | ||||
|       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg"; | ||||
|       hash = "sha256-MZ5dPHKH1uQuFA8Vej8Hh4CFZAjJFZe04le+e4LPDJc="; | ||||
|       hash = "sha256-t/xIrVfjAl6dM9RWa+imyFHqS2KIJsKnoU0fiDQL9dQ="; | ||||
|     }; | ||||
|     x86_64-linux = fetchurl { | ||||
|       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz"; | ||||
|       hash = "sha256-gBUpsIUcsn+5u/1CchuS9mggnAFD8VW5J4RBv0Ziu+Y="; | ||||
|       hash = "sha256-1YcbAlnUEk9R95r7RIuxAxNfRymdIOAjKkCw7a+1Lm4="; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|  | ||||
| @ -274,6 +274,7 @@ mapAliases { | ||||
|   inherit (pkgs) vsc-leetcode-cli; # Added 2023-08-30 | ||||
|   vscode-css-languageserver-bin = throw "vscode-css-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26 | ||||
|   vscode-html-languageserver-bin = throw "vscode-html-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26 | ||||
|   inherit (pkgs) vscode-json-languageserver; # added 2025-06-19 | ||||
|   vscode-json-languageserver-bin = throw "vscode-json-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26 | ||||
|   vscode-langservers-extracted = pkgs.vscode-langservers-extracted; # Added 2023-05-27 | ||||
|   vue-language-server = self.vls; # added 2023-08-20 | ||||
|  | ||||
| @ -40,5 +40,4 @@ | ||||
|   purs-tidy = "purs-tidy"; | ||||
|   purty = "purty"; | ||||
|   pscid = "pscid"; | ||||
|   vscode-json-languageserver = "vscode-json-languageserver"; | ||||
| } | ||||
|  | ||||
| @ -154,7 +154,6 @@ | ||||
| , "vega-cli" | ||||
| , "vega-lite" | ||||
| , "vercel" | ||||
| , "vscode-json-languageserver" | ||||
| , "wavedrom-cli" | ||||
| , "webpack" | ||||
| , "wring" | ||||
|  | ||||
							
								
								
									
										50
									
								
								pkgs/development/node-packages/node-packages.nix
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										50
									
								
								pkgs/development/node-packages/node-packages.nix
									
									
									
										generated
									
									
									
								
							| @ -63785,56 +63785,6 @@ in | ||||
|     bypassCache = true; | ||||
|     reconstructLock = true; | ||||
|   }; | ||||
|   vscode-json-languageserver = nodeEnv.buildNodePackage { | ||||
|     name = "vscode-json-languageserver"; | ||||
|     packageName = "vscode-json-languageserver"; | ||||
|     version = "1.3.4"; | ||||
|     src = fetchurl { | ||||
|       url = "https://registry.npmjs.org/vscode-json-languageserver/-/vscode-json-languageserver-1.3.4.tgz"; | ||||
|       sha512 = "+ghebnslXk6fVDySBrT0BVqozLDdmKY/qxgkDD4JtOQcU2vXc3e7jh7YyMxvuvE93E9OLvBqUrvajttj8xf3BA=="; | ||||
|     }; | ||||
|     dependencies = [ | ||||
|       sources."agent-base-4.3.0" | ||||
|       sources."debug-3.1.0" | ||||
|       sources."es6-promise-4.2.8" | ||||
|       sources."es6-promisify-5.0.0" | ||||
|       sources."http-proxy-agent-2.1.0" | ||||
|       sources."https-proxy-agent-2.2.4" | ||||
|       sources."jsonc-parser-3.3.1" | ||||
|       sources."ms-2.0.0" | ||||
|       sources."request-light-0.4.0" | ||||
|       ( | ||||
|         sources."vscode-json-languageservice-4.2.1" | ||||
|         // { | ||||
|           dependencies = [ | ||||
|             sources."vscode-nls-5.2.0" | ||||
|           ]; | ||||
|         } | ||||
|       ) | ||||
|       sources."vscode-jsonrpc-6.0.0" | ||||
|       sources."vscode-languageserver-7.0.0" | ||||
|       ( | ||||
|         sources."vscode-languageserver-protocol-3.16.0" | ||||
|         // { | ||||
|           dependencies = [ | ||||
|             sources."vscode-languageserver-types-3.16.0" | ||||
|           ]; | ||||
|         } | ||||
|       ) | ||||
|       sources."vscode-languageserver-textdocument-1.0.12" | ||||
|       sources."vscode-languageserver-types-3.17.5" | ||||
|       sources."vscode-nls-4.1.2" | ||||
|       sources."vscode-uri-3.1.0" | ||||
|     ]; | ||||
|     buildInputs = globalBuildInputs; | ||||
|     meta = { | ||||
|       description = "JSON language server"; | ||||
|       license = "MIT"; | ||||
|     }; | ||||
|     production = true; | ||||
|     bypassCache = true; | ||||
|     reconstructLock = true; | ||||
|   }; | ||||
|   wavedrom-cli = nodeEnv.buildNodePackage { | ||||
|     name = "wavedrom-cli"; | ||||
|     packageName = "wavedrom-cli"; | ||||
|  | ||||
| @ -13,7 +13,7 @@ | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   version = "2.3.0"; | ||||
|   version = "2.5.0"; | ||||
|   tag = "v${version}"; | ||||
| in | ||||
| buildPythonPackage { | ||||
| @ -25,7 +25,7 @@ buildPythonPackage { | ||||
|     owner = "elevenlabs"; | ||||
|     repo = "elevenlabs-python"; | ||||
|     inherit tag; | ||||
|     hash = "sha256-vj4ZmtumLq7Jveq7ID/FoPjlIz7Dv8uqMN4Nq6tSW/E="; | ||||
|     hash = "sha256-GA+CQR5QPbXWpOMOp+P6fOjBiJemI2vOctM7zCnfmk4="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ poetry-core ]; | ||||
|  | ||||
| @ -20,7 +20,7 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "evaluate"; | ||||
|   version = "0.4.3"; | ||||
|   version = "0.4.4"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.7"; | ||||
| @ -29,7 +29,7 @@ buildPythonPackage rec { | ||||
|     owner = "huggingface"; | ||||
|     repo = "evaluate"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-G/SK0nMpkpCEzX8AX/IJqpOPZWAQhP8tyr7TJ+F0NCE="; | ||||
|     hash = "sha256-zN0Kud4CJMM5gazWKOR9kmwTVHYgT7DsZqbHjFIe47w="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ setuptools ]; | ||||
| @ -56,7 +56,7 @@ buildPythonPackage rec { | ||||
|   meta = with lib; { | ||||
|     homepage = "https://huggingface.co/docs/evaluate/index"; | ||||
|     description = "Easily evaluate machine learning models and datasets"; | ||||
|     changelog = "https://github.com/huggingface/evaluate/releases/tag/v${version}"; | ||||
|     changelog = "https://github.com/huggingface/evaluate/releases/tag/${src.tag}"; | ||||
|     license = licenses.asl20; | ||||
|     maintainers = with maintainers; [ bcdarwin ]; | ||||
|     mainProgram = "evaluate-cli"; | ||||
|  | ||||
| @ -20,7 +20,7 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "google-cloud-pubsub"; | ||||
|   version = "2.29.1"; | ||||
|   version = "2.30.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.7"; | ||||
| @ -28,7 +28,7 @@ buildPythonPackage rec { | ||||
|   src = fetchPypi { | ||||
|     pname = "google_cloud_pubsub"; | ||||
|     inherit version; | ||||
|     hash = "sha256-X0sFNMWHOU3SBTjBuuq31OvO14lWEFhzlVXrRNeSTOQ="; | ||||
|     hash = "sha256-Jpde1yjSIJR59PsmZ+OzvXDedgWrrfSzAcZRw57YMEI="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ setuptools ]; | ||||
|  | ||||
| @ -10,14 +10,14 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "inject"; | ||||
|   version = "5.2.1"; | ||||
|   version = "5.3.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "ivankorobkov"; | ||||
|     repo = "python-inject"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-Ws296ESjb+a322imiRRWTS43w32rJc/7Y//OBQXOwnw="; | ||||
|     hash = "sha256-c/OpEsT9KF7285xfD+VRorrNHn3r9IPp/ts9JHyGK9s="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ | ||||
|  | ||||
							
								
								
									
										66
									
								
								pkgs/development/python-modules/iplotx/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								pkgs/development/python-modules/iplotx/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | ||||
| { | ||||
|   lib, | ||||
|   buildPythonPackage, | ||||
|   fetchFromGitHub, | ||||
|   hatchling, | ||||
|   igraph, | ||||
|   matplotlib, | ||||
|   networkx, | ||||
|   numpy, | ||||
|   pandas, | ||||
|   pylint, | ||||
|   pytestCheckHook, | ||||
| }: | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "iplotx"; | ||||
|   version = "0.3.1"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "fabilab"; | ||||
|     repo = "iplotx"; | ||||
|     tag = version; | ||||
|     hash = "sha256-3Nn/sz1yUaxhGFr0hMGoLEBF5pNs+tz/KpsGtKkYujo="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ hatchling ]; | ||||
| 
 | ||||
|   dependencies = [ | ||||
|     matplotlib | ||||
|     numpy | ||||
|     pandas | ||||
|     pylint | ||||
|   ]; | ||||
| 
 | ||||
|   pythonRelaxDeps = [ "pylint" ]; | ||||
| 
 | ||||
|   optional-dependencies = { | ||||
|     igraph = [ igraph ]; | ||||
|     networkx = [ networkx ]; | ||||
|   }; | ||||
| 
 | ||||
|   postPatch = '' | ||||
|     # silence matplotlib warning | ||||
|     export MPLCONFIGDIR=$(mktemp -d) | ||||
|   ''; | ||||
| 
 | ||||
|   # These four tests result in an ImageComparisonFailure | ||||
|   disabledTests = [ | ||||
|     "test_labels" | ||||
|     "test_complex" | ||||
|     "test_display_shortest_path" | ||||
|     "test_labels_and_colors" | ||||
|   ]; | ||||
| 
 | ||||
|   nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies); | ||||
| 
 | ||||
|   pythonImportsCheck = [ "iplotx" ]; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Plot networkx from igraph and networkx"; | ||||
|     homepage = "https://iplotx.readthedocs.io/"; | ||||
|     license = lib.licenses.mit; | ||||
|     maintainers = with lib.maintainers; [ jboy ]; | ||||
|   }; | ||||
| } | ||||
| @ -8,12 +8,12 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "litestar-htmx"; | ||||
|   version = "0.4.1"; | ||||
|   version = "0.5.0"; | ||||
| 
 | ||||
|   src = fetchPypi { | ||||
|     pname = "litestar_htmx"; | ||||
|     inherit version; | ||||
|     hash = "sha256-uiU3AI64zBi/yL7lzssoCSTHgYuxwGbXnq5LIhaWygg="; | ||||
|     hash = "sha256-4C0aOpIXLIdINfo+Z0nWWun8Ym0N9GcZSQoWKT4hRvs="; | ||||
|   }; | ||||
| 
 | ||||
|   pyproject = true; | ||||
|  | ||||
| @ -10,14 +10,14 @@ | ||||
| 
 | ||||
| buildPythonPackage { | ||||
|   pname = "migen"; | ||||
|   version = "0.9.2-unstable-2025-02-07"; | ||||
|   version = "0.9.2-unstable-2025-06-10"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "m-labs"; | ||||
|     repo = "migen"; | ||||
|     rev = "2828df54594673653a641ab551caf6c6b1bfeee5"; | ||||
|     hash = "sha256-GproDJowtcgbccsT+I0mObzFhE483shcS8MSszKXwlc="; | ||||
|     rev = "6e3a9e150fb006dabc4b55043d3af18dbfecd7e8"; | ||||
|     hash = "sha256-NshlPiORBHWljSUP5bB7YBxe7k8dW0t8UXOsIq2EK8I="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ setuptools ]; | ||||
|  | ||||
| @ -13,7 +13,7 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "notion-client"; | ||||
|   version = "2.3.0"; | ||||
|   version = "2.4.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.7"; | ||||
| @ -22,7 +22,7 @@ buildPythonPackage rec { | ||||
|     owner = "ramnes"; | ||||
|     repo = "notion-sdk-py"; | ||||
|     tag = version; | ||||
|     hash = "sha256-oqYBT7K0px0QvShSx1fnr2181h+QXz7I8sdURsBRgWw="; | ||||
|     hash = "sha256-vzgFW37pA4LRS+Rqz1QN92EuLTrlWnJqA/H+IhSHQi8="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ setuptools ]; | ||||
| @ -51,7 +51,7 @@ buildPythonPackage rec { | ||||
|   meta = with lib; { | ||||
|     description = "Python client for the official Notion API"; | ||||
|     homepage = "https://github.com/ramnes/notion-sdk-py"; | ||||
|     changelog = "https://github.com/ramnes/notion-sdk-py/releases/tag/${version}"; | ||||
|     changelog = "https://github.com/ramnes/notion-sdk-py/releases/tag/${src.tag}"; | ||||
|     license = licenses.mit; | ||||
|     maintainers = with maintainers; [ jpetrucciani ]; | ||||
|   }; | ||||
|  | ||||
| @ -5,7 +5,6 @@ | ||||
|   dulwich, | ||||
|   pbr, | ||||
|   sphinx, | ||||
|   pythonAtLeast, | ||||
|   setuptools, | ||||
| }: | ||||
| 
 | ||||
| @ -14,8 +13,6 @@ buildPythonPackage rec { | ||||
|   version = "3.5.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonAtLeast "3.13"; | ||||
| 
 | ||||
|   src = fetchPypi { | ||||
|     inherit pname version; | ||||
|     hash = "sha256-3h1dXtIMk1/CgbUP30ppUo+Q8qdb7PQtGIRD9eGWwJ8="; | ||||
|  | ||||
							
								
								
									
										57
									
								
								pkgs/development/python-modules/optype/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								pkgs/development/python-modules/optype/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | ||||
| { | ||||
|   lib, | ||||
|   buildPythonPackage, | ||||
|   fetchFromGitHub, | ||||
|   hatchling, | ||||
|   typing-extensions, | ||||
|   numpy, | ||||
|   beartype, | ||||
|   pytestCheckHook, | ||||
|   pythonOlder, | ||||
| }: | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "optype"; | ||||
|   version = "0.10.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "jorenham"; | ||||
|     repo = "optype"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-F6nkbSSmAHIs2I/Yi1+PPtEsSSTnCO8Hsws7JyleJsM="; | ||||
|   }; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.11"; | ||||
| 
 | ||||
|   build-system = [ | ||||
|     hatchling | ||||
|   ]; | ||||
| 
 | ||||
|   dependencies = [ | ||||
|     typing-extensions | ||||
|   ]; | ||||
| 
 | ||||
|   optional-dependencies = { | ||||
|     numpy = [ | ||||
|       numpy | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|   pythonImportsCheck = [ | ||||
|     "optype" | ||||
|   ]; | ||||
| 
 | ||||
|   nativeCheckInputs = [ | ||||
|     pytestCheckHook | ||||
|     numpy | ||||
|     beartype | ||||
|   ]; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "Opinionated typing package for precise type hints in Python"; | ||||
|     homepage = "https://github.com/jorenham/optype"; | ||||
|     license = lib.licenses.bsd3; | ||||
|     maintainers = with lib.maintainers; [ jolars ]; | ||||
|   }; | ||||
| } | ||||
| @ -69,8 +69,9 @@ buildPythonPackage rec { | ||||
|   disabledTests = [ | ||||
|     # not compatible with sandbox | ||||
|     "test_logging_handle_error" | ||||
|     # File which is used doesn't seem not to be present | ||||
|     "test_log_config_append_invalid" | ||||
|     # Incompatible Exception Representation, displaying natively | ||||
|     "test_rate_limit" | ||||
|     "test_rate_limit_except_level" | ||||
|   ]; | ||||
| 
 | ||||
|   pythonImportsCheck = [ "oslo_log" ]; | ||||
|  | ||||
| @ -18,6 +18,7 @@ | ||||
|   typing-extensions, | ||||
|   ujson, | ||||
|   distutils, | ||||
|   huggingface-hub, | ||||
| }: | ||||
| 
 | ||||
| let | ||||
| @ -49,14 +50,14 @@ let | ||||
| in | ||||
| buildPythonPackage rec { | ||||
|   pname = "paddlex"; | ||||
|   version = "3.0.1"; | ||||
|   version = "3.0.3"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "PaddlePaddle"; | ||||
|     repo = "PaddleX"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-qov5nqGIsSfaho2dcWVsyWKQlJsIJgdX3rDz66JtLDI="; | ||||
|     hash = "sha256-uIpt2I6Lx/nJDh4sZYBI6dL8IveQf6aOxA/9vKFU2nU="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ setuptools ]; | ||||
| @ -82,6 +83,7 @@ buildPythonPackage rec { | ||||
|     typing-extensions | ||||
|     ujson | ||||
|     gputil | ||||
|     huggingface-hub | ||||
|   ]; | ||||
| 
 | ||||
|   meta = { | ||||
|  | ||||
| @ -16,7 +16,7 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "panel"; | ||||
|   version = "1.6.3"; | ||||
|   version = "1.7.1"; | ||||
| 
 | ||||
|   format = "wheel"; | ||||
| 
 | ||||
| @ -25,7 +25,7 @@ buildPythonPackage rec { | ||||
|   # tries to fetch even more artifacts | ||||
|   src = fetchPypi { | ||||
|     inherit pname version format; | ||||
|     hash = "sha256-zNKgWHqzgr1VuOoJlwbzG2Sq2saXuKQZI9Oxi57WGNY="; | ||||
|     hash = "sha256-gM67iOMxCIfThsiC+JSxN6N3A1VhoGCZCP4tH1QrWIw="; | ||||
|     dist = "py3"; | ||||
|     python = "py3"; | ||||
|   }; | ||||
|  | ||||
| @ -19,14 +19,14 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "posthog"; | ||||
|   version = "5.0.0"; | ||||
|   version = "5.4.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "PostHog"; | ||||
|     repo = "posthog-python"; | ||||
|     tag = "v${version}"; | ||||
|     hash = "sha256-pNnttrp6s9T+tmDFJ9S3DZ/HcMTifYkr6Rs8E/8+G5c="; | ||||
|     hash = "sha256-UUINopWw2q5INuFiveI5si7jPRLT0Mad3hnfbykHs6M="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ setuptools ]; | ||||
|  | ||||
| @ -9,12 +9,12 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "pyaml"; | ||||
|   version = "25.1.0"; | ||||
|   version = "25.5.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   src = fetchPypi { | ||||
|     inherit pname version; | ||||
|     hash = "sha256-M6k6xJIY9X4CC4HigNJwbOpVSsWnZEWsea3XYNAZxwk="; | ||||
|     hash = "sha256-V5lWDHscna81p6RTX1PiwwMj90y9fLTy5xWxbdaBpYo="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ setuptools ]; | ||||
|  | ||||
| @ -19,6 +19,7 @@ | ||||
|   libpulseaudio, | ||||
|   harfbuzz, | ||||
|   mesa, | ||||
|   apple-sdk, | ||||
| }: | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
| @ -41,7 +42,7 @@ buildPythonPackage rec { | ||||
|     let | ||||
|       ext = stdenv.hostPlatform.extensions.sharedLibrary; | ||||
|     in | ||||
|     '' | ||||
|     lib.optionalString stdenv.isLinux '' | ||||
|       cat > pyglet/lib.py <<EOF | ||||
|       import ctypes | ||||
|       def load_library(*names, **kwargs): | ||||
| @ -85,6 +86,34 @@ buildPythonPackage rec { | ||||
|                   return ctypes.cdll.LoadLibrary(path) | ||||
|           raise Exception("Could not load library {}".format(names)) | ||||
|       EOF | ||||
|     '' | ||||
|     + lib.optionalString stdenv.isDarwin '' | ||||
|       cat > pyglet/lib.py <<EOF | ||||
|       import os | ||||
|       import ctypes | ||||
|       def load_library(*names, **kwargs): | ||||
|           path = None | ||||
|           framework = kwargs.get('framework') | ||||
|           if framework is not None: | ||||
|             path = '${apple-sdk}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/{framework}.framework/{framework}'.format(framework=framework) | ||||
|           else: | ||||
|               names = kwargs.get('darwin', names) | ||||
|               if not isinstance(names, tuple): | ||||
|                   names = (names,) | ||||
|               for name in names: | ||||
|                   if name == "libharfbuzz.0.dylib": | ||||
|                       path = '${harfbuzz}/lib/%s' % name | ||||
|                       break | ||||
|                   elif name.startswith('avutil'): | ||||
|                       path = '${lib.getLib ffmpeg-full}/lib/lib%s.dylib' % name | ||||
|                       if not os.path.exists(path): | ||||
|                           path = None | ||||
|                       else: | ||||
|                           break | ||||
|           if path is not None: | ||||
|               return ctypes.cdll.LoadLibrary(path) | ||||
|           raise ImportError("Could not load library {}".format(names)) | ||||
|       EOF | ||||
|     ''; | ||||
| 
 | ||||
|   nativeBuildInputs = [ unzip ]; | ||||
| @ -95,9 +124,10 @@ buildPythonPackage rec { | ||||
| 
 | ||||
|   nativeCheckInputs = [ pytestCheckHook ]; | ||||
| 
 | ||||
|   preCheck = '' | ||||
|     export PYGLET_HEADLESS=True | ||||
|   ''; | ||||
|   preCheck = # libEGL only available on Linux (despite meta.platforms on libGL) | ||||
|     lib.optionalString stdenv.isLinux '' | ||||
|       export PYGLET_HEADLESS=True | ||||
|     ''; | ||||
| 
 | ||||
|   # test list taken from .travis.yml | ||||
|   disabledTestPaths = [ | ||||
| @ -109,11 +139,11 @@ buildPythonPackage rec { | ||||
| 
 | ||||
|   pythonImportsCheck = [ "pyglet" ]; | ||||
| 
 | ||||
|   meta = with lib; { | ||||
|   meta = { | ||||
|     homepage = "http://www.pyglet.org/"; | ||||
|     description = "Cross-platform windowing and multimedia library"; | ||||
|     license = licenses.bsd3; | ||||
|     # The patch needs adjusting for non‐Linux platforms. | ||||
|     platforms = platforms.linux; | ||||
|     license = lib.licenses.bsd3; | ||||
|     # The patch needs adjusting for other platforms. | ||||
|     platforms = with lib.platforms; linux ++ darwin; | ||||
|   }; | ||||
| } | ||||
|  | ||||
| @ -33,7 +33,7 @@ in | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "python-arango"; | ||||
|   version = "8.1.6"; | ||||
|   version = "8.2.0"; | ||||
|   format = "pyproject"; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.9"; | ||||
| @ -42,7 +42,7 @@ buildPythonPackage rec { | ||||
|     owner = "arangodb"; | ||||
|     repo = "python-arango"; | ||||
|     tag = version; | ||||
|     hash = "sha256-y+ECfrLoenjXl71hty7snNdu6tN5q8XTGtBlXtkSg7g="; | ||||
|     hash = "sha256-DPyCHa9tAnxKYeieiHe10UV7EPnF7octbDm23dSlIb0="; | ||||
|   }; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|  | ||||
| @ -76,6 +76,7 @@ buildPythonPackage rec { | ||||
|       cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_badrequest | ||||
|       cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_overlimit | ||||
|       cinderclient.tests.unit.test_shell.ShellTest.test_password_prompted | ||||
|       cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_versioned_actions_with_help | ||||
|     ") | ||||
| 
 | ||||
|     runHook postCheck | ||||
|  | ||||
| @ -24,8 +24,8 @@ let | ||||
|   pname = "python-glanceclient"; | ||||
|   version = "4.8.0"; | ||||
| 
 | ||||
|   # Skip tests which require networking. | ||||
|   disabledTests = [ | ||||
|     # Skip tests which require networking. | ||||
|     "test_http_chunked_response" | ||||
|     "test_v1_download_has_no_stray_output_to_stdout" | ||||
|     "test_v2_requests_valid_cert_verification" | ||||
| @ -40,6 +40,9 @@ let | ||||
|     "test_v2_requests_valid_cert_no_key" | ||||
|     "test_v2_requests_valid_cert_verification_no_compression" | ||||
|     "test_log_request_id_once" | ||||
|     # asserts exact amount of mock calls | ||||
|     "test_cache_schemas_gets_when_forced" | ||||
|     "test_cache_schemas_gets_when_not_exists" | ||||
|   ]; | ||||
| in | ||||
| buildPythonPackage { | ||||
|  | ||||
| @ -11,14 +11,14 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "tskit"; | ||||
|   version = "0.6.3"; | ||||
|   version = "0.6.4"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.7"; | ||||
| 
 | ||||
|   src = fetchPypi { | ||||
|     inherit pname version; | ||||
|     hash = "sha256-bbo89pMhTDEF2M3c1pauDjECNmk34CmmqmXNmOcbVfI="; | ||||
|     hash = "sha256-vawbt+OuPR9WLsGRtdhAFW4ILdKtxq98QbFwxPsb55I="; | ||||
|   }; | ||||
| 
 | ||||
|   postPatch = '' | ||||
|  | ||||
| @ -19,14 +19,14 @@ | ||||
| 
 | ||||
| buildPythonPackage rec { | ||||
|   pname = "ufo2ft"; | ||||
|   version = "3.4.3"; | ||||
|   version = "3.5.0"; | ||||
|   pyproject = true; | ||||
| 
 | ||||
|   disabled = pythonOlder "3.8"; | ||||
| 
 | ||||
|   src = fetchPypi { | ||||
|     inherit pname version; | ||||
|     hash = "sha256-jGMH1VZQAUszd8uxH+3mRAfudTiOEoBXSnGOUcqPXao="; | ||||
|     hash = "sha256-mAuMJzuXxO00j0YqxZ21qk+HTAwBhPCws6DUhE9vIrs="; | ||||
|   }; | ||||
| 
 | ||||
|   build-system = [ | ||||
|  | ||||
| @ -77,7 +77,7 @@ buildPythonPackage rec { | ||||
|   meta = with lib; { | ||||
|     description = "Strict, predictable, and typed datetimes"; | ||||
|     homepage = "https://github.com/ariebovenberg/whenever"; | ||||
|     changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.rst"; | ||||
|     changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.md"; | ||||
|     license = licenses.mit; | ||||
|     maintainers = with maintainers; [ pbsds ]; | ||||
|   }; | ||||
|  | ||||
| @ -43,13 +43,13 @@ let | ||||
| in | ||||
| stdenv.mkDerivation (finalAttrs: { | ||||
|   pname = "prl-tools"; | ||||
|   version = "20.3.2-55975"; | ||||
|   version = "20.4.0-55980"; | ||||
| 
 | ||||
|   # We download the full distribution to extract prl-tools-lin.iso from | ||||
|   # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso | ||||
|   src = fetchurl { | ||||
|     url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg"; | ||||
|     hash = "sha256-eazDR+eSUcp81XdRfYRHIt7E4FNCEjsh0M0wYQQYmMQ="; | ||||
|     hash = "sha256-FTlQNTdR5SpulF9f0qtmm+ynovaD4thTNAk96HbIzFQ="; | ||||
|   }; | ||||
| 
 | ||||
|   hardeningDisable = [ | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	![190413589+nixpkgs-ci[bot]@users.noreply.github.com](/assets/img/avatar_default.png) nixpkgs-ci[bot]
						nixpkgs-ci[bot]