···302302 For those unable to upgrade yet, there is a [v0 compatibility mode](https://www.openpolicyagent.org/docs/v1.0.1/v0-compatibility/)
303303 available too.
304304305305+- `helmfile` was updated to v1.0.0, which introduces several breaking changes.
306306+ See the release notes of
307307+ [v1.0.0](https://github.com/helmfile/helmfile/releases/v1.0.0) for more
308308+ information.
309309+305310- `vscode-utils.buildVscodeExtension` now requires pname as an argument
306311307312- `nerdfonts` has been separated into individual font packages under the namespace `nerd-fonts`. The directories for font
···395400396401### NexusMods.App upgraded {#sec-nixpkgs-release-25.05-incompatibilities-nexusmods-app-upgraded}
397402398398-- `nexusmods-app` has been upgraded from version 0.6.3 to 0.9.2.
403403+- `nexusmods-app` has been upgraded from version 0.6.3 to 0.10.2.
399404400405 - Before upgrading, you **must reset all app state** (mods, games, settings, etc). NexusMods.App will crash if any state from a version older than 0.7.0 is still present.
401406
···11+From 41e750142b44465f3af197b7e2f0d6f54fc48c2d Mon Sep 17 00:00:00 2001
22+From: OPNA2608 <opna2608@protonmail.com>
33+Date: Mon, 21 Oct 2024 17:42:24 +0200
44+Subject: [PATCH] Mark Lua symbols as C symbols
55+66+Otherwise linking against our Lua built by a C-compiler fails due to the symbols being resolved as C++ symbols.
77+---
88+ interpreter.h | 2 ++
99+ 1 file changed, 2 insertions(+)
1010+1111+diff --git a/interpreter.h b/interpreter.h
1212+index 6c405a1..c471ecb 100644
1313+--- a/interpreter.h
1414++++ b/interpreter.h
1515+@@ -9,9 +9,11 @@
1616+ #define INTERPRETER_H_
1717+1818+ // Due to longjmp behaviour, we must build Lua as C++ to avoid UB
1919++extern "C" {
2020+ #include <lua.h>
2121+ #include <lualib.h>
2222+ #include <lauxlib.h>
2323++}
2424+2525+ #include "common.h"
2626+ #include <unordered_map>
2727+--
2828+2.44.1
2929+
+144-30
pkgs/by-name/ed/edopro/package.nix
···22 lib,
33 stdenv,
44 fetchFromGitHub,
55- fetchpatch,
65 fetchzip,
76 makeWrapper,
87 premake5,
99- writeShellScriptBin,
88+ writeShellApplication,
109 runCommandLocal,
1110 symlinkJoin,
1111+ writeText,
1212 imagemagick,
1313 bzip2,
1414 curl,
1515+ envsubst,
1516 flac,
1616- # Use fmt 10+ after release 40.1.4+
1717- fmt_9,
1717+ fmt,
1818 freetype,
1919 irrlicht,
2020 libevent,
···3434 sqlite,
3535 wayland,
3636 egl-wayland,
3737+ zenity,
3738 covers_url ? "https://pics.projectignis.org:2096/pics/cover/{}.jpg",
3839 fields_url ? "https://pics.projectignis.org:2096/pics/field/{}.png",
3940 # While ygoprodeck has higher quality images, "spamming" of their api results in a ban.
···5758 ];
58595960 deps = import ./deps.nix;
6161+6262+ edopro-src = fetchFromGitHub {
6363+ owner = "edo9300";
6464+ repo = "edopro";
6565+ rev = deps.edopro-rev;
6666+ fetchSubmodules = true;
6767+ hash = deps.edopro-hash;
6868+ };
6069in
6170let
6271 assets = fetchzip {
···107116 };
108117 };
109118119119+ ocgcore =
120120+ let
121121+ # Refer to CORENAME EPRO_TEXT in <edopro>/gframe/dllinterface.cpp for this
122122+ ocgcoreName = lib.strings.concatStrings [
123123+ (lib.optionalString (!stdenv.hostPlatform.isWindows) "lib")
124124+ "ocgcore"
125125+ (
126126+ if stdenv.hostPlatform.isiOS then
127127+ "-ios"
128128+ else if stdenv.hostPlatform.isAndroid then
129129+ (
130130+ if stdenv.hostPlatform.isx86_64 then
131131+ "x64"
132132+ else if stdenv.hostPlatform.isx86_32 then
133133+ "x86"
134134+ else if stdenv.hostPlatform.isAarch64 then
135135+ "v8"
136136+ else if stdenv.hostPlatform.isAarch32 then
137137+ "v7"
138138+ else
139139+ throw "Don't know what platform suffix edopro expects for ocgcore on: ${stdenv.hostPlatform.system}"
140140+ )
141141+ else
142142+ lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ".aarch64"
143143+ )
144144+ stdenv.hostPlatform.extensions.sharedLibrary
145145+ ];
146146+ in
147147+ stdenv.mkDerivation {
148148+ pname = "ocgcore-edopro";
149149+ version = deps.edopro-version;
150150+151151+ src = edopro-src;
152152+ sourceRoot = "${edopro-src.name}/ocgcore";
153153+154154+ nativeBuildInputs = [
155155+ premake5
156156+ ];
157157+158158+ enableParallelBuilding = true;
159159+160160+ buildFlags = [
161161+ "verbose=true"
162162+ "config=release"
163163+ "ocgcoreshared"
164164+ ];
165165+166166+ makeFlags = [
167167+ "-C"
168168+ "build"
169169+ ];
170170+171171+ # To make sure linking errors are discovered at build time, not when edopro runs into them during loading
172172+ env.NIX_LDFLAGS = "--unresolved-symbols=report-all";
173173+174174+ installPhase = ''
175175+ runHook preInstall
176176+177177+ install -Dm644 bin/release/*ocgcore*${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/${ocgcoreName}
178178+179179+ runHook postInstall
180180+ '';
181181+182182+ meta = {
183183+ description = "YGOPro script engine";
184184+ homepage = "https://github.com/edo9300/ygopro-core";
185185+ license = lib.licenses.agpl3Plus;
186186+ inherit maintainers;
187187+ platforms = lib.platforms.unix;
188188+ };
189189+ };
190190+110191 edopro = stdenv.mkDerivation {
111192 pname = "edopro";
112193 version = deps.edopro-version;
113194114114- src = fetchFromGitHub {
115115- owner = "edo9300";
116116- repo = "edopro";
117117- rev = deps.edopro-rev;
118118- hash = deps.edopro-hash;
119119- };
195195+ src = edopro-src;
120196121197 nativeBuildInputs = [
122198 makeWrapper
···127203 bzip2
128204 curl
129205 flac
130130- fmt_9
206206+ fmt
131207 freetype
132208 irrlicht-edopro
133209 libevent
···141217 sqlite
142218 ];
143219144144- patches = [
145145- (fetchpatch {
146146- name = "libgit2-version.patch";
147147- url = "https://github.com/edo9300/edopro/commit/f8ddbfff51231827a8dd1dcfcb2dda85f50a56d9.patch";
148148- hash = "sha256-w9VTmWfw6vEyVvsOH+AK9lAbUOV+MagzGQ3Wa5DCS/U=";
149149- })
150150- ];
151151-152220 # nixpkgs' gcc stack currently appears to not support LTO
221221+ # Override where bundled ocgcore get looked up in, so we can supply ours
222222+ # (can't use --prebuilt-core or let it build a core on its own without making core updates impossible)
153223 postPatch = ''
154224 substituteInPlace premake5.lua \
155225 --replace-fail 'flags "LinkTimeOptimization"' 'removeflags "LinkTimeOptimization"'
226226+227227+ substituteInPlace gframe/game.cpp \
228228+ --replace-fail 'ocgcore = LoadOCGcore(Utils::GetWorkingDirectory())' 'ocgcore = LoadOCGcore("${lib.getLib ocgcore}/lib/")'
156229157230 touch ocgcore/premake5.lua
158231 '';
···244317 "textures"
245318 "WindBot"
246319 ];
320320+ wrapperZenityMessageTemplate = writeText "edopro-wrapper-multiple-versions-message.txt.in" ''
321321+ Nixpkgs' EDOPro wrapper has found more than 1 directory in: ''${EDOPRO_BASE_DIR}
322322+323323+ We expected the only directory to be: ''${EDOPRO_DIR}
324324+325325+ There may have been an update, requiring you to migrate any files you care about from an older version.
326326+327327+ Examples include:
328328+329329+ - decks/*
330330+ - config/system.conf - which has your client's settings
331331+ - any custom things you may have installed into: fonts, skins, script, sound, ...
332332+ - anything you wish to preserve from: replay, screenshots
333333+334334+ Once you have copied over everything important to ''${EDOPRO_DIR}, delete the old version's path.
335335+ '';
247336 in
248248- writeShellScriptBin "edopro" ''
249249- set -eu
250250- EDOPRO_DIR="''${XDG_DATA_HOME:-$HOME/.local/share}/edopro"
337337+ writeShellApplication {
338338+ name = "edopro";
339339+ runtimeInputs = [
340340+ envsubst
341341+ zenity
342342+ ];
343343+ text = ''
344344+ export EDOPRO_VERSION="${deps.edopro-version}"
345345+ export EDOPRO_BASE_DIR="''${XDG_DATA_HOME:-$HOME/.local/share}/edopro"
346346+ export EDOPRO_DIR="''${EDOPRO_BASE_DIR}/''${EDOPRO_VERSION}"
251347252252- if [ ! -d $EDOPRO_DIR ]; then
253253- mkdir -p $EDOPRO_DIR
254254- cp -r --no-preserve=all ${assets}/{${assetsToCopy}} $EDOPRO_DIR
255255- chmod -R go-rwx $EDOPRO_DIR
348348+ # If versioned directory doesn't exist yet, make it & copy over assets
349349+ if [ ! -d "$EDOPRO_DIR" ]; then
350350+ mkdir -p "$EDOPRO_DIR"
351351+ cp -r --no-preserve=all ${assets}/{${assetsToCopy}} "$EDOPRO_DIR"
352352+ chmod -R go-rwx "$EDOPRO_DIR"
353353+354354+ rm "$EDOPRO_DIR"/config/io.github.edo9300.EDOPro.desktop.in
355355+ fi
356356+357357+ # Different versions provide different assets. Some are necessary for the game to run properly (configs for
358358+ # where to get incremental updates from, online servers, card scripting, certificates for communication etc),
359359+ # and some are optional nice-haves (example decks). It's also possible to override assets with custom skins.
360360+ #
361361+ # Don't try to manage all of this across versions, just inform the user that they may need to migrate their
362362+ # files if it looks like there are multiple versions.
256363257257- rm $EDOPRO_DIR/config/io.github.edo9300.EDOPro.desktop.in
258258- fi
364364+ edoproTopDirs="$(find "$EDOPRO_BASE_DIR" -mindepth 1 -maxdepth 1 -type d | wc -l)"
365365+ if [ "$edoproTopDirs" -ne 1 ]; then
366366+ zenity \
367367+ --info \
368368+ --title='[NIX] Multiple asset copies found' \
369369+ --text="$(envsubst < ${wrapperZenityMessageTemplate})" \
370370+ --ok-label='Continue to EDOPro'
371371+ fi
259372260260- exec ${lib.getExe edopro} -C $EDOPRO_DIR $@
261261- '';
373373+ exec ${lib.getExe edopro} -C "$EDOPRO_DIR" "$@"
374374+ '';
375375+ };
262376263377 edopro-desktop = runCommandLocal "io.github.edo9300.EDOPro.desktop" { } ''
264378 mkdir -p $out/share/applications
+6-9
pkgs/by-name/ed/edopro/update.py
···22#! nix-shell -i python -p nix-prefetch-github python3Packages.githubkit
33import json
44import subprocess
55+import sys
5667from githubkit import GitHub, UnauthAuthStrategy
78from githubkit.versions.latest.models import (
···1516with GitHub(UnauthAuthStrategy()) as github:
1617 edopro: Tag = github.rest.repos.list_tags("edo9300", "edopro").parsed_data[0]
17181818- # This dep is not versioned in anyway and is why we check below to see if this is a new version.
1919+ # This dep is not versioned in any way and is why we check below to see if this is a new version.
1920 irrlicht: Commit = github.rest.repos.list_commits(
2021 "edo9300", "irrlicht1-8-4"
2122 ).parsed_data[0]
22232323- irrlicht: Commit = github.rest.repos.get_commit(
2424- "edo9300", "irrlicht1-8-4", "7edde28d4f8c0c3589934c398a3a441286bb7c22"
2525- ).parsed_data
2626-27242825edopro_working_version: str = ""
2926try:
···3229 if "edopro-version" in line:
3330 edopro_working_version = line.split('"')[1]
3431except FileNotFoundError:
3535- print("Error: Dep file not found.")
3232+ print("Error: Dep file not found.", file=sys.stderr)
3633 exit(2)
37343835if edopro_working_version == "":
3939- print("Working version is unbound")
3636+ print("Working version is unbound", file=sys.stderr)
4037 exit(5)
41384239if edopro_working_version == edopro.name:
···5653 return out_json["hash"]
575458555959-edopro_hash = get_hash("edo9300", "edopro", edopro.commit.sha)
5656+edopro_hash = get_hash("edo9300", "edopro", edopro.commit.sha, submodule=True)
6057irrlicht_hash = get_hash("edo9300", "irrlicht1-8-4", irrlicht.sha)
61586259asset_legacy_hash: str = (
···9895 edopro-version = "{edopro.name}";
9996 edopro-rev = "{edopro.commit.sha}";
10097 edopro-hash = "{edopro_hash}";
101101- irrlicht-version = "{"1.9.0-unstable-" + irrlicht.commit.committer.date.split("T")[0]}";
9898+ irrlicht-version = "{"1.9.0-unstable-" + irrlicht.commit.committer.date.strftime("%Y-%m-%d")}";
10299 irrlicht-rev = "{irrlicht.sha}";
103100 irrlicht-hash = "{irrlicht_hash}";
104101}}
···11+{
22+ lib,
33+ stdenvNoCC,
44+ fetchFromGitHub,
55+}:
66+77+stdenvNoCC.mkDerivation {
88+ pname = "inter-alia";
99+ version = "0-unstable-2024-01-12";
1010+1111+ src = fetchFromGitHub {
1212+ owner = "Shavian-info";
1313+ repo = "interalia";
1414+ rev = "5d182c4eb5511fec3879646c8b44c79ba338d53e";
1515+ hash = "sha256-q93cCrbKc72CH/2ybJPDY5wkUZvFyCKoyQe6WhL+kAU=";
1616+ };
1717+1818+ outputs = [
1919+ "out"
2020+ "web"
2121+ "variable"
2222+ "variableweb"
2323+ ];
2424+2525+ installPhase = ''
2626+ runHook preInstall
2727+2828+ install -D -m444 -t $out/share/fonts/opentype instance_otf/*.otf
2929+ install -D -m444 -t $out/share/fonts/truetype instance_ttf/*.ttf
3030+ install -D -m444 -t $web/share/fonts/webfont instance_woff2/*.woff2
3131+ install -D -m444 -t $variable/share/fonts/opentype variable_otf/*.otf
3232+ install -D -m444 -t $variable/share/fonts/truetype variable_ttf/*.ttf
3333+ install -D -m444 -t $variableweb/share/fonts/webfont variable_woff2/*.woff2
3434+3535+ runHook postInstall
3636+ '';
3737+3838+ meta = {
3939+ homepage = "https://shavian.info/shavian_fonts/";
4040+ description = "Expansion of Inter typeface to support the Shavian alphabet, old-style figures, & refinements to IPA glyphs";
4141+ longDescription = ''
4242+ Inter Alia is an expanded version of Rasmus Andersson's beautiful open source sans serif typeface, Inter. Inter was specially designed for user interfaces with focus on high legibility of small-to-medium sized text on computer screens.
4343+4444+ Inter Alia builds on the features of Inter to add:
4545+4646+ support for the Shavian alphabet with a newly designed set of glyphs, including the letters missing from Unicode (through character variants accessed by inserting 'Variation Selector 1' (U+FE00) after 𐑒, 𐑜, 𐑢, 𐑤, 𐑻, and 𐑺)
4747+ support for old-style figures or numerals, also known as text figures, with both proportional and tabular spacing
4848+ refinements to International Phonetic Alphabet glyphs and other less common glyphs.
4949+ '';
5050+ license = lib.licenses.ofl;
5151+ platforms = lib.platforms.all;
5252+ maintainers = with lib.maintainers; [ toastal ];
5353+ };
5454+}
+21-17
pkgs/by-name/kn/kn/package.nix
···22 lib,
33 buildGoModule,
44 fetchFromGitHub,
55+ getent,
56 installShellFiles,
67}:
7888-buildGoModule rec {
99+buildGoModule (finalAttrs: {
910 pname = "kn";
1010- version = "1.15.0";
1111+ version = "1.18.0";
11121213 src = fetchFromGitHub {
1314 owner = "knative";
1415 repo = "client";
1515- rev = "knative-v${version}";
1616- sha256 = "sha256-bXICU1UBNPVIumzRPSOWa1I5hUYWEvo6orBpUvbPEvg=";
1616+ tag = "knative-v${finalAttrs.version}";
1717+ hash = "sha256-Hi5MIzOTL8B1gL+UNv/G18VkBXflSObzCaZZALjWjw0=";
1718 };
18191919- vendorHash = null;
2020+ vendorHash = "sha256-bgZi5SdedpqqAdkl+iP1gqXonEMSrHjXKV2QRijvrtE=";
2121+2222+ env.GOWORK = "off";
20232124 subPackages = [ "cmd/kn" ];
22252326 nativeBuildInputs = [ installShellFiles ];
24272525- ldflags = [
2626- "-X knative.dev/client/pkg/kn/commands/version.Version=v${version}"
2727- "-X knative.dev/client/pkg/kn/commands/version.VersionEventing=v${version}"
2828- "-X knative.dev/client/pkg/kn/commands/version.VersionServing=v${version}"
2929- ];
2828+ ldflags = [ "-X knative.dev/client/pkg/commands/version.Version=v${finalAttrs.version}" ];
30293130 postInstall = ''
3231 installShellCompletion --cmd kn \
···3534 '';
36353736 doInstallCheck = true;
3737+3838 installCheckPhase = ''
3939- $out/bin/kn version | grep ${version} > /dev/null
3939+ runHook preInstallCheck
4040+4141+ PATH=$PATH:${getent}/bin $out/bin/kn version | grep ${finalAttrs.version} > /dev/null
4242+4343+ runHook postInstallCheck
4044 '';
41454242- meta = with lib; {
4343- description = "Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
4646+ meta = {
4747+ description = "Create Knative resources interactively from the command line or from within scripts";
4448 mainProgram = "kn";
4549 homepage = "https://github.com/knative/client";
4646- changelog = "https://github.com/knative/client/releases/tag/v${version}";
4747- license = licenses.asl20;
4848- maintainers = with maintainers; [ bryanasdev000 ];
5050+ changelog = "https://github.com/knative/client/releases/tag/v${finalAttrs.version}";
5151+ license = lib.licenses.asl20;
5252+ maintainers = with lib.maintainers; [ bryanasdev000 ];
4953 };
5050-}
5454+})
···8899buildGoModule rec {
1010 pname = "pdfcpu";
1111- version = "0.10.1";
1111+ version = "0.10.2";
12121313 src = fetchFromGitHub {
1414 owner = "pdfcpu";
1515 repo = pname;
1616 rev = "v${version}";
1717- hash = "sha256-IODE6/TIXZZC5Z8guFK24iiHTwj84fcf9RiAyFkX2F8=";
1717+ hash = "sha256-vfU0mFfOW9K3rgVNdfN2RBiKJLbijoVMtuywsoclEgE=";
1818 # Apparently upstream requires that the compiled executable will know the
1919 # commit hash and the date of the commit. This information is also presented
2020 # in the output of `pdfcpu version` which we use as a sanity check in the