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
|
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
|
||||||
rec {
|
rec {
|
||||||
pname = "mesa";
|
pname = "mesa";
|
||||||
version = "25.1.7";
|
version = "25.2.0";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
owner = "mesa";
|
owner = "mesa";
|
||||||
repo = "mesa";
|
repo = "mesa";
|
||||||
rev = "mesa-${version}";
|
rev = "mesa-${version}";
|
||||||
hash = "sha256-dseMHUifLsszSAGCaZwgOwhj0/yfbRlBVVHQz25NdjY=";
|
hash = "sha256-is5CWcyC0O4Jn08makxowDAiloxYJmMrfuxecu12fyQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|||||||
@ -26,6 +26,7 @@
|
|||||||
ninja,
|
ninja,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
python3Packages,
|
python3Packages,
|
||||||
|
runCommand,
|
||||||
rust-bindgen,
|
rust-bindgen,
|
||||||
rust-cbindgen,
|
rust-cbindgen,
|
||||||
rustPlatform,
|
rustPlatform,
|
||||||
@ -115,41 +116,28 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
rustDeps = [
|
rustDeps = lib.importJSON ./wraps.json;
|
||||||
{
|
|
||||||
pname = "paste";
|
fetchDep =
|
||||||
version = "1.0.14";
|
dep:
|
||||||
hash = "sha256-+J1h7New5MEclUBvwDQtTYJCHKKqAEOeQkuKy+g0vEc=";
|
fetchCrate {
|
||||||
}
|
inherit (dep) pname version hash;
|
||||||
{
|
unpack = false;
|
||||||
pname = "proc-macro2";
|
};
|
||||||
version = "1.0.86";
|
|
||||||
hash = "sha256-9fYAlWRGVIwPp8OKX7Id84Kjt8OoN2cANJ/D9ZOUUZE=";
|
toCommand = dep: "ln -s ${dep} $out/${dep.pname}-${dep.version}.tar.gz";
|
||||||
}
|
|
||||||
{
|
packageCacheCommand = lib.pipe rustDeps [
|
||||||
pname = "quote";
|
(builtins.map fetchDep)
|
||||||
version = "1.0.33";
|
(builtins.map toCommand)
|
||||||
hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY=";
|
(lib.concatStringsSep "\n")
|
||||||
}
|
|
||||||
{
|
|
||||||
pname = "syn";
|
|
||||||
version = "2.0.68";
|
|
||||||
hash = "sha256-nGLBbxR0DFBpsXMngXdegTm/o13FBS6QsM7TwxHXbgQ=";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
pname = "unicode-ident";
|
|
||||||
version = "1.0.12";
|
|
||||||
hash = "sha256-KX8NqYYw6+rGsoR9mdZx8eT1HIPEUUyxErdk2H/Rlj8=";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
copyRustDep = dep: ''
|
packageCache = runCommand "mesa-rust-package-cache" { } ''
|
||||||
cp -R --no-preserve=mode,ownership ${fetchCrate dep} subprojects/${dep.pname}-${dep.version}
|
mkdir -p $out
|
||||||
cp -R subprojects/packagefiles/${dep.pname}/* subprojects/${dep.pname}-${dep.version}/
|
${packageCacheCommand}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps);
|
|
||||||
|
|
||||||
needNativeCLC = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
needNativeCLC = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||||
|
|
||||||
common = import ./common.nix { inherit lib fetchFromGitLab; };
|
common = import ./common.nix { inherit lib fetchFromGitLab; };
|
||||||
@ -175,8 +163,6 @@ stdenv.mkDerivation {
|
|||||||
exit 42
|
exit 42
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
${copyRustDeps}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
outputs = [
|
outputs = [
|
||||||
@ -209,6 +195,8 @@ stdenv.mkDerivation {
|
|||||||
PATH=${lib.getDev llvmPackages.libllvm}/bin:$PATH
|
PATH=${lib.getDev llvmPackages.libllvm}/bin:$PATH
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
env.MESON_PACKAGE_CACHE_DIR = packageCache;
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"--sysconfdir=/etc"
|
"--sysconfdir=/etc"
|
||||||
|
|
||||||
@ -223,13 +211,6 @@ stdenv.mkDerivation {
|
|||||||
(lib.mesonEnable "gbm" true)
|
(lib.mesonEnable "gbm" true)
|
||||||
(lib.mesonBool "libgbm-external" 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
|
(lib.mesonBool "teflon" true) # TensorFlow frontend
|
||||||
|
|
||||||
# Enable all freedreno kernel mode drivers. (For example, virtio can be
|
# Enable all freedreno kernel mode drivers. (For example, virtio can be
|
||||||
@ -247,15 +228,16 @@ stdenv.mkDerivation {
|
|||||||
(lib.mesonBool "gallium-rusticl" true)
|
(lib.mesonBool "gallium-rusticl" true)
|
||||||
(lib.mesonOption "gallium-rusticl-enable-drivers" "auto")
|
(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
|
# Enable more sensors in gallium-hud
|
||||||
(lib.mesonBool "gallium-extra-hud" true)
|
(lib.mesonBool "gallium-extra-hud" true)
|
||||||
|
|
||||||
# Disable valgrind on targets where it's not available
|
# Disable valgrind on targets where it's not available
|
||||||
(lib.mesonEnable "valgrind" withValgrind)
|
(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.optionals enablePatentEncumberedCodecs [
|
||||||
(lib.mesonOption "video-codecs" "all")
|
(lib.mesonOption "video-codecs" "all")
|
||||||
|
|||||||
@ -1,23 +1,23 @@
|
|||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index c150bff74ff..37fa7f0531b 100644
|
index 393f3ac1b93..fbc90b5645e 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -1850,7 +1850,7 @@ endif
|
@@ -1836,7 +1836,7 @@ endif
|
||||||
|
|
||||||
dep_clang = null_dep
|
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 = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir')
|
||||||
+ llvm_libdir = get_option('clang-libdir')
|
+ llvm_libdir = get_option('clang-libdir')
|
||||||
|
|
||||||
dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
|
dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false)
|
||||||
|
|
||||||
diff --git a/meson_options.txt b/meson_options.txt
|
diff --git a/meson.options b/meson.options
|
||||||
index 82324617884..4bde97a8568 100644
|
index b1cdb06fcc9..3e8861979ae 100644
|
||||||
--- a/meson.options
|
--- a/meson.options
|
||||||
+++ b/meson.options
|
+++ b/meson.options
|
||||||
@@ -738,3 +738,10 @@ option(
|
@@ -856,3 +856,10 @@ option(
|
||||||
'none', 'dri2'
|
value : false,
|
||||||
],
|
description : 'Build virtgpu_kumquat (only useful with gfxstream currently)'
|
||||||
)
|
)
|
||||||
+
|
+
|
||||||
+option(
|
+option(
|
||||||
@ -26,24 +26,11 @@ index 82324617884..4bde97a8568 100644
|
|||||||
+ value : '',
|
+ value : '',
|
||||||
+ description : 'Locations to search for clang libraries.'
|
+ 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
|
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
|
--- a/src/gallium/targets/rusticl/meson.build
|
||||||
+++ b/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,
|
configuration : _config,
|
||||||
input : 'rusticl.icd.in',
|
input : 'rusticl.icd.in',
|
||||||
output : 'rusticl.icd',
|
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