mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-29 11:20:10 +00:00
Compare commits
10 Commits
staging-26
...
nixos-26.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d51c455eef | ||
|
|
d1e40b6809 | ||
|
|
b04bfda2b2 | ||
|
|
53cdf9f164 | ||
|
|
9f09524e2c | ||
|
|
964766c315 | ||
|
|
2885d378fe | ||
|
|
f3baa3f684 | ||
|
|
f7fd04296d | ||
|
|
2aba6ffa6a |
@@ -13361,6 +13361,12 @@
|
||||
github = "jooooscha";
|
||||
githubId = 57965027;
|
||||
};
|
||||
joseg313 = {
|
||||
name = "Jose Garcia";
|
||||
email = "501jag3@gmail.com";
|
||||
github = "joseg313";
|
||||
githubId = 215610619;
|
||||
};
|
||||
josephschmitt = {
|
||||
name = "Joseph Schmitt";
|
||||
email = "dev@joe.sh";
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "blackfire";
|
||||
version = "2026.9.0";
|
||||
version = "2026.9.1";
|
||||
|
||||
src =
|
||||
passthru.sources.${stdenv.hostPlatform.system}
|
||||
@@ -60,19 +60,19 @@ stdenv.mkDerivation rec {
|
||||
sources = {
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
|
||||
hash = "sha256-mm93TmfrSMP5+hVtWQ2CkUqmDqYraL4H7NVLXZ7xDqs=";
|
||||
hash = "sha256-ElktV5SSt4zhvVnQS8qljbPDGH0qM85i7WztyoDyvcM=";
|
||||
};
|
||||
"i686-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
|
||||
hash = "sha256-nz0YYTdH0Rcs4f0aJu8Bkg/NwLNxiFwSq8kkRoa+VEA=";
|
||||
hash = "sha256-vl6PvMsqc3GyIsrYl1WpV1psxuuszSfN1TdRH5FW9qE=";
|
||||
};
|
||||
"aarch64-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
|
||||
hash = "sha256-RTTNU3c9gJQRh8vjrCnhPh/mKWKs9jHUd3gund3UZWM=";
|
||||
hash = "sha256-fjcp+gOHna7grTl972jslY8hYdjWhfxbA4ncHfCAkGw=";
|
||||
};
|
||||
"aarch64-darwin" = fetchurl {
|
||||
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
|
||||
hash = "sha256-xa9lqDOVS0uPLeAyQ3fvkp3SNN8Hhv66gitjgKk/p6M=";
|
||||
hash = "sha256-xNn78U4jdABzWrSKMSSZXE5tuf/SRK8OwdhldKBBKk0=";
|
||||
};
|
||||
"x86_64-darwin" = fetchurl {
|
||||
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
|
||||
|
||||
@@ -16,47 +16,47 @@ let
|
||||
phpMajor = lib.versions.majorMinor php.version;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
|
||||
version = "2026.9.0";
|
||||
version = "2026.9.2";
|
||||
|
||||
hashes = {
|
||||
"x86_64-linux" = {
|
||||
system = "amd64";
|
||||
hash = {
|
||||
"8.1" = "sha256-0AAgiBdiIQOxSSttD2ERzSTqPM1rLwlQFHZ6ARRSgmI=";
|
||||
"8.2" = "sha256-usSNoM1XeVWKuHLlSMvONAucVa1ZEAb3+I66oOnzGB0=";
|
||||
"8.3" = "sha256-65GoEhgFsQbQleSVuRnHPSZAiCfEUmyVWWhnybnrgaA=";
|
||||
"8.4" = "sha256-0if1fQa7b41TjC3d1ck65cJP7lKdoL670V9t+PLL+qk=";
|
||||
"8.5" = "sha256-3k5jQ+vbxLGp78MRzjiw7uP+tCcEs5gAYM2MEoiYdtk=";
|
||||
"8.1" = "sha256-Rh26CehFWvZbri+wE+NOit6Mc6LB55IVZ0FT63/GBew=";
|
||||
"8.2" = "sha256-HoaC8XAGxqPvQPkpsqTjBxd6Z8FnB/cjk5uC9ogNMAs=";
|
||||
"8.3" = "sha256-nRwvQYootheK0qEWbEJoC82butcJRFz65zhxey56/Bk=";
|
||||
"8.4" = "sha256-rqo9U0S2Cuhy+CiILeXo2DW22y9xb/7QB3l7Et0IbTM=";
|
||||
"8.5" = "sha256-hf/pe+Go8qhHxqAodbLyn60t1FJGZtQ965pMFCJ4t0M=";
|
||||
};
|
||||
};
|
||||
"i686-linux" = {
|
||||
system = "i386";
|
||||
hash = {
|
||||
"8.1" = "sha256-fmmbY4ecnE05XNxGKq11HcYhs9z7SggLx9iXICHE6DQ=";
|
||||
"8.2" = "sha256-9WP+FpULl0PQJ+0qxxZfm5xJS/A6N137yGk9gv4cYvI=";
|
||||
"8.3" = "sha256-Io2gGAhXLAVdHoaKwKvJWA1N71IJAKeJkudLs8DZUl8=";
|
||||
"8.4" = "sha256-JoGiB8ew3D/qSi7Pg/q67mXLsUy4UDVsazgxgb5BJTM=";
|
||||
"8.5" = "sha256-bSfbhFHV8Zs4cpOfDnKItNlF9++0opUtosTpnosacdU=";
|
||||
"8.1" = "sha256-BgOAsLqMqsyXfEIgx/Buaz4jjU1TN8lxVPTSvQzCn7M=";
|
||||
"8.2" = "sha256-D1FiwfYF8tRM1uMEWPauY+SzQNyL9kszVb5pD5vOBwA=";
|
||||
"8.3" = "sha256-SZ9KFC+ISp5LgElLeQTOInlgoSqWV9+oRdC6yJ5P3WA=";
|
||||
"8.4" = "sha256-x4ZTJs1VLipdEEAhjb+pG4Q25a2czBkEPtucHGdZINw=";
|
||||
"8.5" = "sha256-zzSZsGu2POr97O5fwKRCwJqs6+lO1HqfG6o5HKL4zVQ=";
|
||||
};
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
system = "arm64";
|
||||
hash = {
|
||||
"8.1" = "sha256-7/2Q9Kx3ZEpI0Inj88CfTDzr0sjVpws3DH8KTP26PR0=";
|
||||
"8.2" = "sha256-suFGyE94wY4xHfPk77OXzkqU+Ulb+f42drDZY/M9ZNs=";
|
||||
"8.3" = "sha256-z5IfXX7DElerdRTnq3R95t8IvG0Hl9EKXBw1QbRlDkY=";
|
||||
"8.4" = "sha256-ceTjQ6gtiWJEte5WuVuyc+eTEb3khobYoCWNGP+Vkeo=";
|
||||
"8.5" = "sha256-1jX564B/tLBgb7jN6MB5DfpRgYy0xxmtAaAv768FQqo=";
|
||||
"8.1" = "sha256-QGe/XJt2N7UFpW0ahKo+hCZO7X80L31hAp0D6oreGt4=";
|
||||
"8.2" = "sha256-QyhbXXlhBdoNUYJcPOt4w4sA45ELtY4IERD8GUS3I4c=";
|
||||
"8.3" = "sha256-+l9RGCmhQsdtqntfUk22d1zVIcAxuLw4mHpe4WcfGr8=";
|
||||
"8.4" = "sha256-hUI/z+PNAj7gl9UCGes/TnhV6zK82LMfhEfi72gsy7c=";
|
||||
"8.5" = "sha256-MaqGbXacLeDUPlskuETtzv1cXZTO0/EF0IW49N6eZMY=";
|
||||
};
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
system = "arm64";
|
||||
hash = {
|
||||
"8.1" = "sha256-JQZKX8qChvBS3S8cqtxmooZMsFlFqfffnQbNldYNR+M=";
|
||||
"8.2" = "sha256-nGQdweskEw9tiK51IGcu7cGKJJwtmNBL9fZLMUCuiB8=";
|
||||
"8.3" = "sha256-sHQOg6QC+Mm5KwQVwKmeOVR3fUkN2NH9utHs667Oipw=";
|
||||
"8.4" = "sha256-Btrz+U9ejW/Jl1cWBRt5XGV1IzjxK+FJaQwXIgYR/NI=";
|
||||
"8.5" = "sha256-zSQeBioU/3c7HrqEz+9z8vam3EHkR0KbC80/mIuTAFE=";
|
||||
"8.1" = "sha256-oG7Doie9hoieBM649S1XlagBaYAWAjJu2PrzYSDLKL0=";
|
||||
"8.2" = "sha256-MJi0cve8+eItBcC6UkuxYTzclB3OMC+Hhlmd++xD1MU=";
|
||||
"8.3" = "sha256-3oJtMuVKGUgpduMp7snSdGE/BH764EA7yz+N70+qFNg=";
|
||||
"8.4" = "sha256-0HOCBB9dgU9Vq5/F0iKCzumjwT81qxHElPsLGKgVhr0=";
|
||||
"8.5" = "sha256-Hi9bC/CigkA3VWFTqfE7JzBcGGJAhUwnmMndHgbFIW4=";
|
||||
};
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
bintools,
|
||||
fetchurl,
|
||||
lib,
|
||||
makeWrapper,
|
||||
patchelf,
|
||||
bintools,
|
||||
stdenvNoCC,
|
||||
testers,
|
||||
dpkg,
|
||||
|
||||
# Linked dynamic libraries
|
||||
alsa-lib,
|
||||
at-spi2-atk,
|
||||
@@ -46,15 +48,20 @@
|
||||
pipewire,
|
||||
vulkan-loader,
|
||||
wayland, # ozone/wayland
|
||||
|
||||
# Command line programs
|
||||
coreutils,
|
||||
|
||||
# command line arguments which are always set e.g "--disable-gpu"
|
||||
commandLineArgs ? "",
|
||||
|
||||
# Will crash without.
|
||||
systemd,
|
||||
|
||||
# Loaded at runtime.
|
||||
libexif,
|
||||
pciutils,
|
||||
|
||||
# Additional dependencies according to other distros
|
||||
## Ubuntu
|
||||
curl,
|
||||
@@ -73,27 +80,38 @@
|
||||
## Gentoo
|
||||
bzip2,
|
||||
libcap,
|
||||
|
||||
# Necessary for USB audio devices.
|
||||
libpulseaudio,
|
||||
pulseSupport ? true,
|
||||
|
||||
adwaita-icon-theme,
|
||||
gsettings-desktop-schemas,
|
||||
|
||||
# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder)
|
||||
libva,
|
||||
libvaSupport ? true,
|
||||
|
||||
# For Vulkan support (--enable-features=Vulkan)
|
||||
addDriverRunpath,
|
||||
# For QT support
|
||||
undmg,
|
||||
|
||||
# Enables Edge's "Use QT" appearance to introspect the user's Plasma theme
|
||||
plasmaSupport ? false,
|
||||
qt6,
|
||||
# Edge AAD sync
|
||||
kdePackages,
|
||||
|
||||
# Edge Specific and AAD sync
|
||||
cacert,
|
||||
libsecret,
|
||||
# Edge Specific
|
||||
libuuid,
|
||||
|
||||
# Create a symlink at $out/bin/microsoft-edge-stable
|
||||
withSymlink ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "microsoft-edge";
|
||||
opusWithCustomModes = libopus.override { withCustomModes = true; };
|
||||
|
||||
deps = [
|
||||
@@ -115,15 +133,20 @@ let
|
||||
gcc-unwrapped.lib
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
gtk4
|
||||
harfbuzz
|
||||
icu
|
||||
libcap
|
||||
libdrm
|
||||
liberation_ttf
|
||||
libexif
|
||||
libgbm
|
||||
libglvnd
|
||||
libkrb5
|
||||
libpng
|
||||
libsecret
|
||||
libuuid
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
@@ -138,7 +161,6 @@ let
|
||||
libxscrnsaver
|
||||
libxshmfence
|
||||
libxtst
|
||||
libgbm
|
||||
nspr
|
||||
nss
|
||||
opusWithCustomModes
|
||||
@@ -152,124 +174,178 @@ let
|
||||
vulkan-loader
|
||||
wayland
|
||||
wget
|
||||
libsecret
|
||||
libuuid
|
||||
gtk3
|
||||
gtk4
|
||||
]
|
||||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional libvaSupport libva
|
||||
++ lib.optionals plasmaSupport [
|
||||
qt6.qtbase
|
||||
qt6.qtwayland
|
||||
]
|
||||
++ lib.optionals pulseSupport [ libpulseaudio ]
|
||||
++ lib.optionals libvaSupport [ libva ];
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "microsoft-edge";
|
||||
version = "154.0.4258.37";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
|
||||
hash = "sha256-xvopdHM5kTIbRsQGS3hc3sWhTYzd0YK8X9oFfjfnYD0=";
|
||||
};
|
||||
|
||||
# With strictDeps on, some shebangs were not being patched correctly
|
||||
# ie, $out/share/microsoft/msedge/microsoft-edge
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
patchelf
|
||||
dpkg
|
||||
kdePackages.plasma-integration
|
||||
kdePackages.breeze
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# needed for XDG_ICON_DIRS
|
||||
adwaita-icon-theme
|
||||
glib
|
||||
gtk3
|
||||
gtk4
|
||||
# needed for GSETTINGS_SCHEMAS_PATH
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
linux = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta;
|
||||
version = "154.0.4258.37";
|
||||
|
||||
rpath = lib.makeLibraryPath deps + ":" + lib.makeSearchPathOutput "lib" "lib64" deps;
|
||||
binpath = lib.makeBinPath deps;
|
||||
src = fetchurl {
|
||||
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
|
||||
hash = "sha256-xvopdHM5kTIbRsQGS3hc3sWhTYzd0YK8X9oFfjfnYD0=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
# With strictDeps on, some shebangs were not being patched correctly
|
||||
# ie, $out/share/microsoft/msedge/microsoft-edge
|
||||
strictDeps = false;
|
||||
|
||||
appname=msedge
|
||||
dist=stable
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
patchelf
|
||||
dpkg
|
||||
];
|
||||
|
||||
exe=$out/bin/microsoft-edge
|
||||
buildInputs = [
|
||||
# needed for XDG_ICON_DIRS
|
||||
adwaita-icon-theme
|
||||
glib
|
||||
gtk3
|
||||
gtk4
|
||||
# needed for GSETTINGS_SCHEMAS_PATH
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp -v -a usr/share $out/share
|
||||
cp -v -a opt/microsoft $out/share/microsoft
|
||||
rpath = lib.makeLibraryPath deps + ":" + lib.makeSearchPathOutput "lib" "lib64" deps;
|
||||
binpath = lib.makeBinPath deps;
|
||||
|
||||
# replace bundled vulkan-loader
|
||||
rm -v $out/share/microsoft/$appname/libvulkan.so.1
|
||||
ln -v -s -t "$out/share/microsoft/$appname" "${lib.getLib vulkan-loader}/lib/libvulkan.so.1"
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
substituteInPlace $out/share/microsoft/$appname/microsoft-edge \
|
||||
--replace-fail 'CHROME_WRAPPER' 'WRAPPER'
|
||||
substituteInPlace $out/share/applications/microsoft-edge.desktop \
|
||||
--replace-fail /usr/bin/microsoft-edge-$dist $exe
|
||||
substituteInPlace $out/share/applications/com.microsoft.Edge.desktop \
|
||||
--replace-fail /usr/bin/microsoft-edge-$dist $exe
|
||||
substituteInPlace $out/share/gnome-control-center/default-apps/microsoft-edge.xml \
|
||||
--replace-fail /opt/microsoft/msedge $exe
|
||||
appname=msedge
|
||||
dist=stable
|
||||
|
||||
for icon_file in $out/share/microsoft/msedge/product_logo_[0-9]*.png; do
|
||||
num_and_suffix="''${icon_file##*logo_}"
|
||||
if [ $dist = "stable" ]; then
|
||||
icon_size="''${num_and_suffix%.*}"
|
||||
else
|
||||
icon_size="''${num_and_suffix%_*}"
|
||||
fi
|
||||
logo_output_prefix="$out/share/icons/hicolor"
|
||||
logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
|
||||
mkdir -p "$logo_output_path"
|
||||
mv "$icon_file" "$logo_output_path/microsoft-edge.png"
|
||||
done
|
||||
exe=$out/bin/microsoft-edge-$dist
|
||||
|
||||
# "--simulate-outdated-no-au" disables auto updates and browser outdated popup
|
||||
makeWrapper "$out/share/microsoft/$appname/microsoft-edge" "$exe" \
|
||||
--prefix QT_PLUGIN_PATH : "${qt6.qtbase}/lib/qt-6/plugins" \
|
||||
--prefix QT_PLUGIN_PATH : "${qt6.qtwayland}/lib/qt-6/plugins" \
|
||||
--prefix NIXPKGS_QT6_QML_IMPORT_PATH : "${qt6.qtwayland}/lib/qt-6/qml" \
|
||||
--prefix LD_LIBRARY_PATH : "$rpath" \
|
||||
--prefix PATH : "$binpath" \
|
||||
--suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:${addDriverRunpath.driverLink}/share" \
|
||||
--set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" \
|
||||
--set CHROME_WRAPPER "microsoft-edge-$dist" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
|
||||
--add-flags "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'" \
|
||||
--add-flags ${lib.escapeShellArg commandLineArgs}
|
||||
mkdir -p $out/bin $out/share
|
||||
cp -v -a opt/* $out/share
|
||||
cp -v -a usr/share/* $out/share
|
||||
|
||||
# Edge specific set liboneauth
|
||||
patchelf --set-rpath $rpath $out/share/microsoft/$appname/liboneauth.so
|
||||
# replace bundled vulkan-loader
|
||||
rm -v $out/share/microsoft/$appname/libvulkan.so.1
|
||||
ln -v -s -t "$out/share/microsoft/$appname" "${lib.getLib vulkan-loader}/lib/libvulkan.so.1"
|
||||
|
||||
for elf in $out/share/microsoft/$appname/{msedge,msedge-sandbox,msedge_crashpad_handler}; do
|
||||
patchelf --set-rpath $rpath $elf
|
||||
patchelf --set-interpreter ${bintools.dynamicLinker} $elf
|
||||
done
|
||||
substituteInPlace $out/share/microsoft/$appname/microsoft-edge \
|
||||
--replace-fail 'CHROME_WRAPPER' 'WRAPPER'
|
||||
substituteInPlace $out/share/applications/microsoft-edge.desktop \
|
||||
--replace-fail /usr/bin/microsoft-edge-$dist $exe
|
||||
substituteInPlace $out/share/applications/com.microsoft.Edge.desktop \
|
||||
--replace-fail /usr/bin/microsoft-edge-$dist $exe
|
||||
substituteInPlace $out/share/gnome-control-center/default-apps/microsoft-edge.xml \
|
||||
--replace-fail /opt/microsoft/$appname $exe
|
||||
|
||||
${lib.optionalString withSymlink ''
|
||||
ln -s $out/bin/microsoft-edge $out/bin/microsoft-edge-stable
|
||||
''}
|
||||
for icon_file in $out/share/microsoft/msedge/product_logo_[0-9]*.png; do
|
||||
num_and_suffix="''${icon_file##*logo_}"
|
||||
if [ $dist = "stable" ]; then
|
||||
icon_size="''${num_and_suffix%.*}"
|
||||
else
|
||||
icon_size="''${num_and_suffix%_*}"
|
||||
fi
|
||||
logo_output_prefix="$out/share/icons/hicolor"
|
||||
logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
|
||||
mkdir -p "$logo_output_path"
|
||||
mv "$icon_file" "$logo_output_path/microsoft-edge.png"
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
# "--simulate-outdated-no-au" disables auto updates and browser outdated popup
|
||||
makeWrapper "$out/share/microsoft/$appname/microsoft-edge" "$exe" \
|
||||
${lib.optionalString plasmaSupport ''
|
||||
--prefix QT_PLUGIN_PATH : "${qt6.qtbase}/lib/qt-6/plugins" \
|
||||
--prefix QT_PLUGIN_PATH : "${qt6.qtwayland}/lib/qt-6/plugins" \
|
||||
--prefix QT_PLUGIN_PATH : "${kdePackages.plasma-integration}/lib/qt-6/plugins" \
|
||||
--prefix QT_PLUGIN_PATH : "${kdePackages.breeze}/lib/qt-6/plugins" \
|
||||
--prefix NIXPKGS_QT6_QML_IMPORT_PATH : "${qt6.qtwayland}/lib/qt-6/qml" \
|
||||
''} \
|
||||
--prefix LD_LIBRARY_PATH : "$rpath" \
|
||||
--prefix PATH : "$binpath" \
|
||||
--suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:${addDriverRunpath.driverLink}/share" \
|
||||
--set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" \
|
||||
--set CHROME_WRAPPER "microsoft-edge-$dist" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
|
||||
--add-flags "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'" \
|
||||
--add-flags ${lib.escapeShellArg commandLineArgs}
|
||||
|
||||
passthru.updateScript = ./update.py;
|
||||
# Edge specific set liboneauth
|
||||
patchelf --set-rpath $rpath $out/share/microsoft/$appname/liboneauth.so
|
||||
|
||||
for elf in $out/share/microsoft/$appname/{msedge,msedge-sandbox,msedge_crashpad_handler}; do
|
||||
patchelf --set-rpath $rpath $elf
|
||||
patchelf --set-interpreter ${bintools.dynamicLinker} $elf
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString withSymlink ''
|
||||
ln -s $out/bin/microsoft-edge-stable $out/bin/microsoft-edge
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
|
||||
};
|
||||
});
|
||||
|
||||
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta;
|
||||
version = "154.0.4258.37";
|
||||
uuid = "f7dec597-801d-4c4b-ae51-c8a53c78925c";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/${finalAttrs.uuid}/MicrosoftEdge-${finalAttrs.version}.dmg";
|
||||
hash = "sha256-R385aGFby0WK64wxHGCbKnDymsUIG+lzTpQfVO2NBgA=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
undmg
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/Applications
|
||||
cp -r *.app $out/Applications
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
# "--simulate-outdated-no-au" disables auto updates and browser outdated popup
|
||||
makeWrapper $out/Applications/Microsoft\ Edge.app/Contents/MacOS/Microsoft\ Edge $out/bin/microsoft-edge-stable \
|
||||
--add-flags "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'" \
|
||||
--add-flags ${lib.escapeShellArg commandLineArgs}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString withSymlink ''
|
||||
ln -s $out/bin/microsoft-edge-stable $out/bin/microsoft-edge
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
|
||||
};
|
||||
});
|
||||
|
||||
meta = {
|
||||
changelog = "https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-stable-channel";
|
||||
description = "Web browser from Microsoft";
|
||||
homepage = "https://www.microsoft.com/en-us/edge";
|
||||
changelog = "https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-stable-channel";
|
||||
license = lib.licenses.unfree;
|
||||
mainProgram = "microsoft-edge";
|
||||
maintainers = with lib.maintainers; [
|
||||
cholli
|
||||
ulrikstrid
|
||||
@@ -278,7 +354,17 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
jonhermansen
|
||||
iedame
|
||||
];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
platforms = lib.platforms.darwin ++ [
|
||||
"x86_64-linux"
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
mainProgram = "microsoft-edge-stable";
|
||||
};
|
||||
})
|
||||
|
||||
in
|
||||
if stdenvNoCC.hostPlatform.isDarwin then
|
||||
darwin
|
||||
else if stdenvNoCC.hostPlatform.isLinux then
|
||||
linux
|
||||
else
|
||||
throw "Unsupported platform ${stdenvNoCC.hostPlatform.system}"
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 -p python3Packages.packaging python3Packages.python-debian common-updater-scripts
|
||||
|
||||
import os
|
||||
from collections import OrderedDict
|
||||
from os.path import abspath, dirname
|
||||
from urllib import request
|
||||
|
||||
from debian.deb822 import Packages
|
||||
from debian.debian_support import Version
|
||||
|
||||
PIN_PATH = dirname(abspath(__file__)) + "/default.nix"
|
||||
|
||||
|
||||
def packages():
|
||||
packages_url = "https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages"
|
||||
handle = request.urlopen(packages_url)
|
||||
return handle
|
||||
|
||||
|
||||
def latest_packages(packages: bytes):
|
||||
latest_packages: OrderedDict[str, Packages] = {}
|
||||
for package in Packages.iter_paragraphs(packages, use_apt_pkg=False):
|
||||
name: str = package["Package"]
|
||||
if not name.startswith("microsoft-edge-stable"):
|
||||
continue
|
||||
channel = name.replace("microsoft-edge-", "")
|
||||
if channel not in latest_packages:
|
||||
latest_packages[channel] = package
|
||||
else:
|
||||
old_package = latest_packages[channel]
|
||||
if old_package.get_version() < package.get_version(): # type: ignore
|
||||
latest_packages[channel] = package
|
||||
return OrderedDict(sorted(latest_packages.items(), key=lambda x: x[0]))
|
||||
|
||||
|
||||
def write_expression():
|
||||
latest = latest_packages(packages())
|
||||
version = Version.re_valid_version.match(latest["stable"]["Version"]).group(
|
||||
"upstream_version"
|
||||
)
|
||||
os.system(f'update-source-version microsoft-edge "{version}"')
|
||||
os.system(f'update-source-version msedgedriver "{version}"')
|
||||
|
||||
|
||||
write_expression()
|
||||
258
pkgs/by-name/mi/microsoft-edge/update.sh
Executable file
258
pkgs/by-name/mi/microsoft-edge/update.sh
Executable file
@@ -0,0 +1,258 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=./. -i bash -p curl gawk nix common-updater-scripts python3Packages.python-debian
|
||||
# shellcheck shell=bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DEFAULT_NIX="$(realpath "./pkgs/by-name/mi/microsoft-edge/package.nix")"
|
||||
DRIVER_NIX="$(realpath "./pkgs/by-name/ms/msedgedriver/package.nix")"
|
||||
|
||||
get_linux_version_info() {
|
||||
local packages_url
|
||||
local response
|
||||
local version
|
||||
local current_version
|
||||
local download_url
|
||||
|
||||
packages_url="https://packages.microsoft.com/repos/edge/dists/stable/main/binary-amd64/Packages"
|
||||
|
||||
response="$(curl --silent --fail "$packages_url")"
|
||||
read -r version download_url <<< "$(
|
||||
python3 -c '
|
||||
import sys
|
||||
from debian.deb822 import Packages
|
||||
from debian.debian_support import Version
|
||||
|
||||
latest = None
|
||||
|
||||
for package in Packages.iter_paragraphs(sys.stdin, use_apt_pkg=False):
|
||||
if package["Package"] != "microsoft-edge-stable":
|
||||
continue
|
||||
|
||||
if latest is None or latest.get_version() < package.get_version():
|
||||
latest = package
|
||||
|
||||
if latest is None:
|
||||
raise SystemExit("microsoft-edge-stable not found")
|
||||
|
||||
version = Version.re_valid_version.match(
|
||||
latest["Version"]
|
||||
).group("upstream_version")
|
||||
|
||||
url = (
|
||||
"https://packages.microsoft.com/repos/edge/"
|
||||
+ latest["Filename"]
|
||||
)
|
||||
|
||||
print(version, url)
|
||||
' <<< "$response"
|
||||
)"
|
||||
|
||||
current_version="$(
|
||||
awk '
|
||||
/^ linux = stdenvNoCC.mkDerivation/ { in_block=1 }
|
||||
in_block && /version = "/ {
|
||||
match($0, /version = "([^"]+)"/, arr)
|
||||
print arr[1]
|
||||
exit
|
||||
}
|
||||
in_block && /^ \};/ { exit }
|
||||
' "$DEFAULT_NIX"
|
||||
)"
|
||||
|
||||
echo "$version" "$current_version" "$download_url"
|
||||
}
|
||||
|
||||
get_darwin_version_info() {
|
||||
local redirect_url
|
||||
local final_url
|
||||
local version
|
||||
local current_version
|
||||
local uuid
|
||||
|
||||
redirect_url="https://go.microsoft.com/fwlink/?linkid=2192091"
|
||||
|
||||
final_url="$(
|
||||
curl \
|
||||
--silent \
|
||||
--show-error \
|
||||
--fail \
|
||||
--location \
|
||||
--output /dev/null \
|
||||
--write-out '%{url_effective}' \
|
||||
"$redirect_url"
|
||||
)"
|
||||
|
||||
if [[ "$final_url" =~ /files/([^/]+)/MicrosoftEdge-([0-9.]+)\.dmg$ ]]; then
|
||||
uuid="${BASH_REMATCH[1]}"
|
||||
version="${BASH_REMATCH[2]}"
|
||||
else
|
||||
echo "Could not parse Darwin URL: $final_url" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
current_version="$(
|
||||
awk '
|
||||
/^ darwin = stdenvNoCC.mkDerivation/ { in_block=1 }
|
||||
in_block && /version = "/ {
|
||||
match($0, /version = "([^"]+)"/, arr)
|
||||
print arr[1]
|
||||
exit
|
||||
}
|
||||
in_block && /^ \};/ { exit }
|
||||
' "$DEFAULT_NIX"
|
||||
)"
|
||||
|
||||
echo "$version" "$current_version" "$uuid" "$final_url"
|
||||
}
|
||||
|
||||
update_linux() {
|
||||
local version_info
|
||||
local version
|
||||
local current_version
|
||||
local download_url
|
||||
local new_hash
|
||||
|
||||
read -ra version_info <<< "$(get_linux_version_info)"
|
||||
|
||||
version="${version_info[0]}"
|
||||
current_version="${version_info[1]}"
|
||||
download_url="${version_info[2]}"
|
||||
|
||||
if [[ "$current_version" = "$version" ]]; then
|
||||
echo "[Nix] Linux microsoft-edge: same version"
|
||||
return 0
|
||||
fi
|
||||
|
||||
new_hash="$(
|
||||
nix --extra-experimental-features nix-command \
|
||||
hash convert \
|
||||
--hash-algo sha256 \
|
||||
--to sri \
|
||||
"$(nix-prefetch-url "$download_url" 2>/dev/null)"
|
||||
)"
|
||||
|
||||
sed -i \
|
||||
"/^ linux = stdenvNoCC.mkDerivation/,/^ });/s/version = \".*\"/version = \"$version\"/" \
|
||||
"$DEFAULT_NIX"
|
||||
|
||||
sed -i \
|
||||
"/^ linux = stdenvNoCC.mkDerivation/,/^ });/s|hash = \".*\"|hash = \"$new_hash\"|" \
|
||||
"$DEFAULT_NIX"
|
||||
|
||||
echo "[Nix] Linux microsoft-edge: $current_version -> $version with hash $new_hash"
|
||||
|
||||
}
|
||||
|
||||
update_darwin() {
|
||||
local version_info
|
||||
local version
|
||||
local current_version
|
||||
local uuid
|
||||
local url
|
||||
local new_hash
|
||||
|
||||
read -ra version_info <<< "$(get_darwin_version_info)"
|
||||
|
||||
version="${version_info[0]}"
|
||||
current_version="${version_info[1]}"
|
||||
uuid="${version_info[2]}"
|
||||
url="${version_info[3]}"
|
||||
|
||||
if [[ "$current_version" = "$version" ]]; then
|
||||
echo "[Nix] Darwin microsoft-edge: same version"
|
||||
return 0
|
||||
fi
|
||||
|
||||
new_hash="$(
|
||||
nix --extra-experimental-features nix-command \
|
||||
hash convert \
|
||||
--hash-algo sha256 \
|
||||
--to sri \
|
||||
"$(nix-prefetch-url "$url" 2>/dev/null)"
|
||||
)"
|
||||
|
||||
sed -i \
|
||||
"/^ darwin = stdenvNoCC.mkDerivation/,/^ });/s/version = \".*\"/version = \"$version\"/" \
|
||||
"$DEFAULT_NIX"
|
||||
|
||||
sed -i \
|
||||
"/^ darwin = stdenvNoCC.mkDerivation/,/^ });/s|uuid = \".*\"|uuid = \"$uuid\"|" \
|
||||
"$DEFAULT_NIX"
|
||||
|
||||
sed -i \
|
||||
"/^ darwin = stdenvNoCC.mkDerivation/,/^ });/s|hash = \".*\"|hash = \"$new_hash\"|" \
|
||||
"$DEFAULT_NIX"
|
||||
|
||||
echo "[Nix] Darwin microsoft-edge: $current_version -> $version with hash $new_hash"
|
||||
}
|
||||
|
||||
update_msedgedriver() {
|
||||
local version="$1"
|
||||
local current_version
|
||||
local new_hash
|
||||
local driver_arch
|
||||
local url
|
||||
|
||||
current_version="$(
|
||||
awk '
|
||||
/pname = "msedgedriver";/ { in_block=1 }
|
||||
in_block && /version = "/ {
|
||||
match($0, /version = "([^"]+)"/, arr)
|
||||
print arr[1]
|
||||
exit
|
||||
}
|
||||
' "$DRIVER_NIX"
|
||||
)"
|
||||
|
||||
if [[ "$current_version" = "$version" ]]; then
|
||||
echo "[Nix] msedgedriver: same version"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All supported driver archives use the Linux Edge version.
|
||||
# The archive names correspond to the driverArch mapping in
|
||||
# msedgedriver/package.nix
|
||||
declare -A hashes=(
|
||||
[mac64_m1]=""
|
||||
[mac64]=""
|
||||
[linux64]=""
|
||||
)
|
||||
|
||||
for driver_arch in mac64_m1 mac64 linux64; do
|
||||
url="https://msedgedriver.microsoft.com/${version}/edgedriver_${driver_arch}.zip"
|
||||
|
||||
new_hash="$(
|
||||
nix --extra-experimental-features nix-command \
|
||||
hash convert \
|
||||
--hash-algo sha256 \
|
||||
--to sri \
|
||||
"$(nix-prefetch-url --unpack "$url" 2>/dev/null)"
|
||||
)"
|
||||
|
||||
hashes["$driver_arch"]="$new_hash"
|
||||
|
||||
echo "[Nix] msedgedriver ${driver_arch}: $new_hash"
|
||||
done
|
||||
|
||||
sed -i \
|
||||
"/pname = \"msedgedriver\";/,/^ meta = {/s/version = \".*\"/version = \"$version\"/" \
|
||||
"$DRIVER_NIX"
|
||||
|
||||
for driver_arch in mac64_m1 mac64 linux64; do
|
||||
sed -i \
|
||||
"/pname = \"msedgedriver\";/,/^ meta = {/s|${driver_arch} = \".*\"|${driver_arch} = \"${hashes[$driver_arch]}\"|" \
|
||||
"$DRIVER_NIX"
|
||||
done
|
||||
|
||||
echo "[Nix] msedgedriver: $current_version -> $version"
|
||||
}
|
||||
|
||||
update_linux
|
||||
update_darwin
|
||||
|
||||
# Linux is the canonical platform for the shared msedgedriver version
|
||||
linux_version_info="$(get_linux_version_info)"
|
||||
read -r linux_version _ _ <<< "$linux_version_info"
|
||||
|
||||
update_msedgedriver "$linux_version"
|
||||
@@ -14,39 +14,46 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "msedgedriver";
|
||||
version = "154.0.4258.37";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://msedgedriver.microsoft.com/${finalAttrs.version}/edgedriver_linux64.zip";
|
||||
hash = "sha256-XbOQl9FyckF3Qybb+40474ImJDKahBkekPoydf/TxV0=";
|
||||
stripRoot = false;
|
||||
};
|
||||
src =
|
||||
let
|
||||
driverArch =
|
||||
{
|
||||
aarch64-darwin = "mac64_m1";
|
||||
x86_64-darwin = "mac64";
|
||||
x86_64-linux = "linux64";
|
||||
}
|
||||
.${stdenvNoCC.hostPlatform.system};
|
||||
in
|
||||
fetchzip {
|
||||
url = "https://msedgedriver.microsoft.com/${finalAttrs.version}/edgedriver_${driverArch}.zip";
|
||||
hash =
|
||||
{
|
||||
mac64_m1 = "sha256-6nwe/vRPh5MkQLTiZNXepfFsLtILwoK925mgLCUUVNg=";
|
||||
mac64 = "sha256-p/cnNKQub6sSEWPz2fJ+FoU7rgzeoZQMkv3PphvvHLw=";
|
||||
linux64 = "sha256-XbOQl9FyckF3Qybb+40474ImJDKahBkekPoydf/TxV0=";
|
||||
}
|
||||
.${driverArch};
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [
|
||||
glib
|
||||
libxcb
|
||||
nspr
|
||||
nss
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
nativeBuildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
installPhase =
|
||||
if stdenvNoCC.hostPlatform.isDarwin then
|
||||
''
|
||||
runHook preInstall
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{Applications/msedgedriver,bin}
|
||||
cp -R . $out/Applications/msedgedriver
|
||||
install -D msedgedriver $out/bin/msedgedriver
|
||||
|
||||
runHook postInstall
|
||||
''
|
||||
else
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
install -m777 -D "msedgedriver" $out/bin/msedgedriver
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver";
|
||||
@@ -54,7 +61,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = microsoft-edge.meta.maintainers;
|
||||
platforms = [
|
||||
platforms = lib.platforms.darwin ++ [
|
||||
"x86_64-linux"
|
||||
];
|
||||
mainProgram = "msedgedriver";
|
||||
|
||||
51
pkgs/by-name/ru/rustormy/package.nix
Normal file
51
pkgs/by-name/ru/rustormy/package.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "rustormy";
|
||||
version = "0.5.2";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tairesh";
|
||||
repo = "rustormy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LC6hHxCG9TnXcRIxg2jAt6+r8Rm6Iu/TiX/neW5d4fk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-cvL+OAiGidQEltM/cgjzjeEFbM7IZvhIG5Q3Nxybb1w=";
|
||||
|
||||
checkFlags = [
|
||||
"--skip=tests::test_different_units"
|
||||
"--skip=tests::test_empty_city"
|
||||
"--skip=tests::test_no_location_provided"
|
||||
"--skip=tests::test_nonexistent_city"
|
||||
"--skip=tests::test_valid_city_lookup"
|
||||
"--skip=tests::test_valid_coordinates"
|
||||
"--skip=weather::enrich::tests::does_not_overwrite_false_is_day_when_set"
|
||||
"--skip=weather::enrich::tests::does_not_overwrite_true_is_day_when_set"
|
||||
"--skip=weather::enrich::tests::does_not_overwrite_uv_when_set"
|
||||
"--skip=weather::enrich::tests::fills_is_day_when_none"
|
||||
"--skip=weather::enrich::tests::openuv_failure_does_not_break_enrich"
|
||||
"--skip=weather::enrich::tests::skips_uv_when_openuv_key_empty"
|
||||
];
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "Minimal neofetch-like weather CLI";
|
||||
homepage = "https://github.com/tairesh/rustormy";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "rustormy";
|
||||
maintainers = with lib.maintainers; [ joseg313 ];
|
||||
};
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user