mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-13 11:30:35 +08:00
Merge master into staging-next
This commit is contained in:
@@ -141,7 +141,7 @@ let
|
||||
isStorePath isStringLike
|
||||
isValidPosixName toShellVar toShellVars trim trimWith
|
||||
escapeRegex escapeURL escapeXML replaceChars lowerChars
|
||||
upperChars toLower toUpper addContextFrom splitString
|
||||
upperChars toLower toUpper toSentenceCase addContextFrom splitString
|
||||
removePrefix removeSuffix versionOlder versionAtLeast
|
||||
getName getVersion match split
|
||||
cmakeOptionType cmakeBool cmakeFeature
|
||||
|
||||
@@ -1424,6 +1424,42 @@ rec {
|
||||
*/
|
||||
toUpper = replaceStrings lowerChars upperChars;
|
||||
|
||||
/**
|
||||
Converts the first character of a string `s` to upper-case.
|
||||
|
||||
# Inputs
|
||||
|
||||
`str`
|
||||
: The string to convert to sentence case.
|
||||
|
||||
# Type
|
||||
|
||||
```
|
||||
toSentenceCase :: string -> string
|
||||
```
|
||||
|
||||
# Examples
|
||||
:::{.example}
|
||||
## `lib.strings.toSentenceCase` usage example
|
||||
|
||||
```nix
|
||||
toSentenceCase "home"
|
||||
=> "Home"
|
||||
```
|
||||
|
||||
:::
|
||||
*/
|
||||
toSentenceCase = str:
|
||||
lib.throwIfNot (isString str)
|
||||
"toSentenceCase does only accepts string values, but got ${typeOf str}"
|
||||
(
|
||||
let
|
||||
firstChar = substring 0 1 str;
|
||||
rest = substring 1 (stringLength str) str;
|
||||
in
|
||||
addContextFrom str (toUpper firstChar + toLower rest)
|
||||
);
|
||||
|
||||
/**
|
||||
Appends string context from string like object `src` to `target`.
|
||||
|
||||
|
||||
@@ -678,6 +678,15 @@ runTests {
|
||||
("%20%3F%26%3D%23%2B%25%21%3C%3E%23%22%7B%7D%7C%5C%5E%5B%5D%60%09%3A%2F%40%24%27%28%29%2A%2C%3B" == strings.escapeURL " ?&=#+%!<>#\"{}|\\^[]`\t:/@$'()*,;")
|
||||
];
|
||||
|
||||
testToSentenceCase = {
|
||||
expr = strings.toSentenceCase "hello world";
|
||||
expected = "Hello world";
|
||||
};
|
||||
|
||||
testToSentenceCasePath = testingThrow (
|
||||
strings.toSentenceCase ./.
|
||||
);
|
||||
|
||||
testToInt = testAllTrue [
|
||||
# Naive
|
||||
(123 == toInt "123")
|
||||
|
||||
@@ -32,13 +32,13 @@ let
|
||||
in
|
||||
melpaBuild {
|
||||
pname = "lsp-bridge";
|
||||
version = "0-unstable-2025-02-03";
|
||||
version = "0-unstable-2025-02-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "manateelazycat";
|
||||
repo = "lsp-bridge";
|
||||
rev = "16c9054be6e40a254e096715b1acf80ca36918aa";
|
||||
hash = "sha256-u1NWrSLsc+SRiK9BZwAujrzYb7vU+lEqyT+wozbXaiY=";
|
||||
rev = "4401d1396dce89d1fc5dc5414565818dd1c30ae0";
|
||||
hash = "sha256-lWbFbYwJoy4UAezKUK7rnjQlDcnszHQwK5I7fuHfE8Y=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = "airwindows";
|
||||
version = "0-unstable-2025-02-02";
|
||||
version = "0-unstable-2025-02-16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "airwindows";
|
||||
repo = "airwindows";
|
||||
rev = "14f348fe83cfd42a6402856d3d15a1866b157996";
|
||||
hash = "sha256-IHOEpVykX1416wQBqymFgYHA8AnNH9mfUU53IkVVs6Y=";
|
||||
rev = "6a9e1e2913c85edc21f4554b49089668f19cc924";
|
||||
hash = "sha256-Lb7IawTn/JKm/UF8ArwYalJGzX0yZwhKden5e2TlBeI=";
|
||||
};
|
||||
|
||||
# we patch helpers because honestly im spooked out by where those variables
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
let
|
||||
pname = "erigon";
|
||||
version = "2.61.0";
|
||||
version = "2.61.1";
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version;
|
||||
@@ -16,11 +16,11 @@ buildGoModule {
|
||||
owner = "ledgerwatch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-B9FDGBx5ac1v0PqVK/2LhDH2seRthZxtaGu3G9flo0A=";
|
||||
hash = "sha256-fSDAUdhSFTzqZji2bYxky8Orf64ZWvuQLZ/GqoPwNTM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
vendorHash = "sha256-bGVHIrICYWyHPgWWgEAIT+J/IIPjcWqTHeuqbT6lung=";
|
||||
vendorHash = "sha256-1LB2T0o9LjFdpl86NPMKx1lFLrQZefAGldcSQyL6O7M=";
|
||||
proxyVendor = true;
|
||||
|
||||
# Build errors in mdbx when format hardening is enabled:
|
||||
|
||||
@@ -11,18 +11,18 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ghost-cli";
|
||||
version = "1.26.1";
|
||||
version = "1.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TryGhost";
|
||||
repo = "Ghost-CLI";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2zyRkPTQBzF+7nmlHPMi4S0BAdmUwIBkwD71y1y7Pn8=";
|
||||
hash = "sha256-xOchKEktagamLJQONI9SJsv5vypVpBOAy/SWGdSzjLc=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = finalAttrs.src + "/yarn.lock";
|
||||
hash = "sha256-No+Hkb2ivrCSd0S9L5QxZ8ReX9NANMRITKHFvjzRSuc=";
|
||||
hash = "sha256-Dgy+Ab0OaapjuuuRMcfHtzpsrfI5uPItXDY4XE9iK3A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
#
|
||||
# Ensure you also check ../mattermostLatest/package.nix.
|
||||
regex = "^v(9\\.11\\.[0-9]+)$";
|
||||
version = "9.11.8";
|
||||
srcHash = "sha256-mTEAsY3Dw5n6sqLWyNfS4EGgZuUOol27UwqsZ2kEXZY=";
|
||||
vendorHash = "sha256-alLPBfnA1o6bUUgPRqvYW/98UKR9wltmFTzKIGtVEm4=";
|
||||
npmDepsHash = "sha256-ysz38ywGxJ5DXrrcDmcmezKbc5Y7aug9jOWUzHRAs/0=";
|
||||
version = "9.11.9";
|
||||
srcHash = "sha256-sEu5s+yMCPYxvyc7kuiA9AE/qBi08iTqhYxwO7J9xiE=";
|
||||
vendorHash = "sha256-h/hcdVImU3wFp7BGHS/TxYBEWGv9v06y8etaz9OrHTA=";
|
||||
npmDepsHash = "sha256-B7pXMHwyf7dQ2x2VJu+mdZz03/9FyyYvFYOw8XguTH8=";
|
||||
},
|
||||
}:
|
||||
|
||||
|
||||
@@ -78,6 +78,16 @@ stdenv.mkDerivation rec {
|
||||
url = "https://raw.githubusercontent.com/openwrt/openwrt/87606e25afac6776d1bbc67ed284434ec5a832b4/toolchain/musl/patches/300-relative.patch";
|
||||
sha256 = "0hfadrycb60sm6hb6by4ycgaqc9sgrhh42k39v8xpmcvdzxrsq2n";
|
||||
})
|
||||
(fetchurl {
|
||||
name = "CVE-2025-26519_0.patch";
|
||||
url = "https://www.openwall.com/lists/musl/2025/02/13/1/1";
|
||||
hash = "sha256-CJb821El2dByP04WXxPCCYMOcEWnXLpOhYBgg3y3KS4=";
|
||||
})
|
||||
(fetchurl {
|
||||
name = "CVE-2025-26519_1.patch";
|
||||
url = "https://www.openwall.com/lists/musl/2025/02/13/1/2";
|
||||
hash = "sha256-BiD87k6KTlLr4ep14rUdIZfr2iQkicBYaSTq+p6WBqE=";
|
||||
})
|
||||
];
|
||||
CFLAGS = [
|
||||
"-fstack-protector-strong"
|
||||
|
||||
@@ -22,14 +22,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pkcs11-provider";
|
||||
version = "0.6";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "latchset";
|
||||
repo = "pkcs11-provider";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-wYqmxxAzraaVR2+mbsRfgyvD/tapn8UOO0UzBX2ZJH4=";
|
||||
hash = "sha256-Q9dmzYDBco+LLVWdORFTjRyk0RX8qhmZ1m+Kgfeyr04=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python310Packages,
|
||||
python3Packages,
|
||||
testers,
|
||||
stig,
|
||||
}:
|
||||
|
||||
python310Packages.buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "stig";
|
||||
# This project has a different concept for pre release / alpha,
|
||||
# Read the project's README for details: https://github.com/rndusr/stig#stig
|
||||
version = "0.12.10a0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rndusr";
|
||||
@@ -19,7 +20,11 @@ python310Packages.buildPythonApplication rec {
|
||||
sha256 = "sha256-lSFI4/DxWl17KFgLXZ7c5nW/e5IUGN7s8Gm6wTM5ZWg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python310Packages; [
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
urwid
|
||||
urwidtrees
|
||||
aiohttp
|
||||
@@ -30,27 +35,11 @@ python310Packages.buildPythonApplication rec {
|
||||
setproctitle
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python310Packages; [
|
||||
asynctest
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
|
||||
preCheck = ''
|
||||
export LC_ALL=C
|
||||
'';
|
||||
|
||||
disabledTestPaths = [
|
||||
# Almost all tests fail in this file, it is reported upstream in:
|
||||
# https://github.com/rndusr/stig/issues/214 , and upstream fails to
|
||||
# reproduce the issue unfortunately.
|
||||
"tests/client_test/aiotransmission_test/api_settings_test.py"
|
||||
];
|
||||
disabledTests = [
|
||||
# Another failure with similar circumstances to the above
|
||||
"test_candidates_are_sorted_case_insensitively"
|
||||
];
|
||||
# According to the upstream author,
|
||||
# stig no longer has working tests
|
||||
# since asynctest (former test dependency) got abandoned.
|
||||
# See https://github.com/rndusr/stig/issues/206#issuecomment-2669636320
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = testers.testVersion {
|
||||
package = stig;
|
||||
@@ -58,9 +47,6 @@ python310Packages.buildPythonApplication rec {
|
||||
version = "stig version ${version}";
|
||||
};
|
||||
|
||||
# https://github.com/rndusr/stig/issues/214#issuecomment-1995651219
|
||||
dontUsePytestCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "TUI and CLI for the BitTorrent client Transmission";
|
||||
homepage = "https://github.com/rndusr/stig";
|
||||
|
||||
@@ -72,10 +72,14 @@ let
|
||||
pkg-config
|
||||
wayland-scanner
|
||||
glslang
|
||||
hwdata
|
||||
] ++ extraNativeBuildInputs;
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
ffmpeg
|
||||
libliftoff
|
||||
libdisplay-info
|
||||
libGL
|
||||
libcap
|
||||
libinput
|
||||
@@ -149,26 +153,12 @@ rec {
|
||||
wlroots_0_17 = generic {
|
||||
version = "0.17.4";
|
||||
hash = "sha256-AzmXf+HMX/6VAr0LpfHwfmDB9dRrrLQHt7l35K98MVo=";
|
||||
extraNativeBuildInputs = [
|
||||
hwdata
|
||||
];
|
||||
extraBuildInputs = [
|
||||
ffmpeg
|
||||
libliftoff
|
||||
libdisplay-info
|
||||
];
|
||||
};
|
||||
|
||||
wlroots_0_18 = generic {
|
||||
version = "0.18.2";
|
||||
hash = "sha256-vKvMWRPPJ4PRKWVjmKKCdNSiqsQm+uQBoBnBUFElLNA=";
|
||||
extraNativeBuildInputs = [
|
||||
hwdata
|
||||
];
|
||||
extraBuildInputs = [
|
||||
ffmpeg
|
||||
libliftoff
|
||||
libdisplay-info
|
||||
lcms2
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall}:
|
||||
{deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package os;
|
||||
inherit package;
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ lib.optionals (os == "linux") [ autoPatchelfHook ];
|
||||
buildInputs = lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgsi686Linux.glibc pkgsi686Linux.zlib pkgsi686Linux.ncurses5 pkgs.libcxx ];
|
||||
buildInputs = lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs.libcxx ]
|
||||
++ lib.optionals (os == "linux" && stdenv.isx86_64) (with pkgsi686Linux; [ glibc zlib ncurses5 ]);
|
||||
patchInstructions = ''
|
||||
${lib.optionalString (os == "linux") ''
|
||||
addAutoPatchelfSearchPath $packageBaseDir/lib
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs, stdenv}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package os;
|
||||
inherit package;
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
|
||||
buildInputs = lib.optionals (os == "linux") [ pkgs.stdenv.cc.libc pkgs.stdenv.cc.cc pkgs.ncurses5 ];
|
||||
patchInstructions = lib.optionalString (os == "linux") ''
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
, platformToolsVersion ? "35.0.2"
|
||||
, buildToolsVersions ? [ "35.0.0" ]
|
||||
, includeEmulator ? false
|
||||
, emulatorVersion ? "35.3.10"
|
||||
, emulatorVersion ? "35.5.2"
|
||||
, platformVersions ? []
|
||||
, includeSources ? false
|
||||
, includeSystemImages ? false
|
||||
@@ -27,9 +27,20 @@
|
||||
|
||||
let
|
||||
# Determine the Android os identifier from Nix's system identifier
|
||||
os = if stdenv.hostPlatform.isLinux then "linux"
|
||||
else if stdenv.hostPlatform.isDarwin then "macosx"
|
||||
else throw "No Android SDK tarballs are available for system architecture: ${stdenv.system}";
|
||||
os = {
|
||||
x86_64-linux = "linux";
|
||||
x86_64-darwin = "macosx";
|
||||
aarch64-linux = "linux";
|
||||
aarch64-darwin = "macosx";
|
||||
}.${stdenv.hostPlatform.system} or "all";
|
||||
|
||||
# Determine the Android arch identifier from Nix's system identifier
|
||||
arch = {
|
||||
x86_64-linux = "x64";
|
||||
x86_64-darwin = "x64";
|
||||
aarch64-linux = "aarch64";
|
||||
aarch64-darwin = "aarch64";
|
||||
}.${stdenv.hostPlatform.system} or "all";
|
||||
|
||||
# Uses mkrepo.rb to create a repo spec.
|
||||
mkRepoJson = { packages ? [], images ? [], addons ? [] }: let
|
||||
@@ -71,9 +82,23 @@ let
|
||||
lib.attrsets.mapAttrsRecursive
|
||||
(path: value:
|
||||
if (builtins.elemAt path ((builtins.length path) - 1)) == "archives" then
|
||||
(builtins.listToAttrs
|
||||
(builtins.map
|
||||
(archive: lib.attrsets.nameValuePair archive.os (fetchurl { inherit (archive) url sha1; })) value))
|
||||
let
|
||||
validArchives = builtins.filter (archive:
|
||||
let
|
||||
isTargetOs = if builtins.hasAttr "os" archive then
|
||||
archive.os == os || archive.os == "all" else true;
|
||||
isTargetArc = if builtins.hasAttr "arch" archive then
|
||||
archive.arch == arch || archive.arch == "all" else true;
|
||||
in
|
||||
isTargetOs && isTargetArc
|
||||
) value;
|
||||
in
|
||||
lib.warnIf (builtins.length validArchives == 0)
|
||||
"No valid archives for ${lib.concatMapStringsSep "." (x: ''"${x}"'') path} for os=${os}, arch=${arch}"
|
||||
(lib.optionals (builtins.length validArchives > 0)
|
||||
(lib.last (map (archive:
|
||||
(fetchurl { inherit (archive) url sha1; })
|
||||
) validArchives)))
|
||||
else value
|
||||
)
|
||||
attrSet;
|
||||
@@ -117,12 +142,12 @@ rec {
|
||||
inherit stdenv lib mkLicenses;
|
||||
};
|
||||
|
||||
deployAndroidPackage = ({package, os ? null, buildInputs ? [], patchInstructions ? "", meta ? {}, ...}@args:
|
||||
deployAndroidPackage = ({package, buildInputs ? [], patchInstructions ? "", meta ? {}, ...}@args:
|
||||
let
|
||||
extraParams = removeAttrs args [ "package" "os" "buildInputs" "patchInstructions" ];
|
||||
in
|
||||
deployAndroidPackages ({
|
||||
inherit os buildInputs meta;
|
||||
inherit buildInputs;
|
||||
packages = [ package ];
|
||||
patchesInstructions = { "${package.name}" = patchInstructions; };
|
||||
} // extraParams
|
||||
@@ -139,8 +164,7 @@ rec {
|
||||
'';
|
||||
|
||||
platform-tools = callPackage ./platform-tools.nix {
|
||||
inherit deployAndroidPackage;
|
||||
os = if stdenv.system == "aarch64-darwin" then "macosx" else os; # "macosx" is a universal binary here
|
||||
inherit deployAndroidPackage os;
|
||||
package = check-version packages "platform-tools" platformToolsVersion;
|
||||
};
|
||||
|
||||
@@ -176,14 +200,12 @@ rec {
|
||||
|
||||
platforms = map (version:
|
||||
deployAndroidPackage {
|
||||
inherit os;
|
||||
package = check-version packages "platforms" version;
|
||||
}
|
||||
) platformVersions;
|
||||
|
||||
sources = map (version:
|
||||
deployAndroidPackage {
|
||||
inherit os;
|
||||
package = check-version packages "sources" version;
|
||||
}
|
||||
) platformVersions;
|
||||
@@ -218,7 +240,6 @@ rec {
|
||||
in
|
||||
lib.optionals (availablePackages != [])
|
||||
(deployAndroidPackages {
|
||||
inherit os;
|
||||
packages = availablePackages;
|
||||
patchesInstructions = instructions;
|
||||
})
|
||||
@@ -247,14 +268,12 @@ rec {
|
||||
|
||||
google-apis = map (version:
|
||||
deployAndroidPackage {
|
||||
inherit os;
|
||||
package = (check-version addons "addons" version).google_apis;
|
||||
}
|
||||
) (builtins.filter (platformVersion: platformVersion < "26") platformVersions); # API level 26 and higher include Google APIs by default
|
||||
|
||||
google-tv-addons = map (version:
|
||||
deployAndroidPackage {
|
||||
inherit os;
|
||||
package = (check-version addons "addons" version).google_tv_addon;
|
||||
}
|
||||
) platformVersions;
|
||||
|
||||
@@ -29,9 +29,15 @@ rec {
|
||||
"34"
|
||||
"35"
|
||||
];
|
||||
includeEmulator = true;
|
||||
includeSystemImages = true;
|
||||
includeNDK = true;
|
||||
includeEmulator =
|
||||
with pkgs.stdenv.hostPlatform;
|
||||
system == "x86_64-linux" || system == "x86_64-darwin" || system == "aarch64-darwin";
|
||||
includeSystemImages =
|
||||
with pkgs.stdenv.hostPlatform;
|
||||
system == "x86_64-linux" || system == "x86_64-darwin" || system == "aarch64-darwin";
|
||||
includeNDK =
|
||||
with pkgs.stdenv.hostPlatform;
|
||||
system == "x86_64-linux" || system == "x86_64-darwin" || system == "aarch64-darwin";
|
||||
};
|
||||
|
||||
test-suite = pkgs.callPackage ./test-suite.nix { };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{stdenv, lib, unzip, mkLicenses}:
|
||||
{packages, os ? null, nativeBuildInputs ? [], buildInputs ? [], patchesInstructions ? {}, meta ? {}, ...}@args:
|
||||
{packages, nativeBuildInputs ? [], buildInputs ? [], patchesInstructions ? {}, meta ? {}, ...}@args:
|
||||
|
||||
let
|
||||
extraParams = removeAttrs args [ "packages" "os" "buildInputs" "nativeBuildInputs" "patchesInstructions" ];
|
||||
@@ -62,9 +62,7 @@ stdenv.mkDerivation ({
|
||||
inherit buildInputs;
|
||||
pname = "android-sdk-${lib.concatMapStringsSep "-" (package: package.name) sortedPackages}";
|
||||
version = lib.concatMapStringsSep "-" (package: package.revision) sortedPackages;
|
||||
src = map (package:
|
||||
if os != null && builtins.hasAttr os package.archives then package.archives.${os} else package.archives.all
|
||||
) packages;
|
||||
src = map (package: package.archives) packages;
|
||||
nativeBuildInputs = [ unzip ] ++ nativeBuildInputs;
|
||||
preferLocalBuild = true;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall }:
|
||||
{ deployAndroidPackage, lib, stdenv, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgsi686Linux, postInstall }:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package os;
|
||||
inherit package;
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ lib.optionals (os == "linux") [ autoPatchelfHook ];
|
||||
buildInputs = lib.optionals (os == "linux") (with pkgs; [
|
||||
@@ -16,7 +16,6 @@ deployAndroidPackage {
|
||||
ncurses5
|
||||
libdrm
|
||||
stdenv.cc.cc
|
||||
pkgsi686Linux.glibc
|
||||
expat
|
||||
freetype
|
||||
nss
|
||||
@@ -36,7 +35,7 @@ deployAndroidPackage {
|
||||
libICE
|
||||
libSM
|
||||
libxkbfile
|
||||
]);
|
||||
]) ++ lib.optional (os == "linux" && stdenv.isx86_64) pkgsi686Linux.glibc;
|
||||
patchInstructions = lib.optionalString (os == "linux") ''
|
||||
addAutoPatchelfSearchPath $packageBaseDir/lib
|
||||
addAutoPatchelfSearchPath $packageBaseDir/lib64
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
},
|
||||
|
||||
config ? pkgs.config,
|
||||
# You probably need to set it to true to express consent.
|
||||
licenseAccepted ?
|
||||
config.android_sdk.accept_license or (builtins.getEnv "NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE" == "1"),
|
||||
}:
|
||||
|
||||
# Copy this file to your Android project.
|
||||
@@ -48,9 +51,7 @@ let
|
||||
|
||||
# Otherwise, just use the in-tree androidenv:
|
||||
androidEnv = pkgs.callPackage ./.. {
|
||||
inherit config pkgs;
|
||||
# You probably need to uncomment below line to express consent.
|
||||
# licenseAccepted = true;
|
||||
inherit config pkgs licenseAccepted;
|
||||
};
|
||||
|
||||
sdkArgs = {
|
||||
@@ -97,7 +98,6 @@ pkgs.mkShell rec {
|
||||
platformTools
|
||||
androidEmulator
|
||||
jdk
|
||||
pkgs.android-studio
|
||||
];
|
||||
|
||||
LANG = "C.UTF-8";
|
||||
@@ -196,6 +196,9 @@ pkgs.mkShell rec {
|
||||
];
|
||||
}
|
||||
''
|
||||
export ANDROID_USER_HOME=$PWD/.android
|
||||
mkdir -p $ANDROID_USER_HOME
|
||||
|
||||
avdmanager delete avd -n testAVD || true
|
||||
echo "" | avdmanager create avd --force --name testAVD --package 'system-images;android-35;google_apis;x86_64'
|
||||
result=$(avdmanager list avd)
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
config.allowUnfree = true;
|
||||
},
|
||||
config ? pkgs.config,
|
||||
# You probably need to set it to true to express consent.
|
||||
licenseAccepted ?
|
||||
config.android_sdk.accept_license or (builtins.getEnv "NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE" == "1"),
|
||||
}:
|
||||
|
||||
# Copy this file to your Android project.
|
||||
@@ -50,9 +53,7 @@ let
|
||||
|
||||
# Otherwise, just use the in-tree androidenv:
|
||||
androidEnv = pkgs.callPackage ./.. {
|
||||
inherit config pkgs;
|
||||
# You probably need to uncomment below line to express consent.
|
||||
# licenseAccepted = true;
|
||||
inherit config pkgs licenseAccepted;
|
||||
};
|
||||
|
||||
sdkArgs = {
|
||||
@@ -92,7 +93,6 @@ pkgs.mkShell rec {
|
||||
androidSdk
|
||||
platformTools
|
||||
jdk
|
||||
pkgs.android-studio
|
||||
];
|
||||
|
||||
LANG = "C.UTF-8";
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
config.allowUnfree = true;
|
||||
},
|
||||
|
||||
config ? pkgs.config
|
||||
config ? pkgs.config,
|
||||
# You probably need to set it to true to express consent.
|
||||
licenseAccepted ?
|
||||
config.android_sdk.accept_license or (builtins.getEnv "NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE" == "1"),
|
||||
}:
|
||||
|
||||
# Copy this file to your Android project.
|
||||
@@ -57,9 +60,7 @@ let
|
||||
|
||||
# Otherwise, just use the in-tree androidenv:
|
||||
androidEnv = pkgs.callPackage ./.. {
|
||||
inherit config pkgs;
|
||||
# You probably need to uncomment below line to express consent.
|
||||
# licenseAccepted = true;
|
||||
inherit config pkgs licenseAccepted;
|
||||
};
|
||||
|
||||
androidComposition = androidEnv.composeAndroidPackages {
|
||||
@@ -121,7 +122,7 @@ let
|
||||
in
|
||||
pkgs.mkShell rec {
|
||||
name = "androidenv-demo";
|
||||
packages = [ androidSdk platformTools jdk pkgs.android-studio ];
|
||||
packages = [ androidSdk platformTools jdk ];
|
||||
|
||||
LANG = "C.UTF-8";
|
||||
LC_ALL = "C.UTF-8";
|
||||
|
||||
@@ -16,11 +16,11 @@ pushd "$(dirname "$0")" &>/dev/null || exit 1
|
||||
|
||||
mkdir -p xml
|
||||
|
||||
fetch repository2-1.xml xml/repository2-1.xml
|
||||
fetch repository2-3.xml xml/repository2-3.xml
|
||||
for img in android android-tv android-wear android-wear-cn android-automotive google_apis google_apis_playstore
|
||||
do
|
||||
fetch sys-img/$img/sys-img2-1.xml xml/$img-sys-img2-1.xml
|
||||
fetch sys-img/$img/sys-img2-3.xml xml/$img-sys-img2-3.xml
|
||||
done
|
||||
fetch addon2-1.xml xml/addon2-1.xml
|
||||
fetch addon2-3.xml xml/addon2-3.xml
|
||||
|
||||
popd &>/dev/null
|
||||
|
||||
@@ -157,8 +157,12 @@ def package_archives package
|
||||
archives = {}
|
||||
package.css('> archives > archive').each do |archive|
|
||||
host_os = text archive.at_css('> host-os')
|
||||
host_arch = text archive.at_css('> host-arch')
|
||||
host_os = 'all' if empty?(host_os)
|
||||
archives[host_os] = {
|
||||
host_arch = 'all' if empty?(host_arch)
|
||||
archives[host_os + host_arch] = {
|
||||
'os' => host_os,
|
||||
'arch' => host_arch,
|
||||
'size' => Integer(text(archive.at_css('> complete > size'))),
|
||||
'sha1' => text(archive.at_css('> complete > checksum')),
|
||||
'url' => yield(text(archive.at_css('> complete > url')))
|
||||
@@ -184,7 +188,7 @@ def fixup value
|
||||
Hash[value.map do |k, v|
|
||||
if k == 'archives' && v.is_a?(Hash)
|
||||
[k, v.map do |os, archive|
|
||||
fixup({'os' => os}.merge(archive))
|
||||
fixup(archive)
|
||||
end]
|
||||
elsif v.is_a?(Hash)
|
||||
[k, fixup(v)]
|
||||
|
||||
@@ -7,15 +7,15 @@ pushd "$(dirname "$0")" &>/dev/null || exit 1
|
||||
|
||||
echo "Writing repo.json" >&2
|
||||
cat ./repo.json | ruby mkrepo.rb \
|
||||
--packages ./xml/repository2-1.xml \
|
||||
--images ./xml/android-sys-img2-1.xml \
|
||||
--images ./xml/android-tv-sys-img2-1.xml \
|
||||
--images ./xml/android-wear-cn-sys-img2-1.xml \
|
||||
--images ./xml/android-wear-sys-img2-1.xml \
|
||||
--images ./xml/android-automotive-sys-img2-1.xml \
|
||||
--images ./xml/google_apis-sys-img2-1.xml \
|
||||
--images ./xml/google_apis_playstore-sys-img2-1.xml \
|
||||
--addons ./xml/addon2-1.xml \
|
||||
--packages ./xml/repository2-3.xml \
|
||||
--images ./xml/android-sys-img2-3.xml \
|
||||
--images ./xml/android-tv-sys-img2-3.xml \
|
||||
--images ./xml/android-wear-cn-sys-img2-3.xml \
|
||||
--images ./xml/android-wear-sys-img2-3.xml \
|
||||
--images ./xml/android-automotive-sys-img2-3.xml \
|
||||
--images ./xml/google_apis-sys-img2-3.xml \
|
||||
--images ./xml/google_apis_playstore-sys-img2-3.xml \
|
||||
--addons ./xml/addon2-3.xml \
|
||||
| sponge repo.json
|
||||
|
||||
popd &>/dev/null
|
||||
|
||||
@@ -8,7 +8,7 @@ let
|
||||
]) + ":${platform-tools}/platform-tools";
|
||||
in
|
||||
deployAndroidPackage rec {
|
||||
inherit package os;
|
||||
inherit package;
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
|
||||
autoPatchelfIgnoreMissingDeps = [ "*" ];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}:
|
||||
|
||||
deployAndroidPackage {
|
||||
inherit package os;
|
||||
inherit package;
|
||||
nativeBuildInputs = lib.optionals (os == "linux") [ autoPatchelfHook ];
|
||||
buildInputs = lib.optionals (os == "linux") [ pkgs.glibc (lib.getLib pkgs.stdenv.cc.cc) pkgs.zlib pkgs.ncurses5 ];
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,16 +4,20 @@
|
||||
stdenv,
|
||||
}:
|
||||
let
|
||||
examples-shell = callPackage ./examples/shell.nix { };
|
||||
examples-shell-with-emulator = callPackage ./examples/shell-with-emulator.nix { };
|
||||
examples-shell-without-emulator = callPackage ./examples/shell-without-emulator.nix { };
|
||||
examples-shell = callPackage ./examples/shell.nix { licenseAccepted = true; };
|
||||
examples-shell-with-emulator = callPackage ./examples/shell-with-emulator.nix {
|
||||
licenseAccepted = true;
|
||||
};
|
||||
examples-shell-without-emulator = callPackage ./examples/shell-without-emulator.nix {
|
||||
licenseAccepted = true;
|
||||
};
|
||||
all-tests =
|
||||
examples-shell.passthru.tests
|
||||
// (examples-shell-with-emulator.passthru.tests // examples-shell-without-emulator.passthru.tests);
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "androidenv-test-suite";
|
||||
buidInputs = lib.mapAttrsToList (name: value: value) all-tests;
|
||||
buildInputs = lib.mapAttrsToList (name: value: value) all-tests;
|
||||
|
||||
buildCommand = ''
|
||||
touch $out
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, postInstall}:
|
||||
{deployAndroidPackage, lib, stdenv, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, postInstall}:
|
||||
|
||||
deployAndroidPackage {
|
||||
name = "androidsdk-tools";
|
||||
inherit os package;
|
||||
inherit package;
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ lib.optionals (os == "linux") [ autoPatchelfHook ];
|
||||
buildInputs = lib.optional (os == "linux") (
|
||||
@@ -10,7 +10,7 @@ deployAndroidPackage {
|
||||
stdenv.cc.cc.libgcc or null # fix for https://github.com/NixOS/nixpkgs/issues/226357
|
||||
])
|
||||
++ (with pkgs.xorg; [ libX11 libXrender libXext ])
|
||||
++ (with pkgsi686Linux; [ glibc xorg.libX11 xorg.libXrender xorg.libXext fontconfig.lib freetype zlib ])
|
||||
++ lib.optionals (os == "linux" && stdenv.isx86_64) (with pkgsi686Linux; [ glibc xorg.libX11 xorg.libXrender xorg.libXext fontconfig.lib freetype zlib ])
|
||||
);
|
||||
|
||||
patchInstructions = ''
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioesphomeapi";
|
||||
version = "29.1.0";
|
||||
version = "29.1.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@@ -35,7 +35,7 @@ buildPythonPackage rec {
|
||||
owner = "esphome";
|
||||
repo = "aioesphomeapi";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-/4/FNb6lGlitsAzO0OadWqP02Wx+mnlrA6yzXFm72sg=";
|
||||
hash = "sha256-umCjsBn0lS94SArvXXGuOfJ1oXmcVLOlrC35Crik9pA=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
@@ -61,16 +61,13 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# https://github.com/esphome/aioesphomeapi/pull/1081
|
||||
"test_request_while_handshaking"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# benchmarking requires pytest-codespeed
|
||||
"tests/benchmarks"
|
||||
];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
pythonImportsCheck = [ "aioesphomeapi" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "esphome-glyphsets";
|
||||
version = "0.1.0";
|
||||
version = "0.2.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "esphome";
|
||||
repo = "esphome-glyphsets";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kST2AsZRWZrVmInUNN153+FOXa/t9vbHN3hAReKQJaU=";
|
||||
hash = "sha256-nM8omtLIWwIY6AGVqVR2/4twmMlOj21+9cSuyXzAAXY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyfritzhome";
|
||||
version = "0.6.14";
|
||||
version = "0.6.15";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "hthiery";
|
||||
repo = "python-fritzhome";
|
||||
tag = version;
|
||||
hash = "sha256-49Ap4SSeEMlqOnzd1/oyQ1wKwFVxsC+apx+FVCWqNVI=";
|
||||
hash = "sha256-UVn+RJRLlLPhhnuJpWv5b15TtY0EkwccE3aj4f/fP6Q=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -13,19 +13,19 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "esphome-dashboard";
|
||||
version = "20241217.1";
|
||||
version = "20250212.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "esphome";
|
||||
repo = "dashboard";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Mirihvts8G2D4e5Jn7S0dWEJ+sOHZ+fvzsNaLpAOyMA=";
|
||||
hash = "sha256-9yXG9jwB284xTM6L3HWQCRD9Ki1F8yHaEl1vDNDxogw=";
|
||||
};
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit src;
|
||||
hash = "sha256-fWQvDMeuRjyToHhhZH1KtLWuhgAvq900cCja2dvLQyU=";
|
||||
hash = "sha256-B0Lx4aH+7NVSMY9qUUOiVeLgIL5wI3JolC9eLzjbRRA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -22,14 +22,14 @@ let
|
||||
in
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "esphome";
|
||||
version = "2024.12.4";
|
||||
version = "2025.2.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
tag = version;
|
||||
hash = "sha256-Ff3NuLHKRLoBbjqb92vvDcSbSJnjCwm5FmSDwnEI0p4=";
|
||||
hash = "sha256-V9nDDgRgMOko271lQ3D3BQIMtZmFnUhAuFavyPFufEM=";
|
||||
};
|
||||
|
||||
build-systems = with python.pkgs; [
|
||||
@@ -72,9 +72,9 @@ python.pkgs.buildPythonApplication rec {
|
||||
colorama
|
||||
cryptography
|
||||
esphome-dashboard
|
||||
esphome-glyphsets
|
||||
freetype-py
|
||||
icmplib
|
||||
glyphsets
|
||||
kconfiglib
|
||||
packaging
|
||||
paho-mqtt
|
||||
@@ -125,6 +125,12 @@ python.pkgs.buildPythonApplication rec {
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# race condition, also visible in upstream tests
|
||||
# tests/dashboard/test_web_server.py:78: IndexError
|
||||
"test_devices_page"
|
||||
];
|
||||
|
||||
postCheck = ''
|
||||
$out/bin/esphome --help > /dev/null
|
||||
'';
|
||||
|
||||
Reference in New Issue
Block a user