Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
K900
2026-02-07 10:04:58 +03:00
91 changed files with 509 additions and 3648 deletions
@@ -127,6 +127,17 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- `geph` package's built-in GUI `geph5-client-gui` has been [removed](https://github.com/geph-official/geph5/commit/f2221fb8386312daf2cef05483ebb353ff48bdb4) by the upstream. All users who wish to continue using the GUI should install the `gephgui-wry`, which is consistent with the official release version.
- `services.vikunja` has been updated to Vikunja [v1.0.0](https://vikunja.io/changelog/whats-new-in-vikunja-1.0.0/), which introduces multiple breaking changes.
Notable breaking changes:
- CORS is enabled by default. The module now sets
`services.vikunja.settings.service.publicurl` by default. Custom overrides must ensure it is
set or disable CORS, otherwise Vikunja will fail to start.
- API route and response changes may affect integrations.
- Configuration format and option changes require review of existing settings (including OpenID
provider configuration and metrics/log settings).
- SQLite paths are now relative to `service.rootpath` unless absolute. Startup now validates file
storage and OAuth providers.
## Other Notable Changes {#sec-release-26.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+1 -1
View File
@@ -111,7 +111,7 @@ in
};
service = {
interface = "${cfg.address}:${toString cfg.port}";
frontendurl = "${cfg.frontendScheme}://${cfg.frontendHostname}/";
publicurl = "${cfg.frontendScheme}://${cfg.frontendHostname}/";
};
files = {
basepath = "/var/lib/vikunja/files";
@@ -164,9 +164,9 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "BUILD_GUI" true)
];
NIX_LDFLAGS = lib.optionals (
stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic
) "-levent_core";
env = lib.optionalAttrs (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic) {
NIX_LDFLAGS = "-levent_core";
};
nativeCheckInputs = [ python3 ];
@@ -165,9 +165,9 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "BUILD_GUI" true)
];
NIX_LDFLAGS = lib.optionals (
stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic
) "-levent_core";
env = lib.optionalAttrs (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic) {
NIX_LDFLAGS = "-levent_core";
};
nativeCheckInputs = [ python3 ];
@@ -81,7 +81,11 @@ stdenv.mkDerivation rec {
++ lib.optional (widgetset == "gtk3") gtk3
++ lib.optional (widgetset == "qt5") libsForQt5.libqtpas;
NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
env.NIX_LDFLAGS = toString [
"--as-needed"
"-rpath"
(lib.makeLibraryPath buildInputs)
];
buildPhase =
lib.concatStringsSep "\n" (
+8 -8
View File
@@ -36,20 +36,20 @@ let
hash =
{
x86_64-linux = "sha256-RqBae6s6y2XnXqtKbrKkMRwALKLfNE7mBFwOwwomG10=";
x86_64-darwin = "sha256-3N7xZIJsgQPX6izaH8ZoXy3SLcbXCNwJvE8ahFwVfF8=";
aarch64-linux = "sha256-8WigXl83hXEA7qsG6dOYKVSVISRDDpqJyv7L+9ks40Q=";
aarch64-darwin = "sha256-ZJ0QKqkFQYz3V7TEalM3sFJnqYnKBgQVqPXdsi2c+80=";
armv7l-linux = "sha256-m78hRkaI1nlqdeeP3t0HiNCUzNneMXxyenC8RmtuC68=";
x86_64-linux = "sha256-N8dBXYpBbaymuGWFb8+77/4yJ6Meo5eqoYpnlsjGlN8=";
x86_64-darwin = "sha256-li+29ukZXvwBihnHti+AntMNwhr3g1tOOdmalZchL40=";
aarch64-linux = "sha256-ASzpE721RBAiVFxnGCRMCWj/RFa+TpxA4gaZJFxk7I0=";
aarch64-darwin = "sha256-afaADPPWJlW3HdWGAMDuibGhBtR7toEm2T58jR/nsic=";
armv7l-linux = "sha256-BgG1RglSISrKm+KRq7AXhp7EUOssts2LSLCVqSD7E/Q=";
}
.${system} or throwSystem;
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.108.2";
version = "1.109.0";
# This is used for VS Code - Remote SSH test
rev = "c9d77990917f3102ada88be140d28b038d1dd7c7";
rev = "bdd88df003631aaa0bcbe057cb0a940b80a476fa";
in
buildVscode {
pname = "vscode" + lib.optionalString isInsiders "-insiders";
@@ -82,7 +82,7 @@ buildVscode {
src = fetchurl {
name = "vscode-server-${rev}.tar.gz";
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
hash = "sha256-bUnM+editWCYiiqR3mlIw4BRrM5gHd6T2GO65VKTDSE=";
hash = "sha256-qdXYNkc7u1s/HexmK3Dwc4H/nsfoyhL0/c8TgK94JwU=";
};
stdenv = stdenvNoCC;
};
@@ -715,11 +715,11 @@
"vendorHash": "sha256-baqt8ZBmPQpKZIb/7tb44p7xf8azBawks4mQxtAqIpc="
},
"huaweicloud_huaweicloud": {
"hash": "sha256-4YCixNM2I/v8pn6CAiNQf2tXKTeNjAWpHGDF3yOwIYs=",
"hash": "sha256-vDGr0g/yhLTr+oyXxbM7v2TyecYRAvx40crCi3ug5Lk=",
"homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
"owner": "huaweicloud",
"repo": "terraform-provider-huaweicloud",
"rev": "v1.85.0",
"rev": "v1.86.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -87,7 +87,9 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
# Undefined symbols for architecture arm64: "_gpg_strerror"
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-lgpg-error";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-lgpg-error";
};
# Dino looks for plugins with a .so filename extension, even on macOS where
# .dylib is appropriate, and despite the fact that it builds said plugins with
@@ -8,8 +8,8 @@ makeScopeWithSplicing' {
extra = self: {
mkLinphoneDerivation = self.mk-linphone-derivation;
linphoneSdkVersion = "5.4.48";
linphoneSdkHash = "sha256-sOkq73YWbhpKJOk1dVc4tkg2+RuGyRK8/t4ckMIVVG8=";
linphoneSdkVersion = "5.4.85";
linphoneSdkHash = "sha256-mdJDCuCaZlcQ92P6oMgH/8iWgm8hGz8gTVUilC+yaSU=";
};
f =
self:
@@ -0,0 +1,17 @@
diff --git a/cmake/install/install.cmake b/cmake/install/install.cmake
index 710e8fa31..636e3cff4 100644
--- a/cmake/install/install.cmake
+++ b/cmake/install/install.cmake
@@ -325,3 +325,11 @@ if(${ENABLE_APP_PACKAGING})
endif()
include(CPack)
endif()
+
+configure_file("${CMAKE_SOURCE_DIR}/cmake/install/linux/linphone.desktop.cmake" "${CMAKE_BINARY_DIR}/cmake/install/linux/${EXECUTABLE_NAME}.desktop" @ONLY)
+install(FILES "${CMAKE_BINARY_DIR}/cmake/install/linux/${EXECUTABLE_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+install(FILES "${CMAKE_SOURCE_DIR}/Linphone/data/image/logo.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps/" RENAME "${EXECUTABLE_NAME}.svg")
+set(ICON_DIRS 16x16 22x22 24x24 32x32 64x64 128x128 256x256)
+foreach (DIR ${ICON_DIRS})
+ install(FILES "${CMAKE_SOURCE_DIR}/Linphone/data/icon/hicolor/${DIR}/apps/icon.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${DIR}/apps/" RENAME "${EXECUTABLE_NAME}.png")
+endforeach ()
@@ -11,13 +11,14 @@
fetchFromGitLab,
lib,
liblinphone,
libsForQt5,
lime,
linphoneSdkVersion,
mediastreamer2,
minizip-ng,
msopenh264,
python3,
python3Packages,
qt6Packages,
stdenv,
symlinkJoin,
xercesc,
@@ -39,23 +40,21 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "linphone-desktop";
version = "5.3.1";
version = "6.1.0";
src = fetchFromGitLab {
domain = "gitlab.linphone.org";
owner = "public";
group = "BC";
repo = "linphone-desktop";
rev = finalAttrs.version;
hash = "sha256-TO9JNsOnx4sTJEkai0nDKNyZWcLuGoWfuKLBM79tQvs=";
tag = finalAttrs.version;
hash = "sha256-jCnovCFdPJExD0+ZLhU9np1R5uN+mPlSPi/Nb1aOD0U=";
};
patches = [
./require-finding-packages.patch
./remove-bc-versions.patch
./do-not-override-install-prefix.patch
./fix-translation-dirs.patch
./unset-qml-dir.patch
./do-not-manually-compute-sdk-version.patch
./always-install-desktop-files.patch
# .mkv recordings are broken in NixOS and other distros (see
# https://github.com/NixOS/nixpkgs/issues/219551), and simply changing the
@@ -67,7 +66,6 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
# Made by BC
bctoolbox
belcard
belle-sip
belr
liblinphone
@@ -79,9 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
xercesc
minizip-ng
libsForQt5.qtgraphicaleffects
libsForQt5.qtmultimedia
libsForQt5.qtquickcontrols2
qt6Packages.qtbase
qt6Packages.qtnetworkauth
zxing-cpp
boost
@@ -91,8 +88,8 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
libsForQt5.qttools
libsForQt5.wrapQtAppsHook
qt6Packages.qttools
qt6Packages.wrapQtAppsHook
python3
doxygen
];
@@ -115,18 +112,26 @@ stdenv.mkDerivation (finalAttrs: {
"-DLINPHONEAPP_VERSION=${finalAttrs.version}"
"-DLINPHONE_QT_ONLY=ON"
"-DLINPHONEAPP_INSTALL_PREFIX=${placeholder "out"}"
"-DLINPHONE_QML_DIR=${placeholder "out"}/${libsForQt5.qtbase.qtQmlPrefix}/ui"
"-DLINPHONE_QML_DIR=${placeholder "out"}/${qt6Packages.qtbase.qtQmlPrefix}/ui"
"-DLINPHONESDK_VERSION=${linphoneSdkVersion}"
"-DENABLE_APP_PACKAGE_ROOTCA=OFF"
# normally set by the custom find modules, which we have disabled
"-DLibLinphone_TARGET=liblinphone"
"-DLinphoneCxx_TARGET=liblinphone++"
"-DISpell_SOURCE_DIR=${bc-ispell.src}"
# used in Linphone's CMakeLists.txt
"-DLINPHONEAPP_VERSION=${finalAttrs.version}"
];
# error: invalid conversion from 'int' to 'const char*'
env.NIX_CFLAGS_COMPILE = "-fpermissive";
preConfigure = ''
# custom "find" modules are causing issues during build,
# as they are blinding cmake to nix dependencies
rm -rf linphone-app/cmake
rm -rf cmake/Modules
'';
preInstall = ''
@@ -0,0 +1,20 @@
diff --git a/Linphone/CMakeLists.txt b/Linphone/CMakeLists.txt
index 776fd415a..8fa2d3ab6 100644
--- a/Linphone/CMakeLists.txt
+++ b/Linphone/CMakeLists.txt
@@ -71,14 +71,6 @@ execute_process(
OUTPUT_STRIP_TRAILING_WHITESPACE
)
-set(LINPHONESDK_VERSION)
-execute_process(
- COMMAND git describe
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/external/linphone-sdk
- OUTPUT_VARIABLE LINPHONESDK_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
-)
-
include(application_info.cmake)
string(TIMESTAMP CURRENT_YEAR "%Y")
if(NOT APPLICATION_START_LICENCE OR "${CURRENT_YEAR}" STREQUAL "${APPLICATION_START_LICENCE}")
@@ -1,16 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 312df041d..43500be48 100644
index 793a4bb15..446d5b721 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -116,11 +116,6 @@ endif ()
@@ -117,10 +117,6 @@ endif ()
#------------------------------------------------------------------------------
# Prepare gobal CMAKE configuration specific to the current project
set(CMAKE_POSITION_INDEPENDENT_CODE ON)#Needed for Qt
-if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
- set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/OUTPUT" CACHE PATH "Default linphone-app installation prefix" FORCE)
- set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT FALSE)
-endif()
-
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified")
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
@@ -1,15 +0,0 @@
diff --git a/linphone-app/assets/languages/CMakeLists.txt b/linphone-app/assets/languages/CMakeLists.txt
index ffe2b6a5b..12f02bdfe 100644
--- a/linphone-app/assets/languages/CMakeLists.txt
+++ b/linphone-app/assets/languages/CMakeLists.txt
@@ -32,8 +32,8 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${I18N_FILENAME}" "${I18N_CONTENT}")
#Files or directories to inspect for translations references
set(TRANSLATION_SOURCES)
-list(APPEND TRANSLATION_SOURCES "${PROJECT_SOURCE_DIR}/src")
-list(APPEND TRANSLATION_SOURCES "${PROJECT_SOURCE_DIR}/ui")
+list(APPEND TRANSLATION_SOURCES "${PROJECT_SOURCE_DIR}/linphone-app/src")
+list(APPEND TRANSLATION_SOURCES "${PROJECT_SOURCE_DIR}/linphone-app/ui")
if (WIN32)
foreach (lang ${LANGUAGES})
@@ -1,48 +1,39 @@
diff --git a/linphone-app/src/components/call/CallModel.cpp b/linphone-app/src/components/call/CallModel.cpp
index d0286a89a..483bc35e4 100644
--- a/linphone-app/src/components/call/CallModel.cpp
+++ b/linphone-app/src/components/call/CallModel.cpp
@@ -289,7 +289,7 @@ void CallModel::setRecordFile (const shared_ptr<linphone::CallParams> &callParam
callParams->setRecordFile(Utils::appStringToCoreString(
CoreManager::getInstance()->getSettingsModel()->getSavedCallsFolder()
.append(generateSavedFilename())
- .append(".mkv")
+ .append(".wav")
));
}
@@ -303,7 +303,7 @@ void CallModel::setRecordFile (const shared_ptr<linphone::CallParams> &callParam
callParams->setRecordFile(Utils::appStringToCoreString(
CoreManager::getInstance()->getSettingsModel()->getSavedCallsFolder()
.append(generateSavedFilename(from, to))
- .append(".mkv")
+ .append(".wav")
));
}
diff --git a/linphone-app/src/components/conference/ConferenceProxyModel.cpp b/linphone-app/src/components/conference/ConferenceProxyModel.cpp
index 0cf654dd4..931c0e5cf 100644
--- a/linphone-app/src/components/conference/ConferenceProxyModel.cpp
+++ b/linphone-app/src/components/conference/ConferenceProxyModel.cpp
@@ -84,7 +84,7 @@ void ConferenceProxyModel::startRecording () {
mLastRecordFile =
- QStringLiteral("%1%2.mkv")
+ QStringLiteral("%1%2.wav")
.arg(coreManager->getSettingsModel()->getSavedCallsFolder())
.arg(QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss"));
conference->startRecording(Utils::appStringToCoreString(mLastRecordFile) );
diff --git a/linphone-app/src/components/recorder/RecorderModel.cpp b/linphone-app/src/components/recorder/RecorderModel.cpp
index 0d17ff6f8..5c6d7c679 100644
--- a/linphone-app/src/components/recorder/RecorderModel.cpp
+++ b/linphone-app/src/components/recorder/RecorderModel.cpp
@@ -83,7 +83,7 @@ QDateTime RecorderModel::getDateTimeSavedFilename(const QString& filename){
void RecorderModel::start(){
diff --git a/Linphone/model/call/CallModel.cpp b/Linphone/model/call/CallModel.cpp
index 366bbe86f..7bac43ad5 100644
--- a/Linphone/model/call/CallModel.cpp
+++ b/Linphone/model/call/CallModel.cpp
@@ -56,7 +56,7 @@ void CallModel::accept(bool withVideo) {
params->setRecordFile(
Paths::getCapturesDirPath()
.append(Utils::generateSavedFilename(QString::fromStdString(mMonitor->getToAddress()->getUsername()), ""))
- .append(".mkv")
+ .append(".wav")
.toStdString());
// Answer with local call address.
auto localAddress = mMonitor->getCallLog()->getLocalAddress();
diff --git a/Linphone/model/recorder/RecorderModel.cpp b/Linphone/model/recorder/RecorderModel.cpp
index 7883ed150..1b1820620 100644
--- a/Linphone/model/recorder/RecorderModel.cpp
+++ b/Linphone/model/recorder/RecorderModel.cpp
@@ -82,7 +82,7 @@ void RecorderModel::start() {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
bool soFarSoGood;
- QString filename = QStringLiteral("vocal_%1.mkv")
+ QString filename = QStringLiteral("vocal_%1.wav")
.arg(QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss-zzz"));
QString filename =
- QStringLiteral("vocal_%1.mka").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss-zzz"));
+ QStringLiteral("vocal_%1.wav").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss-zzz"));
const QString safeFilePath = Utils::getSafeFilePath(
QStringLiteral("%1%2")
QStringLiteral("%1%2").arg(SettingsModel::getInstance()->getSavedCallsFolder()).arg(filename), &soFarSoGood);
diff --git a/Linphone/model/tool/ToolModel.cpp b/Linphone/model/tool/ToolModel.cpp
index 18edeca7c..70c88516f 100644
--- a/Linphone/model/tool/ToolModel.cpp
+++ b/Linphone/model/tool/ToolModel.cpp
@@ -353,7 +353,7 @@ bool ToolModel::createCall(const QString &sipAddress,
params->setRecordFile(
Paths::getCapturesDirPath()
.append(Utils::generateSavedFilename(QString::fromStdString(address->getUsername()), ""))
- .append(".mkv")
+ .append(".wav")
.toStdString());
}
@@ -1,15 +0,0 @@
diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
index d40842fa2..7d7bc57d8 100644
--- a/linphone-app/CMakeLists.txt
+++ b/linphone-app/CMakeLists.txt
@@ -40,10 +40,8 @@ set(version_minor)
set(version_patch)
set(identifiers )
set(metadata )
-bc_parse_full_version("${LINPHONEAPP_VERSION}" version_major version_minor version_patch identifiers metadata)
-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}")
if(ENABLE_BUILD_VERBOSE)
#message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}")
@@ -1,41 +0,0 @@
diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
index d40842fa2..5ea1330ca 100644
--- a/linphone-app/CMakeLists.txt
+++ b/linphone-app/CMakeLists.txt
@@ -24,14 +24,11 @@ cmake_minimum_required(VERSION 3.22)
#Linphone targets
-set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 Belcard LibLinphone)
+set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 BelCard LibLinphone)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
-find_package(BCToolbox)
-if(NOT BCToolbox_FOUND)
- find_package(bctoolbox CONFIG REQUIRED)
-endif()
+find_package(BCToolbox REQUIRED)
if(NOT LINPHONEAPP_VERSION)
bc_compute_full_version(LINPHONEAPP_VERSION)
endif()
@@ -105,17 +102,14 @@ set(ENABLE_DB_STORAGE ON CACHE BOOLEAN "Enable Storage")
foreach(PACKAGE ${LINPHONE_PACKAGES})
message(STATUS "Trying to find ${PACKAGE}")
- find_package(${PACKAGE})
- if(NOT ${PACKAGE}_FOUND)
- find_package(${PACKAGE} CONFIG REQUIRED)
- endif()
+ find_package(${PACKAGE} REQUIRED)
endforeach()
set(PLUGIN_TARGETS ${LinphoneCxx_TARGET})
set(APP_TARGETS ${LinphoneCxx_TARGET}
${BCToolbox_TARGET}#Logger/App
${Mediastreamer2_TARGET}#MediastreamerUtils
- ${Belcard_TARGET}#VCard Model
+ ${BelCard_TARGET}#VCard Model
${LibLinphone_TARGET})#MediastreamerUtils
####################################
@@ -1,13 +0,0 @@
diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
index d40842fa2..112d45711 100644
--- a/linphone-app/CMakeLists.txt
+++ b/linphone-app/CMakeLists.txt
@@ -54,7 +54,6 @@ include(CheckCXXCompilerFlag)
set(TARGET_NAME linphone-qt)
-set(LINPHONE_QML_DIR "WORK/qml_files/ui")
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS true)
set(CMAKE_CXX_STANDARD 14)
@@ -9,7 +9,7 @@
libxext,
libopus,
libpulseaudio,
libsForQt5,
qt6Packages,
libv4l,
libvpx,
mkLinphoneDerivation,
@@ -35,8 +35,8 @@ mkLinphoneDerivation (finalAttrs: {
nativeBuildInputs = [
python3
libsForQt5.qtbase
libsForQt5.qtdeclarative
qt6Packages.qtbase
qt6Packages.qtdeclarative
];
propagatedBuildInputs = [
@@ -1,11 +1,38 @@
{
stdenv,
fetchFromGitLab,
fetchFromGitHub,
lib,
cmake,
linphoneSdkVersion,
linphoneSdkHash,
}:
let
# linphone-sdk is hosted on BC's Gitlab instance, however since it imposes
# a heavy rate limit / throttling when attempting to fetch submodules, we use their
# GitHub mirror instead.
src = fetchFromGitHub {
owner = "BelledonneCommunications";
repo = "linphone-sdk";
tag = linphoneSdkVersion;
hash = linphoneSdkHash;
leaveDotGit = true;
postFetch = ''
cd $out
git remote add origin https://github.com/BelledonneCommunications/linphone-sdk.git
git reset --hard HEAD
# `external` submodules are hardcoded to resolve to BC's Gitlab instance,
# however, since we manually package all required external modules anyway,
# we do not need to also fetch them here.
#
# We also use `--jobs 1` to avoid hitting BC's rate limit for the handful of
# hardcoded submodules that we _do_ need.
for submodule in $(git config --file .gitmodules --get-regexp path | awk '{print $2}' | grep -v '^external/.*$'); do
git submodule update --init --recursive --jobs 1 "$submodule"
done
find "$out" -name .git -type d -print0 | xargs -0 rm -rf
'';
};
in
lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
@@ -25,15 +52,7 @@ lib.extendMkDerivation {
{
version = linphoneSdkVersion;
src = fetchFromGitLab {
domain = "gitlab.linphone.org";
owner = "public";
group = "BC";
repo = "linphone-sdk";
tag = linphoneSdkVersion;
hash = linphoneSdkHash;
fetchSubmodules = true;
};
inherit src;
nativeBuildInputs = [
cmake
+1 -1
View File
@@ -66,7 +66,7 @@ stdenv.mkDerivation {
./cmake-v4.patch
];
NIX_LDFLAGS = toString (
env.NIX_LDFLAGS = toString (
lib.optionals stdenv.hostPlatform.isDarwin [
# Framework that JUCE needs which don't get linked properly
"-framework CoreAudioKit"
+3 -1
View File
@@ -14,7 +14,9 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "sha256-4uGS0LReq5dI7+Wel7ZWzFXx+utZWi93q4TUSw7AhNI=";
};
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-liconv";
};
preBuild = ''
substituteInPlace src/Makefile --replace "CC=gcc" "CC?=gcc"
+1 -1
View File
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optional useUnrar unrar;
NIX_LDFLAGS = "-lpthread";
env.NIX_LDFLAGS = "-lpthread";
postPatch = "patchShebangs version.sh";
+1 -1
View File
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
SDL_image
];
NIX_LDFLAGS = "-lm";
env.NIX_LDFLAGS = "-lm";
installPhase = ''
mkdir -p $out/bin
+9 -11
View File
@@ -175,17 +175,15 @@ stdenv.mkDerivation {
runHook postInstall
'';
NIX_LDFLAGS = (
toString [
"-lX11"
"-lXext"
"-lXcomposite"
"-lXcursor"
"-lXinerama"
"-lXrandr"
"-lXrender"
]
);
env.NIX_LDFLAGS = toString [
"-lX11"
"-lXext"
"-lXcomposite"
"-lXcursor"
"-lXinerama"
"-lXrandr"
"-lXrender"
];
meta = {
description = "JUCE Plugin Version of Airwindows Consolidated";
+4 -2
View File
@@ -8,14 +8,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "arcanechat-tui";
version = "0.11.1";
version = "0.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ArcaneChat";
repo = "arcanechat-tui";
tag = "v${version}";
hash = "sha256-ARk0WkpJ2VhIdOHQzYmmsuherABNgqwjwnPWk92y9yA=";
hash = "sha256-seoXvlDG2xxdM9mAKe4Yo4juDslgrniv1LOTdXbplp0=";
};
build-system = with python3.pythonOnBuildForHost.pkgs; [
@@ -23,6 +23,8 @@ python3.pkgs.buildPythonApplication rec {
setuptools-scm
];
pythonRelaxDeps = true;
dependencies = with python3.pkgs; [
appdirs
deltachat2
+3 -3
View File
@@ -11,16 +11,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "biome";
version = "2.3.13";
version = "2.3.14";
src = fetchFromGitHub {
owner = "biomejs";
repo = "biome";
rev = "@biomejs/biome@${finalAttrs.version}";
hash = "sha256-WvEY3YslLu0FdIG8OcL4pPpfB945coU+W+YGLLecTc0=";
hash = "sha256-MNxIdarZMEZx4pWd+pB/7i+Pd3k8yekgW73ZrolYCGc=";
};
cargoHash = "sha256-iIKs6tzhMZ7f8tKh95Db+FdE21vqiw3ksT72xacpPf8=";
cargoHash = "sha256-i8GMK4xwFreHtVvnuZdeGAAyQTMwb5y9LU5/2usWc18=";
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -14,13 +14,13 @@
buildNpmPackage (finalAttrs: {
pname = "bitwarden-cli";
version = "2025.12.1";
version = "2026.1.0";
src = fetchFromGitHub {
owner = "bitwarden";
repo = "clients";
tag = "cli-v${finalAttrs.version}";
hash = "sha256-yER9LDFwTQkOdjB84UhEiWUDE+5Qa2vlRzq1/Qc/soY=";
hash = "sha256-Z6YMAzn1J5n27qqx3PsaMmD9uIK7FTEl1/tEzePD+6Y=";
};
patches = [
@@ -35,7 +35,7 @@ buildNpmPackage (finalAttrs: {
nodejs = nodejs_22;
npmDepsHash = "sha256-kgYXuiHeyqAKW0gVitL3b7eZMiZPFCeVeNtxClEJRfc=";
npmDepsHash = "sha256-lXESe2FwwJIiFVFI5adAgJLhMsK2DTc8V8jELMr5E84=";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
perl
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
zlib
];
NIX_LDFLAGS = "-lX11";
env.NIX_LDFLAGS = "-lX11";
meta = {
description = "Multiplayer space combat game (client part)";
+3 -1
View File
@@ -67,7 +67,9 @@ stdenv.mkDerivation rec {
libxcb-util
];
NIX_LDFLAGS = lib.optionalString (!headless) "-lX11";
env = lib.optionalAttrs (!headless) {
NIX_LDFLAGS = "-lX11";
};
preConfigure = ''
./_autosetup
+1 -1
View File
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
# Force linking to libEGL, which is always dlopen()ed, and to
# libwayland-client & libxkbcommon, which is dlopen()ed based on the
# winit backend.
NIX_LDFLAGS = [
env.NIX_LDFLAGS = toString [
"--no-as-needed"
"-lvulkan"
"-lwayland-client"
+7 -2
View File
@@ -20,8 +20,13 @@ stdenv.mkDerivation rec {
"CFLAGS=-O3"
"CXXFLAGS=-O3"
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=register";
NIX_LDFLAGS = "-lm";
env = {
NIX_LDFLAGS = "-lm";
}
// lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = "-Wno-error=register";
};
doCheck = true;
meta = {
+6 -4
View File
@@ -18,10 +18,12 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-4AVZ747d6lOjxHN+co0A7APVB5Xj6g5p/Al5fLbgPnc=";
NIX_LDFLAGS = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
"-framework"
"AppKit"
];
env = lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) {
NIX_LDFLAGS = toString [
"-framework"
"AppKit"
];
};
# `test with_cargo` tries to call cargo-watch as a cargo subcommand
# (calling cargo-watch with command `cargo watch`)
+7 -9
View File
@@ -116,15 +116,13 @@ stdenv.mkDerivation (finalAttrs: {
# JUCE dlopens these, make sure they are in rpath
# Otherwise, segfault will happen
NIX_LDFLAGS = (
toString [
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
]
);
env.NIX_LDFLAGS = toString [
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
];
meta = {
homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
+1 -1
View File
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
perl
];
NIX_LDFLAGS = "-lgcc_s";
env.NIX_LDFLAGS = "-lgcc_s";
makeFlags = [
"DESTDIR=$(out)"
+2 -2
View File
@@ -9,13 +9,13 @@
buildGoModule rec {
pname = "cloudflared";
version = "2026.1.1";
version = "2026.1.2";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
tag = version;
hash = "sha256-9+WDVS2pZR5nbbpdGSi9jO8ccT0L5K7NLdobL8J+bYU=";
hash = "sha256-DOLCgCZWdxHnwtQ+nD4mJX7y/1BHZkcmDCVHuwiKOlA=";
};
vendorHash = null;
+4 -1
View File
@@ -30,7 +30,10 @@ stdenv.mkDerivation (finalAttrs: {
texinfo
];
NIX_LDFLAGS = "-lre2 -lpthread";
env.NIX_LDFLAGS = toString [
"-lre2"
"-lpthread"
];
configureFlags = [
"--enable-maintainer-mode"
+5 -1
View File
@@ -38,7 +38,11 @@ stdenv.mkDerivation rec {
pango
];
NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
env.NIX_LDFLAGS = toString [
"--as-needed"
"-rpath"
(lib.makeLibraryPath buildInputs)
];
buildPhase = ''
lazbuild --lazarusdir=${lazarus}/share/lazarus ddrescueview.lpi
+21 -20
View File
@@ -53,26 +53,27 @@ stdenv.mkDerivation (finalAttrs: {
libjack2
];
# JUCE insists on only dlopen'ing these
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isLinux (toString [
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
"-ljack"
]);
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isLinux (toString [
# juce, compiled in this build as part of a Git submodule, uses `-flto` as
# a Link Time Optimization flag, and instructs the plugin compiled here to
# use this flag to. This breaks the build for us. Using _fat_ LTO allows
# successful linking while still providing LTO benefits. If our build of
# `juce` was used as a dependency, we could have patched that `-flto` line
# in our juce's source, but that is not possible because it is used as a
# Git Submodule.
"-ffat-lto-objects"
]);
env = lib.optionalAttrs stdenv.hostPlatform.isLinux {
# JUCE insists on only dlopen'ing these
NIX_LDFLAGS = toString [
"-lX11"
"-lXext"
"-lXcursor"
"-lXinerama"
"-lXrandr"
"-ljack"
];
NIX_CFLAGS_COMPILE = toString [
# juce, compiled in this build as part of a Git submodule, uses `-flto` as
# a Link Time Optimization flag, and instructs the plugin compiled here to
# use this flag to. This breaks the build for us. Using _fat_ LTO allows
# successful linking while still providing LTO benefits. If our build of
# `juce` was used as a dependency, we could have patched that `-flto` line
# in our juce's source, but that is not possible because it is used as a
# Git Submodule.
"-ffat-lto-objects"
];
};
installPhase =
let
+3 -1
View File
@@ -33,7 +33,9 @@ stdenv.mkDerivation rec {
buildInputs = [ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.libresolv ];
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-lresolv";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-lresolv";
};
meta = {
description = "Determines where a given Domain Name Server (DNS) gets its information from, and follows the chain of DNS servers back to the servers which know the data";
+6 -1
View File
@@ -44,7 +44,12 @@ stdenv.mkDerivation (finalAttrs: {
gtk3
];
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework AppKit";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = toString [
"-framework"
"AppKit"
];
};
# ECWolf installs its binary to the games/ directory, but Nix only adds bin/
# directories to the PATH.
+7 -5
View File
@@ -62,12 +62,14 @@ stdenv.mkDerivation (finalAttrs: {
'';
*/
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: mad.o:(.bss+0x233800): multiple definition of `tile_dict'; camera.o:(.bss+0x140): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
env = {
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: mad.o:(.bss+0x233800): multiple definition of `tile_dict'; camera.o:(.bss+0x140): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
NIX_LDFLAGS = "-lm";
NIX_LDFLAGS = "-lm";
};
meta = {
description = "3D dungeon crawling adventure";
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "eksctl";
version = "0.221.0";
version = "0.222.0";
src = fetchFromGitHub {
owner = "weaveworks";
repo = "eksctl";
rev = version;
hash = "sha256-q+4TTwgUxP1U7sKFH7Sy1wInE8neLE3R5MhgfW4V+64=";
hash = "sha256-Z3D0hUpQ1gv/fh0QcnNGfRJH/ylZN8mkjZyk0i69U1g=";
};
vendorHash = "sha256-Bz4C+JyPZI+7LhmtUNyo/PJ+AkeGVQ+VrpHWnRqrIoE=";
vendorHash = "sha256-d7wLsePcTevRgewumw9UmNgUS0u0IwuLU48uRF/rOU0=";
doCheck = false;
+1 -1
View File
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
libarchive
];
NIX_LDFLAGS = "-lpthread";
env.NIX_LDFLAGS = "-lpthread";
postInstall = ''
ln -s ${wt}/share/Wt/resources $out/share/fileshelter/docroot/resources
+3 -3
View File
@@ -98,9 +98,9 @@ stdenv.mkDerivation rec {
[ glibc.static ]
);
NIX_LDFLAGS = lib.optionals withCuda [
"-L${cudatoolkit}/lib/stubs"
];
env = lib.optionalAttrs withCuda {
NIX_LDFLAGS = "-L${cudatoolkit}/lib/stubs";
};
cmakeFlags = [
"-DFIRESTARTER_BUILD_HWLOC=OFF"
+4 -1
View File
@@ -55,7 +55,10 @@ stdenv.mkDerivation rec {
# after autoreconfHook, glib and zlib are not found, so force link against
# them
NIX_LDFLAGS = "-lglib-2.0 -lz";
env.NIX_LDFLAGS = toString [
"-lglib-2.0"
"-lz"
];
enableParallelBuilding = true;
+1 -1
View File
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
"DATADIR=${placeholder "out"}/share/globulation2/glob2"
];
NIX_LDFLAGS = "-lboost_system";
env.NIX_LDFLAGS = "-lboost_system";
meta = {
description = "RTS without micromanagement";
+1 -1
View File
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
SDL_mixer
];
NIX_LDFLAGS = "-lm";
env.NIX_LDFLAGS = "-lm";
desktopItems = [
(makeDesktopItem {
+5 -1
View File
@@ -70,7 +70,11 @@ stdenv.mkDerivation (finalAttrs: {
./0001-Fix-building-with-bison-3.7.patch
];
NIX_LDFLAGS = "-lz -lgsl -lblas";
env.NIX_LDFLAGS = toString [
"-lz"
"-lgsl"
"-lblas"
];
qtWrapperArgs = [
"--prefix"
+3 -1
View File
@@ -305,7 +305,9 @@ let
++ optional stdenv.hostPlatform.isx86 "--harden";
# NOTE: 2018-12-27: Check NixOS HandBrake test if changing
NIX_LDFLAGS = [ "-lx265" ];
env.NIX_LDFLAGS = toString [
"-lx265"
];
# meson/ninja are used only for the subprojects, not the toplevel
dontUseMesonConfigure = true;
+10 -9
View File
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
"-DNOSERVER=${if withServer then "OFF" else "ON"}"
];
NIX_LDFLAGS = lib.concatMapStringsSep " " (e: "-rpath ${e}/lib") [
env.NIX_LDFLAGS = lib.concatMapStringsSep " " (e: "-rpath ${e}/lib") [
SDL2.out
SDL2_image
SDL2_mixer
@@ -93,14 +93,15 @@ stdenv.mkDerivation (finalAttrs: {
];
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libGL
libGLU
libglut
physfs
]
}"
"--prefix"
"LD_LIBRARY_PATH"
":"
(lib.makeLibraryPath [
libGL
libGLU
libglut
physfs
])
];
meta = {
+6 -4
View File
@@ -26,10 +26,12 @@ rustPlatform.buildRustPackage rec {
openssl
];
NIX_LDFLAGS = lib.optionals stdenv.hostPlatform.isDarwin [
"-framework"
"AppKit"
];
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = toString [
"-framework"
"AppKit"
];
};
meta = {
description = "Minimalistic, blazing-fast, and extendable prompt for bash and zsh";
+4 -1
View File
@@ -47,7 +47,10 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-d5BvzZCZ3P5CLptuCuJ4KxfEp4CDbtmIZDIbGDcyV3o=";
};
NIX_LDFLAGS = "-llua -lgcc_s";
env.NIX_LDFLAGS = toString [
"-llua"
"-lgcc_s"
];
nativeBuildInputs = [
pkg-config
+14 -7
View File
@@ -46,13 +46,20 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-Hec3RBC/f0GV6ZBniy+BjMAkABlg111mShrQv0aYm6g=";
};
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [
"-Wno-old-style-cast"
"-Wno-error"
"-D__BIG_ENDIAN__=${if stdenv.hostPlatform.isBigEndian then "1" else "0"}"
]);
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-rpath ${libargon2}/lib";
env =
lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = toString [
"-Wno-old-style-cast"
"-Wno-error"
"-D__BIG_ENDIAN__=${if stdenv.hostPlatform.isBigEndian then "1" else "0"}"
];
}
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = toString [
"-rpath"
"${libargon2}/lib"
];
};
patches = [
./darwin.patch
+3 -3
View File
@@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "2.39.0";
version = "2.41.0";
src = fetchFromGitHub {
owner = "chatmail";
repo = "core";
tag = "v${version}";
hash = "sha256-gVRm0bMGmKap4k4g6h+TvdJlK3VBj7HKyABTNrjd7rw=";
hash = "sha256-cTSsdC27kpSqdGQtzHuXiEwujCEmEX/vg0A9KT1sPm8=";
};
patches = [
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "chatmail-core";
inherit version src;
hash = "sha256-hcyOhefNOt6YyLqFM1ZJWwohmcOJo/NjW6rLSlWUDnU=";
hash = "sha256-GUWf+8f++9oM2PcAbp6+oSUVsXBrvEvCQTX6vVKqCLE=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mangareader";
version = "2.2.2";
version = "2.3.0";
src = fetchFromGitHub {
owner = "g-fb";
repo = "mangareader";
rev = finalAttrs.version;
hash = "sha256-e5mG286Pj4Ey1/VzRxzXsY3bqI3XA0IBtnFTXwas/0s=";
hash = "sha256-G/X8iJxEMNCSI0whxIpmzFh/Y/Hbr9vvzcGsbb8arig=";
};
nativeBuildInputs = [
+1
View File
@@ -66,6 +66,7 @@ writeShellApplication {
'';
derivationArgs = {
pname = "nzportable";
inherit version;
passthru = {
updateScript = callPackage ./update.nix { };
+2 -2
View File
@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "pgmodeler";
version = "1.2.2";
version = "1.2.3";
src = fetchFromGitHub {
owner = "pgmodeler";
repo = "pgmodeler";
rev = "v${finalAttrs.version}";
sha256 = "sha256-gDhH6b+8zFIsosdecUUkwAQMP1HME4EbJZsFyTzvGcE=";
sha256 = "sha256-WA3EOJm9RrKk7DrzdrpiihW+LhJOvvE2uajGwPCsBIk=";
};
nativeBuildInputs = [
+4 -3
View File
@@ -25,13 +25,14 @@ let
ParseSyslog
]
);
pname = "postgrey";
version = "1.37";
name = "postgrey-${version}";
in
runCommand name
runCommand "${pname}-${version}"
{
inherit pname version;
src = fetchurl {
url = "https://postgrey.schweikert.ch/pub/${name}.tar.gz";
url = "https://postgrey.schweikert.ch/pub/${pname}-${version}.tar.gz";
sha256 = "1xx51xih4711vrvc6d57il9ccallbljj5zhgqdb07jzmz11rakgz";
};
meta = {
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rumdl";
version = "0.1.10";
version = "0.1.14";
src = fetchFromGitHub {
owner = "rvben";
repo = "rumdl";
tag = "v${finalAttrs.version}";
hash = "sha256-i2ok4/cel/BDD6evQO1yqewirGD79jsLLTCg2aA3FAg=";
hash = "sha256-qaxDVycNszmgqvDwZxHEowkoHGz4FC1g6DZhH+xwBBk=";
};
cargoHash = "sha256-cz+hUSMzM0TIqOFHCLcQrJNkOi9sbqIMM9BQdXhU89E=";
cargoHash = "sha256-h80IiE5PMuRP/eBrm3wlNSPHAKQASioQt3Fyoh253PI=";
cargoBuildFlags = [
"--bin=rumdl"
+47 -12
View File
@@ -1,47 +1,82 @@
{
bash,
black,
clang-tools,
coreutils,
creduce,
cvise,
fetchFromGitHub,
lib,
minisat,
python3,
}:
python3.pkgs.buildPythonApplication {
python3.pkgs.buildPythonApplication rec {
pname = "shrinkray";
version = "25.9.1-unstable-2025-09-11";
version = "26.2.4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "DRMacIver";
repo = "shrinkray";
rev = "21dac48cdb7f3a375a4ac5e5c782b7d4d3711d36";
hash = "sha256-ef0vsWfLl0hJ7WfwInh++GAbw3qTZe8RAVNLxQCTNNs=";
tag = "v${version}";
hash = "sha256-y8NZJ80KM+wW58YAWT7Cx3uh08imI7sbs487GbANyJg=";
};
patches = [ ./tests-remove-black.patch ];
postPatch = ''
substituteInPlace tests/test_main.py \
--replace-fail '/usr/bin/env' '${coreutils}/bin/env'
--replace-fail '/usr/bin/env' '${lib.getExe' coreutils "env"}'
substituteInPlace \
tests/test_cli.py \
tests/test_history.py \
tests/test_main.py \
tests/test_state.py \
tests/test_subprocess_worker.py \
tests/test_tui.py \
tests/test_validation.py \
--replace-fail '#!/bin/bash' '#!${lib.getExe bash}'
substituteInPlace src/shrinkray/formatting.py \
--replace-fail 'find_python_command("black")' '"${lib.getExe black}"' \
--replace-fail 'which("clang-format")' '"${lib.getExe' clang-tools "clang-format"}"'
substituteInPlace src/shrinkray/passes/clangdelta.py \
--replace-fail 'which("clang_delta")' '"${cvise}/libexec/cvise/clang_delta"'
'';
build-system = [ python3.pkgs.setuptools ];
propagatedBuildInputs = with python3.pkgs; [
dependencies = with python3.pkgs; [
click
chardet
trio
urwid
textual
textual-plotext
humanize
libcst
exceptiongroup
binaryornot
];
checkInputs = with python3.pkgs; [
propagatedNativeBuildInputs = [
black
clang-tools
];
nativeCheckInputs = [
minisat
]
++ (with python3.pkgs; [
hypothesis
hypothesmith
pytest-trio
pytest-textual-snapshot
pygments
];
nativeCheckInputs = with python3.pkgs; [
pexpect
pyte
pip
pytestCheckHook
]);
disabledTestPaths = [
# Tests pretending these utilities are missing don't pass when we
# patch in absolute paths
"tests/test_clang_delta.py::test_find_clang_delta_when_found_in_path"
"tests/test_clang_delta.py::test_find_clang_delta_when_not_found_anywhere"
"tests/test_formatting.py::test_default_formatter_python_files_without_black"
];
meta = {
@@ -1,34 +0,0 @@
diff --git a/tests/test_main.py b/tests/test_main.py
index ec6453e..a219750 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -5,16 +5,11 @@ import pathlib
import pytest
import trio
-import black
from shrinkray.__main__ import interrupt_wait_and_kill, main
from click.testing import CliRunner
from attrs import define
-def format(s):
- return black.format_str(s, mode=black.Mode()).strip()
-
-
async def test_kill_process():
async with trio.open_nursery() as nursery:
kwargs = dict(
@@ -100,10 +95,8 @@ except AssertionError:
assert not b.exists()
assert c.exists()
- # TODO: Remove calls to format when formatting is implemented properly for
- # directories.
- assert format(a.read_text()) == "x = 0"
- assert format(c.read_text()) == "from a import x\n\nassert x"
+ assert a.read_text() == "x=0"
+ assert c.read_text() == "from\ta\timport\tx\nassert\tx"
def test_gives_informative_error_when_script_does_not_work_outside_current_directory(
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "supabase-cli";
version = "2.72.7";
version = "2.75.0";
src = fetchFromGitHub {
owner = "supabase";
repo = "cli";
rev = "v${version}";
hash = "sha256-53gnJNnVagvD36WyDFfNE+Dlt/5M/NY4TTb+dD3WAGE=";
hash = "sha256-AroDni0IQ6jMn5mOXt4+8j5tTwEk1upIUo2qvbWY9Jo=";
};
vendorHash = "sha256-I/jjrZkDqIlWA/sdqvSzWZZzJJS0qOPjy/QwEsTAcQ0=";
vendorHash = "sha256-+qFZHCBcZ8tfSrDoYzw7wrVhZM+cUU5okiii8eeDCek=";
ldflags = [
"-s"
+2 -2
View File
@@ -10,12 +10,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "terraria-server";
version = "1.4.5.3";
version = "1.4.5.4";
urlVersion = lib.replaceStrings [ "." ] [ "" ] finalAttrs.version;
src = fetchurl {
url = "https://terraria.org/api/download/pc-dedicated-server/terraria-server-${finalAttrs.urlVersion}.zip";
hash = "sha256-5W6XpGaWQTs9lSy1UJq60YR6mfvb3LTts9ppK05XNCg=";
hash = "sha256-VLBjt8t3Z/aVZJs9gfiQLEHVx0/CsgNiaO5nBrKysHI=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -6,15 +6,15 @@
}:
rustPlatform.buildRustPackage rec {
pname = "uesave";
version = "0.6.2";
version = "0.7.0";
src = fetchFromGitHub {
owner = "trumank";
repo = "uesave-rs";
rev = "v${version}";
hash = "sha256-cwkeuHmtIS8zTxTSa1qLtWfN2OZinqKngMEYvrCCAk0=";
hash = "sha256-Wn7/Ik8F3+gA66CpGZGwUer3zArCx7fx1IS6DGvqJDI=";
};
cargoHash = "sha256-QGhaaBvxKYnljrkCCcFZLALppvM15c8Xtn36SecaNJ8=";
cargoHash = "sha256-Ccggso8rD6qxe3W3ztzcdJINSqVF5HU9BKZiO8tM+wo=";
nativeInstallCheckInputs = [
versionCheckHook
+3 -3
View File
@@ -15,12 +15,12 @@
let
executableName = "vikunja-desktop";
version = "0.24.6";
version = "1.0.0";
src = fetchFromGitHub {
owner = "go-vikunja";
repo = "vikunja";
rev = "v${version}";
hash = "sha256-yUUZ6gPI2Bte36HzfUE6z8B/I1NlwWDSJA2pwkuzd34=";
hash = "sha256-IJ6985gLuI0O08xZq8NYoet02NPFqQQhDLND+nfmdbA=";
};
in
stdenv.mkDerivation (finalAttrs: {
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
pnpmInstallFlags
;
fetcherVersion = 1;
hash = "sha256-orFwjmS1KF82JiQa+BE92YOtKsnYiKVzLXrpjtbe1z8=";
hash = "sha256-BvQfRsV5hiOTkxK+W3qHvVQwMAGdLB3X+PwYBa6Bwl4=";
};
env = {
File diff suppressed because it is too large Load Diff
+19 -15
View File
@@ -2,56 +2,57 @@
lib,
fetchFromGitHub,
stdenv,
nodejs,
pnpm_9,
nodejs_24,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
buildGoModule,
mage,
dart-sass,
writeShellScriptBin,
nixosTests,
}:
let
version = "0.24.6";
version = "1.0.0";
src = fetchFromGitHub {
owner = "go-vikunja";
repo = "vikunja";
rev = "v${version}";
hash = "sha256-yUUZ6gPI2Bte36HzfUE6z8B/I1NlwWDSJA2pwkuzd34=";
hash = "sha256-IJ6985gLuI0O08xZq8NYoet02NPFqQQhDLND+nfmdbA=";
};
frontend = stdenv.mkDerivation (finalAttrs: {
pname = "vikunja-frontend";
inherit version src;
patches = [
./nodejs-22.12-tailwindcss-update.patch
];
sourceRoot = "${finalAttrs.src.name}/frontend";
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs)
pname
version
patches
src
sourceRoot
;
pnpm = pnpm_9;
pnpm = pnpm_10;
fetcherVersion = 1;
hash = "sha256-94ZlywOZYmW/NsvE0dtEA81MeBWGUrJsBXTUauuOmZM=";
hash = "sha256-OmLFn5aKsXPSbW6AehjkuTJMgOMzDSaYo2XbPvU6WXo=";
};
nativeBuildInputs = [
nodejs
nodejs_24
dart-sass
pnpmConfigHook
pnpm_9
pnpm_10
];
doCheck = true;
postBuild = ''
# Force sass-embedded to use our dart-sass instead of bundled binaries.
substituteInPlace node_modules/sass-embedded/dist/lib/src/compiler-path.js \
--replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["${lib.getExe dart-sass}"];'
pnpm run build
'';
@@ -96,7 +97,7 @@ buildGoModule {
mage
];
vendorHash = "sha256-OsKejno8QGg7HzRsrftngiWGiWHFc1jDLi5mQ9/NjI4=";
vendorHash = "sha256-PV6WlJlG839FtWUR6QONMuuBnmo+AA53xmUNbodQdzk=";
inherit frontend;
@@ -108,6 +109,9 @@ buildGoModule {
# These tests need internet, so we skip them.
${skipTest 1 "TestConvertTrelloToVikunja" "pkg/modules/migration/trello/trello_test.go"}
${skipTest 1 "TestConvertTodoistToVikunja" "pkg/modules/migration/todoist/todoist_test.go"}
# These tests require a full config with public URL and CORS enabled.
${skipTest 1 "TestCreateOrganizationMap" "pkg/modules/migration/trello/trello_test.go"}
${skipTest 1 "TestTaskAttachmentUploadSize" "pkg/webtests/task_attachment_upload_test.go"}
'';
buildPhase = ''
@@ -121,8 +125,8 @@ buildGoModule {
'';
checkPhase = ''
mage test:unit
mage test:integration
mage test:feature
mage test:web
'';
installPhase = ''
+3 -3
View File
@@ -66,7 +66,7 @@
stdenv.mkDerivation rec {
pname = "vivaldi";
version = "7.8.3925.56";
version = "7.8.3925.62";
suffix =
{
@@ -79,8 +79,8 @@ stdenv.mkDerivation rec {
url = "https://downloads.vivaldi.com/stable/vivaldi-stable_${version}-1_${suffix}.deb";
hash =
{
aarch64-linux = "sha256-ZfxeBtArPGxvM6ocCEbcM8afTcLTl0TM2xCILNDB1Bo=";
x86_64-linux = "sha256-j1u0WlOqRPh+/NjowpAXKRPACxmdImi9ma2ILFDgWpQ=";
aarch64-linux = "sha256-BdtQC4+IHuJY5B21VcyhVlBeZQyEiCt+eBFShigUGjM=";
x86_64-linux = "sha256-Kib+crvjMM2R6wxGoxN0VOEFTZ7j3w7qn2IG1PAiAfU=";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
+2 -2
View File
@@ -44,7 +44,7 @@ let
dotless_version = builtins.replaceStrings [ "." ] [ "" ] version;
in
stdenv.mkDerivation rec {
name = "tex-gyre-${variant}-math-${version}";
pname = "tex-gyre-${variant}-math";
inherit version;
src = fetchzip {
@@ -54,7 +54,7 @@ let
installPhase = ''
install -m444 -Dt $out/share/fonts/opentype opentype/*.otf
install -m444 -Dt $out/share/doc/${name} doc/*.txt
install -m444 -Dt $out/share/doc/${pname}-${version} doc/*.txt
'';
outputHashAlgo = "sha256";
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "aioamazondevices";
version = "11.1.2";
version = "11.1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "chemelli74";
repo = "aioamazondevices";
tag = "v${version}";
hash = "sha256-9WZ8GlnlI1Coyvi1Aqtk0iVoREyohCLBnjg2kusP1cE=";
hash = "sha256-VkdA661cChsHwSKuOAx864xEjVGzJ35IzG0dOevrqAc=";
};
build-system = [ poetry-core ];
@@ -11,8 +11,7 @@
buildPythonPackage rec {
pname = "azure-mgmt-appcontainers";
version = "4.0.0";
format = "setuptools";
pyroject = true;
pyproject = true;
src = fetchPypi {
pname = "azure_mgmt_appcontainers";
@@ -18,9 +18,9 @@
voluptuous,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "evohome-async";
version = "1.0.6";
version = "1.1.3";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -28,8 +28,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "zxdavb";
repo = "evohome-async";
tag = version;
hash = "sha256-8oeW6NWqYcZF+s2kRfeoVAp8JBbuDn+NQ0RU6nxVTAc=";
tag = "v${finalAttrs.version}";
hash = "sha256-Xc5GWbKqgcIIHKBvcAIS8zL9rZeEDEkwHOhhUdnImbE=";
};
build-system = [ hatchling ];
@@ -56,16 +56,16 @@ buildPythonPackage rec {
pyyaml
syrupy
]
++ optional-dependencies.cli;
++ finalAttrs.passthru.optional-dependencies.cli;
pythonImportsCheck = [ "evohomeasync2" ];
meta = {
description = "Python client for connecting to Honeywell's TCC RESTful API";
homepage = "https://github.com/zxdavb/evohome-async";
changelog = "https://github.com/zxdavb/evohome-async/releases/tag/${version}";
changelog = "https://github.com/zxdavb/evohome-async/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "evo-client";
};
}
})
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "librehardwaremonitor-api";
version = "1.8.4";
version = "1.9.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Sab44";
repo = "librehardwaremonitor-api";
tag = "v${version}";
hash = "sha256-RGtR/VSamfpSpS5TN9nUPCjzkwp5eUcV41Q8R76MDAA=";
hash = "sha256-fj+373+e4X8B7OrejeDe0SXRMQR7vsPO4DoGrmxBu7I=";
};
build-system = [ hatchling ];
@@ -1,150 +0,0 @@
commit d110f0ae9a85f42858140c3cc325e69136f5da2f
Author: Martin Weinelt <hexa@darmstadt.ccc.de>
Date: Mon Nov 10 01:54:08 2025 +0100
Use native asyncio.timeout from python stdlib
This drops the dependency on async_timeout and bumps the required Python
version to 3.11, which is when asyncio.timeout was introduced.
diff --git a/pyControl4/account.py b/pyControl4/account.py
index 658f1b3..60c6cd9 100644
--- a/pyControl4/account.py
+++ b/pyControl4/account.py
@@ -3,7 +3,7 @@ controller info, and retrieves a bearer token for connecting to a Control4 Direc
"""
import aiohttp
-import async_timeout
+import asyncio
import json
import logging
import datetime
@@ -64,14 +64,14 @@ class C4Account:
}
if self.session is None:
async with aiohttp.ClientSession() as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.post(
AUTHENTICATION_ENDPOINT, json=dataDictionary
) as resp:
await checkResponseForError(await resp.text())
return await resp.text()
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.post(
AUTHENTICATION_ENDPOINT, json=dataDictionary
) as resp:
@@ -94,12 +94,12 @@ class C4Account:
raise
if self.session is None:
async with aiohttp.ClientSession() as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.get(uri, headers=headers) as resp:
await checkResponseForError(await resp.text())
return await resp.text()
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.get(uri, headers=headers) as resp:
await checkResponseForError(await resp.text())
return await resp.text()
@@ -125,7 +125,7 @@ class C4Account:
}
if self.session is None:
async with aiohttp.ClientSession() as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.post(
CONTROLLER_AUTHORIZATION_ENDPOINT,
headers=headers,
@@ -134,7 +134,7 @@ class C4Account:
await checkResponseForError(await resp.text())
return await resp.text()
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.post(
CONTROLLER_AUTHORIZATION_ENDPOINT,
headers=headers,
diff --git a/pyControl4/director.py b/pyControl4/director.py
index d2bf551..764959d 100644
--- a/pyControl4/director.py
+++ b/pyControl4/director.py
@@ -3,7 +3,7 @@ getting details about items on the Director.
"""
import aiohttp
-import async_timeout
+import asyncio
import json
from .error_handling import checkResponseForError
@@ -50,14 +50,14 @@ class C4Director:
async with aiohttp.ClientSession(
connector=aiohttp.TCPConnector(verify_ssl=False)
) as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.get(
self.base_url + uri, headers=self.headers
) as resp:
await checkResponseForError(await resp.text())
return await resp.text()
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.get(
self.base_url + uri, headers=self.headers
) as resp:
@@ -86,14 +86,14 @@ class C4Director:
async with aiohttp.ClientSession(
connector=aiohttp.TCPConnector(verify_ssl=False)
) as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.post(
self.base_url + uri, headers=self.headers, json=dataDictionary
) as resp:
await checkResponseForError(await resp.text())
return await resp.text()
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.post(
self.base_url + uri, headers=self.headers, json=dataDictionary
) as resp:
diff --git a/pyControl4/websocket.py b/pyControl4/websocket.py
index 1ee67f2..e8bb37d 100644
--- a/pyControl4/websocket.py
+++ b/pyControl4/websocket.py
@@ -1,7 +1,7 @@
"""Handles Websocket connections to a Control4 Director, allowing for real-time updates using callbacks."""
import aiohttp
-import async_timeout
+import asyncio
import socketio_v4 as socketio
import logging
@@ -60,7 +60,7 @@ class _C4DirectorNamespace(socketio.AsyncClientNamespace):
async with aiohttp.ClientSession(
connector=aiohttp.TCPConnector(verify_ssl=False)
) as session:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with session.get(
self.url + self.uri,
params={"JWT": self.token, "SubscriptionClient": clientId},
@@ -71,7 +71,7 @@ class _C4DirectorNamespace(socketio.AsyncClientNamespace):
self.subscriptionId = data["subscriptionId"]
await self.emit("startSubscription", self.subscriptionId)
else:
- with async_timeout.timeout(10):
+ async with asyncio.timeout(10):
async with self.session.get(
self.url + self.uri,
params={"JWT": self.token, "SubscriptionClient": clientId},
@@ -1,7 +1,6 @@
{
lib,
buildPythonPackage,
pythonOlder,
fetchFromGitHub,
setuptools,
aiohttp,
@@ -12,24 +11,16 @@
buildPythonPackage rec {
pname = "pycontrol4";
version = "1.5.0";
disabled = pythonOlder "3.11";
version = "1.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "lawtancool";
repo = "pyControl4";
tag = "v${version}";
hash = "sha256-r90v9vy8avvEbNKrzZgYtDS5Z5hV66Fd9fF9XJ4r7B4=";
hash = "sha256-8Sd39i/PPphGj3SI20ny5PkUU2D6QKMXn+zsRs9taLw=";
};
patches = [
# https://github.com/lawtancool/pyControl4/pull/47
./asyncio-timeout.patch
];
build-system = [ setuptools ];
dependencies = [
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "python-smarttub";
version = "0.0.46";
version = "0.0.47";
pyproject = true;
src = fetchFromGitHub {
owner = "mdz";
repo = "python-smarttub";
tag = "v${version}";
hash = "sha256-Hx5WVQWB5zk22jExFeka3fzfexBFC/ZWjM7S5WWxxXU=";
hash = "sha256-jKNXViqyRFPeHmoUGL9BGUUcVTQ1w3uJy7J8OlFikPw=";
};
build-system = [
@@ -0,0 +1,38 @@
{
buildPythonPackage,
fetchPypi,
lib,
plotext,
poetry-core,
textual,
}:
buildPythonPackage rec {
pname = "textual-plotext";
version = "1.0.1";
pyproject = true;
# GitHub is missing tags: https://github.com/Textualize/textual-plotext/issues/18
src = fetchPypi {
pname = "textual_plotext";
inherit version;
hash = "sha256-g29TozFnVmCeGUEpo1wodWOOeVjCYfVB4KeU98mAEb4=";
};
build-system = [ poetry-core ];
dependencies = [
plotext
textual
];
pythonImportsCheck = [ "textual_plotext" ];
meta = {
description = "Textual widget wrapper for the Plotext plotting library";
homepage = "https://github.com/Textualize/textual-plotext";
changelog = "https://github.com/Textualize/textual-plotext/blob/main/ChangeLog.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ andersk ];
};
}
@@ -19,6 +19,11 @@ buildPythonPackage rec {
hash = "sha256-HiMMLzVE/Qw/PR7LXACyfzblxrGYrbMoi3/e/QzqF34=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version="0.15"' 'version="${version}"'
'';
build-system = [ setuptools ];
dependencies = [ urwid ];
@@ -2,7 +2,7 @@
# Do not edit!
{
version = "2026.2.0";
version = "2026.2.1";
components = {
"3_day_blinds" =
ps: with ps; [
@@ -14,13 +14,13 @@
buildHomeAssistantComponent rec {
owner = "marcolivierarsenault";
domain = "moonraker";
version = "1.13.1";
version = "1.13.2";
src = fetchFromGitHub {
owner = "marcolivierarsenault";
repo = "moonraker-home-assistant";
tag = version;
hash = "sha256-FMYHQWnPsqYWhd2TI6TUBTfpIs4yYjcE7bmS/Fg5PZU=";
hash = "sha256-+Ra+mQm9I/cxPN0ybfD+Oo0I/LrhiTogD6m0pd0QAEM=";
};
dependencies = [
@@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "bubble-card";
version = "3.1.0";
version = "3.1.1";
src = fetchFromGitHub {
owner = "Clooos";
repo = "Bubble-Card";
rev = "v${version}";
hash = "sha256-qtBUsjpWQdWkeh4b6pRxGT3rA8i4QjjYoC+yr18UB0U=";
hash = "sha256-8sSYqrcfWwnxJ0QGrPdjtAj2FG1TGINIgrvgqFncrIU=";
};
npmDepsHash = "sha256-zkZfyNeJgk0eQkMVptuH7iN5/J/EicGeYHTAF09gLM4=";
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "material-you-utilities";
version = "2.0.31";
version = "2.0.34";
src = fetchFromGitHub {
owner = "Nerwyn";
repo = "material-you-utilities";
tag = version;
hash = "sha256-0WI8qSxll64w4sohAtVpEB73hjCvZme/O8uzzCr6IrQ=";
hash = "sha256-g3ooB83OPAKv8M4T237p7vfvqA75UItkrqU4rWsv6HU=";
};
npmDepsHash = "sha256-H0ro2n+PQTlXJlqh3k0HCzkl1yESSjP6ZSWlAM52tRY=";
npmDepsHash = "sha256-oMDSZMy2vg1vBDJUDVqhqNSmgbN7j5mdJIc/Bjbeiao=";
installPhase = ''
runHook preInstall
+5 -8
View File
@@ -12,7 +12,7 @@
inetutils,
nixosTests,
home-assistant,
testers,
versionCheckHook,
# Look up dependencies of specified components in component-packages.nix
extraComponents ? [ ],
@@ -273,7 +273,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2026.2.0";
hassVersion = "2026.2.1";
in
python.pkgs.buildPythonApplication rec {
@@ -294,13 +294,13 @@ python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
tag = version;
hash = "sha256-SZv5UVB62nwRjaemVZpxj8ZUpOzFGp/RsvOYm6uWiNc=";
hash = "sha256-Hor050X0kBHQiZub0ioRFL4ulLUPJMR6CEh7kmFkbUA=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-ArCk9UrObDLmcmcS8/xT0ADPLzw/DUs3vKyX/fKCeU8=";
hash = "sha256-x8l9nVT+gsgrwUOz1B2X0JH+OuQjf279IrUKGgT7tNo=";
};
build-system = with python.pkgs; [
@@ -426,6 +426,7 @@ python.pkgs.buildPythonApplication rec {
nativeCheckInputs =
requirementsTest
++ [ versionCheckHook ]
++ (with python.pkgs; [
# Used in tests/non_packaged_scripts/test_alexa_locales.py
beautifulsoup4
@@ -499,10 +500,6 @@ python.pkgs.buildPythonApplication rec {
tests = {
nixos = nixosTests.home-assistant;
components = callPackage ./tests.nix { };
version = testers.testVersion {
package = home-assistant;
command = "hass --version";
};
withoutCheckDeps = home-assistant.overridePythonAttrs {
pname = "home-assistant-without-check-deps";
doCheck = false;
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "pytest-homeassistant-custom-component";
version = "0.13.313";
version = "0.13.314";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "MatthewFlamm";
repo = "pytest-homeassistant-custom-component";
tag = version;
hash = "sha256-8KUWwMYguS73qc0ZpRgRUWHr9TavNcYyqme5I+VZ8Ng=";
hash = "sha256-S7IAFz2wljnoaOTa0/oEY/sZredLPtycp2l6EyZihEE=";
};
build-system = [ setuptools ];
+2 -2
View File
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2026.2.0";
version = "2026.2.1";
pyproject = true;
disabled = python.version != home-assistant.python.version;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
tag = version;
hash = "sha256-inB6ON75sX8L/DECt2jH/w+9i42+41zLmF0+UMAUwSg=";
hash = "sha256-0caa5sMel0qSKznDZTnpS9ZVhpdsIyWTXsJuEXX6i9E=";
};
build-system = [
+3 -1
View File
@@ -86,7 +86,9 @@ stdenv.mkDerivation rec {
'';
# Required for pthread_cancel.
NIX_LDFLAGS = lib.optionalString (!stdenv.hostPlatform.isDarwin) "-lgcc_s";
env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
NIX_LDFLAGS = "-lgcc_s";
};
configureFlags = [
"--with-apr=${apr.dev}"
@@ -3,6 +3,8 @@
tl,
bin,
version,
lib,
buildEnv,
libfaketime,
@@ -47,6 +49,9 @@ lib.fix (
args:
(buildEnv (
{
pname = name;
version = "${toString version.texliveYear}-unstable-${version.year}-${version.month}-${version.day}";
inherit (args) name paths;
}
// lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; }
@@ -196,6 +196,7 @@ let
# function for creating a working environment
buildTeXEnv = import ./build-tex-env.nix {
inherit bin tl;
inherit version;
ghostscript = ghostscript_headless;
inherit
lib
+2 -10
View File
@@ -12907,17 +12907,9 @@ with pkgs;
wine = winePackages.full;
wine64 = wine64Packages.full;
wine-staging = lowPrio (
winePackages.full.override {
wineRelease = "staging";
}
);
wine-staging = lowPrio winePackages.stagingFull;
wine-wayland = lowPrio (
winePackages.full.override {
x11Support = false;
}
);
wine-wayland = lowPrio winePackages.waylandFull;
inherit (callPackage ../servers/web-apps/wordpress { })
wordpress
+2
View File
@@ -18941,6 +18941,8 @@ self: super: with self; {
textual-image = callPackage ../development/python-modules/textual-image { };
textual-plotext = callPackage ../development/python-modules/textual-plotext { };
textual-serve = callPackage ../development/python-modules/textual-serve { };
textual-slider = callPackage ../development/python-modules/textual-slider { };