sourcegit: init at 2025.1

Co-Authored-By: Peter Kling <1018801+pitkling@users.noreply.github.com>
This commit is contained in:
TomaSajt
2025-01-26 20:57:24 +01:00
co-authored by Peter Kling
parent b30969685d
commit c4017485fe
3 changed files with 380 additions and 0 deletions
+232
View File
@@ -0,0 +1,232 @@
[
{
"pname": "Avalonia",
"version": "11.0.0",
"hash": "sha256-7QE0MtD1QDiG3gRx5xW33E33BXyEtASQSw+Wi3Lmy3E="
},
{
"pname": "Avalonia",
"version": "11.2.3",
"hash": "sha256-NUoyXJkIsgbkcKFVb10VRafM4ViHs801c/7vhu3ssUY="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.22045.20230930",
"hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc="
},
{
"pname": "Avalonia.AvaloniaEdit",
"version": "11.1.0",
"hash": "sha256-K9+hK+4aK93dyuGytYvVU25daz605+KN54hmwQYXFF8="
},
{
"pname": "Avalonia.BuildServices",
"version": "0.0.29",
"hash": "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.2.3",
"hash": "sha256-z3ZHxVSOoOjqq+5G71jnGN1Y0i3YpAkox7cj3lNr6kg="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.2.3",
"hash": "sha256-jIJvuYN0iym/WeOC0C7z5xj5kCZSXGoeLQ/q5qQfewM="
},
{
"pname": "Avalonia.Desktop",
"version": "11.2.3",
"hash": "sha256-srtZi+kDbhRtMl33l91zssBWETU5oHodKbbWyfEsb/I="
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.2.3",
"hash": "sha256-DIGkaBff+C3BLwedw5xteR5lfzb6ecxiLt12eJVgLQc="
},
{
"pname": "Avalonia.Fonts.Inter",
"version": "11.2.3",
"hash": "sha256-ySsCXVpjqjCX/uYkwluSfrAoBtuq9k7fC1bFjxKC9/Q="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.2.3",
"hash": "sha256-3sNemBmZE06w2ul87T5HrEeHUxXMOa9MfQhpI4AoxDY="
},
{
"pname": "Avalonia.Native",
"version": "11.2.3",
"hash": "sha256-2Gp98NGWcrILqF+P5PDMPRdsMby/lZiT3eWAUskFim8="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.2.3",
"hash": "sha256-dSeu7rnTD9rIvlyro2iFS52oi0vvfeaGV3kDm90BkKw="
},
{
"pname": "Avalonia.Skia",
"version": "11.0.0",
"hash": "sha256-A01nrs3Ij1eTo6tPmu7++T1K+Wo/H/9LvpeuOUGbQeU="
},
{
"pname": "Avalonia.Skia",
"version": "11.2.3",
"hash": "sha256-QBp8wTA92hGwbmNSVL4gsjrqA9CfwDPgdTiOEqcogGA="
},
{
"pname": "Avalonia.Themes.Fluent",
"version": "11.2.3",
"hash": "sha256-DRl+267mUtJDUJpreUj6BxDLGGYGkEEo5vDGtGguoC8="
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.2.3",
"hash": "sha256-UF15yTDzHmqd33siH3TJxmxaonA51dzga+hmCUahn1k="
},
{
"pname": "Avalonia.Win32",
"version": "11.2.3",
"hash": "sha256-xKFKObvqdJaQjphEktRJvzmAoDEsKg3WqlEG31V3qLE="
},
{
"pname": "Avalonia.X11",
"version": "11.2.3",
"hash": "sha256-SD4dmpKx4l8YOyUnrA0fnf2Bb+tHSNyARh7GAtHyg60="
},
{
"pname": "AvaloniaEdit.TextMate",
"version": "11.1.0",
"hash": "sha256-Nv52bUxA02VcsKCbMqEAkNBl46gznSivRZ3llLHrhkM="
},
{
"pname": "CommunityToolkit.Mvvm",
"version": "8.3.2",
"hash": "sha256-zY+iB5Rj/8ru0xpRWwFLFO6JI3UFB/XHnx9pWmrZCAs="
},
{
"pname": "HarfBuzzSharp",
"version": "7.3.0.2",
"hash": "sha256-ibgoqzT1NV7Qo5e7X2W6Vt7989TKrkd2M2pu+lhSDg8="
},
{
"pname": "HarfBuzzSharp",
"version": "7.3.0.3",
"hash": "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0.3",
"hash": "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "7.3.0.3",
"hash": "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "7.3.0.3",
"hash": "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "7.3.0.3",
"hash": "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I="
},
{
"pname": "LiveChartsCore",
"version": "2.0.0-rc4.5",
"hash": "sha256-2Fgn9Bo1aM6dZHCU+OVykOhggTzpcEfFNfYtWc4yvHc="
},
{
"pname": "LiveChartsCore.SkiaSharpView",
"version": "2.0.0-rc4.5",
"hash": "sha256-03RR14tA0DtYHiLdgmAI4Gp5/e2H6QPkNFOBeqiFaJU="
},
{
"pname": "LiveChartsCore.SkiaSharpView.Avalonia",
"version": "2.0.0-rc4.5",
"hash": "sha256-lzG/5e6WDpUiHZ8GvovOMvwXyYoVBeB1Ktuuw2Fx5No="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
},
{
"pname": "Onigwrap",
"version": "1.0.6",
"hash": "sha256-p+dhMfIH4C6xLKRUREnUpC0DZwFazjvI+30KRT8TWnU="
},
{
"pname": "SkiaSharp",
"version": "2.88.8",
"hash": "sha256-rD5gc4SnlRTXwz367uHm8XG5eAIQpZloGqLRGnvNu0A="
},
{
"pname": "SkiaSharp",
"version": "2.88.9",
"hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
},
{
"pname": "SkiaSharp.HarfBuzz",
"version": "2.88.8",
"hash": "sha256-W9jNuEo/8q+k2aHNC19FfKcBUIEWx2zDcGwM+jDZ1o8="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.9",
"hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.9",
"hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.9",
"hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.9",
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
},
{
"pname": "System.IO.Pipelines",
"version": "8.0.0",
"hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="
},
{
"pname": "System.Text.Json",
"version": "8.0.5",
"hash": "sha256-yKxo54w5odWT6nPruUVsaX53oPRe+gKzGvLnnxtwP68="
},
{
"pname": "TextMateSharp",
"version": "1.0.59",
"hash": "sha256-qfAGSgVpTrWMZSk0TFDVP1IgWWi6O1jEEvWc0Pvw9i0="
},
{
"pname": "TextMateSharp",
"version": "1.0.65",
"hash": "sha256-kZx3CBDzu7qUSnihs9Q4Ck78ih1aJ+0g8cN8Hke+E5w="
},
{
"pname": "TextMateSharp.Grammars",
"version": "1.0.59",
"hash": "sha256-ru5VxQK4PFRJhHu+MvCzDt3EwbC/94n1whtDovUAUDA="
},
{
"pname": "TextMateSharp.Grammars",
"version": "1.0.65",
"hash": "sha256-tZx/GKYX3bomQFVFaEgneNYHpB74v+8D90IfkYImlhE="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.20.0",
"hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw="
}
]
@@ -0,0 +1,31 @@
diff --git a/src/Native/Linux.cs b/src/Native/Linux.cs
index a24f1b6..4102274 100644
--- a/src/Native/Linux.cs
+++ b/src/Native/Linux.cs
@@ -97,7 +97,7 @@ namespace SourceGit.Native
}
}
- private string FindExecutable(string filename)
+ public static string FindExecutable(string filename)
{
var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
var pathes = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries);
diff --git a/src/Native/MacOS.cs b/src/Native/MacOS.cs
index 5721fe8..bc2a57d 100644
--- a/src/Native/MacOS.cs
+++ b/src/Native/MacOS.cs
@@ -25,12 +25,7 @@ namespace SourceGit.Native
public string FindGitExecutable()
{
- var gitPathVariants = new List<string>() {
- "/usr/bin/git", "/usr/local/bin/git", "/opt/homebrew/bin/git", "/opt/homebrew/opt/git/bin/git"
- };
- foreach (var path in gitPathVariants)
- if (File.Exists(path)) return path;
- return string.Empty;
+ return Linux.FindExecutable("git");
}
public string FindTerminal(Models.ShellOrTerminal shell)
+117
View File
@@ -0,0 +1,117 @@
{
lib,
stdenv,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
copyDesktopItems,
makeDesktopItem,
libicns,
libXcursor,
libXext,
libXi,
libXrandr,
git,
xdg-utils,
}:
buildDotnetModule (finalAttrs: {
pname = "sourcegit";
version = "2025.01";
src = fetchFromGitHub {
owner = "sourcegit-scm";
repo = "sourcegit";
tag = "v${finalAttrs.version}";
hash = "sha256-6FO0WRUcWm7xnuw6Br97+cWZhvzIOesg/eANZzeyxZo=";
};
patches = [ ./fix-darwin-git-path.patch ];
dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.runtime_9_0;
nugetDeps = ./deps.json;
projectFile = [ "src/SourceGit.csproj" ];
executables = [ "SourceGit" ];
dotnetFlags = [
"-p:DisableUpdateDetection=true"
"-p:DisableAOT=true"
];
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
libicns
];
# these are dlopen-ed at runtime
# libXi is needed for right-click support
# not sure about what the other ones are needed for, but I'll include them anyways
runtimeDeps = [
libXcursor
libXext
libXi
libXrandr
];
# Note: users can use `.overrideAttrs` to append to this list
runtimePathDeps = [
git
xdg-utils
];
# add fallback binaries to use if the user doesn't already have them in their PATH
preInstall = ''
makeWrapperArgs+=(
--suffix PATH : ${lib.makeBinPath finalAttrs.runtimePathDeps}
)
'';
desktopItems = [
(makeDesktopItem {
name = "SourceGit";
exec = "SourceGit";
icon = "SourceGit";
desktopName = "SourceGit";
terminal = false;
comment = finalAttrs.meta.description;
})
];
postInstall =
lib.optionalString stdenv.hostPlatform.isLinux ''
# extract the .icns file into multiple .png files
# where the format of the .png file names is App_"$n"x"$n"x32.png
icns2png -x build/resources/app/App.icns
for f in App_*x32.png; do
res=''${f//App_}
res=''${res//x32.png}
install -Dm644 $f "$out/share/icons/hicolor/$res/apps/SourceGit.png"
done
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
install -Dm644 build/resources/app/App.icns $out/Applications/SourceGit.app/Contents/Resources/App.icns
substitute build/resources/app/App.plist $out/Applications/SourceGit.app/Contents/Info.plist \
--replace-fail "SOURCE_GIT_VERSION" "${finalAttrs.version}"
mkdir -p $out/Applications/SourceGit.app/Contents/MacOS
ln -s $out/bin/SourceGit $out/Applications/SourceGit.app/Contents/MacOS/SourceGit
'';
meta = {
changelog = "https://github.com/sourcegit-scm/sourcegit/releases/tag/${finalAttrs.src.tag}";
description = "Free & OpenSource GUI client for GIT users";
homepage = "https://github.com/sourcegit-scm/sourcegit";
license = lib.licenses.mit;
mainProgram = "SourceGit";
maintainers = with lib.maintainers; [ tomasajt ];
};
})