Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-11-11 00:03:30 +00:00 committed by GitHub
commit 828b074542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 475 additions and 1121 deletions

View File

@ -2265,6 +2265,12 @@
githubId = 5394722;
name = "Spencer Baugh";
};
catouc = {
email = "catouc@philipp.boeschen.me";
github = "catouc";
githubId = 25623213;
name = "Philipp Böschen";
};
caugner = {
email = "nixos@caugner.de";
github = "caugner";
@ -14216,6 +14222,12 @@
githubId = 928084;
name = "Utku Demir";
};
uthar = {
email = "galkowskikasper@gmail.com";
github = "uthar";
githubId = 15697697;
name = "Kasper Gałkowski";
};
uvnikita = {
email = "uv.nikita@gmail.com";
github = "uvNikita";

View File

@ -861,6 +861,12 @@
for <literal>termonad</literal> has been removed.
</para>
</listitem>
<listitem>
<para>
Linux 4.9 has been removed because it will reach its end of
life within the lifespan of 22.11.
</para>
</listitem>
<listitem>
<para>
(Neo)Vim can not be configured with

View File

@ -265,6 +265,8 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- The top-level `termonad-with-packages` alias for `termonad` has been removed.
- Linux 4.9 has been removed because it will reach its end of life within the lifespan of 22.11.
- (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden.
Use `configure.packages` instead.
- Neovim can not be configured with plug anymore (still works for vim).

View File

@ -110,7 +110,6 @@ in {
in
{
preStart = ''
cp ${conf} /var/rss2email/conf.cfg
if [ ! -f /var/rss2email/db.json ]; then
echo '{"version":2,"feeds":[]}' > /var/rss2email/db.json
fi
@ -118,7 +117,7 @@ in {
path = [ pkgs.system-sendmail ];
serviceConfig = {
ExecStart =
"${pkgs.rss2email}/bin/r2e -c /var/rss2email/conf.cfg -d /var/rss2email/db.json run";
"${pkgs.rss2email}/bin/r2e -c ${conf} -d /var/rss2email/db.json run";
User = "rss2email";
};
};

View File

@ -1,5 +1,4 @@
[
"tree-sitter-agda",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-c-sharp",
@ -7,11 +6,11 @@
"tree-sitter-css",
"tree-sitter-elixir",
"tree-sitter-elm",
"tree-sitter-fluent",
"tree-sitter-go",
"tree-sitter-haskell",
"tree-sitter-hcl",
"tree-sitter-html",
"tree-sitter-janet-simple",
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-jsdoc",
@ -19,6 +18,8 @@
"tree-sitter-julia",
"tree-sitter-nix",
"tree-sitter-ocaml",
"tree-sitter-perl",
"tree-sitter-pgn",
"tree-sitter-php",
"tree-sitter-prisma",
"tree-sitter-python",
@ -27,5 +28,6 @@
"tree-sitter-scala",
"tree-sitter-typescript",
"tree-sitter-verilog",
"tree-sitter-yaml",
"tree-sitter-zig"
]

View File

@ -0,0 +1,23 @@
{ lib, buildGoModule, fetchFromGitHub, git }:
buildGoModule rec {
pname = "semver";
version = "1.0.0";
src = fetchFromGitHub {
owner = "catouc";
repo = "semver-go";
rev = "v${version}";
sha256 = "0v3j7rw917wnmp4lyjscqzk4qf4azfiz70ynbq3wl4gwp1m783vv";
};
vendorSha256 = null;
nativeBuildInputs = [ git ];
meta = with lib; {
homepage = "https://github.com/catouc/semver-go";
description = "A small CLI to fish out the current or next semver version from a git repository";
maintainers = with maintainers; [ catouc ];
license = licenses.mit;
};
}

View File

@ -0,0 +1,26 @@
{
rustPlatform,
fetchFromGitHub,
lib,
}:
rustPlatform.buildRustPackage rec {
pname = "lls";
version = "0.1.0";
src = fetchFromGitHub {
owner = "jcaesar";
repo = "lls";
rev = "v${version}";
hash = "sha256-Aq0MGhzSoJCkM0Wt/r5JSOz96LyRSgSryD7+m4aFZEA=";
};
cargoSha256 = "sha256-WY4MnPNDWFEzFOehm7TqCL05Ea6n93f8VWBTOuqjBAg=";
meta = with lib; {
description = "Tool to list listening sockets";
license = licenses.mit;
maintainers = [ maintainers.k900 ];
platforms = platforms.linux;
homepage = "https://github.com/jcaesar/lls";
};
}

View File

@ -26,7 +26,7 @@
mkDerivation rec {
pname = "nextcloud-client";
version = "3.6.1";
version = "3.6.2";
outputs = [ "out" "dev" ];
@ -34,7 +34,7 @@ mkDerivation rec {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
sha256 = "sha256-RCYiUxTZSuZbDocueW0d8PdsRTR9bTjDgx0H53UGDP4=";
sha256 = "sha256-eTcQrbYYY+V87i6PuIEWCFczIqL8oxtdojPY/mZpJBU=";
};
patches = [

View File

@ -7,16 +7,16 @@
buildGoModule rec {
pname = "seaweedfs";
version = "3.32";
version = "3.34";
src = fetchFromGitHub {
owner = "chrislusf";
repo = "seaweedfs";
rev = version;
hash = "sha256-GMOLlkBfY3ShVojdRrmpMYgoea52kq4aXr/oZj5bJWo=";
hash = "sha256-lOCZHkLJCDvaT3CcHUBbsybdy0H6BfKKGpd/73cxcWA=";
};
vendorHash = "sha256-cEzPKx54rssyAytYenIcud3K0f7xuO8WzE8wdMqZipE=";
vendorHash = "sha256-1RUWONkXArXYg8gQogKUhMSGdIYyT3lq5qWuUQBsFig=";
subPackages = [ "weed" ];

View File

@ -17,7 +17,7 @@
, libxcrypt
, lz4
, xz
, gsl_1
, gsl
, xxHash
, Cocoa
, OpenGL
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash libxcrypt ]
buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl xxHash libxcrypt ]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
;
@ -144,6 +144,7 @@ stdenv.mkDerivation rec {
homepage = "https://root.cern.ch/";
description = "A data analysis framework";
platforms = platforms.unix;
broken = !stdenv.isx86_64;
maintainers = with maintainers; [ veprbl ];
license = licenses.lgpl21;
};

View File

@ -1,17 +1,20 @@
{ lib, fetchFromGitHub, rustPlatform, stdenv, Security }:
{ lib, rustPlatform, fetchFromGitHub, stdenv, Security }:
rustPlatform.buildRustPackage rec {
pname = "srvc";
version = "0.7.0";
version = "0.8.0";
src = fetchFromGitHub {
owner = "insilica";
repo = "rs-srvc";
rev = "v${version}";
sha256 = "sha256-XGZ6Jr/RVDOLDa0sANZIsKtNjY3pEBlOtei+xNGPBBY=";
sha256 = "sha256-2eEuKAMxxTwjDInpYcOlFJha5DTe0IrxT5rI6ymN0hc=";
};
cargoSha256 = "sha256-sjMg5XMnAQZjp6z9prtRq+0pyNQ1oTm0/KWOZPxDW4w=";
cargoSha256 = "sha256-nJM7/w4awbCZQysUOSTO6bfsBXO3agJRdp1RyRZhtUY=";
# remove timeouts in tests to make them less flaky
patches = [ ./tests-no-timeout.patch ];
buildInputs = lib.optionals stdenv.isDarwin [
Security
@ -22,5 +25,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/insilica/rs-srvc";
license = licenses.asl20;
maintainers = with maintainers; [ john-shaffer ];
mainProgram = "sr";
};
}

View File

@ -0,0 +1,36 @@
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -1,15 +1,13 @@
#![allow(dead_code)]
use std::path::PathBuf;
-use std::time::Duration;
use assert_cmd::Command;
#[cfg(unix)]
use rexpect::session::PtySession;
-pub fn cmd(timeout_millis: u64) -> Command {
+pub fn cmd(_: u64) -> Command {
let mut cmd = Command::cargo_bin(env!("CARGO_PKG_NAME")).unwrap();
- cmd.timeout(Duration::from_millis(timeout_millis));
cmd.env_remove("RUST_BACKTRACE");
cmd
}
@@ -19,14 +17,14 @@ pub fn spawn(
dir: &str,
args: Vec<&str>,
timestamp_override: u64,
- timeout_millis: u64,
+ _: u64,
) -> Result<PtySession, rexpect::errors::Error> {
let mut cmd = std::process::Command::new(env!("CARGO_BIN_EXE_sr"));
cmd.args(args);
cmd.current_dir(dir);
cmd.env("SR_TIMESTAMP_OVERRIDE", timestamp_override.to_string());
cmd.env_remove("RUST_BACKTRACE");
- Ok(rexpect::session::spawn_command(cmd, Some(timeout_millis))?)
+ rexpect::session::spawn_command(cmd, None)
}
pub fn remove_sink(dir: &str) -> Result<(), std::io::Error> {

View File

@ -43,7 +43,6 @@ let
mkdir "$rsrc"
ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
echo "-B $rsrc/lib" >> $out/nix-support/cc-cflags
'';
mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"

View File

@ -17,7 +17,6 @@
, plfit
, python3
, sourceHighlight
, suitesparse
, xmlto
}:
@ -27,22 +26,17 @@ assert (blas.isILP64 == lapack.isILP64 &&
stdenv.mkDerivation rec {
pname = "igraph";
version = "0.9.10";
version = "0.10.2";
src = fetchFromGitHub {
owner = "igraph";
repo = pname;
rev = version;
hash = "sha256-prDadHsNhDRkNp1i0niKIYxE0g85Zs0ngvUy6uK8evk=";
hash = "sha256-6zX9hyz/8H7r+wzpVwz8jDMfd3nqit3pT+wlP0C40Rg=";
};
postPatch = ''
echo "${version}" > IGRAPH_VERSION
'' + lib.optionalString stdenv.isAarch64 ''
# https://github.com/igraph/igraph/issues/1694
substituteInPlace tests/CMakeLists.txt \
--replace "igraph_scg_grouping3" "" \
--replace "igraph_scg_semiprojectors2" ""
'';
outputs = [ "out" "dev" "doc" ];
@ -68,7 +62,6 @@ stdenv.mkDerivation rec {
lapack
libxml2
plfit
suitesparse
] ++ lib.optionals stdenv.cc.isClang [
llvmPackages.openmp
];
@ -78,7 +71,6 @@ stdenv.mkDerivation rec {
"-DIGRAPH_USE_INTERNAL_LAPACK=OFF"
"-DIGRAPH_USE_INTERNAL_ARPACK=OFF"
"-DIGRAPH_USE_INTERNAL_GLPK=OFF"
"-DIGRAPH_USE_INTERNAL_CXSPARSE=OFF"
"-DIGRAPH_USE_INTERNAL_GMP=OFF"
"-DIGRAPH_USE_INTERNAL_PLFIT=OFF"
"-DIGRAPH_GLPK_SUPPORT=ON"
@ -101,7 +93,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
description = "The network analysis package";
description = "C library for complex network analysis and graph theory";
homepage = "https://igraph.org/";
changelog = "https://github.com/igraph/igraph/blob/${src.rev}/CHANGELOG.md";
license = licenses.gpl2Plus;

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.97.0";
version = "1.100.0";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = version;
hash = "sha256-njeNlpXSeqKrozN1UfKnnhVJN24ZJh+MuR4Vd3S/gSQ=";
hash = "sha256-p7IqvxV9C3Ej0xNUA9iRtmkXrUgGWx1OR+/SBDzhcZE=";
};
patches = [
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-bf79yqQv516k0xCp0yd1Vid1yf8EppFFvC3HJ4RczoA=";
hash = "sha256-Wfk2cHGTO2ZvhVAvOs6xOSnldyrkiAinMc6ErLy8QpA=";
};
nativeBuildInputs = [

View File

@ -59,6 +59,7 @@
# Darwin
, gmp
, libiconv
, qemu
, Carbon
, AppKit
@ -154,6 +155,9 @@ stdenv.mkDerivation rec {
'' + optionalString isDarwin ''
sed -i '/qemucapabilitiestest/d' tests/meson.build
sed -i '/vircryptotest/d' tests/meson.build
sed -i '/domaincapstest/d' tests/meson.build
sed -i '/qemufirmwaretest/d' tests/meson.build
sed -i '/qemuvhostusertest/d' tests/meson.build
'' + optionalString (isDarwin && isx86_64) ''
sed -i '/qemucaps2xmltest/d' tests/meson.build
sed -i '/qemuhotplugtest/d' tests/meson.build
@ -267,6 +271,7 @@ stdenv.mkDerivation rec {
(cfg "runstatedir" "/run")
(cfg "init_script" (if isDarwin then "none" else "systemd"))
(cfg "qemu_datadir" (if isDarwin then "${qemu}/share/qemu" else ""))
(feat "apparmor" isLinux)
(feat "attr" isLinux)

View File

@ -0,0 +1,21 @@
{ pkgs, lib, ... }:
pkgs.stdenv.mkDerivation rec {
pname = "smokegen";
version = "v4.14.3";
src = pkgs.fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
hash = "sha256-finsoruPeJZLawIjNUJ25Pq54eaCByfALVraNQJPk7c=";
};
buildInputs = [ pkgs.cmake pkgs.qt4 ];
buildPhase = ''
cmake .
'';
meta = with lib; {
description = "A general purpose C++ parser with a plugin infrastructure";
homepage = "https://invent.kde.org/unmaintained/smokegen";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = with maintainers; [ uthar ];
};
}

View File

@ -0,0 +1,21 @@
{ pkgs, lib, ... }:
pkgs.stdenv.mkDerivation rec {
pname = "smokeqt";
version = "v4.14.3";
src = pkgs.fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
hash = "sha256-8FiEGF8gduVw5I/bi2wExGUWmjIjYEhWpjpXKJGBNMg=";
};
cmakeFlags = [
"-DCMAKE_CXX_STANDARD=98"
];
buildInputs = [ pkgs.cmake pkgs.qt4 pkgs.smokegen ];
meta = with lib; {
description = "Bindings for the Qt libraries";
homepage = "https://invent.kde.org/unmaintained/smokeqt";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = with maintainers; [ uthar ];
};
}

View File

@ -11,6 +11,9 @@ let
optionals
hasSuffix
splitString
remove
optionalString
stringLength
;
# Used by builds that would otherwise attempt to write into storeDir.
@ -42,6 +45,11 @@ let
# Patches are already applied in `build`
patches = [];
src = build;
# TODO(kasper): handle this with a setup hook
LD_LIBRARY_PATH =
build.LD_LIBRARY_PATH
+ (optionalString (stringLength build.LD_LIBRARY_PATH != 0) ":")
+ "${build}";
});
# A little hacky
@ -332,6 +340,89 @@ let
version = "f19162e76";
});
qt = let
rev = "dffff3ee3dbd0686c85c323f579b8bbf4881e60e";
in build-with-compile-into-pwd rec {
pname = "commonqt";
version = builtins.substring 0 7 rev;
src = pkgs.fetchFromGitHub {
inherit rev;
owner = pname;
repo = pname;
hash = "sha256-GAgwT0D9mIkYPTHfCH/KxxIv7b6QGwcxwZE7ehH5xug=";
};
buildInputs = [ pkgs.qt4 ];
nativeBuildInputs = [ pkgs.smokegen pkgs.smokeqt ];
nativeLibs = [ pkgs.qt4 pkgs.smokegen pkgs.smokeqt ];
systems = [ "qt" ];
lispLibs = with ql; [
cffi named-readtables cl-ppcre alexandria
closer-mop iterate trivial-garbage bordeaux-threads
];
};
qt-libs = build-with-compile-into-pwd {
inherit (ql.qt-libs) pname version src;
patches = [ ./patches/qt-libs-dont-download.patch ];
prePatch = ''
substituteInPlace systems/*.asd --replace ":qt+libs" ":qt"
echo "LD Path: $LD_LIBRARY_PATH"
'';
lispLibs = ql.qt-libs.lispLibs ++ [ qt ];
systems = [
"qt-libs"
"commonqt"
# "phonon"
# "qimageblitz"
# "qsci"
"qt3support"
"qtcore"
"qtdbus"
"qtdeclarative"
"qtgui"
"qthelp"
"qtnetwork"
"qtopengl"
"qtscript"
"qtsql"
"qtsvg"
"qttest"
"qtuitools"
# "qtwebkit"
"qtxml"
"qtxmlpatterns"
# "qwt"
"smokebase"
];
};
commonqt = qt-libs;
qt3support = qt-libs;
qtcore = qt-libs;
qtdbus = qt-libs;
qtdeclarative = qt-libs;
qtgui = qt-libs;
qthelp = qt-libs;
qtnetwork = qt-libs;
qtopengl = qt-libs;
qtscript = qt-libs;
qtsql = qt-libs;
qtsvg = qt-libs;
qttest = qt-libs;
qtuitools = qt-libs;
qtxml = qt-libs;
qtxmlpatterns = qt-libs;
smokebase = qt-libs;
qtools = build-with-compile-into-pwd {
inherit (ql.qtools) pname version src nativeLibs;
lispLibs = [ qt ] ++ remove ql.qt_plus_libs ql.qtools.lispLibs ++ [ qt-libs ];
patches = [ ./patches/qtools-use-nix-libs.patch ];
};
};
in packages

View File

@ -0,0 +1,36 @@
--- a/qt-libs.asd
+++ b/qt-libs.asd
@@ -17,5 +17,4 @@
:components ((:file "qt-libs"))
:depends-on (:qt-lib-generator
:cl-ppcre
- :cffi)
- :perform (asdf:load-op :after (op c) (uiop:symbol-call :qt-libs :ensure-standalone-libs)))
+ :cffi))
--- a/qt-libs.lisp
+++ b/qt-libs.lisp
@@ -94,16 +94,14 @@
standalone-dir)
(defun %ensure-lib-loaded (file)
- (let ((file (etypecase file
- (pathname file)
- (string (installed-library-file file))))
- (name (intern (string-upcase (pathname-name file))))
- #+sbcl(sb-ext:*muffled-warnings* 'style-warning))
- (cffi::register-foreign-library
- name `((T ,file))
- :search-path (to-directory file))
- (unless (cffi:foreign-library-loaded-p name)
- (cffi:load-foreign-library name))))
+ (let ((name (make-pathname :name (format nil "lib~a" file)
+ :type #+unix "so"
+ #+darwin "dylib")))
+ (or (find-if (lambda (lib)
+ (equal (cffi:foreign-library-pathname lib)
+ (namestring name)))
+ (cffi:list-foreign-libraries))
+ (cffi:load-foreign-library name))))
(defun ensure-lib-loaded (file)
(cond ((pathnamep file)

View File

@ -0,0 +1,19 @@
Dont use the qt+libs system for managing Qt dependencies, because Nix provides
them already.
Don't build the deploy.lisp helper file, because Nix also can handle deployment.
--- a/qtools.asd
+++ b/qtools.asd
@@ -33,10 +33,9 @@
(:file "generate")
(:file "dynamic")
(:file "precompile")
- (:file "deploy")
(:file "fast-call")
(:file "documentation"))
- :depends-on (:qt+libs
+ :depends-on (:qt
:deploy
:cl-ppcre
:closer-mop
Diff finished. Sun Oct 2 14:38:06 2022

View File

@ -17,16 +17,16 @@
buildPythonPackage rec {
pname = "fsspec";
version = "2022.8.2";
version = "2022.10.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "intake";
owner = "fsspec";
repo = "filesystem_spec";
rev = version;
hash = "sha256-eT1zqTbU5kfQ7bvzigT9579HfXU6VaOEjRg8VG/DHMI=";
hash = "sha256-+lPt/zqI3Mkt+QRNXq+Dxm3h/ryZJsfrmayVi/BTtbg=";
};
propagatedBuildInputs = [
@ -68,7 +68,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "A specification that Python filesystems should adhere to";
homepage = "https://github.com/intake/filesystem_spec";
homepage = "https://github.com/fsspec/filesystem_spec";
changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [ costrouc ];

View File

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "gcsfs";
version = "2022.8.2";
version = "2022.10.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "fsspec";
repo = pname;
rev = version;
hash = "sha256-BnnKFrWz47izKc7nS8NR1Vze1x9kJdYBsQT2KEY9ghM=";
hash = "sha256-+S4AziibYWos/hZ1v3883b1Vv3y4xjIDUrQ8c2XJ1MQ=";
};
propagatedBuildInputs = [
@ -66,6 +66,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Convenient Filesystem interface over GCS";
homepage = "https://github.com/fsspec/gcsfs";
changelog = "https://github.com/fsspec/gcsfs/raw/${version}/docs/source/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [ nbren12 ];
};

View File

@ -5,20 +5,20 @@
, pkg-config
, igraph
, texttable
, python
, unittestCheckHook
}:
buildPythonPackage rec {
pname = "igraph";
version = "0.9.11";
version = "0.10.2";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "igraph";
repo = "python-igraph";
rev = version;
hash = "sha256-tvkV5ve9X+LXx3LOdHIPljQKZc1v6yts0juo4SwDmfY=";
hash = "sha256-ro2EkJQxW8aHejAvkaXI9mJC5XgFt31akhzFDAPZ4ow=";
};
postPatch = ''
@ -42,9 +42,9 @@ buildPythonPackage rec {
# told to do it. ~ C.
setupPyGlobalFlags = [ "--use-pkg-config" ];
checkPhase = ''
${python.interpreter} -m unittest
'';
checkInputs = [
unittestCheckHook
];
pythonImportsCheck = [ "igraph" ];

View File

@ -3,19 +3,23 @@
, fetchFromGitHub
, impacket
, netaddr
, pythonOlder
, pypykatz
, rich
}:
buildPythonPackage rec {
pname = "lsassy";
version = "3.1.3";
version = "3.1.4";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "Hackndo";
repo = pname;
rev = "v${version}";
sha256 = "sha256-h99wqgRNy2GkiertDddFJQN4hv2R26bo72zNwLPR3mk=";
hash = "sha256-/YDBzH8Mji6PWBEIbsgZcTvoAWAsBbJV3cHfySY/gGA=";
};
propagatedBuildInputs = [

View File

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "marshmallow-dataclass";
version = "8.5.9";
version = "8.5.10";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "lovasoa";
repo = "marshmallow_dataclass";
rev = "v${version}";
sha256 = "sha256-gA5GxE2as/P5yT3ymvXmLQfG2GyZE7Fj+zBaT88O4vY=";
sha256 = "sha256-AxUZf1dRe/7Y96DYJnziMqHKW5xyQv4FIrMMwSZTuGQ=";
};
propagatedBuildInputs = [

View File

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "meshtastic";
version = "2.0.2";
version = "2.0.3";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "meshtastic";
repo = "Meshtastic-python";
rev = "refs/tags/${version}";
hash = "sha256-Z2/nzsHRpaykqLRkJoPdNGSLNbJvd4GOUpTYl8MG8mw=";
hash = "sha256-h8OuDmm9I8lElhAGSpPx8sPUTY+EnFp2VXOYrYjiYNk=";
};
propagatedBuildInputs = [

View File

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "netutils";
version = "1.2.0";
version = "1.3.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "networktocode";
repo = pname;
rev = "v${version}";
hash = "sha256-6FoadV5QMZCJnF/eD3FXRsyP4MymO5nayJ/54PJXOB4=";
hash = "sha256-3c44ZJIEBhKggtqs77gt2fY3tI00ZGmFGLIGR8LF6aE=";
};
nativeBuildInputs = [

View File

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "numdifftools";
version = "0.9.40";
version = "0.9.41";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "pbrod";
repo = pname;
rev = "v${version}";
hash = "sha256-YLi9cNHcZ/PlhrhvYOMfRTOt4kinQcfxvqInT8/0Qpg=";
hash = "sha256-HYacLaowSDdrwkxL1h3h+lw/8ahzaecpXEnwrCqMCWk=";
};
propagatedBuildInputs = [

View File

@ -1,12 +1,13 @@
{ lib
, buildPythonPackage
, coloredlogs
, deprecation
, fetchFromGitHub
, ghostscript
, img2pdf
, importlib-metadata
, importlib-resources
, jbig2enc
, packaging
, pdfminer-six
, pikepdf
, pillow
@ -16,18 +17,23 @@
, pytestCheckHook
, pythonOlder
, reportlab
, setuptools
, setuptools-scm
, setuptools-scm-git-archive
, substituteAll
, tesseract
, tqdm
, typing-extensions
, unpaper
, installShellFiles
}:
buildPythonPackage rec {
pname = "ocrmypdf";
version = "13.7.0";
version = "14.0.1";
disabled = pythonOlder "3.8";
format = "pyproject";
src = fetchFromGitHub {
owner = "ocrmypdf";
@ -39,7 +45,7 @@ buildPythonPackage rec {
postFetch = ''
rm "$out/.git_archival.txt"
'';
hash = "sha256-cw2wZMPhWzxRpeM90g9NmuYBYpU13R2iDzs7a8SS/CY=";
hash = "sha256-eYn24FkAXj/ESCoC0QaLY+wRhkxZP1KnuY4VU1WiG24=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@ -56,25 +62,27 @@ buildPythonPackage rec {
];
nativeBuildInputs = [
setuptools-scm-git-archive
setuptools
setuptools-scm
installShellFiles
];
propagatedBuildInputs = [
coloredlogs
deprecation
img2pdf
packaging
pdfminer-six
pikepdf
pillow
pluggy
reportlab
tqdm
] ++ (lib.optionals (pythonOlder "3.8") [
importlib-metadata
]) ++ (lib.optionals (pythonOlder "3.9") [
] ++ lib.optionals (pythonOlder "3.9") [
importlib-resources
]);
] ++ lib.optionals (pythonOlder "3.10") [
typing-extensions
];
checkInputs = [
pytest-xdist

View File

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "oralb-ble";
version = "0.14.0";
version = "0.14.1";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-7EHU/UqKy576FZ1E5bOHHOvH38yoyU+55wC/YO3yt4Y=";
hash = "sha256-Tg2sk8E4+UjgP2PyZH6ZqNJv6Yg/muTl7QPaBlXHUj0=";
};
nativeBuildInputs = [

View File

@ -24,7 +24,7 @@
buildPythonPackage rec {
pname = "pikepdf";
version = "6.0.2";
version = "6.2.2";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -39,7 +39,7 @@ buildPythonPackage rec {
postFetch = ''
rm "$out/.git_archival.txt"
'';
hash = "sha256-rwMSmARUrScG2nmiYBSkcq0NuUMhn0pHOPvgdKZbH7w=";
hash = "sha256-194CaN7Ei3/ja55BWsUst4EN/B7/JUmJxtCmnN9Z/bI=";
};
patches = [

View File

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "pyskyqremote";
version = "0.3.17";
version = "0.3.19";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "RogerSelwyn";
repo = "skyq_remote";
rev = "refs/tags/${version}";
sha256 = "sha256-jOeJXl/0LUozwKoE3R67tts6v283Li7zHIatr0nadCk=";
sha256 = "sha256-yN1d0Q6kbtQ+f+3WgTVZR9NVcV5K7VEZQ44H1bcP5Fk=";
};
propagatedBuildInputs = [

View File

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "pyswitchbee";
version = "1.6.1";
version = "1.6.2";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "jafar-atili";
repo = "pySwitchbee";
rev = "refs/tags/${version}";
hash = "sha256-5Mc70yi9Yj+8ye81v9NbKZnNoD5PQmBVAiYF5IM5ix8=";
hash = "sha256-MDutpeHI6MW1VwCRTPJK/y08ee4eidOHluMf6lPQfEk=";
};
postPatch = ''

View File

@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "s3fs";
version = "2022.8.2";
version = "2022.10.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-PKBwGomp4SWijekIKdGflvQd2x2LQ3kHbCntgsSvhs0=";
hash = "sha256-6N64DyC9CyBZFBuHT9udauuMzjUxLqXywCsiWnigBAY=";
};
buildInputs = [
@ -42,8 +42,9 @@ buildPythonPackage rec {
meta = with lib; {
broken = stdenv.isDarwin;
homepage = "https://github.com/dask/s3fs/";
description = "A Pythonic file interface for S3";
homepage = "https://github.com/fsspec/s3fs";
changelog = "https://github.com/fsspec/s3fs/raw/${version}/docs/source/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [ teh ];
};

View File

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "sensor-state-data";
version = "2.11.0";
version = "2.12.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-znDEdXCWYmzk5xG1sSUyXRUhLGxtoBv46JcSnysu1A4=";
hash = "sha256-u17vtw3yu8ibi/omTriy6s33/243WjxM03Nss3pFAYk=";
};
nativeBuildInputs = [

View File

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "watchfiles";
version = "0.18.0";
version = "0.18.1";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -24,13 +24,13 @@ buildPythonPackage rec {
owner = "samuelcolvin";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-biGGn0YAUbSO1hCJ4kU0ZWlqlXl/HRrBS3iIA3myRI8=";
hash = "sha256-XEhu6M1hFi3/gAKZcei7KJSrIhhlZhlvZvbfyA6VLR4=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-nmkIKA4EDMOeppOxKwLSh3oREInlDIcFzE7/EYZRGKY=";
hash = "sha256-IWONA3o+2emJ7cKEw5xYSMdWzGuUSwn1B70zUDzj7Cw=";
};
nativeBuildInputs = [

View File

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "xiaomi-ble";
version = "0.10.0";
version = "0.11.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-qpGw9c7O8MC6AEutRIqCEdZncJSQKesaHFRQjOxpa2U=";
hash = "sha256-qAqXg+skA7FfAjRXljt1UpyOcC3KYghc+5wjiRzlyyg=";
};
nativeBuildInputs = [

View File

@ -1,7 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub }:
let
version = "1.15.0";
version = "1.16.0";
in
buildGoModule {
pname = "sqlc";
@ -11,11 +11,11 @@ buildGoModule {
owner = "kyleconroy";
repo = "sqlc";
rev = "v${version}";
sha256 = "sha256-Ufa5A+lsFSyxe7s0DbLhWW298Y1yaSCazMjGBryyMYY=";
sha256 = "sha256-YxGMfGhcPT3Pcyxu1hAkadkJnEBMX26fE/rGfGSTsyc=";
};
proxyVendor = true;
vendorSha256 = "sha256-KatF4epCzyQCoAGk1verjAYNrFcmcLiVyDI2542Vm3k=";
vendorSha256 = "sha256-cMYTQ8rATCXOquSxc4iZ2MvxIaMO3RG8PZkpOwwntyc=";
subPackages = [ "cmd/sqlc" ];

View File

@ -1,6 +1,5 @@
{ lib }:
{
tree-sitter-agda = lib.importJSON ./tree-sitter-agda.json;
tree-sitter-bash = lib.importJSON ./tree-sitter-bash.json;
tree-sitter-beancount = lib.importJSON ./tree-sitter-beancount.json;
tree-sitter-bibtex = lib.importJSON ./tree-sitter-bibtex.json;
@ -25,7 +24,6 @@
tree-sitter-erlang = lib.importJSON ./tree-sitter-erlang.json;
tree-sitter-fennel = lib.importJSON ./tree-sitter-fennel.json;
tree-sitter-fish = lib.importJSON ./tree-sitter-fish.json;
tree-sitter-fluent = lib.importJSON ./tree-sitter-fluent.json;
tree-sitter-fortran = lib.importJSON ./tree-sitter-fortran.json;
tree-sitter-gdscript = lib.importJSON ./tree-sitter-gdscript.json;
tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json;

View File

@ -1,11 +0,0 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-agda",
"rev": "d710ff14d15ddee3764fd73a0837c6c4c8c913e9",
"date": "2019-09-20T18:06:06+08:00",
"path": "/nix/store/wqz9v9znaiwhhqi19hgig9bn0yvl4i9s-tree-sitter-agda",
"sha256": "1wpfj47l97pxk3i9rzdylqipy849r482fnj3lmx8byhalv7z1vm6",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
}

View File

@ -1,11 +0,0 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-fluent",
"rev": "858fdd6f1e81992e00d3541bfb31bac9365d7a47",
"date": "2018-06-18T13:00:38-07:00",
"path": "/nix/store/zbj8abdlrqi9swm8qn8rhpqmjwcz145f-tree-sitter-fluent",
"sha256": "0528v9w0cs73p9048xrddb1wpdhr92sn1sw8yyqfrq5sq0danr9k",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
}

View File

@ -1,9 +1,9 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-julia",
"rev": "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25",
"date": "2022-11-01T17:30:42-05:00",
"path": "/nix/store/58qk62ilnkwqbqc5y0ah1ky5z4n4d4xr-tree-sitter-julia",
"sha256": "06h5nyxw72z3w5a62y59332w2xg90sm3c2j6na7vvf7nark7vb8v",
"rev": "bedd19f3c3d745c3da8451a35c7bfc5f48d07ee6",
"date": "2022-11-05T17:27:50-05:00",
"path": "/nix/store/ldklarlvv3jlxsfi7gnqmim7csnxp2qf-tree-sitter-julia",
"sha256": "0cnp0rff6igjfz9i8ckffj9r1fr2nzdw82hag6dml331z7nbjjkf",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,

View File

@ -1,9 +1,9 @@
{
"url": "https://github.com/ganezdragon/tree-sitter-perl",
"rev": "ff5c3108083af6fcb7575e32a7558b8165a05bcd",
"date": "2022-07-18T20:23:41+05:30",
"path": "/nix/store/29ijys20vg6qyc2999vjiylwi9nrq3y4-tree-sitter-perl",
"sha256": "1zsffd55sldc1148wyjm0kh8knm4849wgwvdvwhchpzn6ji6yf8i",
"rev": "749d26fe13fb131b92e6515416096e572575b981",
"date": "2022-11-05T19:54:52+05:30",
"path": "/nix/store/b2w0s5livx7ysni6jlwwpmkd0f3wvqnh-tree-sitter-perl",
"sha256": "1ldl83nia3ij7ps5nx5fqzz5pzwzcmphajjhjf1vnrbm11zfzqjl",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,

View File

@ -1,9 +1,9 @@
{
"url": "https://github.com/6cdh/tree-sitter-scheme",
"rev": "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9",
"date": "2022-09-30T20:37:24+08:00",
"path": "/nix/store/gra9hiqd3rqgvvq10m3z6lzjf0y0lfz0-tree-sitter-scheme",
"sha256": "1pk1q8lmgj2mh7fmyvsr610qdv1c7nmfqdbr1bln1ar356dv6zrb",
"rev": "bdcd2c8496701153506a9e3e1b76dfed852873ba",
"date": "2022-11-06T17:17:49+08:00",
"path": "/nix/store/l096qb2872kab34avgscn9bwizrzail5-tree-sitter-scheme",
"sha256": "12knvhmayck9da3zj2w55al4yjhkkr9gxmfdmrjiz7vn9wc1dxr9",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,

View File

@ -1,9 +1,9 @@
{
"url": "https://github.com/m-novikov/tree-sitter-sql",
"rev": "218b672499729ef71e4d66a949e4a1614488aeaa",
"date": "2022-06-30T19:50:55+02:00",
"path": "/nix/store/rcdcgwb28jblgb65k5zjw5zgmigiqjfl-tree-sitter-sql",
"sha256": "1j68h5jzc0d3a44v5mw005lh3zsrh0salfzydl9br1n8byl1awms",
"url": "https://github.com/derekstride/tree-sitter-sql",
"rev": "70c50264ae022193adb364ffa7a767d765ed9857",
"date": "2022-11-02T09:36:19-04:00",
"path": "/nix/store/f1pg3pf4fyfmls30l1ma1nlwq61fxxqs-tree-sitter-sql",
"sha256": "16s58bvll2r80zga63fjzjbkfxm3zdr3vljjk69cvjwnpy668yfh",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,

View File

@ -31,8 +31,6 @@ let
"tree-sitter-scala"
"tree-sitter-ocaml"
"tree-sitter-julia"
"tree-sitter-agda"
"tree-sitter-fluent"
"tree-sitter-html"
"tree-sitter-haskell"
"tree-sitter-regex"
@ -73,6 +71,10 @@ let
"tree-sitter-graph"
# abandoned
"tree-sitter-swift"
# abandoned
"tree-sitter-agda"
# abandoned
"tree-sitter-fluent"
];
ignoredTreeSitterOrgReposJson = jsonFile "ignored-tree-sitter-org-repos" ignoredTreeSitterOrgRepos;
@ -137,7 +139,7 @@ let
repo = "tree-sitter-svelte";
};
"tree-sitter-sql" = {
orga = "m-novikov";
orga = "derekstride";
repo = "tree-sitter-sql";
};
"tree-sitter-vim" = {

View File

@ -1,10 +1,12 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, libusb
, libusb1
, libftdi
, cargo-readme
, pkg-config
, AppKit
}:
rustPlatform.buildRustPackage rec {
@ -12,7 +14,9 @@ rustPlatform.buildRustPackage rec {
version = "unstable-2022-09-15";
nativeBuildInputs = [ pkg-config cargo-readme ];
buildInputs = [ libusb libftdi ];
buildInputs = [ libusb1 libftdi ] ++ lib.optionals stdenv.isDarwin [
AppKit
];
src = fetchFromGitHub {
owner = "oxidecomputer";
@ -21,7 +25,7 @@ rustPlatform.buildRustPackage rec {
sha256 = "sha256-yW7QcxTWbL2YsV2bvfhbqQ2nawlPQbYxBfIGCWo28GY=";
};
cargoSha256 = "sha256-UhO8VO3OCfYc8Xq/P+l9f5ZrhOD/TBzSClAeAXLJLlc=";
cargoSha256 = "sha256-IurLI0ZQNpmiYwfcMZuxi7FWtSX+Ts7GYWFwUfD+Ji8=";
meta = with lib; {
description = "Debugger for Hubris";

View File

@ -1,13 +1,13 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, sq }:
buildGoModule rec {
pname = "sq";
version = "0.15.6";
version = "0.15.11";
src = fetchFromGitHub {
owner = "neilotoole";
repo = pname;
rev = "v${version}";
sha256 = "sha256-QEg80di2DmMfIrvsRFp7nELs7LiJRVa/wENDnf1zQ2Y=";
sha256 = "sha256-sYaQb7MFeTgJ/WPuCuMYjLcgmO/FhMGgOvY1HfGh2ag=";
};
nativeBuildInputs = [ installShellFiles ];

View File

@ -1,6 +1,6 @@
# This file is autogenerated! Run ./update.sh to regenerate.
{
version = "20221012";
sourceHash = "sha256-Lm7MHAgybnyYL668KJ2MMFNA4tGAu5NGK+jSkhOj890=";
outputHash = "sha256-xk5n9mQHpM+nNv8WqSaPpcsm9B8Gr4fGJouRWEfM2z0=";
version = "20221109";
sourceHash = "sha256-77xRUo4g24j5rGWYzVn/DZ1rfY+Ks9cmZ/+GCHELP5E=";
outputHash = "sha256-pPhqbi4PRr+0FQ7K8M/SibgYeI45spcdqgb5garyJo8=";
}

View File

@ -1,784 +0,0 @@
commit 280858b0bb3384b9ec06b455e196b453888bd6b8
Author: Tejun Heo <tj@kernel.org>
Date: Fri Mar 11 07:31:23 2016 -0500
sched: Misc preps for cgroup unified hierarchy interface
Make the following changes in preparation for the cpu controller
interface implementation for the unified hierarchy. This patch
doesn't cause any functional differences.
* s/cpu_stats_show()/cpu_cfs_stats_show()/
* s/cpu_files/cpu_legacy_files/
* Separate out cpuacct_stats_read() from cpuacct_stats_show(). While
at it, make the @val array u64 for consistency.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 154fd689fe02..57472485b79c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -8705,7 +8705,7 @@ static int __cfs_schedulable(struct task_group *tg, u64 period, u64 quota)
return ret;
}
-static int cpu_stats_show(struct seq_file *sf, void *v)
+static int cpu_cfs_stats_show(struct seq_file *sf, void *v)
{
struct task_group *tg = css_tg(seq_css(sf));
struct cfs_bandwidth *cfs_b = &tg->cfs_bandwidth;
@@ -8745,7 +8745,7 @@ static u64 cpu_rt_period_read_uint(struct cgroup_subsys_state *css,
}
#endif /* CONFIG_RT_GROUP_SCHED */
-static struct cftype cpu_files[] = {
+static struct cftype cpu_legacy_files[] = {
#ifdef CONFIG_FAIR_GROUP_SCHED
{
.name = "shares",
@@ -8766,7 +8766,7 @@ static struct cftype cpu_files[] = {
},
{
.name = "stat",
- .seq_show = cpu_stats_show,
+ .seq_show = cpu_cfs_stats_show,
},
#endif
#ifdef CONFIG_RT_GROUP_SCHED
@@ -8791,7 +8791,7 @@ struct cgroup_subsys cpu_cgrp_subsys = {
.fork = cpu_cgroup_fork,
.can_attach = cpu_cgroup_can_attach,
.attach = cpu_cgroup_attach,
- .legacy_cftypes = cpu_files,
+ .legacy_cftypes = cpu_legacy_files,
.early_init = true,
};
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index bc0b309c3f19..d1e5dd0b3a64 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -276,26 +276,33 @@ static int cpuacct_all_seq_show(struct seq_file *m, void *V)
return 0;
}
-static int cpuacct_stats_show(struct seq_file *sf, void *v)
+static void cpuacct_stats_read(struct cpuacct *ca,
+ u64 (*val)[CPUACCT_STAT_NSTATS])
{
- struct cpuacct *ca = css_ca(seq_css(sf));
- s64 val[CPUACCT_STAT_NSTATS];
int cpu;
- int stat;
- memset(val, 0, sizeof(val));
+ memset(val, 0, sizeof(*val));
+
for_each_possible_cpu(cpu) {
u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
- val[CPUACCT_STAT_USER] += cpustat[CPUTIME_USER];
- val[CPUACCT_STAT_USER] += cpustat[CPUTIME_NICE];
- val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SYSTEM];
- val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_IRQ];
- val[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SOFTIRQ];
+ (*val)[CPUACCT_STAT_USER] += cpustat[CPUTIME_USER];
+ (*val)[CPUACCT_STAT_USER] += cpustat[CPUTIME_NICE];
+ (*val)[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SYSTEM];
+ (*val)[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_IRQ];
+ (*val)[CPUACCT_STAT_SYSTEM] += cpustat[CPUTIME_SOFTIRQ];
}
+}
+
+static int cpuacct_stats_show(struct seq_file *sf, void *v)
+{
+ u64 val[CPUACCT_STAT_NSTATS];
+ int stat;
+
+ cpuacct_stats_read(css_ca(seq_css(sf)), &val);
for (stat = 0; stat < CPUACCT_STAT_NSTATS; stat++) {
- seq_printf(sf, "%s %lld\n",
+ seq_printf(sf, "%s %llu\n",
cpuacct_stat_desc[stat],
cputime64_to_clock_t(val[stat]));
}
commit 015cbdcb90034fd566d00de9d3d405613da3cd26
Author: Tejun Heo <tj@kernel.org>
Date: Fri Mar 11 07:31:23 2016 -0500
sched: Implement interface for cgroup unified hierarchy
While the cpu controller doesn't have any functional problems, there
are a couple interface issues which can be addressed in the v2
interface.
* cpuacct being a separate controller. This separation is artificial
and rather pointless as demonstrated by most use cases co-mounting
the two controllers. It also forces certain information to be
accounted twice.
* Use of different time units. Writable control knobs use
microseconds, some stat fields use nanoseconds while other cpuacct
stat fields use centiseconds.
* Control knobs which can't be used in the root cgroup still show up
in the root.
* Control knob names and semantics aren't consistent with other
controllers.
This patchset implements cpu controller's interface on the unified
hierarchy which adheres to the controller file conventions described
in Documentation/cgroups/unified-hierarchy.txt. Overall, the
following changes are made.
* cpuacct is implictly enabled and disabled by cpu and its information
is reported through "cpu.stat" which now uses microseconds for all
time durations. All time duration fields now have "_usec" appended
to them for clarity. While this doesn't solve the double accounting
immediately, once majority of users switch to v2, cpu can directly
account and report the relevant stats and cpuacct can be disabled on
the unified hierarchy.
Note that cpuacct.usage_percpu is currently not included in
"cpu.stat". If this information is actually called for, it can be
added later.
* "cpu.shares" is replaced with "cpu.weight" and operates on the
standard scale defined by CGROUP_WEIGHT_MIN/DFL/MAX (1, 100, 10000).
The weight is scaled to scheduler weight so that 100 maps to 1024
and the ratio relationship is preserved - if weight is W and its
scaled value is S, W / 100 == S / 1024. While the mapped range is a
bit smaller than the orignal scheduler weight range, the dead zones
on both sides are relatively small and covers wider range than the
nice value mappings. This file doesn't make sense in the root
cgroup and isn't create on root.
* "cpu.cfs_quota_us" and "cpu.cfs_period_us" are replaced by "cpu.max"
which contains both quota and period.
* "cpu.rt_runtime_us" and "cpu.rt_period_us" are replaced by
"cpu.rt.max" which contains both runtime and period.
v2: cpu_stats_show() was incorrectly using CONFIG_FAIR_GROUP_SCHED for
CFS bandwidth stats and also using raw division for u64. Use
CONFIG_CFS_BANDWITH and do_div() instead.
The semantics of "cpu.rt.max" is not fully decided yet. Dropped
for now.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 57472485b79c..c0ae869f51c4 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -8784,6 +8784,139 @@ static struct cftype cpu_legacy_files[] = {
{ } /* terminate */
};
+static int cpu_stats_show(struct seq_file *sf, void *v)
+{
+ cpuacct_cpu_stats_show(sf);
+
+#ifdef CONFIG_CFS_BANDWIDTH
+ {
+ struct task_group *tg = css_tg(seq_css(sf));
+ struct cfs_bandwidth *cfs_b = &tg->cfs_bandwidth;
+ u64 throttled_usec;
+
+ throttled_usec = cfs_b->throttled_time;
+ do_div(throttled_usec, NSEC_PER_USEC);
+
+ seq_printf(sf, "nr_periods %d\n"
+ "nr_throttled %d\n"
+ "throttled_usec %llu\n",
+ cfs_b->nr_periods, cfs_b->nr_throttled,
+ throttled_usec);
+ }
+#endif
+ return 0;
+}
+
+#ifdef CONFIG_FAIR_GROUP_SCHED
+static u64 cpu_weight_read_u64(struct cgroup_subsys_state *css,
+ struct cftype *cft)
+{
+ struct task_group *tg = css_tg(css);
+ u64 weight = scale_load_down(tg->shares);
+
+ return DIV_ROUND_CLOSEST_ULL(weight * CGROUP_WEIGHT_DFL, 1024);
+}
+
+static int cpu_weight_write_u64(struct cgroup_subsys_state *css,
+ struct cftype *cftype, u64 weight)
+{
+ /*
+ * cgroup weight knobs should use the common MIN, DFL and MAX
+ * values which are 1, 100 and 10000 respectively. While it loses
+ * a bit of range on both ends, it maps pretty well onto the shares
+ * value used by scheduler and the round-trip conversions preserve
+ * the original value over the entire range.
+ */
+ if (weight < CGROUP_WEIGHT_MIN || weight > CGROUP_WEIGHT_MAX)
+ return -ERANGE;
+
+ weight = DIV_ROUND_CLOSEST_ULL(weight * 1024, CGROUP_WEIGHT_DFL);
+
+ return sched_group_set_shares(css_tg(css), scale_load(weight));
+}
+#endif
+
+static void __maybe_unused cpu_period_quota_print(struct seq_file *sf,
+ long period, long quota)
+{
+ if (quota < 0)
+ seq_puts(sf, "max");
+ else
+ seq_printf(sf, "%ld", quota);
+
+ seq_printf(sf, " %ld\n", period);
+}
+
+/* caller should put the current value in *@periodp before calling */
+static int __maybe_unused cpu_period_quota_parse(char *buf,
+ u64 *periodp, u64 *quotap)
+{
+ char tok[21]; /* U64_MAX */
+
+ if (!sscanf(buf, "%s %llu", tok, periodp))
+ return -EINVAL;
+
+ *periodp *= NSEC_PER_USEC;
+
+ if (sscanf(tok, "%llu", quotap))
+ *quotap *= NSEC_PER_USEC;
+ else if (!strcmp(tok, "max"))
+ *quotap = RUNTIME_INF;
+ else
+ return -EINVAL;
+
+ return 0;
+}
+
+#ifdef CONFIG_CFS_BANDWIDTH
+static int cpu_max_show(struct seq_file *sf, void *v)
+{
+ struct task_group *tg = css_tg(seq_css(sf));
+
+ cpu_period_quota_print(sf, tg_get_cfs_period(tg), tg_get_cfs_quota(tg));
+ return 0;
+}
+
+static ssize_t cpu_max_write(struct kernfs_open_file *of,
+ char *buf, size_t nbytes, loff_t off)
+{
+ struct task_group *tg = css_tg(of_css(of));
+ u64 period = tg_get_cfs_period(tg);
+ u64 quota;
+ int ret;
+
+ ret = cpu_period_quota_parse(buf, &period, &quota);
+ if (!ret)
+ ret = tg_set_cfs_bandwidth(tg, period, quota);
+ return ret ?: nbytes;
+}
+#endif
+
+static struct cftype cpu_files[] = {
+ {
+ .name = "stat",
+ .flags = CFTYPE_NOT_ON_ROOT,
+ .seq_show = cpu_stats_show,
+ },
+#ifdef CONFIG_FAIR_GROUP_SCHED
+ {
+ .name = "weight",
+ .flags = CFTYPE_NOT_ON_ROOT,
+ .read_u64 = cpu_weight_read_u64,
+ .write_u64 = cpu_weight_write_u64,
+ },
+#endif
+#ifdef CONFIG_CFS_BANDWIDTH
+ {
+ .name = "max",
+ .flags = CFTYPE_NOT_ON_ROOT,
+ .seq_show = cpu_max_show,
+ .write = cpu_max_write,
+ },
+#endif
+ { } /* terminate */
+};
+
struct cgroup_subsys cpu_cgrp_subsys = {
.css_alloc = cpu_cgroup_css_alloc,
.css_released = cpu_cgroup_css_released,
@@ -8792,7 +8925,15 @@ struct cgroup_subsys cpu_cgrp_subsys = {
.can_attach = cpu_cgroup_can_attach,
.attach = cpu_cgroup_attach,
.legacy_cftypes = cpu_legacy_files,
+ .dfl_cftypes = cpu_files,
.early_init = true,
+#ifdef CONFIG_CGROUP_CPUACCT
+ /*
+ * cpuacct is enabled together with cpu on the unified hierarchy
+ * and its stats are reported through "cpu.stat".
+ */
+ .depends_on = 1 << cpuacct_cgrp_id,
+#endif
};
#endif /* CONFIG_CGROUP_SCHED */
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index d1e5dd0b3a64..57f390514c39 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -347,6 +347,31 @@ static struct cftype files[] = {
{ } /* terminate */
};
+/* used to print cpuacct stats in cpu.stat on the unified hierarchy */
+void cpuacct_cpu_stats_show(struct seq_file *sf)
+{
+ struct cgroup_subsys_state *css;
+ u64 usage, val[CPUACCT_STAT_NSTATS];
+
+ css = cgroup_get_e_css(seq_css(sf)->cgroup, &cpuacct_cgrp_subsys);
+
+ usage = cpuusage_read(css, seq_cft(sf));
+ cpuacct_stats_read(css_ca(css), &val);
+
+ val[CPUACCT_STAT_USER] *= TICK_NSEC;
+ val[CPUACCT_STAT_SYSTEM] *= TICK_NSEC;
+ do_div(usage, NSEC_PER_USEC);
+ do_div(val[CPUACCT_STAT_USER], NSEC_PER_USEC);
+ do_div(val[CPUACCT_STAT_SYSTEM], NSEC_PER_USEC);
+
+ seq_printf(sf, "usage_usec %llu\n"
+ "user_usec %llu\n"
+ "system_usec %llu\n",
+ usage, val[CPUACCT_STAT_USER], val[CPUACCT_STAT_SYSTEM]);
+
+ css_put(css);
+}
+
/*
* charge this task's execution time to its accounting group.
*
diff --git a/kernel/sched/cpuacct.h b/kernel/sched/cpuacct.h
index ba72807c73d4..ddf7af466d35 100644
--- a/kernel/sched/cpuacct.h
+++ b/kernel/sched/cpuacct.h
@@ -2,6 +2,7 @@
extern void cpuacct_charge(struct task_struct *tsk, u64 cputime);
extern void cpuacct_account_field(struct task_struct *tsk, int index, u64 val);
+extern void cpuacct_cpu_stats_show(struct seq_file *sf);
#else
@@ -14,4 +15,8 @@ cpuacct_account_field(struct task_struct *tsk, int index, u64 val)
{
}
+static inline void cpuacct_cpu_stats_show(struct seq_file *sf)
+{
+}
+
#endif
commit 5019fe3d7ec456b58d451ef06fe1f81d7d9f28a9
Author: Tejun Heo <tj@kernel.org>
Date: Fri Aug 5 12:41:01 2016 -0400
cgroup: add documentation regarding CPU controller cgroup v2 support
Signed-off-by: Tejun Heo <tj@kernel.org>
diff --git a/Documentation/cgroup-v2-cpu.txt b/Documentation/cgroup-v2-cpu.txt
new file mode 100644
index 000000000000..1ed7032d4472
--- /dev/null
+++ b/Documentation/cgroup-v2-cpu.txt
@@ -0,0 +1,368 @@
+
+
+CPU Controller on Control Group v2
+
+August, 2016 Tejun Heo <tj@kernel.org>
+
+
+While most controllers have support for cgroup v2 now, the CPU
+controller support is not upstream yet due to objections from the
+scheduler maintainers on the basic designs of cgroup v2. This
+document explains the current situation as well as an interim
+solution, and details the disagreements and arguments. The latest
+version of this document can be found at the following URL.
+
+ https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/cgroup-v2-cpu.txt?h=cgroup-v2-cpu
+
+This document was posted to the linux-kernel and cgroup mailing lists.
+Unfortunately, no consensus was reached as of Oct, 2016. The thread
+can be found at the following URL.
+
+ http://lkml.kernel.org/r/20160805170752.GK2542@mtj.duckdns.org
+
+
+CONTENTS
+
+1. Current Situation and Interim Solution
+2. Disagreements and Arguments
+ 2-1. Contentious Restrictions
+ 2-1-1. Process Granularity
+ 2-1-2. No Internal Process Constraint
+ 2-2. Impact on CPU Controller
+ 2-2-1. Impact of Process Granularity
+ 2-2-2. Impact of No Internal Process Constraint
+ 2-3. Arguments for cgroup v2
+3. Way Forward
+4. References
+
+
+1. Current Situation and Interim Solution
+
+All objections from the scheduler maintainers apply to cgroup v2 core
+design, and there are no known objections to the specifics of the CPU
+controller cgroup v2 interface. The only blocked part is changes to
+expose the CPU controller interface on cgroup v2, which comprises the
+following two patches:
+
+ [1] sched: Misc preps for cgroup unified hierarchy interface
+ [2] sched: Implement interface for cgroup unified hierarchy
+
+The necessary changes are superficial and implement the interface
+files on cgroup v2. The combined diffstat is as follows.
+
+ kernel/sched/core.c | 149 +++++++++++++++++++++++++++++++++++++++++++++++--
+ kernel/sched/cpuacct.c | 57 ++++++++++++------
+ kernel/sched/cpuacct.h | 5 +
+ 3 files changed, 189 insertions(+), 22 deletions(-)
+
+The patches are easy to apply and forward-port. The following git
+branch will always carry the two patches on top of the latest release
+of the upstream kernel.
+
+ git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/cgroup-v2-cpu
+
+There also are versioned branches going back to v4.4.
+
+ git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/cgroup-v2-cpu-$KERNEL_VER
+
+While it's difficult to tell whether the CPU controller support will
+be merged, there are crucial resource control features in cgroup v2
+that are only possible due to the design choices that are being
+objected to, and every effort will be made to ease enabling the CPU
+controller cgroup v2 support out-of-tree for parties which choose to.
+
+
+2. Disagreements and Arguments
+
+There have been several lengthy discussion threads [3][4] on LKML
+around the structural constraints of cgroup v2. The two that affect
+the CPU controller are process granularity and no internal process
+constraint. Both arise primarily from the need for common resource
+domain definition across different resources.
+
+The common resource domain is a powerful concept in cgroup v2 that
+allows controllers to make basic assumptions about the structural
+organization of processes and controllers inside the cgroup hierarchy,
+and thus solve problems spanning multiple types of resources. The
+prime example for this is page cache writeback: dirty page cache is
+regulated through throttling buffered writers based on memory
+availability, and initiating batched write outs to the disk based on
+IO capacity. Tracking and controlling writeback inside a cgroup thus
+requires the direct cooperation of the memory and the IO controller.
+
+This easily extends to other areas, such as CPU cycles consumed while
+performing memory reclaim or IO encryption.
+
+
+2-1. Contentious Restrictions
+
+For controllers of different resources to work together, they must
+agree on a common organization. This uniform model across controllers
+imposes two contentious restrictions on the CPU controller: process
+granularity and the no-internal-process constraint.
+
+
+ 2-1-1. Process Granularity
+
+ For memory, because an address space is shared between all threads
+ of a process, the terminal consumer is a process, not a thread.
+ Separating the threads of a single process into different memory
+ control domains doesn't make semantical sense. cgroup v2 ensures
+ that all controller can agree on the same organization by requiring
+ that threads of the same process belong to the same cgroup.
+
+ There are other reasons to enforce process granularity. One
+ important one is isolating system-level management operations from
+ in-process application operations. The cgroup interface, being a
+ virtual filesystem, is very unfit for multiple independent
+ operations taking place at the same time as most operations have to
+ be multi-step and there is no way to synchronize multiple accessors.
+ See also [5] Documentation/cgroup-v2.txt, "R-2. Thread Granularity"
+
+
+ 2-1-2. No Internal Process Constraint
+
+ cgroup v2 does not allow processes to belong to any cgroup which has
+ child cgroups when resource controllers are enabled on it (the
+ notable exception being the root cgroup itself). This is because,
+ for some resources, a resource domain (cgroup) is not directly
+ comparable to the terminal consumer (process/task) of said resource,
+ and so putting the two into a sibling relationship isn't meaningful.
+
+ - Differing Control Parameters and Capabilities
+
+ A cgroup controller has different resource control parameters and
+ capabilities from a terminal consumer, be that a task or process.
+ There are a couple cases where a cgroup control knob can be mapped
+ to a per-task or per-process API but they are exceptions and the
+ mappings aren't obvious even in those cases.
+
+ For example, task priorities (also known as nice values) set
+ through setpriority(2) are mapped to the CPU controller
+ "cpu.shares" values. However, how exactly the two ranges map and
+ even the fact that they map to each other at all are not obvious.
+
+ The situation gets further muddled when considering other resource
+ types and control knobs. IO priorities set through ioprio_set(2)
+ cannot be mapped to IO controller weights and most cgroup resource
+ control knobs including the bandwidth control knobs of the CPU
+ controller don't have counterparts in the terminal consumers.
+
+ - Anonymous Resource Consumption
+
+ For CPU, every time slice consumed from inside a cgroup, which
+ comprises most but not all of consumed CPU time for the cgroup,
+ can be clearly attributed to a specific task or process. Because
+ these two types of entities are directly comparable as consumers
+ of CPU time, it's theoretically possible to mix tasks and cgroups
+ on the same tree levels and let them directly compete for the time
+ quota available to their common ancestor.
+
+ However, the same can't be said for resource types like memory or
+ IO: the memory consumed by the page cache, for example, can be
+ tracked on a per-cgroup level, but due to mismatches in lifetimes
+ of involved objects (page cache can persist long after processes
+ are gone), shared usages and the implementation overhead of
+ tracking persistent state, it can no longer be attributed to
+ individual processes after instantiation. Consequently, any IO
+ incurred by page cache writeback can be attributed to a cgroup,
+ but not to the individual consumers inside the cgroup.
+
+ For memory and IO, this makes a resource domain (cgroup) an object
+ of a fundamentally different type than a terminal consumer
+ (process). A process can't be a first class object in the resource
+ distribution graph as its total resource consumption can't be
+ described without the containing resource domain.
+
+ Disallowing processes in internal cgroups avoids competition between
+ cgroups and processes which cannot be meaningfully defined for these
+ resources. All resource control takes place among cgroups and a
+ terminal consumer interacts with the containing cgroup the same way
+ it would with the system without cgroup.
+
+ Root cgroup is exempt from this constraint, which is in line with
+ how root cgroup is handled in general - it's excluded from cgroup
+ resource accounting and control.
+
+
+Enforcing process granularity and no internal process constraint
+allows all controllers to be on the same footing in terms of resource
+distribution hierarchy.
+
+
+2-2. Impact on CPU Controller
+
+As indicated earlier, the CPU controller's resource distribution graph
+is the simplest. Every schedulable resource consumption can be
+attributed to a specific task. In addition, for weight based control,
+the per-task priority set through setpriority(2) can be translated to
+and from a per-cgroup weight. As such, the CPU controller can treat a
+task and a cgroup symmetrically, allowing support for any tree layout
+of cgroups and tasks. Both process granularity and the no internal
+process constraint restrict how the CPU controller can be used.
+
+
+ 2-2-1. Impact of Process Granularity
+
+ Process granularity prevents tasks belonging to the same process to
+ be assigned to different cgroups. It was pointed out [6] that this
+ excludes the valid use case of hierarchical CPU distribution within
+ processes.
+
+ To address this issue, the rgroup (resource group) [7][8][9]
+ interface, an extension of the existing setpriority(2) API, was
+ proposed, which is in line with other programmable priority
+ mechanisms and eliminates the risk of in-application configuration
+ and system configuration stepping on each other's toes.
+ Unfortunately, the proposal quickly turned into discussions around
+ cgroup v2 design decisions [4] and no consensus could be reached.
+
+
+ 2-2-2. Impact of No Internal Process Constraint
+
+ The no internal process constraint disallows tasks from competing
+ directly against cgroups. Here is an excerpt from Peter Zijlstra
+ pointing out the issue [10] - R, L and A are cgroups; t1, t2, t3 and
+ t4 are tasks:
+
+
+ R
+ / | \
+ t1 t2 A
+ / \
+ t3 t4
+
+
+ Is fundamentally different from:
+
+
+ R
+ / \
+ L A
+ / \ / \
+ t1 t2 t3 t4
+
+
+ Because if in the first hierarchy you add a task (t5) to R, all of
+ its A will run at 1/4th of total bandwidth where before it had
+ 1/3rd, whereas with the second example, if you add our t5 to L, A
+ doesn't get any less bandwidth.
+
+
+ It is true that the trees are semantically different from each other
+ and the symmetric handling of tasks and cgroups is aesthetically
+ pleasing. However, it isn't clear what the practical usefulness of
+ a layout with direct competition between tasks and cgroups would be,
+ considering that number and behavior of tasks are controlled by each
+ application, and cgroups primarily deal with system level resource
+ distribution; changes in the number of active threads would directly
+ impact resource distribution. Real world use cases of such layouts
+ could not be established during the discussions.
+
+
+2-3. Arguments for cgroup v2
+
+There are strong demands for comprehensive hierarchical resource
+control across all major resources, and establishing a common resource
+hierarchy is an essential step. As with most engineering decisions,
+common resource hierarchy definition comes with its trade-offs. With
+cgroup v2, the trade-offs are in the form of structural constraints
+which, among others, restrict the CPU controller's space of possible
+configurations.
+
+However, even with the restrictions, cgroup v2, in combination with
+rgroup, covers most of identified real world use cases while enabling
+new important use cases of resource control across multiple resource
+types that were fundamentally broken previously.
+
+Furthermore, for resource control, treating resource domains as
+objects of a different type from terminal consumers has important
+advantages - it can account for resource consumptions which are not
+tied to any specific terminal consumer, be that a task or process, and
+allows decoupling resource distribution controls from in-application
+APIs. Even the CPU controller may benefit from it as the kernel can
+consume significant amount of CPU cycles in interrupt context or tasks
+shared across multiple resource domains (e.g. softirq).
+
+Finally, it's important to note that enabling cgroup v2 support for
+the CPU controller doesn't block use cases which require the features
+which are not available on cgroup v2. Unlikely, but should anybody
+actually rely on the CPU controller's symmetric handling of tasks and
+cgroups, backward compatibility is and will be maintained by being
+able to disconnect the controller from the cgroup v2 hierarchy and use
+it standalone. This also holds for cpuset which is often used in
+highly customized configurations which might be a poor fit for common
+resource domains.
+
+The required changes are minimal, the benefits for the target use
+cases are critical and obvious, and use cases which have to use v1 can
+continue to do so.
+
+
+3. Way Forward
+
+cgroup v2 primarily aims to solve the problem of comprehensive
+hierarchical resource control across all major computing resources,
+which is one of the core problems of modern server infrastructure
+engineering. The trade-offs that cgroup v2 took are results of
+pursuing that goal and gaining a better understanding of the nature of
+resource control in the process.
+
+I believe that real world usages will prove cgroup v2's model right,
+considering the crucial pieces of comprehensive resource control that
+cannot be implemented without common resource domains. This is not to
+say that cgroup v2 is fixed in stone and can't be updated; if there is
+an approach which better serves both comprehensive resource control
+and the CPU controller's flexibility, we will surely move towards
+that. It goes without saying that discussions around such approach
+should consider practical aspects of resource control as a whole
+rather than absolutely focusing on a particular controller.
+
+Until such consensus can be reached, the CPU controller cgroup v2
+support will be maintained out of the mainline kernel in an easily
+accessible form. If there is anything cgroup developers can do to
+ease the pain, please feel free to contact us on the cgroup mailing
+list at cgroups@vger.kernel.org.
+
+
+4. References
+
+[1] http://lkml.kernel.org/r/20160105164834.GE5995@mtj.duckdns.org
+ [PATCH 1/2] sched: Misc preps for cgroup unified hierarchy interface
+ Tejun Heo <tj@kernel.org>
+
+[2] http://lkml.kernel.org/r/20160105164852.GF5995@mtj.duckdns.org
+ [PATCH 2/2] sched: Implement interface for cgroup unified hierarchy
+ Tejun Heo <tj@kernel.org>
+
+[3] http://lkml.kernel.org/r/1438641689-14655-4-git-send-email-tj@kernel.org
+ [PATCH 3/3] sched: Implement interface for cgroup unified hierarchy
+ Tejun Heo <tj@kernel.org>
+
+[4] http://lkml.kernel.org/r/20160407064549.GH3430@twins.programming.kicks-ass.net
+ Re: [PATCHSET RFC cgroup/for-4.6] cgroup, sched: implement resource group and PRIO_RGRP
+ Peter Zijlstra <peterz@infradead.org>
+
+[5] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/cgroup-v2.txt
+ Control Group v2
+ Tejun Heo <tj@kernel.org>
+
+[6] http://lkml.kernel.org/r/CAPM31RJNy3jgG=DYe6GO=wyL4BPPxwUm1f2S6YXacQmo7viFZA@mail.gmail.com
+ Re: [PATCH 3/3] sched: Implement interface for cgroup unified hierarchy
+ Paul Turner <pjt@google.com>
+
+[7] http://lkml.kernel.org/r/20160105154503.GC5995@mtj.duckdns.org
+ [RFD] cgroup: thread granularity support for cpu controller
+ Tejun Heo <tj@kernel.org>
+
+[8] http://lkml.kernel.org/r/1457710888-31182-1-git-send-email-tj@kernel.org
+ [PATCHSET RFC cgroup/for-4.6] cgroup, sched: implement resource group and PRIO_RGRP
+ Tejun Heo <tj@kernel.org>
+
+[9] http://lkml.kernel.org/r/20160311160522.GA24046@htj.duckdns.org
+ Example program for PRIO_RGRP
+ Tejun Heo <tj@kernel.org>
+
+[10] http://lkml.kernel.org/r/20160407082810.GN3430@twins.programming.kicks-ass.net
+ Re: [PATCHSET RFC cgroup/for-4.6] cgroup, sched: implement resource
+ Peter Zijlstra <peterz@infradead.org>

View File

@ -1,12 +0,0 @@
{ buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
buildLinux (args // rec {
version = "4.9.332";
extraMeta.branch = "4.9";
extraMeta.broken = stdenv.isAarch64;
src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "1kiqa9kw4932n5qglkyymsrak849wbbszw9rnq1aygmdinjz4c8i";
};
} // (args.argsOverride or {}))

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "routinator";
version = "0.11.3";
version = "0.12.0";
src = fetchFromGitHub {
owner = "NLnetLabs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-zQ68PN3CbLx6Z84jFeuAck6mzp9f3sbALgVqssecsUU=";
sha256 = "sha256-anc2nFZXYO0Ab5xwDasXGw8/SluNt15C6pRmQfUJVDs=";
};
cargoSha256 = "sha256-M8JO4E8TwLbPGdwslO2Uw+ooAJkIoyc1t1wgxw8CFF0=";
cargoSha256 = "sha256-EyrQR9gevInCI4kBZvUW5U9FrE0ZHbRUFyLKVZefKEE=";
buildInputs = lib.optionals stdenv.isDarwin [ Security ];

View File

@ -1,7 +1,6 @@
{ lib, stdenv
, buildPackages
, fetchurl
, wafHook
, pkg-config
, bison
, flex
@ -46,11 +45,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "samba";
version = "4.15.9";
version = "4.17.2";
src = fetchurl {
url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
sha256 = "sha256-loKixxwv8lOqJ8uwEmDqyJf/YlzznbIO4yBz5Thv4hk=";
hash = "sha256-5V3fTVF4+MhDFqv1PF7dezU5njt9hry4G3UmHIJ7s7g=";
};
outputs = [ "out" "dev" "man" ];
@ -60,17 +59,16 @@ stdenv.mkDerivation rec {
./patch-source3__libads__kerberos_keytab.c.patch
./4.x-no-persistent-install-dynconfig.patch
./4.x-fix-makeflags-parsing.patch
./build-find-pre-built-heimdal-build-tools-in-case-of-.patch
];
nativeBuildInputs = [
python3Packages.python
wafHook
pkg-config
bison
flex
perl
perl.pkgs.ParseYapp
perl.pkgs.JSON
libxslt
buildPackages.stdenv.cc
heimdal
@ -108,8 +106,6 @@ stdenv.mkDerivation rec {
++ optional enableAcl acl
++ optional enablePam pam;
wafPath = "buildtools/bin/waf";
postPatch = ''
# Removes absolute paths in scripts
sed -i 's,/sbin/,,g' ctdb/config/functions
@ -124,7 +120,7 @@ stdenv.mkDerivation rec {
export PKGCONFIG="$PKG_CONFIG"
'';
wafConfigureFlags = [
configureFlags = [
"--with-static-modules=NONE"
"--with-shared-modules=ALL"
"--enable-fhs"

View File

@ -1,95 +0,0 @@
From f3f98c6ecc6febd8e79696672668e33d11fc19cb Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Wed, 22 Sep 2021 09:42:42 +0200
Subject: [PATCH] build: find pre-built heimdal build tools in case of embedded
heimdal
This patch fixes the case of finding asn1_compile and compile_et for
building embedded heimdal, by setting
--bundled-libraries='!asn1_compile,!compile_et' as configure flags.
The Heimdal build tools compile_et and asn1_compile are needed *only*
if we use the embedded heimdal (otherwise we don't build heimdal and
use headers that have been generated by those tools elsewhere).
For cross-compilation with embedded heimdal, it is vital to use host build
tools, and so asn1_compile and compile_et must be supplied and not
built. One way of doing this would be to set the COMPILE_ET and
ASN1_COMPILE env vars to the location of supplied binaries. Another way,
which is more commonly used, is to exclude asn1_compile and compile_et
from bundled packages via the switch
-bundled-libraries='!asn1_compile,!compile_et'. When this is done,
the build script searches the path for those tools and sets the
ASN1_COMPILE and COMPILE_ET vars accordingly. (this is admittedly
kind of a round-about way of doing things but this has become the
de-facto standard amongst embedded distro builders).
In commit 8061983d4882f3ba3f12da71443b035d7b672eec, this process of
finding the binaris has been moved to be carried out only in the
system heimdal case. As explained above, we only need these tools,
and hence the check, in bundled mode.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14164
Signed-off-by: Uri Simchoni <uri@samba.org>
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Bachp: rebased for version 4.15.0]
# Conflicts:
# wscript_configure_system_heimdal
---
wscript_configure_embedded_heimdal | 11 +++++++++++
wscript_configure_system_heimdal | 11 -----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/wscript_configure_embedded_heimdal b/wscript_configure_embedded_heimdal
index 1c7801f705e..edcab15a88e 100644
--- a/wscript_configure_embedded_heimdal
+++ b/wscript_configure_embedded_heimdal
@@ -6,3 +6,14 @@ if not conf.env['BISON']:
conf.define('USING_EMBEDDED_HEIMDAL', 1)
conf.RECURSE('source4/heimdal_build')
+
+def check_system_heimdal_binary(name):
+ if conf.LIB_MAY_BE_BUNDLED(name):
+ return False
+ if not conf.find_program(name, var=name.upper()):
+ return False
+ conf.define('USING_SYSTEM_%s' % name.upper(), 1)
+ return True
+
+check_system_heimdal_binary("compile_et")
+check_system_heimdal_binary("asn1_compile")
diff --git a/wscript_configure_system_heimdal b/wscript_configure_system_heimdal
index 67d8804d0ff..20aee31aac7 100644
--- a/wscript_configure_system_heimdal
+++ b/wscript_configure_system_heimdal
@@ -37,14 +37,6 @@ def check_system_heimdal_lib(name, functions='', headers='', onlyif=None):
conf.define('USING_SYSTEM_%s' % name.upper(), 1)
return True
-def check_system_heimdal_binary(name):
- if conf.LIB_MAY_BE_BUNDLED(name):
- return False
- if not conf.find_program(name, var=name.upper()):
- return False
- conf.define('USING_SYSTEM_%s' % name.upper(), 1)
- return True
-
check_system_heimdal_lib("com_err", "com_right_r com_err", "com_err.h")
if check_system_heimdal_lib("roken", "rk_socket_set_reuseaddr", "roken.h"):
@@ -96,9 +88,6 @@ finally:
#if conf.CHECK_BUNDLED_SYSTEM('tommath', checkfunctions='mp_init', headers='tommath.h'):
# conf.define('USING_SYSTEM_TOMMATH', 1)
-check_system_heimdal_binary("compile_et")
-check_system_heimdal_binary("asn1_compile")
-
conf.env.KRB5_VENDOR = 'heimdal'
conf.define('USING_SYSTEM_KRB5', 1)
conf.define('USING_SYSTEM_HEIMDAL', 1)
--
2.33.0

View File

@ -61,6 +61,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/ducaale/xh";
changelog = "https://github.com/ducaale/xh/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ payas SuperSandro2000 ];
maintainers = with maintainers; [ payas ];
};
}

View File

@ -1,36 +1,31 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, efivar, popt }:
{ lib, stdenv, fetchFromGitHub, pkg-config, efivar, popt }:
stdenv.mkDerivation rec {
pname = "efibootmgr";
version = "17";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ efivar popt ];
version = "18";
src = fetchFromGitHub {
owner = "rhboot";
repo = "efibootmgr";
rev = version;
sha256 = "1niicijxg59rsmiw3rsjwy4bvi1n42dynvm01lnp9haixdzdpq03";
hash = "sha256-DYYQGALEn2+mRHgqCJsA7OQCF7xirIgQlWexZ9uoKcg=";
};
patches = [
(fetchpatch {
name = "remove-extra-decl.patch";
url = "https://github.com/rhboot/efibootmgr/commit/99b578501643377e0b1994b2a068b790d189d5ad.patch";
sha256 = "1sbijvlpv4khkix3vix9mbhzffj8lp8zpnbxm9gnzjz8yssz9p5h";
})
];
nativeBuildInputs = [ pkg-config ];
makeFlags = [ "EFIDIR=nixos" "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ];
buildInputs = [ efivar popt ];
makeFlags = [
"EFIDIR=nixos"
"PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config"
];
installFlags = [ "prefix=$(out)" ];
meta = with lib; {
description = "A Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager";
homepage = "https://github.com/rhboot/efibootmgr";
license = licenses.gpl2;
license = licenses.gpl2Only;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};

View File

@ -1,8 +1,8 @@
{ lib, stdenv, buildPackages, fetchFromGitHub, fetchurl, pkg-config, popt }:
{ lib, stdenv, buildPackages, fetchFromGitHub, pkg-config, popt, mandoc }:
stdenv.mkDerivation rec {
pname = "efivar";
version = "37";
version = "38";
outputs = [ "bin" "out" "dev" "man" ];
@ -10,42 +10,10 @@ stdenv.mkDerivation rec {
owner = "rhinstaller";
repo = "efivar";
rev = version;
sha256 = "1z2dw5x74wgvqgd8jvibfff0qhwkc53kxg54v12pzymyibagwf09";
hash = "sha256-A38BKGMK3Vo+85wzgxmzTjzZXtpcY9OpbZaONWnMYNk=";
};
patches = [
(fetchurl {
name = "r13y.patch";
url = "https://patch-diff.githubusercontent.com/raw/rhboot/efivar/pull/133.patch";
sha256 = "038cwldb8sqnal5l6mhys92cqv8x7j8rgsl8i4fiv9ih9znw26i6";
})
(fetchurl {
name = "fix-misaligned-pointer.patch";
url = "https://github.com/rhboot/efivar/commit/b98ba8921010d03f46704a476c69861515deb1ca.patch";
sha256 = "0ni9mz7y40a2wf1d1q5n9y5dhcbydxvfdhqic7zsmgnaxs3a0p27";
})
(fetchurl {
name = "fix-gcc9-error.patch";
url = "https://github.com/rhboot/efivar/commit/c3c553db85ff10890209d0fe48fb4856ad68e4e0.patch";
sha256 = "0lc38npydp069nlcga25wzzm204ww9l6mpjfn6wmhdfhn0pgjwky";
})
(fetchurl {
name = "remove_unused_variable.patch";
url = "https://github.com/rhboot/efivar/commit/fdb803402fb32fa6d020bac57a40c7efe4aabb7d.patch";
sha256 = "1xhy8v8ff9lyxb830n9hci2fbh7rfps6rwsqrjh4lw7316gwllsd";
})
(fetchurl {
name = "check_string_termination.patch";
url = "https://github.com/rhboot/efivar/commit/4e04afc2df9bbc26e5ab524b53a6f4f1e61d7c9e.patch";
sha256 = "1ajj11wwsvamfspq4naanvw08h63gr0g71q0dfbrrywrhc0jlmdw";
})
];
NIX_CFLAGS_COMPILE = [
"-Wno-error=stringop-truncation"
"-flto-partition=none"
];
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config mandoc ];
buildInputs = [ popt ];
depsBuildBuild = [ buildPackages.stdenv.cc ];
@ -62,6 +30,6 @@ stdenv.mkDerivation rec {
inherit (src.meta) homepage;
description = "Tools and library to manipulate EFI variables";
platforms = platforms.linux;
license = licenses.lgpl21;
license = licenses.lgpl21Only;
};
}

View File

@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, gtest
, cudatoolkit
@ -10,6 +9,7 @@
, addOpenGLRunpath
, amd ? true
, nvidia ? true
, udev
}:
let
@ -25,13 +25,13 @@ let
in
stdenv.mkDerivation rec {
pname = "nvtop" + pname-suffix;
version = "2.0.4";
version = "3.0.1";
src = fetchFromGitHub {
owner = "Syllo";
repo = "nvtop";
rev = version;
sha256 = "sha256-WOXVmKnVNRjWqShbOUZ0Z4hd0m9njLmCGLnV9FBS3Us=";
hash = "sha256-vLvt2sankpQWAVZBPo3OePs4LDy7YfVnMkZLfN6ERAc=";
};
cmakeFlags = with lib; [
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
++ optional amd "-DLibdrm_INCLUDE_DIRS=${libdrm}/lib/stubs/libdrm.so.2"
;
nativeBuildInputs = [ cmake gtest ] ++ lib.optional nvidia addOpenGLRunpath;
buildInputs = with lib; [ ncurses ]
buildInputs = with lib; [ ncurses udev ]
++ optional nvidia cudatoolkit
++ optional amd libdrm
;
@ -55,14 +55,15 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = with lib; {
description = "A (h)top like task monitor for AMD and NVIDIA GPUs";
description = "A (h)top like task monitor for AMD, Intel and NVIDIA GPUs";
longDescription = ''
Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD and NVIDIA GPUs. It can handle multiple GPUs and print information about them in a htop familiar way.
Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD, Intel and NVIDIA GPUs. It can handle multiple GPUs and print information about them in a htop familiar way.
'';
homepage = "https://github.com/Syllo/nvtop";
license = licenses.gpl3;
changelog = "https://github.com/Syllo/nvtop/releases/tag/${version}";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ willibutz gbtb ];
maintainers = with maintainers; [ willibutz gbtb anthonyroussel ];
mainProgram = "nvtop";
};
}

View File

@ -802,11 +802,9 @@ mapAliases ({
linux-rt_5_4 = linuxKernel.kernels.linux_rt_5_4;
linuxPackages_4_14 = linuxKernel.packages.linux_4_14;
linuxPackages_4_19 = linuxKernel.packages.linux_4_19;
linuxPackages_4_4 = linuxKernel.packages.linux_4_4;
linuxPackages_4_9 = linuxKernel.packages.linux_4_9;
linuxPackages_5_10 = linuxKernel.packages.linux_5_10;
linuxPackages_5_15 = linuxKernel.packages.linux_5_15;
linuxPackages_5_16 = linuxKernel.packages.linux_5_16;
linuxPackages_5_17 = linuxKernel.packages.linux_5_17;
linuxPackages_5_18 = linuxKernel.packages.linux_5_18;
linuxPackages_5_19 = linuxKernel.packages.linux_5_19;
@ -823,11 +821,9 @@ mapAliases ({
linuxPackages_rt_5_4 = linuxKernel.packages.linux_rt_5_4;
linux_4_14 = linuxKernel.kernels.linux_4_14;
linux_4_19 = linuxKernel.kernels.linux_4_19;
linux_4_4 = linuxKernel.kernels.linux_4_4;
linux_4_9 = linuxKernel.kernels.linux_4_9;
linux_5_10 = linuxKernel.kernels.linux_5_10;
linux_5_15 = linuxKernel.kernels.linux_5_15;
linux_5_16 = linuxKernel.kernels.linux_5_16;
linux_5_17 = linuxKernel.kernels.linux_5_17;
linux_5_18 = linuxKernel.kernels.linux_5_18;
linux_5_19 = linuxKernel.kernels.linux_5_19;

View File

@ -4866,6 +4866,10 @@ with pkgs;
simg2img = callPackage ../tools/filesystems/simg2img { };
smokegen = callPackage ../development/libraries/smokegen {};
smokeqt = callPackage ../development/libraries/smokeqt {};
snazy = callPackage ../development/tools/snazy { };
snippetpixie = callPackage ../tools/text/snippetpixie { };
@ -25009,7 +25013,9 @@ with pkgs;
htop-vim = callPackage ../tools/system/htop/htop-vim.nix { };
humility = callPackage ../development/tools/rust/humility {};
humility = callPackage ../development/tools/rust/humility {
inherit (darwin.apple_sdk.frameworks) AppKit;
};
btop = callPackage ../tools/system/btop {
stdenv = gcc11Stdenv;
@ -30070,6 +30076,8 @@ with pkgs;
inherit (ocaml-ng.ocamlPackages_4_09) ocaml;
};
lls = callPackage ../applications/networking/lls { };
lmms = libsForQt5.callPackage ../applications/audio/lmms {
lame = null;
libsoundio = null;
@ -31751,6 +31759,8 @@ with pkgs;
semiphemeral = callPackage ../tools/misc/semiphemeral { };
semver = callPackage ../applications/misc/semver { };
sent = callPackage ../applications/misc/sent { };
seq24 = callPackage ../applications/audio/seq24 { };

View File

@ -93,16 +93,7 @@ in {
rpiVersion = 4;
};
linux_4_4 = throw "linux 4.4 was removed because it reached its end of life upstream";
linux_4_9 = callPackage ../os-specific/linux/kernel/linux-4.9.nix {
kernelPatches =
[ kernelPatches.bridge_stp_helper
kernelPatches.request_key_helper_updated
kernelPatches.cpu-cgroup-v2."4.9"
kernelPatches.modinst_arg_list_too_long
];
};
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11";
linux_4_14 = callPackage ../os-specific/linux/kernel/linux-4.14.nix {
kernelPatches =
@ -160,8 +151,6 @@ in {
];
};
linux_5_16 = throw "linux 5.16 was removed because it has reached its end of life upstream";
linux_5_17 = throw "linux 5.17 was removed because it has reached its end of life upstream";
linux_5_18 = throw "linux 5.18 was removed because it has reached its end of life upstream";
@ -518,14 +507,12 @@ in {
vanillaPackages = {
# recurse to build modules for the kernels
linux_4_4 = throw "linux 4.4 was removed because it reached its end of life upstream"; # Added 2022-02-11
linux_4_9 = recurseIntoAttrs (packagesFor kernels.linux_4_9);
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
linux_4_14 = recurseIntoAttrs (packagesFor kernels.linux_4_14);
linux_4_19 = recurseIntoAttrs (packagesFor kernels.linux_4_19);
linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4);
linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
linux_5_16 = throw "linux 5.16 was removed because it reached its end of life upstream"; # Added 2022-04-23
linux_5_17 = throw "linux 5.17 was removed because it reached its end of life upstream"; # Added 2022-06-23
linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01

View File

@ -26137,13 +26137,13 @@ let
Tirex = buildPerlPackage rec {
pname = "Tirex";
version = "0.6.1";
version = "0.7.0";
src = fetchFromGitHub {
owner = "openstreetmap";
repo = "tirex";
rev = "v${version}";
hash = "sha256-8GXhF2v04ZSF0h0WNKPp4bgYcvPYCml6HtCbikFxUzc=";
hash = "sha256-0QbPfCPBdNBbUiZ8Ppg2zao98+Ddl3l+yX6y1/J50rg=";
};
buildInputs = [
@ -26158,6 +26158,7 @@ let
];
installPhase = ''
install -m 755 -d $out/usr/libexec
make install DESTDIR=$out INSTALLOPTS=""
mv $out/$out/lib $out/$out/share $out
rmdir $out/$out $out/nix/store $out/nix