mesa: 25.1.7 -> 25.2.0
Now featuring: - too many Rust dependencies - the final death of gallium-xa - last minute Darwin build fixes
This commit is contained in:
parent
599ddd2b79
commit
7ce0aff371
@ -5,14 +5,14 @@
|
||||
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
|
||||
rec {
|
||||
pname = "mesa";
|
||||
version = "25.1.7";
|
||||
version = "25.2.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mesa";
|
||||
repo = "mesa";
|
||||
rev = "mesa-${version}";
|
||||
hash = "sha256-dseMHUifLsszSAGCaZwgOwhj0/yfbRlBVVHQz25NdjY=";
|
||||
hash = "sha256-is5CWcyC0O4Jn08makxowDAiloxYJmMrfuxecu12fyQ=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@ -26,6 +26,7 @@
|
||||
ninja,
|
||||
pkg-config,
|
||||
python3Packages,
|
||||
runCommand,
|
||||
rust-bindgen,
|
||||
rust-cbindgen,
|
||||
rustPlatform,
|
||||
@ -115,41 +116,28 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rustDeps = [
|
||||
{
|
||||
pname = "paste";
|
||||
version = "1.0.14";
|
||||
hash = "sha256-+J1h7New5MEclUBvwDQtTYJCHKKqAEOeQkuKy+g0vEc=";
|
||||
}
|
||||
{
|
||||
pname = "proc-macro2";
|
||||
version = "1.0.86";
|
||||
hash = "sha256-9fYAlWRGVIwPp8OKX7Id84Kjt8OoN2cANJ/D9ZOUUZE=";
|
||||
}
|
||||
{
|
||||
pname = "quote";
|
||||
version = "1.0.33";
|
||||
hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY=";
|
||||
}
|
||||
{
|
||||
pname = "syn";
|
||||
version = "2.0.68";
|
||||
hash = "sha256-nGLBbxR0DFBpsXMngXdegTm/o13FBS6QsM7TwxHXbgQ=";
|
||||
}
|
||||
{
|
||||
pname = "unicode-ident";
|
||||
version = "1.0.12";
|
||||
hash = "sha256-KX8NqYYw6+rGsoR9mdZx8eT1HIPEUUyxErdk2H/Rlj8=";
|
||||
}
|
||||
rustDeps = lib.importJSON ./wraps.json;
|
||||
|
||||
fetchDep =
|
||||
dep:
|
||||
fetchCrate {
|
||||
inherit (dep) pname version hash;
|
||||
unpack = false;
|
||||
};
|
||||
|
||||
toCommand = dep: "ln -s ${dep} $out/${dep.pname}-${dep.version}.tar.gz";
|
||||
|
||||
packageCacheCommand = lib.pipe rustDeps [
|
||||
(builtins.map fetchDep)
|
||||
(builtins.map toCommand)
|
||||
(lib.concatStringsSep "\n")
|
||||
];
|
||||
|
||||
copyRustDep = dep: ''
|
||||
cp -R --no-preserve=mode,ownership ${fetchCrate dep} subprojects/${dep.pname}-${dep.version}
|
||||
cp -R subprojects/packagefiles/${dep.pname}/* subprojects/${dep.pname}-${dep.version}/
|
||||
packageCache = runCommand "mesa-rust-package-cache" { } ''
|
||||
mkdir -p $out
|
||||
${packageCacheCommand}
|
||||
'';
|
||||
|
||||
copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps);
|
||||
|
||||
needNativeCLC = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
|
||||
common = import ./common.nix { inherit lib fetchFromGitLab; };
|
||||
@ -175,8 +163,6 @@ stdenv.mkDerivation {
|
||||
exit 42
|
||||
fi
|
||||
done
|
||||
|
||||
${copyRustDeps}
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
@ -209,6 +195,8 @@ stdenv.mkDerivation {
|
||||
PATH=${lib.getDev llvmPackages.libllvm}/bin:$PATH
|
||||
'';
|
||||
|
||||
env.MESON_PACKAGE_CACHE_DIR = packageCache;
|
||||
|
||||
mesonFlags = [
|
||||
"--sysconfdir=/etc"
|
||||
|
||||
@ -223,13 +211,6 @@ stdenv.mkDerivation {
|
||||
(lib.mesonEnable "gbm" true)
|
||||
(lib.mesonBool "libgbm-external" true)
|
||||
|
||||
(lib.mesonBool "gallium-nine" false) # Direct3D9 in Wine, largely supplanted by DXVK
|
||||
|
||||
# Only used by xf86-video-vmware, which has more features than VMWare's KMS driver,
|
||||
# so we're keeping it for now. Should be removed when that's no longer the case.
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/392492
|
||||
(lib.mesonEnable "gallium-xa" true)
|
||||
|
||||
(lib.mesonBool "teflon" true) # TensorFlow frontend
|
||||
|
||||
# Enable all freedreno kernel mode drivers. (For example, virtio can be
|
||||
@ -247,15 +228,16 @@ stdenv.mkDerivation {
|
||||
(lib.mesonBool "gallium-rusticl" true)
|
||||
(lib.mesonOption "gallium-rusticl-enable-drivers" "auto")
|
||||
|
||||
# meson auto_features enables this, but we do not want it
|
||||
(lib.mesonEnable "android-libbacktrace" false)
|
||||
(lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
|
||||
|
||||
# Enable more sensors in gallium-hud
|
||||
(lib.mesonBool "gallium-extra-hud" true)
|
||||
|
||||
# Disable valgrind on targets where it's not available
|
||||
(lib.mesonEnable "valgrind" withValgrind)
|
||||
|
||||
# meson auto_features enables these, but we do not want them
|
||||
(lib.mesonEnable "gallium-mediafoundation" false) # Windows only
|
||||
(lib.mesonEnable "android-libbacktrace" false) # Android only
|
||||
(lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
|
||||
]
|
||||
++ lib.optionals enablePatentEncumberedCodecs [
|
||||
(lib.mesonOption "video-codecs" "all")
|
||||
|
||||
@ -1,23 +1,23 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index c150bff74ff..37fa7f0531b 100644
|
||||
index 393f3ac1b93..fbc90b5645e 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1850,7 +1850,7 @@ endif
|
||||
@@ -1836,7 +1836,7 @@ endif
|
||||
|
||||
dep_clang = null_dep
|
||||
if with_clc or with_gallium_clover
|
||||
if with_clc
|
||||
- llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir')
|
||||
+ llvm_libdir = get_option('clang-libdir')
|
||||
|
||||
dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
|
||||
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 82324617884..4bde97a8568 100644
|
||||
diff --git a/meson.options b/meson.options
|
||||
index b1cdb06fcc9..3e8861979ae 100644
|
||||
--- a/meson.options
|
||||
+++ b/meson.options
|
||||
@@ -738,3 +738,10 @@ option(
|
||||
'none', 'dri2'
|
||||
],
|
||||
@@ -856,3 +856,10 @@ option(
|
||||
value : false,
|
||||
description : 'Build virtgpu_kumquat (only useful with gfxstream currently)'
|
||||
)
|
||||
+
|
||||
+option(
|
||||
@ -26,24 +26,11 @@ index 82324617884..4bde97a8568 100644
|
||||
+ value : '',
|
||||
+ description : 'Locations to search for clang libraries.'
|
||||
+)
|
||||
diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build
|
||||
index ab2c83556a8..a59e88e122f 100644
|
||||
--- a/src/gallium/targets/opencl/meson.build
|
||||
+++ b/src/gallium/targets/opencl/meson.build
|
||||
@@ -56,7 +56,7 @@ if with_opencl_icd
|
||||
configuration : _config,
|
||||
input : 'mesa.icd.in',
|
||||
output : 'mesa.icd',
|
||||
- install : true,
|
||||
+ install : false,
|
||||
install_tag : 'runtime',
|
||||
install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'),
|
||||
)
|
||||
diff --git a/src/gallium/targets/rusticl/meson.build b/src/gallium/targets/rusticl/meson.build
|
||||
index 35833dc7423..41a95927cab 100644
|
||||
index 2b214adbbf5..7f919397ad5 100644
|
||||
--- a/src/gallium/targets/rusticl/meson.build
|
||||
+++ b/src/gallium/targets/rusticl/meson.build
|
||||
@@ -63,7 +63,7 @@ configure_file(
|
||||
@@ -64,7 +64,7 @@ configure_file(
|
||||
configuration : _config,
|
||||
input : 'rusticl.icd.in',
|
||||
output : 'rusticl.icd',
|
||||
|
||||
50
pkgs/development/libraries/mesa/update-wraps.py
Normal file
50
pkgs/development/libraries/mesa/update-wraps.py
Normal file
@ -0,0 +1,50 @@
|
||||
import base64
|
||||
import binascii
|
||||
import configparser
|
||||
import json
|
||||
import pathlib
|
||||
import sys
|
||||
import urllib.parse
|
||||
|
||||
|
||||
def to_sri(hash: str):
|
||||
raw = binascii.unhexlify(hash)
|
||||
b64 = base64.b64encode(raw).decode()
|
||||
return f"sha256-{b64}"
|
||||
|
||||
|
||||
def main(dir: str):
|
||||
result = []
|
||||
for file in (pathlib.Path(dir) / "subprojects").glob("*.wrap"):
|
||||
name = file.stem
|
||||
parser = configparser.ConfigParser()
|
||||
_ = parser.read(file)
|
||||
sections = parser.sections()
|
||||
if "wrap-file" not in sections:
|
||||
continue
|
||||
|
||||
url = parser.get("wrap-file", "source_url")
|
||||
if "crates.io" not in url:
|
||||
continue
|
||||
|
||||
parsed = urllib.parse.urlparse(url)
|
||||
path = parsed.path.split("/")
|
||||
assert path[4] == name
|
||||
version = path[5]
|
||||
|
||||
hash = to_sri(parser.get("wrap-file", "source_hash"))
|
||||
|
||||
result.append({
|
||||
"pname": name,
|
||||
"version": version,
|
||||
"hash": hash,
|
||||
})
|
||||
|
||||
here = pathlib.Path(__file__).parent
|
||||
with (here / "wraps.json").open("w") as fd:
|
||||
json.dump(result, fd, indent=4)
|
||||
_ = fd.write("\n")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(*sys.argv[1:])
|
||||
137
pkgs/development/libraries/mesa/wraps.json
Normal file
137
pkgs/development/libraries/mesa/wraps.json
Normal file
@ -0,0 +1,137 @@
|
||||
[
|
||||
{
|
||||
"pname": "errno",
|
||||
"version": "0.3.12",
|
||||
"hash": "sha256-zqFO+TVeO+qwY3A6qdqxWv0l8GZ8NBMQweUnS7HQ2hg="
|
||||
},
|
||||
{
|
||||
"pname": "quote",
|
||||
"version": "1.0.35",
|
||||
"hash": "sha256-KR7Jq179k0qvUDpkZsXVJRU10QjudHRyw5d8xazIaO8="
|
||||
},
|
||||
{
|
||||
"pname": "pest",
|
||||
"version": "2.8.0",
|
||||
"hash": "sha256-GY23RTHVjHCjYcQiAe/efiWR6XbVGMr3ZipH3Fcg57Y="
|
||||
},
|
||||
{
|
||||
"pname": "equivalent",
|
||||
"version": "1.0.1",
|
||||
"hash": "sha256-VEOAfW3/aTc9Qzq571N4rY31DKYpjK8V3m5S4kqvVNU="
|
||||
},
|
||||
{
|
||||
"pname": "syn",
|
||||
"version": "2.0.87",
|
||||
"hash": "sha256-JapM40bQOm3NaN2LQBC8t05U5iyQxXPzlMRurpmroy0="
|
||||
},
|
||||
{
|
||||
"pname": "remain",
|
||||
"version": "0.2.12",
|
||||
"hash": "sha256-GtXgESMMrSdNBTJGDFq2mCjqR651aBtCqEFmPv/695Q="
|
||||
},
|
||||
{
|
||||
"pname": "unicode-ident",
|
||||
"version": "1.0.12",
|
||||
"hash": "sha256-M1S5rD+uH/Z1XLbbU2g622YWNPZ1V5Qt6k+s6+wP7ks="
|
||||
},
|
||||
{
|
||||
"pname": "cfg-if",
|
||||
"version": "1.0.0",
|
||||
"hash": "sha256-uvHeQzl2FYi8Bhnjy8ASDuWC67dLU7Tvv3kRe9LaQP0="
|
||||
},
|
||||
{
|
||||
"pname": "bitflags",
|
||||
"version": "2.9.1",
|
||||
"hash": "sha256-G45WmF7GLRfpwQAdyJyI7NfcCOR+ul7Hwpx7Xu7N6Wc="
|
||||
},
|
||||
{
|
||||
"pname": "pest_derive",
|
||||
"version": "2.8.0",
|
||||
"hash": "sha256-1yXZz9eeh9zMk0Gi7znRtvY1PWjEszwXf+u+GkAsl8U="
|
||||
},
|
||||
{
|
||||
"pname": "rustc-hash",
|
||||
"version": "2.1.1",
|
||||
"hash": "sha256-NXcD1BNltLJ8WQ4+2R6rsbZj8HxMCECV5gy+1DYt/w0="
|
||||
},
|
||||
{
|
||||
"pname": "ucd-trie",
|
||||
"version": "0.1.6",
|
||||
"hash": "sha256-7WRikv/IGI746k0eDgFQ+xWlwuEq2bj8GRrnqKfzxLk="
|
||||
},
|
||||
{
|
||||
"pname": "indexmap",
|
||||
"version": "2.2.6",
|
||||
"hash": "sha256-Fo+3Fd2kchXjYJEsCWZJ0j1Yvzkqxi9zkZ6DF0XkDyY="
|
||||
},
|
||||
{
|
||||
"pname": "paste",
|
||||
"version": "1.0.14",
|
||||
"hash": "sha256-3jFFrwgCTeqfqZFPOBoXuPxgNN+wDzqEAT9/9D8p7Uw="
|
||||
},
|
||||
{
|
||||
"pname": "hashbrown",
|
||||
"version": "0.14.1",
|
||||
"hash": "sha256-ff2mKhL1Xa6uUBX4GwuuoUU5HLRSD4bCSPxhXXJkDRI="
|
||||
},
|
||||
{
|
||||
"pname": "libc",
|
||||
"version": "0.2.168",
|
||||
"hash": "sha256-Wq6ymB4GBsoR15cY+LsBFk8dbtdQgBgtOr8Bfm0kS20="
|
||||
},
|
||||
{
|
||||
"pname": "thiserror-impl",
|
||||
"version": "2.0.11",
|
||||
"hash": "sha256-Jq/BuuqKmJM37rUrbnKgOXgM5Fw+38ycW50RL+6xc8I="
|
||||
},
|
||||
{
|
||||
"pname": "once_cell",
|
||||
"version": "1.8.0",
|
||||
"hash": "sha256-aS/LY7ZLF1gCngqW7mPgSc6MWUhYfy9yCN8EYl5fa1Y="
|
||||
},
|
||||
{
|
||||
"pname": "rustix",
|
||||
"version": "1.0.7",
|
||||
"hash": "sha256-xx6D1q/n/2SJDsa3HWppu4phCreM42SzNSh2u0yAEmY="
|
||||
},
|
||||
{
|
||||
"pname": "pest_generator",
|
||||
"version": "2.8.0",
|
||||
"hash": "sha256-230Bcmvoq2arMvnfRnrosRSJBmhbvnXILR5l1/Wz+EE="
|
||||
},
|
||||
{
|
||||
"pname": "thiserror",
|
||||
"version": "2.0.11",
|
||||
"hash": "sha256-1FLyhLc+bXbdNnWKDIaEsdW+MfkridB/1YIhdXMiBvw="
|
||||
},
|
||||
{
|
||||
"pname": "proc-macro2",
|
||||
"version": "1.0.86",
|
||||
"hash": "sha256-XnGejfZl3w0cj7/SOAFXRHNhUdREXsCDa45iiq4QO3c="
|
||||
},
|
||||
{
|
||||
"pname": "zerocopy",
|
||||
"version": "0.8.13",
|
||||
"hash": "sha256-Z5FKtFHzv9Lmnl6dLvOFhITnB01j8gT9Fm7DkbVN4h0="
|
||||
},
|
||||
{
|
||||
"pname": "roxmltree",
|
||||
"version": "0.20.0",
|
||||
"hash": "sha256-bCC2eTtcL6ZVOyUBVLeNbQ2zfnJwCuNfrZOHpG9IfJc="
|
||||
},
|
||||
{
|
||||
"pname": "zerocopy-derive",
|
||||
"version": "0.8.13",
|
||||
"hash": "sha256-eYjXOkMDyiid8DMWvEkOk0rM83Gva8dFOTzzwsXE8l0="
|
||||
},
|
||||
{
|
||||
"pname": "pest_meta",
|
||||
"version": "2.8.0",
|
||||
"hash": "sha256-f5+DJHBJSQbR/KUyn4q1eRzGC+sjDHSBXf9UHL0rXKA="
|
||||
},
|
||||
{
|
||||
"pname": "log",
|
||||
"version": "0.4.27",
|
||||
"hash": "sha256-E9wt81HjICeDof4NRDdfcpX/tASSZ7DzAYNG3BIqHZQ="
|
||||
}
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user