Merge remote-tracking branch 'upstream/staging-next' into fix-merge-conflict-1735949935

This commit is contained in:
Peder Bergebakken Sundt
2025-01-04 01:24:46 +01:00
4752 changed files with 6319 additions and 5585 deletions
+20 -4
View File
@@ -219,7 +219,7 @@ jobs:
tag:
name: Tag
runs-on: ubuntu-latest
needs: process
needs: [ attrs, process ]
if: needs.process.outputs.baseRunId
permissions:
pull-requests: write
@@ -239,6 +239,21 @@ jobs:
name: comparison
path: comparison
- name: Install Nix
uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
# Important: This workflow job runs with extra permissions,
# so we need to make sure to not run untrusted code from PRs
- name: Check out Nixpkgs at the base commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.attrs.outputs.baseSha }}
path: base
sparse-checkout: ci
- name: Build the requestReviews derivation
run: nix-build base/ci -A requestReviews
- name: Tagging pull request
run: |
# Get all currently set rebuild labels
@@ -271,20 +286,21 @@ jobs:
# maintainers.json contains GitHub IDs. Look up handles to request reviews from.
# There appears to be no API to request reviews based on GitHub IDs
jq -r 'keys[]' comparison/maintainers.json \
| while read -r id; do gh api /user/"$id"; done \
| jq -s '{ reviewers: map(.login) }' \
| while read -r id; do gh api /user/"$id" --jq .login; done \
| GH_TOKEN=${{ steps.app-token.outputs.token }} result/bin/process-reviewers.sh "$REPOSITORY" "$NUMBER" "$AUTHOR" \
> reviewers.json
# Request reviewers from maintainers of changed output paths
GH_TOKEN=${{ steps.app-token.outputs.token }} gh api \
--method POST \
/repos/${{ github.repository }}/pulls/${{ github.event.number }}/requested_reviewers \
/repos/"$REPOSITORY"/pulls/"$NUMBER"/requested_reviewers \
--input reviewers.json
env:
GH_TOKEN: ${{ github.token }}
REPOSITORY: ${{ github.repository }}
NUMBER: ${{ github.event.number }}
AUTHOR: ${{ github.event.pull_request.user.login }}
- name: Add eval summary to commit statuses
if: ${{ github.event_name == 'pull_request_target' }}
+1
View File
@@ -15,6 +15,7 @@ stdenvNoCC.mkDerivation {
root = ./.;
fileset = lib.fileset.unions [
./get-reviewers.sh
./process-reviewers.sh
./request-reviews.sh
./verify-base-branch.sh
./dev-branches.txt
+6 -36
View File
@@ -1,8 +1,6 @@
#!/usr/bin/env bash
# Get the code owners of the files changed by a PR,
# suitable to be consumed by the API endpoint to request reviews:
# https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#request-reviewers-for-a-pull-request
# Get the code owners of the files changed by a PR, returning one username per line
set -euo pipefail
@@ -10,18 +8,15 @@ log() {
echo "$@" >&2
}
if (( "$#" < 7 )); then
log "Usage: $0 GIT_REPO OWNERS_FILE BASE_REPO BASE_REF HEAD_REF PR_NUMBER PR_AUTHOR"
if (( "$#" < 4 )); then
log "Usage: $0 GIT_REPO OWNERS_FILE BASE_REF HEAD_REF"
exit 1
fi
gitRepo=$1
ownersFile=$2
baseRepo=$3
baseRef=$4
headRef=$5
prNumber=$6
prAuthor=$7
baseRef=$3
headRef=$4
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' exit
@@ -98,29 +93,4 @@ for file in "${touchedFiles[@]}"; do
done
# Cannot request a review from the author
if [[ -v users[${prAuthor,,}] ]]; then
log "One or more files are owned by the PR author, ignoring"
unset 'users[${prAuthor,,}]'
fi
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/pulls/$prNumber/reviews" \
--jq '.[].user.login' > "$tmp/already-reviewed-by"
# And we don't want to rerequest reviews from people who already reviewed
while read -r user; do
if [[ -v users[${user,,}] ]]; then
log "User $user is a code owner but has already left a review, ignoring"
unset 'users[${user,,}]'
fi
done < "$tmp/already-reviewed-by"
# Turn it into a JSON for the GitHub API call to request PR reviewers
jq -n \
--arg users "${!users[*]}" \
'{
reviewers: $users | split(" "),
}'
printf "%s\n" "${!users[@]}"
+65
View File
@@ -0,0 +1,65 @@
#!/usr/bin/env bash
# Process reviewers for a PR, reading line-separated usernames on stdin,
# returning a JSON suitable to be consumed by the API endpoint to request reviews:
# https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#request-reviewers-for-a-pull-request
set -euo pipefail
log() {
echo "$@" >&2
}
if (( "$#" < 3 )); then
log "Usage: $0 BASE_REPO PR_NUMBER PR_AUTHOR"
exit 1
fi
baseRepo=$1
prNumber=$2
prAuthor=$3
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' exit
declare -A users=()
while read -r handle && [[ -n "$handle" ]]; do
users[$handle]=
done
# Cannot request a review from the author
if [[ -v users[${prAuthor,,}] ]]; then
log "One or more files are owned by the PR author, ignoring"
unset 'users[${prAuthor,,}]'
fi
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/pulls/$prNumber/reviews" \
--jq '.[].user.login' > "$tmp/already-reviewed-by"
# And we don't want to rerequest reviews from people who already reviewed
while read -r user; do
if [[ -v users[${user,,}] ]]; then
log "User $user is a code owner but has already left a review, ignoring"
unset 'users[${user,,}]'
fi
done < "$tmp/already-reviewed-by"
for user in "${!users[@]}"; do
if ! gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$baseRepo/collaborators/$user" >&2; then
log "User $user is not a repository collaborator, probably missed the automated invite to the maintainers team (see <https://github.com/NixOS/nixpkgs/issues/234293>), ignoring"
unset 'users[$user]'
fi
done
# Turn it into a JSON for the GitHub API call to request PR reviewers
jq -n \
--arg users "${!users[*]}" \
'{
reviewers: $users | split(" "),
}'
+2 -1
View File
@@ -78,7 +78,8 @@ if ! "$SCRIPT_DIR"/verify-base-branch.sh "$tmp/nixpkgs.git" "$headRef" "$baseRep
fi
log "Getting code owners to request reviews from"
"$SCRIPT_DIR"/get-reviewers.sh "$tmp/nixpkgs.git" "$ownersFile" "$baseRepo" "$baseBranch" "$headRef" "$prNumber" "$prAuthor" > "$tmp/reviewers.json"
"$SCRIPT_DIR"/get-reviewers.sh "$tmp/nixpkgs.git" "$ownersFile" "$baseBranch" "$headRef" | \
"$SCRIPT_DIR"/process-reviewers.sh "$baseRepo" "$prNumber" "$prAuthor" > "$tmp/reviewers.json"
log "Requesting reviews from: $(<"$tmp/reviewers.json")"
+34 -28
View File
@@ -1,40 +1,46 @@
# This module defines a small NixOS configuration. It does not
# contain any graphical stuff.
{ config, lib, ... }:
with lib;
{
documentation.enable = mkDefault false;
lib,
...
}:
let
inherit (lib) mkDefault;
in
{
documentation = {
enable = mkDefault false;
doc.enable = mkDefault false;
info.enable = mkDefault false;
man.enable = mkDefault false;
nixos.enable = mkDefault false;
};
documentation.doc.enable = mkDefault false;
environment = {
# Perl is a default package.
defaultPackages = mkDefault [ ];
stub-ld.enable = mkDefault false;
};
documentation.info.enable = mkDefault false;
documentation.man.enable = mkDefault false;
documentation.nixos.enable = mkDefault false;
# Perl is a default package.
environment.defaultPackages = mkDefault [ ];
environment.stub-ld.enable = mkDefault false;
# The lessopen package pulls in Perl.
programs.less.lessopen = mkDefault null;
programs = {
# The lessopen package pulls in Perl.
less.lessopen = mkDefault null;
command-not-found.enable = mkDefault false;
};
# This pulls in nixos-containers which depends on Perl.
boot.enableContainers = mkDefault false;
programs.command-not-found.enable = mkDefault false;
services = {
logrotate.enable = mkDefault false;
udisks2.enable = mkDefault false;
};
services.logrotate.enable = mkDefault false;
services.udisks2.enable = mkDefault false;
xdg.autostart.enable = mkDefault false;
xdg.icons.enable = mkDefault false;
xdg.mime.enable = mkDefault false;
xdg.sounds.enable = mkDefault false;
xdg = {
autostart.enable = mkDefault false;
icons.enable = mkDefault false;
mime.enable = mkDefault false;
sounds.enable = mkDefault false;
};
}
+2 -2
View File
@@ -143,10 +143,10 @@ in
restartTriggers = [ cfg.unifiPackage cfg.mongodbPackage ];
serviceConfig = {
Type = "simple";
Type = "notify";
ExecStart = "${cmd} start";
ExecStop = "${cmd} stop";
Restart = "on-failure";
Restart = "always";
TimeoutSec = "5min";
User = "unifi";
UMask = "0077";
@@ -8,6 +8,7 @@ let
inherit (lib)
getExe'
literalExpression
maintainers
mkEnableOption
mkIf
mkOption
@@ -25,7 +26,7 @@ in
];
meta = {
maintainers = [ lib.maintainers.kjeremy ];
maintainers = [ maintainers.kjeremy ];
};
options.virtualisation.vmware.guest = {
+1 -1
View File
@@ -14,7 +14,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "manolomartinez";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-o4+tXVJTgT52JyJOC+Glr2cvZjbTaZL8TIsmz+A4vE4=";
};
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "djdiskmachine";
repo = "littlegptracker";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-1uXC5nJ63YguQuNIkuK0yx9lmrMBqw0WdlmCV8o11cE=";
};
+1 -1
View File
@@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-3j6IoMi30BQ8WHK4BxbsW+/3XZx7rBFd47EBENa2GiQ=";
};
@@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "puddletag";
repo = "puddletag";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-oScT8YcQoDf2qZ+J7xKm22Sbfym3tkVUrWT5D2LU5e8=";
};
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
tag = version;
fetchSubmodules = true;
hash = "sha256-0siAx141DZx39facXWmKbsi0rHBNpobApTdey07EcXg=";
};
+1 -1
View File
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "lapce";
repo = "lapce";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-vBBYNHgZiW5JfGeUG6YZObf4oK0hHxTbsZNTfnIX95Y=";
};
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
repo = pname;
owner = "olivierkes";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-/Ryvv5mHdZ3iwMpZjOa62h8D2B00pzknJ70DfjDTPPA=";
};
+1 -1
View File
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "retext-project";
repo = pname;
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-BToW9rPFEbgAErvJ5gtUpNadCLtlRihE7eKKFgO5N68=";
};
@@ -1,38 +1,23 @@
diff --git a/src/cpp/core/libclang/LibClang.cpp b/src/cpp/core/libclang/LibClang.cpp
index f166a43b37..d8024b2ce7 100644
--- a/src/cpp/core/libclang/LibClang.cpp
+++ b/src/cpp/core/libclang/LibClang.cpp
@@ -62,7 +62,7 @@
// we need to add in the associated libclang headers as
// they are not discovered / used by default during compilation
- FilePath llvmPath = s_libraryPath.getParent().getParent();
+ FilePath llvmPath("@libclang@");
boost::format fmt("%1%/lib/clang/%2%/include");
fmt % llvmPath.getAbsolutePath() % version.asString();
std::string includePath = fmt.str();
@@ -74,47 +74,7 @@
std::vector<std::string> systemClangVersions()
{
- std::vector<std::string> clangVersions;
-
-#if defined(__APPLE__)
- // NOTE: the version of libclang.dylib bundled with Xcode
- // doesn't seem to work well when loaded as a library
- // (there seems to be extra orchestration required to get
- // include paths set up; easier to just depend on command
- // line tools since we request their installation in other
- // contexts as well)
- clangVersions = {
@@ -84,34 +84,13 @@ std::vector<std::string> systemClangVersions()
// line tools since we request their installation in other
// contexts as well)
clangVersions = {
- "/Library/Developer/CommandLineTools/usr/lib/libclang.dylib"
- };
-#elif defined(__unix__)
- // default set of versions
- clangVersions = {
+ "@libclang@/lib/libclang.dylib"
};
#elif defined(__unix__)
// default set of versions
clangVersions = {
- "/usr/lib/libclang.so",
- "/usr/lib/llvm/libclang.so",
- "/usr/lib64/libclang.so",
- "/usr/lib64/llvm/libclang.so",
- };
+ "@libclang@/lib/libclang.so",
};
-
- // iterate through the set of available 'llvm' directories
- for (const char* prefix : {"/usr/lib", "/usr/lib64"})
@@ -51,11 +36,6 @@
- if (path.getFilename().find("llvm") == 0)
- clangVersions.push_back(path.completePath("lib/libclang.so.1").getAbsolutePath());
- }
-#endif
-
- return clangVersions;
+ return std::vector<std::string> { "@libclang.so@" };
}
#endif
return clangVersions;
+166 -195
View File
@@ -1,67 +1,39 @@
{ lib
, stdenv
, mkDerivation
, fetchurl
, fetchFromGitHub
, makeDesktopItem
, copyDesktopItems
, cmake
, boost183
, zlib
, openssl
, R
, qtbase
, qtxmlpatterns
, qtsensors
, qtwebengine
, qtwebchannel
, quarto
, libuuid
, hunspellDicts
, unzip
, ant
, jdk
, gnumake
, pandoc
, llvmPackages
, yaml-cpp
, soci
, postgresql
, nodejs
, qmake
, server ? false # build server version
, sqlite
, pam
, nixosTests
{
lib,
stdenv,
fetchzip,
fetchFromGitHub,
replaceVars,
cmake,
boost183,
zlib,
openssl,
R,
libsForQt5,
quarto,
libuuid,
hunspellDicts,
ant,
jdk,
gnumake,
pandoc,
llvmPackages,
yaml-cpp,
soci,
sqlite,
nodejs,
yarn,
yarnConfigHook,
fetchYarnDeps,
server ? false, # build server version
pam,
nixosTests,
}:
let
pname = "RStudio";
version = "2024.04.2+764";
RSTUDIO_VERSION_MAJOR = lib.versions.major version;
RSTUDIO_VERSION_MINOR = lib.versions.minor version;
RSTUDIO_VERSION_PATCH = lib.versions.patch version;
RSTUDIO_VERSION_SUFFIX = "+" + toString (
lib.tail (lib.splitString "+" version)
);
src = fetchFromGitHub {
owner = "rstudio";
repo = "rstudio";
rev = "v" + version;
hash = "sha256-j258eW1MYQrB6kkpjyolXdNuwQ3zSWv9so4q0QLsZuw=";
};
mathJaxSrc = fetchurl {
mathJaxSrc = fetchzip {
url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-27.zip";
hash = "sha256-xWy6psTOA8H8uusrXqPDEtL7diajYCVHcMvLiPsgQXY=";
};
rsconnectSrc = fetchFromGitHub {
owner = "rstudio";
repo = "rsconnect";
rev = "v1.2.2";
hash = "sha256-wvM9Bm7Nb6yU9z0o+uF5lB2kdgjOW5wZSk6y48NPF2U=";
hash = "sha256-J7SZK/9q3HcXTD7WFHxvh++ttuCd89Vc4SEBrUEU0AI=";
};
# Ideally, rev should match the rstudio release name.
@@ -73,24 +45,46 @@ let
hash = "sha256-lZnZvioztbBWWa6H177X6rRrrgACx2gMjVFDgNup93g=";
};
description = "Set of integrated tools for the R language";
hunspellDictionaries = lib.filter lib.isDerivation (lib.unique (lib.attrValues hunspellDicts));
# These dicts contain identically-named dict files, so we only keep the
# -large versions in case of clashes
largeDicts = lib.filter (d: lib.hasInfix "-large-wordlist" d.name) hunspellDictionaries;
otherDicts = lib.filter (
d: !(lib.hasAttr "dictFileName" d && lib.elem d.dictFileName (map (d: d.dictFileName) largeDicts))
) hunspellDictionaries;
dictionaries = largeDicts ++ otherDicts;
in
(if server then stdenv.mkDerivation else mkDerivation)
(rec {
inherit pname version src RSTUDIO_VERSION_MAJOR RSTUDIO_VERSION_MINOR RSTUDIO_VERSION_PATCH RSTUDIO_VERSION_SUFFIX;
stdenv.mkDerivation rec {
pname = "RStudio";
version = "2024.04.2+764";
nativeBuildInputs = [
RSTUDIO_VERSION_MAJOR = lib.versions.major version;
RSTUDIO_VERSION_MINOR = lib.versions.minor version;
RSTUDIO_VERSION_PATCH = lib.versions.patch version;
RSTUDIO_VERSION_SUFFIX = "+" + toString (lib.tail (lib.splitString "+" version));
src = fetchFromGitHub {
owner = "rstudio";
repo = "rstudio";
rev = "refs/tags/v${version}";
hash = "sha256-j258eW1MYQrB6kkpjyolXdNuwQ3zSWv9so4q0QLsZuw=";
};
nativeBuildInputs =
[
cmake
unzip
ant
jdk
pandoc
nodejs
] ++ lib.optionals (!server) [
copyDesktopItems
yarn
yarnConfigHook
]
++ lib.optionals (!server) [
libsForQt5.wrapQtAppsHook
];
buildInputs = [
buildInputs =
[
boost183
zlib
openssl
@@ -98,153 +92,130 @@ in
libuuid
yaml-cpp
soci
postgresql
quarto
] ++ (if server then [
sqlite.dev
pam
] else [
qtbase
qtxmlpatterns
qtsensors
qtwebengine
qtwebchannel
]);
cmakeFlags = [
"-DRSTUDIO_TARGET=${if server then "Server" else "Desktop"}"
"-DRSTUDIO_USE_SYSTEM_SOCI=ON"
"-DRSTUDIO_USE_SYSTEM_BOOST=ON"
"-DRSTUDIO_USE_SYSTEM_YAML_CPP=ON"
"-DRSTUDIO_DISABLE_CHECK_FOR_UPDATES=ON"
"-DQUARTO_ENABLED=TRUE"
"-DPANDOC_VERSION=${pandoc.version}"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib/rstudio"
] ++ lib.optionals (!server) [
"-DQT_QMAKE_EXECUTABLE=${qmake}/bin/qmake"
]
++ lib.optionals server [ pam ]
++ lib.optionals (!server) [
libsForQt5.qtbase
libsForQt5.qtxmlpatterns
libsForQt5.qtsensors
libsForQt5.qtwebengine
libsForQt5.qtwebchannel
];
cmakeFlags =
[
(lib.cmakeFeature "RSTUDIO_TARGET" (if server then "Server" else "Desktop"))
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_SOCI" true)
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_BOOST" true)
(lib.cmakeBool "RSTUDIO_USE_SYSTEM_YAML_CPP" true)
(lib.cmakeBool "RSTUDIO_DISABLE_CHECK_FOR_UPDATES" true)
(lib.cmakeBool "QUARTO_ENABLED" true)
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}/lib/rstudio")
]
++ lib.optionals (!server) [
(lib.cmakeFeature "QT_QMAKE_EXECUTABLE" "${libsForQt5.qmake}/bin/qmake")
(lib.cmakeBool "RSTUDIO_INSTALL_FREEDESKTOP" true)
];
patches = [
# Hack RStudio to only use the input R and provided libclang.
patches = [
./r-location.patch
./clang-location.patch
./use-system-node.patch
./fix-resources-path.patch
./pandoc-nix-path.patch
./use-system-quarto.patch
./ignore-etc-os-release.patch
];
(replaceVars ./r-location.patch {
R = lib.getBin R;
})
(replaceVars ./clang-location.patch {
libclang = lib.getLib llvmPackages.libclang;
})
postPatch = ''
substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace-fail '@R@' ${R}
./fix-resources-path.patch
./ignore-etc-os-release.patch
./dont-yarn-install.patch
./dont-assume-pandoc-in-quarto.patch
];
substituteInPlace src/gwt/build.xml \
--replace-fail '@node@' ${nodejs} \
--replace-fail './lib/quarto' ${quartoSrc}
postPatch = ''
# fix .desktop Exec field
substituteInPlace src/node/desktop/resources/freedesktop/rstudio.desktop.in \
--replace-fail "''${CMAKE_INSTALL_PREFIX}/rstudio" "rstudio"
substituteInPlace src/cpp/conf/rsession-dev.conf \
--replace-fail '@node@' ${nodejs}
# set install path of freedesktop files
substituteInPlace src/{cpp,node}/desktop/CMakeLists.txt \
--replace-fail "/usr/share" "$out/share"
'';
substituteInPlace src/cpp/core/libclang/LibClang.cpp \
--replace-fail '@libclang@' ${lib.getLib llvmPackages.libclang} \
--replace-fail '@libclang.so@' ${lib.getLib llvmPackages.libclang}/lib/libclang.so
yarnOfflineCache = fetchYarnDeps {
yarnLock = quartoSrc + "/yarn.lock";
hash = "sha256-Qw8O1Jzl2EO0DEF3Jrw/cIT9t22zs3jyKgDA5XZbuGA=";
};
substituteInPlace src/cpp/session/CMakeLists.txt \
--replace-fail '@pandoc@' ${pandoc} \
--replace-fail '@quarto@' ${quarto}
dontYarnInstallDeps = true; # will call manually in preConfigure
substituteInPlace src/cpp/session/include/session/SessionConstants.hpp \
--replace-fail '@pandoc@' ${pandoc}/bin \
--replace-fail '@quarto@' ${quarto}
'';
preConfigure = ''
# set up node_modules directory inside quarto so that panmirror can be built
mkdir src/gwt/lib/quarto
cp -r --no-preserve=all ${quartoSrc}/* src/gwt/lib/quarto
pushd src/gwt/lib/quarto
yarnConfigHook
popd
hunspellDictionaries = lib.filter lib.isDerivation (lib.unique (lib.attrValues hunspellDicts));
# These dicts contain identically-named dict files, so we only keep the
# -large versions in case of clashes
largeDicts = lib.filter (d: lib.hasInfix "-large-wordlist" d.name) hunspellDictionaries;
otherDicts = lib.filter
(d: !(lib.hasAttr "dictFileName" d &&
lib.elem d.dictFileName (map (d: d.dictFileName) largeDicts)))
hunspellDictionaries;
dictionaries = largeDicts ++ otherDicts;
### set up dependencies that will be copied into the result
# note: only the directory names have to match upstream, the actual versions don't
# note: symlinks are preserved
preConfigure = ''
mkdir dependencies/dictionaries
for dict in ${builtins.concatStringsSep " " dictionaries}; do
for i in "$dict/share/hunspell/"*; do
ln -s $i dependencies/dictionaries/
done
mkdir dependencies/dictionaries
for dict in ${builtins.concatStringsSep " " dictionaries}; do
for i in "$dict/share/hunspell/"*; do
ln -s $i dependencies/dictionaries/
done
done
unzip -q ${mathJaxSrc} -d dependencies/mathjax-27
ln -s ${quarto} dependencies/quarto
# As of Chocolate Cosmos, node 18.20.3 is used for runtime
# 18.18.2 is still used for build
# see https://github.com/rstudio/rstudio/commit/facb5cf1ab38fe77813aaf36590804e4f865d780
mkdir -p dependencies/common/node/18.20.3
# version in dependencies/common/install-mathjax
ln -s ${mathJaxSrc} dependencies/mathjax-27
mkdir -p dependencies/pandoc/${pandoc.version}
cp ${pandoc}/bin/pandoc dependencies/pandoc/${pandoc.version}/pandoc
# version in CMakeGlobals.txt (PANDOC_VERSION)
mkdir -p dependencies/pandoc/2.18
ln -s ${lib.getBin pandoc}/bin/* dependencies/pandoc/2.18
cp -r ${rsconnectSrc} dependencies/rsconnect
( cd dependencies && ${R}/bin/R CMD build -d --no-build-vignettes rsconnect )
'';
# version in CMakeGlobals.txt (RSTUDIO_INSTALLED_NODE_VERSION)
mkdir -p dependencies/common/node
ln -s ${nodejs} dependencies/common/node/18.20.3
'';
postInstall = ''
mkdir -p $out/bin $out/share
postInstall = ''
mkdir -p $out/bin
${lib.optionalString (!server) ''
mkdir -p $out/share/icons/hicolor/48x48/apps
ln $out/lib/rstudio/rstudio.png $out/share/icons/hicolor/48x48/apps
''}
${lib.optionalString server ''
ln -s $out/lib/rstudio/bin/{crash-handler-proxy,postback,r-ldpath,rpostback,rserver,rserver-pam,rsession,rstudio-server} $out/bin
''}
for f in {${if server
then "crash-handler-proxy,postback,r-ldpath,rpostback,rserver,rserver-pam,rsession,rstudio-server"
else "diagnostics,rpostback,rstudio"}}; do
ln -s $out/lib/rstudio/bin/$f $out/bin
done
${lib.optionalString (!server) ''
ln -s $out/lib/rstudio/bin/{diagnostics,rpostback,rstudio} $out/bin
''}
'';
for f in .gitignore .Rbuildignore LICENSE README; do
find . -name $f -delete
done
qtWrapperArgs = lib.optionals (!server) [
"--suffix PATH : ${lib.makeBinPath [ gnumake ]}"
];
rm -r $out/lib/rstudio/{INSTALL,COPYING,NOTICE,README.md,SOURCE,VERSION}
'';
meta = {
broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
inherit description;
homepage = "https://www.rstudio.com/";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ ciil cfhammill ];
mainProgram = "rstudio" + lib.optionalString server "-server";
platforms = lib.platforms.linux;
passthru = {
inherit server;
tests = {
inherit (nixosTests) rstudio-server;
};
};
passthru = {
inherit server;
tests = { inherit (nixosTests) rstudio-server; };
};
} // lib.optionalAttrs (!server) {
qtWrapperArgs = [
"--suffix PATH : ${lib.makeBinPath [ gnumake ]}"
meta = {
broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
description = "Set of integrated tools for the R language";
homepage = "https://www.rstudio.com/";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
ciil
cfhammill
];
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "rstudio %F";
icon = "rstudio";
desktopName = "RStudio";
genericName = "IDE";
comment = description;
categories = [ "Development" ];
mimeTypes = [
"text/x-r-source" "text/x-r" "text/x-R" "text/x-r-doc" "text/x-r-sweave" "text/x-r-markdown"
"text/x-r-html" "text/x-r-presentation" "application/x-r-data" "application/x-r-project"
"text/x-r-history" "text/x-r-profile" "text/x-tex" "text/x-markdown" "text/html"
"text/css" "text/javascript" "text/x-chdr" "text/x-csrc" "text/x-c++hdr" "text/x-c++src"
];
})
];
})
mainProgram = "rstudio" + lib.optionalString server "-server";
platforms = lib.platforms.linux;
};
}
@@ -0,0 +1,48 @@
diff --git a/src/cpp/session/CMakeLists.txt b/src/cpp/session/CMakeLists.txt
index 0202e84..596b9f8 100644
--- a/src/cpp/session/CMakeLists.txt
+++ b/src/cpp/session/CMakeLists.txt
@@ -59,11 +59,7 @@ endif()
# install pandoc
-# - by default, we use quarto + quarto's bundled pandoc
-# - if quarto is not enabled, use pandoc fallback
-if(QUARTO_ENABLED)
- set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_QUARTO_DIR}/bin/tools")
-elseif(EXISTS "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
+if(EXISTS "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
else()
set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_DIR}/pandoc/${PANDOC_VERSION}")
@@ -733,11 +729,10 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNATE_BUILD)
PATTERN ".gitignore"
EXCLUDE)
endif()
- else()
- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}/"
- DESTINATION "${RSTUDIO_INSTALL_BIN}/pandoc"
- USE_SOURCE_PERMISSIONS)
endif()
+ install(DIRECTORY "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}/"
+ DESTINATION "${RSTUDIO_INSTALL_BIN}/pandoc"
+ USE_SOURCE_PERMISSIONS)
# install embedded packages
foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
diff --git a/src/cpp/session/include/session/SessionConstants.hpp b/src/cpp/session/include/session/SessionConstants.hpp
index e6aef22..57491ec 100644
--- a/src/cpp/session/include/session/SessionConstants.hpp
+++ b/src/cpp/session/include/session/SessionConstants.hpp
@@ -147,11 +147,7 @@
#define kSessionTmpDirEnvVar "RS_SESSION_TMP_DIR"
#define kSessionTmpDir "rstudio-rsession"
-#ifdef QUARTO_ENABLED
-# define kDefaultPandocPath "bin/quarto/bin/tools"
-#else
# define kDefaultPandocPath "bin/pandoc"
-#endif
#define kDefaultNodePath "bin/node"
#define kDefaultQuartoPath "bin/quarto"
@@ -0,0 +1,16 @@
diff --git a/src/gwt/build.xml b/src/gwt/build.xml
index 27ffe33..4218678 100644
--- a/src/gwt/build.xml
+++ b/src/gwt/build.xml
@@ -139,11 +139,6 @@
<echo message="panmirror minify: ${panmirror.minify}"/>
<mkdir dir="${panmirror.build.dir}"/>
- <exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
- <arg value="install"/>
- <arg value="--network-timeout"/>
- <arg value="240000"/>
- </exec>
<exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
<arg value="build"/>
<arg value="--minify"/>
@@ -1,18 +0,0 @@
--- a/src/cpp/session/include/session/SessionConstants.hpp
+++ b/src/cpp/session/include/session/SessionConstants.hpp
@@ -142,13 +142,13 @@
#define kSessionTmpDir "rstudio-rsession"
#ifdef QUARTO_ENABLED
-# define kDefaultPandocPath "bin/quarto/bin/tools"
+# define kDefaultPandocPath "@pandoc@"
#else
# define kDefaultPandocPath "bin/pandoc"
#endif
#define kDefaultNodePath "bin/node"
-#define kDefaultQuartoPath "bin/quarto"
+#define kDefaultQuartoPath "@quarto@"
#define kDefaultRsclangPath "bin/rsclang"
#ifdef _WIN32
@@ -1,81 +0,0 @@
diff --git a/src/cpp/conf/rsession-dev.conf b/src/cpp/conf/rsession-dev.conf
index d18362b..98cdd4c 100644
--- a/src/cpp/conf/rsession-dev.conf
+++ b/src/cpp/conf/rsession-dev.conf
@@ -39,7 +39,7 @@ external-mathjax-path=${RSTUDIO_DEPENDENCIES_MATHJAX_DIR}
external-pandoc-path=${RSTUDIO_DEPENDENCIES_PANDOC_DIR}
external-quarto-path=${RSTUDIO_DEPENDENCIES_QUARTO_DIR}
external-libclang-path=${RSTUDIO_DEPENDENCIES_DIR}/common/libclang
-external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/18.18.2/bin/node
+external-node-path=@node@/bin/node
# enable copilot
copilot-enabled=1
diff --git a/src/gwt/build.xml b/src/gwt/build.xml
index 033d605..f1ee63d 100644
--- a/src/gwt/build.xml
+++ b/src/gwt/build.xml
@@ -87,29 +87,7 @@
<!-- ensure version matches RSTUDIO_NODE_VERSION -->
<property name="node.version" value="18.18.2"/>
<property name="node.dir" value="../../dependencies/common/node/${node.version}"/>
- <!-- use yarn from system but will prefer yarn from dependencies if available -->
- <condition property="yarn.bin" value="yarn">
- <not>
- <os family="windows" />
- </not>
- </condition>
- <available
- property="yarn.bin"
- value="${node.dir}/bin/yarn"
- file="${node.dir}/bin/yarn"/>
- <condition property="yarn.bin" value="${node.dir}/node_modules/yarn/bin/yarn.cmd">
- <os family="windows" />
- </condition>
- <!-- use yarn from /opt/rstudio-tools if installed (typical for Docker) -->
- <available
- property="yarn.bin"
- value="/opt/rstudio-tools/dependencies/common/node/${node.version}/bin/yarn"
- file="/opt/rstudio-tools/dependencies/common/node/${node.version}/bin/yarn"/>
- <!-- use yarn from c:/rstudio-tools if installed (typical for Docker on Windows) -->
- <available
- property="yarn.bin"
- value="c:\rstudio-tools\dependencies\common\node\${node.version}\node_modules\yarn\bin\yarn.cmd"
- file="c:\rstudio-tools\dependencies\common\node\${node.version}\node_modules\yarn\bin\yarn.cmd"/>
+ <property name="node.bin" value="@node@/bin/node"/>
<property name="panmirror.dir" value="./lib/quarto/apps/panmirror"/>
<property name="panmirror.build.dir" value="./www/js/panmirror"/>
@@ -133,28 +111,11 @@
<isset property="panmirror.minify" />
</not>
</condition>
-
- <echo message="yarn location: ${yarn.bin}"/>
- <echo message="panmirror location: ${panmirror.dir}"/>
- <echo message="panmirror minify: ${panmirror.minify}"/>
-
<mkdir dir="${panmirror.build.dir}"/>
- <exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
- <arg value="install"/>
- <arg value="--network-timeout"/>
- <arg value="240000"/>
- </exec>
- <exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
- <arg value="build"/>
- <arg value="--minify"/>
- <arg value="${panmirror.minify}"/>
- <arg value="--sourcemap"/>
- <arg value="true"/>
- <env key="PANMIRROR_OUTDIR" value="dist-rstudio"/>
+ <exec executable="${node.bin}" dir="${panmirror.dir}" spawn="${panmirror.spawn}">
+ <arg value="fuse"/>
+ <arg value="${panmirror.target}"/>
</exec>
- <copy todir="${panmirror.build.dir}">
- <fileset dir="${panmirror.dir}/dist-rstudio"/>
- </copy>
</target>
<target name="javac" description="Compile java source">
@@ -1,46 +0,0 @@
--- a/src/cpp/session/CMakeLists.txt
+++ b/src/cpp/session/CMakeLists.txt
@@ -36,18 +36,14 @@
else()
set(RSTUDIO_DEPENDENCIES_DICTIONARIES_DIR "${RSTUDIO_DEPENDENCIES_DIR}/dictionaries")
endif()
-
+
if(EXISTS "${RSTUDIO_TOOLS_ROOT}/mathjax-27")
set(RSTUDIO_DEPENDENCIES_MATHJAX_DIR "${RSTUDIO_TOOLS_ROOT}/mathjax-27")
else()
set(RSTUDIO_DEPENDENCIES_MATHJAX_DIR "${RSTUDIO_DEPENDENCIES_DIR}/mathjax-27")
endif()
- if(EXISTS "${RSTUDIO_TOOLS_ROOT}/quarto")
- set(RSTUDIO_DEPENDENCIES_QUARTO_DIR "${RSTUDIO_TOOLS_ROOT}/quarto")
- else()
- set(RSTUDIO_DEPENDENCIES_QUARTO_DIR "${RSTUDIO_DEPENDENCIES_DIR}/quarto")
- endif()
+ set(RSTUDIO_DEPENDENCIES_QUARTO_DIR "@quarto@")
endif()
@@ -56,7 +52,7 @@
# - by default, we use quarto + quarto's bundled pandoc
# - if quarto is not enabled, use pandoc fallback
if(QUARTO_ENABLED)
- set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_QUARTO_DIR}/bin/tools")
+ set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "@pandoc@/bin")
elseif(EXISTS "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
else()
@@ -66,11 +62,9 @@
# validate our dependencies exist
foreach(VAR RSTUDIO_DEPENDENCIES_DICTIONARIES_DIR
- RSTUDIO_DEPENDENCIES_MATHJAX_DIR
- RSTUDIO_DEPENDENCIES_PANDOC_DIR
- RSTUDIO_DEPENDENCIES_QUARTO_DIR)
+ RSTUDIO_DEPENDENCIES_MATHJAX_DIR)
+
-
# skip quarto if not enabled
if("${VAR}" STREQUAL "RSTUDIO_DEPENDENCIES_QUARTO_DIR" AND NOT QUARTO_ENABLED)
continue()
@@ -1,15 +1,37 @@
{
stdenvNoCC,
lib,
vscode-utils,
}:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "visualjj";
publisher = "visualjj";
version = "0.13.4";
hash = "sha256-/uuLRkEY430R5RS7B6972iginpA3pWpApjI6RUTxcHM=";
};
mktplcRef =
let
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-q9ubYkhrV28sB9CV1dyBEIFEkTrkGHRXdz5+4xjeVzI=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-vV5u1QBICz3GIYRgH9UWM38a8YXtvW0u8r7c1SaKwxM=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-fgT4brIhHI6gNCcsbHpz+v4/diyox2VoFlvCnhPIbPM=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-/uuLRkEY430R5RS7B6972iginpA3pWpApjI6RUTxcHM=";
};
};
in
{
name = "visualjj";
publisher = "visualjj";
version = "0.13.4";
}
// sources.${stdenvNoCC.system} or (throw "Unsupported system ${stdenvNoCC.system}");
meta = {
description = "Jujutsu version control integration, for simpler Git workflow";
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "dolphin-emu";
repo = "dolphin";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-5Eir8EQPGVSg2QXzzuHH9lf7CrV76KwmRsHiDqs6tD4=";
fetchSubmodules = true;
};
+1 -1
View File
@@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "obdasystems";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-vRmLUIqU0qfcnKzymBGb9gfM/uQiAcUHUnyz8iH/GrM=";
};
+1 -1
View File
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "f3d-app";
repo = "f3d";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-S3eigdW6rkDRSm4uCCTFHx5fhJGNVWpAAAKboougr08=";
};
@@ -21,7 +21,7 @@ python3Packages.buildPythonPackage rec {
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-i9XeZJgB0oDimoc0D5UTYSBs9C55QXC6HIxv2gP8vWY=";
};
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "fablabnbg";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-MfR88BuaAx6n5XRIjslpIk4PnDf6TLU9AsmHxKkcFS0=";
};
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "textext";
repo = "textext";
rev = "refs/tags/${version}";
tag = version;
sha256 = "sha256-JbI/ScCFCvHbK9JZzHuT67uSAL3546et+gtTkwRnCSE=";
};
+1 -1
View File
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "otfried";
repo = "ipe";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-bvwEgEP/cinigixJr8e964sm6secSK+7Ul7WFfwM0gE=";
};
@@ -13,7 +13,7 @@ mkDerivation rec {
src = fetchFromGitHub {
owner = "Nitrux";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-XUgLtZMcvzGewtUcgu7FbBCn/1zqOjWvw2AI9gUwWkc=";
};
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "databricks";
repo = "databricks-sql-cli";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-wmwXw1o+pRsRjA7ai9x5o1el7mNBqM6xlGrvw0IqfMo=";
};
@@ -8,7 +8,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "Electron-Cash";
repo = "Electron-Cash";
rev = "refs/tags/${version}";
tag = version;
sha256 = "sha256-xOyj5XerOwgfvI0qj7+7oshDvd18h5IeZvcJTis8nWo=";
};
@@ -40,7 +40,7 @@ mkDerivation rec {
src = fetchFromGitHub {
owner = "GoldenCheetah";
repo = "GoldenCheetah";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-6JAdnYaKULJsc/zdcTMbCkbOCbiVtnJivEazDKL721c=";
};
+1 -1
View File
@@ -33,7 +33,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "gramps-project";
repo = "gramps";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-DfKKB+rgMGQ8HTqhCp11UTYLj3Fdd0B0v4a922GJ8L8=";
};
@@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "svenkreiss";
repo = "html5validator";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-yvclqE4+2R9q/UJU9W95U1/xVJeNj+5eKvT6VQel9k8=";
};
+1 -1
View File
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-S5IrNWVoUp1w+P7DrKlOUOyY3Q16CHSct9ndZOB3UpU=";
};
@@ -31,7 +31,7 @@ mkDerivation rec {
src = fetchFromGitHub {
owner = "maliit";
repo = "framework";
rev = "refs/tags/${version}";
tag = version;
sha256 = "sha256-q+hiupwlA0PfG+xtomCUp2zv6HQrGgmOd9CU193ucrY=";
};
+1 -1
View File
@@ -14,7 +14,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "mapbox";
repo = "mbutil";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-vxAF49NluEI/cZMUv1dlQBpUh1jfZ6KUVkYAmFAWphk=";
};
+1 -1
View File
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "meerk40t";
repo = pname;
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-dybmbmEvvTka0wMBIUDYemqDaCvG9odgCbIWYhROJLI=";
};
+1 -1
View File
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "OpenLightingProject";
repo = "ola";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-8w8ZT3D/+8Pxl9z2KTXeydVxE5xiPjxZevgmMFgrblU=";
};
+1 -1
View File
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "cloudcannon";
repo = "pagefind";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-NIEiXwuy8zuUDxPsD4Hiq3x4cOG3VM+slfNIBSJU2Mk=";
};
@@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "bordaigorl";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-V26zmu8cQkLs0IMR7eFO8x34McnT3xYyzlZfntApYkk=";
};
+1 -1
View File
@@ -24,7 +24,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "fdw";
repo = "rofi-rbw";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-wUb89GkNB2lEfb42hMvcxpbjc1O+wx8AkFjq7aJwAko=";
};
@@ -165,6 +165,7 @@ buildPythonApplication rec {
meta = {
description = "Interactive terminal multitool for tabular data";
mainProgram = "visidata";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
raskin
@@ -13,7 +13,7 @@ buildGoModule rec {
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflared";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-gk18N8iJve4lznkUb93Qzdgl93fTCOZCAXqm1BjsDak=";
};
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "idoavrah";
repo = "terraform-tui";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-xOlPuPVwfVT7jfBJPqZ5FbOs80HE0k2ZqcA+Jcxh9p4=";
};
@@ -11,7 +11,7 @@ buildGoModule rec {
src = fetchFromGitHub {
owner = "reconquest";
repo = "tubekit";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-fUe5bMFF569A9Xdx3bfQH2DzbQDRfZ+ewlDL+gK2gWw=";
};
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "martinrotter";
repo = pname;
rev = "refs/tags/${version}";
tag = version;
sha256 = "sha256-eF0jPT0gQnnBWu9IKfY0DwMwotL3IEjovqnQqx9v2NA=";
};
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "xvxx";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-J+ka7/B37WzVPPE2Krkd/TIiVwuKfI2QYWmT0JHgBGQ=";
};
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "Xithrius";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-QwFCabksDG+G7nfQPtxshd4n71Dj/uKOGRRutnZxECM=";
};
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
meson
ninja
perl
pkg-config
];
@@ -38,7 +39,6 @@ stdenv.mkDerivation rec {
libotr
ncurses
openssl
perl
];
configureFlags = [
@@ -19,7 +19,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "SamSchott";
repo = "maestral-qt";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-VkJOKKYnoXux3WjD1JwINGWwv1SMIXfidyV2ITE7dJc=";
};
@@ -0,0 +1,262 @@
From 46744a14ffc235330bb99cebfaf294829c31bba4 Mon Sep 17 00:00:00 2001
From: "Maxim [maxirmx] Samsonov" <m.samsonov@computer.org>
Date: Mon, 3 Jun 2024 13:39:47 +0300
Subject: [PATCH] Implemented char_traits for SEXP octet_t
---
comm/third_party/rnp/src/libsexpp/include/sexpp/sexp.h | 95 ++++++++++++++++++-
comm/third_party/rnp/src/libsexpp/tests/src/traits-tests.cpp | 116 ++++++++++++++++++++++++
comm/third_party/rnp/src/libsexpp/version.txt | 2 +-
3 files changed, 208 insertions(+), 7 deletions(-)
create mode 100644 tests/src/traits-tests.cpp
diff --git a/comm/third_party/rnp/src/libsexpp/include/sexpp/sexp.h b/comm/third_party/rnp/src/libsexpp/include/sexpp/sexp.h
index bb6ae4e..3ffb735 100644
--- a/comm/third_party/rnp/src/libsexpp/include/sexpp/sexp.h
+++ b/comm/third_party/rnp/src/libsexpp/include/sexpp/sexp.h
@@ -44,8 +44,93 @@
#include "sexp-public.h"
#include "sexp-error.h"
+// We are implementing char traits for octet_t with trhe following restrictions
+// -- limit visibility so that other traits for unsigned char are still possible
+// -- create template specializatio in std workspace (use workspace specialization
+// is not specified and causes issues at least with gcc 4.8
+
namespace sexp {
+using octet_t = uint8_t;
+} // namespace sexp
+
+namespace std {
+
+template <> struct char_traits<sexp::octet_t> {
+ typedef sexp::octet_t char_type;
+ typedef int int_type;
+ typedef std::streampos pos_type;
+ typedef std::streamoff off_type;
+ typedef mbstate_t state_type;
+
+ static void assign(char_type &__c1, const char_type &__c2) noexcept { __c1 = __c2; }
+
+ static constexpr bool eq(const char_type &__c1, const char_type &__c2) noexcept
+ {
+ return __c1 == __c2;
+ }
+
+ static constexpr bool lt(const char_type &__c1, const char_type &__c2) noexcept
+ {
+ return __c1 < __c2;
+ }
+
+ static int compare(const char_type *__s1, const char_type *__s2, size_t __n)
+ {
+ return memcmp(__s1, __s2, __n);
+ }
+
+ static size_t length(const char_type *__s)
+ {
+ return strlen(reinterpret_cast<const char *>(__s));
+ }
+
+ static const char_type *find(const char_type *__s, size_t __n, const char_type &__a)
+ {
+ return static_cast<const char_type *>(memchr(__s, __a, __n));
+ }
+
+ static char_type *move(char_type *__s1, const char_type *__s2, size_t __n)
+ {
+ return static_cast<char_type *>(memmove(__s1, __s2, __n));
+ }
+
+ static char_type *copy(char_type *__s1, const char_type *__s2, size_t __n)
+ {
+ return static_cast<char_type *>(memcpy(__s1, __s2, __n));
+ }
+
+ static char_type *assign(char_type *__s, size_t __n, char_type __a)
+ {
+ return static_cast<char_type *>(memset(__s, __a, __n));
+ }
+
+ static constexpr char_type to_char_type(const int_type &__c) noexcept
+ {
+ return static_cast<char_type>(__c);
+ }
+
+ // To keep both the byte 0xff and the eof symbol 0xffffffff
+ // from ending up as 0xffffffff.
+ static constexpr int_type to_int_type(const char_type &__c) noexcept
+ {
+ return static_cast<int_type>(static_cast<unsigned char>(__c));
+ }
+
+ static constexpr bool eq_int_type(const int_type &__c1, const int_type &__c2) noexcept
+ {
+ return __c1 == __c2;
+ }
+
+ static constexpr int_type eof() noexcept { return static_cast<int_type>(0xFFFFFFFF); }
+ static constexpr int_type not_eof(const int_type &__c) noexcept
+ {
+ return (__c == eof()) ? 0 : __c;
+ }
+};
+} // namespace std
+
+namespace sexp {
/*
* SEXP octet_t definitions
* We maintain some presumable redundancy with ctype
@@ -99,14 +184,14 @@ class sexp_input_stream_t;
* SEXP simple string
*/
-typedef uint8_t octet_t;
+using octet_traits = std::char_traits<octet_t>;
+using octet_string = std::basic_string<octet_t, octet_traits>;
-class SEXP_PUBLIC_SYMBOL sexp_simple_string_t : public std::basic_string<octet_t>,
- private sexp_char_defs_t {
+class SEXP_PUBLIC_SYMBOL sexp_simple_string_t : public octet_string, private sexp_char_defs_t {
public:
sexp_simple_string_t(void) = default;
- sexp_simple_string_t(const octet_t *dt) : std::basic_string<octet_t>{dt} {}
- sexp_simple_string_t(const octet_t *bt, size_t ln) : std::basic_string<octet_t>{bt, ln} {}
+ sexp_simple_string_t(const octet_t *dt) : octet_string{dt} {}
+ sexp_simple_string_t(const octet_t *bt, size_t ln) : octet_string{bt, ln} {}
sexp_simple_string_t &append(int c)
{
(*this) += (octet_t)(c & 0xFF);
diff --git a/comm/third_party/rnp/src/libsexpp/tests/src/traits-tests.cpp b/comm/third_party/rnp/src/libsexpp/tests/src/traits-tests.cpp
new file mode 100644
index 0000000..52e1019
--- /dev/null
+++ b/comm/third_party/rnp/src/libsexpp/tests/src/traits-tests.cpp
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright 2024 Ribose Inc. (https://www.ribose.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include "sexp-tests.h"
+
+using namespace sexp;
+
+namespace {
+
+TEST(OctetTraitsTest, Assign)
+{
+ octet_t a = 0x12;
+ octet_t b = 0x34;
+ octet_traits::assign(a, b);
+ EXPECT_EQ(a, b);
+}
+
+TEST(OctetTraitsTest, Eq)
+{
+ octet_t a = 0x12;
+ octet_t b = 0x12;
+ EXPECT_TRUE(octet_traits::eq(a, b));
+}
+
+TEST(OctetTraitsTest, Lt)
+{
+ octet_t a = 0x12;
+ octet_t b = 0x34;
+ EXPECT_TRUE(octet_traits::lt(a, b));
+}
+
+TEST(OctetTraitsTest, Compare)
+{
+ octet_t s1[] = {0x12, 0x34, 0x56};
+ octet_t s2[] = {0x12, 0x34, 0x57};
+ EXPECT_LT(octet_traits::compare(s1, s2, 3), 0);
+}
+
+TEST(OctetTraitsTest, Find)
+{
+ octet_t s[] = {0x12, 0x34, 0x56};
+ octet_t a = 0x34;
+ EXPECT_EQ(octet_traits::find(s, 3, a), s + 1);
+}
+
+TEST(OctetTraitsTest, Move)
+{
+ octet_t s1[] = {0x12, 0x34, 0x56};
+ octet_t s2[3];
+ octet_traits::move(s2, s1, 3);
+ EXPECT_EQ(memcmp(s1, s2, 3), 0);
+}
+
+TEST(OctetTraitsTest, Copy)
+{
+ octet_t s1[] = {0x12, 0x34, 0x56};
+ octet_t s2[3];
+ octet_traits::copy(s2, s1, 3);
+ EXPECT_EQ(memcmp(s1, s2, 3), 0);
+}
+
+TEST(OctetTraitsTest, AssignMultiple)
+{
+ octet_t s[3];
+ octet_t a = 0x12;
+ octet_traits::assign(s, 3, a);
+ for (int i = 0; i < 3; i++) {
+ EXPECT_EQ(s[i], a);
+ }
+}
+
+TEST(OctetTraitsTest, ToCharType)
+{
+ octet_traits::int_type a = 0x12;
+ EXPECT_EQ(octet_traits::to_char_type(a), 0x12);
+}
+
+TEST(OctetTraitsTest, ToIntType)
+{
+ octet_t a = 0x12;
+ EXPECT_EQ(octet_traits::to_int_type(a), 0x12);
+}
+
+TEST(OctetTraitsTest, EqIntType)
+{
+ octet_traits::int_type a = 0x12;
+ octet_traits::int_type b = 0x12;
+ EXPECT_TRUE(octet_traits::eq_int_type(a, b));
+}
+
+TEST(OctetTraitsTest, NotEof)
+{
+ octet_traits::int_type a = 0x12;
+ EXPECT_EQ(octet_traits::not_eof(a), 0x12);
+}
+} // namespace
diff --git a/comm/third_party/rnp/src/libsexpp/version.txt b/comm/third_party/rnp/src/libsexpp/version.txt
index 1e9b46b..6201b5f 100644
--- a/comm/third_party/rnp/src/libsexpp/version.txt
+++ b/comm/third_party/rnp/src/libsexpp/version.txt
@@ -1 +1 @@
-0.8.7
+0.8.8
--
2.47.0
@@ -0,0 +1,100 @@
From 20419f739f632fb30666650544f0055e8d4f1afa Mon Sep 17 00:00:00 2001
From: Maxim Samsonov <m.samsonov@computer.org>
Date: Wed, 19 Jun 2024 16:52:08 +0300
Subject: [PATCH] Removed lookup against basic_string<uint8_t>
---
comm/third_party/rnp/src/lib/types.h | 5 +----
comm/third_party/rnp/src/lib/utils.cpp | 17 +----------------
comm/third_party/rnp/src/librekey/key_store_g10.cpp | 8 ++++----
3 files changed, 7 insertions(+), 25 deletions(-)
diff --git a/comm/third_party/rnp/src/lib/types.h b/comm/third_party/rnp/src/lib/types.h
index f0c25d3d..a7eac3a1 100644
--- a/comm/third_party/rnp/src/lib/types.h
+++ b/comm/third_party/rnp/src/lib/types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2021, [Ribose Inc](https://www.ribose.com).
+ * Copyright (c) 2017-2024, [Ribose Inc](https://www.ribose.com).
* Copyright (c) 2009 The NetBSD Foundation, Inc.
* All rights reserved.
*
@@ -71,9 +71,6 @@ class id_str_pair {
static int lookup(const id_str_pair pair[],
const std::vector<uint8_t> &bytes,
int notfound = 0);
- static int lookup(const id_str_pair pair[],
- const std::basic_string<uint8_t> &bytes,
- int notfound = 0);
};
/** pgp_fingerprint_t */
diff --git a/comm/third_party/rnp/src/lib/utils.cpp b/comm/third_party/rnp/src/lib/utils.cpp
index 3c6216c6..fd526379 100644
--- a/comm/third_party/rnp/src/lib/utils.cpp
+++ b/comm/third_party/rnp/src/lib/utils.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, [Ribose Inc](https://www.ribose.com).
+ * Copyright (c) 2021, 2024 [Ribose Inc](https://www.ribose.com).
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,18 +63,3 @@ id_str_pair::lookup(const id_str_pair pair[], const std::vector<uint8_t> &bytes,
}
return notfound;
}
-
-int
-id_str_pair::lookup(const id_str_pair pair[],
- const std::basic_string<uint8_t> &bytes,
- int notfound)
-{
- while (pair && pair->str) {
- if ((strlen(pair->str) == bytes.size()) &&
- !memcmp(pair->str, bytes.data(), bytes.size())) {
- return pair->id;
- }
- pair++;
- }
- return notfound;
-}
diff --git a/comm/third_party/rnp/src/librekey/key_store_g10.cpp b/comm/third_party/rnp/src/librekey/key_store_g10.cpp
index e646f02f..21136866 100644
--- a/comm/third_party/rnp/src/librekey/key_store_g10.cpp
+++ b/comm/third_party/rnp/src/librekey/key_store_g10.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2022, [Ribose Inc](https://www.ribose.com).
+ * Copyright (c) 2017-2024, [Ribose Inc](https://www.ribose.com).
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -311,12 +311,12 @@ read_curve(const sexp_list_t *list, const std::string &name, pgp_ec_key_t &key)
const auto &bytes = data->get_string();
pgp_curve_t curve = static_cast<pgp_curve_t>(
- id_str_pair::lookup(g10_curve_aliases, data->get_string(), PGP_CURVE_UNKNOWN));
+ id_str_pair::lookup(g10_curve_aliases, (const char *) bytes.data(), PGP_CURVE_UNKNOWN));
if (curve != PGP_CURVE_UNKNOWN) {
key.curve = curve;
return true;
}
- RNP_LOG("Unknown curve: %.*s", (int) bytes.size(), (char *) bytes.data());
+ RNP_LOG("Unknown curve: %.*s", (int) bytes.size(), (const char *) bytes.data());
return false;
}
@@ -807,7 +807,7 @@ g23_parse_seckey(pgp_key_pkt_t &seckey,
auto & alg_bt = alg_s_exp->sexp_string_at(0)->get_string();
pgp_pubkey_alg_t alg = static_cast<pgp_pubkey_alg_t>(
- id_str_pair::lookup(g10_alg_aliases, alg_bt.c_str(), PGP_PKA_NOTHING));
+ id_str_pair::lookup(g10_alg_aliases, (const char *) alg_bt.data(), PGP_PKA_NOTHING));
if (alg == PGP_PKA_NOTHING) {
RNP_LOG(
"Unsupported algorithm: '%.*s'", (int) alg_bt.size(), (const char *) alg_bt.data());
--
2.47.0
@@ -42,6 +42,12 @@ let
extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
./no-buildconfig.patch
# clang-19 fixes for char_traits build issue
# https://github.com/rnpgp/rnp/pull/2242/commits/e0790a2c4ff8e09d52522785cec1c9db23d304ac
# https://github.com/rnpgp/sexpp/pull/54/commits/46744a14ffc235330bb99cebfaf294829c31bba4
# Remove when upstream bumps bundled rnp version: https://bugzilla.mozilla.org/show_bug.cgi?id=1893950
./0001-Removed-lookup-against-basic_string-uint8_t.patch
./0001-Implemented-char_traits-for-SEXP-octet_t.patch
];
extraPassthru = {
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "pjsip";
repo = "pjproject";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY=";
};
@@ -18,7 +18,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "protonvpn";
repo = "linux-cli";
rev = "refs/tags/${version}";
tag = version;
sha256 = "sha256-KhfogC23i7THe6YZJ6Sy1+q83vZupHsS69NurHCeo8I=";
};
@@ -27,7 +27,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "proton-vpn-gtk-app";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-+UnMsjIJ0M1YiF+BcY7RObUoCeDZGtE0ul6KBaODzeY=";
};
@@ -21,7 +21,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "Syncplay";
repo = "syncplay";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-ipo027XyN4BpMkxzXznbnaufsaG/YkHxFJYo+XWzbyE=";
};
@@ -18,7 +18,7 @@ let
src = fetchFromGitHub {
owner = "syncthing";
repo = "syncthing";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-JW78n/3hssH600uXn4YLxcIJylPbSpEZICtKmqfqamI=";
};
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "buckket";
repo = "twtxt";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-CbFh1o2Ijinfb8X+h1GP3Tp+8D0D3/Czt/Uatd1B4cw=";
};
+1 -1
View File
@@ -14,7 +14,7 @@ python3Packages.buildPythonPackage rec {
src = fetchFromGitHub {
owner = "ealbiter";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-Rym7neluRbYCpuezRQyLc6gSl3xbVR9fvhOxxW5+Nzo=";
};
+1 -1
View File
@@ -13,7 +13,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "virtualabs";
repo = "btlejack";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-Q6y9murV1o2i1sluqTVB5+X3B7ywFsI0ZvlJjHrHSpo=";
};
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "10110111";
repo = "CalcMySky";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-18ZNnLK2zMT7P0MDXS6Z38LffE8EqXKBH89TPPxVWlo=";
};
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "ANTsX";
repo = "ANTs";
rev = "refs/tags/v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-7df9RcZZwfSkokG8dMQg65bCOk2atDGkJpPo8SrRrfY=";
};
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "MRtrix3";
repo = "mrtrix3";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-87zBAoBLWQPccGS37XyQ8H0GhL01k8GQFgcLL6IwbcM=";
fetchSubmodules = true;
};
@@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "ccsb-scripps";
repo = "autodock-vina";
rev = "refs/tags/v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-yguUMEX0tn75wKrPKyqlCYbBFaEwC5b1s3k9xept1Fw=";
};
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "cvut";
repo = "qtrvsim";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-+EpPDA2+mBTdQjq6i9TN11yeXqvJA28JtmdNihM1a/U=";
};
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "DegateCommunity";
repo = "Degate";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-INoA3Z6ya03ZMn6E+nOCkXZLoxoo2WgPDw9v5miI09A=";
};
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "gerbv";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-sr48RGLYcMKuyH9p+5BhnR6QpKBvNOqqtRryw3+pbBk=";
};
@@ -1,11 +1,12 @@
# For building the multiple addons that are in the kikit repo.
{ stdenv
, bc
, kikit
, zip
, python3
, addonName
, addonPath
{
stdenv,
bc,
kikit,
zip,
python3,
addonName,
addonPath,
}:
let
# This python is only used when building the package, it's not the python
@@ -30,10 +31,14 @@ let
targetSpec = targetSpecs.${addonName};
in
stdenv.mkDerivation {
name = "kicadaddon-${addonName}";
pname = "kicadaddon-${addonName}";
inherit (kikit-module) src version;
nativeBuildInputs = [ python bc zip ];
nativeBuildInputs = [
python
bc
zip
];
propagatedBuildInputs = [ kikit-module ];
buildPhase = ''
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "not-stirred";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-CrhzCvIA3YAFsWvdemvK1RLMacsM5RtgMjLeiqz5MwY=";
};
@@ -22,7 +22,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "ArduPilot";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-A7tqV1kBCSuWHJUTdUZGcPY/r7X1edGZs6xDctpMbMI=";
};
+1 -1
View File
@@ -31,7 +31,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "nicolargo";
repo = "glances";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-8Jm6DE3B7OQkaNwX/KwXMNZHUyvPtln8mJYaD6yzJRM=";
};
@@ -18,7 +18,7 @@ mkDerivation rec {
src = fetchFromGitHub {
owner = "Swordfish90";
repo = "cool-retro-term";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-PewHLVmo+RTBHIQ/y2FBkgXsIvujYd7u56JdFC10B4c=";
};
@@ -41,7 +41,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "kovidgoyal";
repo = "kitty";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-0M4Bvhh3j9vPedE/d+8zaiZdET4mXcrSNUgLllhaPJw=";
};
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
src = fetchFromGitHub {
owner = "tummychow";
repo = "git-absorb";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-7Y/gEym+29lTwJ7FbuvOqzbiMSzrY9f5IPhtvIJUKbU=";
};
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "jorisroovers";
repo = "gitlint";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-4SGkkC4LjZXTDXwK6jMOIKXR1qX76CasOwSqv8XUrjs=";
};
@@ -17,7 +17,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "languitar";
repo = "pass-git-helper";
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-DLH3l4wYfBlrc49swLgyHeZXebJ5JSzU7cHjD7Hmw0g=";
};
+1 -1
View File
@@ -20,7 +20,7 @@ buildGoModule rec {
src = fetchFromGitHub {
owner = "alexballas";
repo = "go2tv";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-NCfr6FXxHFFTe9l7K68MkKU71Hu/vWQFZcJXFAB94q8=";
};
@@ -21,7 +21,7 @@ let
src = fetchFromGitHub {
owner = "OpenShot";
repo = "openshot-qt";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-zZZ7C/1+Qh7KS1WJ8YWkhFgw0+UHJhjk+145u9/TBcI=";
};
in
@@ -21,7 +21,7 @@ buildPythonApplication rec {
src = fetchFromGitHub {
owner = "iwalton3";
repo = pname;
rev = "refs/tags/v${version}";
tag = "v${version}";
sha256 = "sha256-hUGKOJEDZMK5uhHoevFt1ay6QQEcoN4F8cPxln5uMRo=";
};
+1 -1
View File
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "introlab";
repo = "rtabmap";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-y/p1uFSxVQNXO383DLGCg4eWW7iu1esqpWlyPMF3huk=";
};
@@ -14,6 +14,7 @@
xorgproto,
libXext,
libXcursor,
libXfixes,
libXmu,
libIDL,
SDL2,
@@ -204,6 +205,9 @@ stdenv.mkDerivation (finalAttrs: {
grep 'libdbus-1\.so\.3' src include -rI --files-with-match | xargs sed -i -e '
s@"libdbus-1\.so\.3"@"${dbus.lib}/lib/libdbus-1.so.3"@g'
grep 'libXfixes\.so\.3' src include -rI --files-with-match | xargs sed -i -e '
s@"libXfixes\.so\.3"@"${libXfixes.out}/lib/libXfixes.so.3"@g'
grep 'libasound\.so\.2' src include -rI --files-with-match | xargs sed -i -e '
s@"libasound\.so\.2"@"${alsa-lib.out}/lib/libasound.so.2"@g'
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "cage-kiosk";
repo = "cage";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-2SFtz62z0EF8cpFTC6wGi125MD4a5mkXqP/C+7fH+3g=";
};
@@ -3,12 +3,13 @@
mkHyprlandPlugin,
hyprland,
fetchFromGitHub,
fetchpatch2,
nix-update-script,
}:
mkHyprlandPlugin hyprland {
pluginName = "hyprfocus";
version = "0-unstable-2024-10-09";
version = "0-unstable-2024-11-09";
src = fetchFromGitHub {
owner = "pyt0xic";
@@ -17,6 +18,13 @@ mkHyprlandPlugin hyprland {
hash = "sha256-qIl7opF7fA1ZmC91TGQ7D12tB7kHc6Sn9DrfUN6sbBY=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/pyt0xic/hyprfocus/commit/e7d9ee3c470b194fe16179ff2f16fc4233e928ef.patch";
hash = "sha256-iETrtvoIZfcaD3TcKIIwFL8Rua0dFEqboml9AgQ/RZ0=";
})
];
installPhase = ''
runHook preInstall
@@ -17,7 +17,7 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "loqusion";
repo = "hyprshade";
rev = "refs/tags/${version}";
tag = version;
hash = "sha256-MlbNE9n//Qb6OJc3DMkOpnPtoodfV8JlG/I5rOfWMtQ=";
};
@@ -32,7 +32,7 @@ gcc14Stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "hyprwm";
repo = "xdg-desktop-portal-hyprland";
rev = "refs/tags/v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-sAObJHBZjJHzYR62g+BLNBNq19cqb5LTw73H8m57K0w=";
};
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "i3";
repo = "i3";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-2tuhfB/SMN+osCBfZtw/yDPhNNEhBH4Qo6dexpqVWYk=";
};
+1 -1
View File
@@ -639,7 +639,7 @@ stdenvNoCC.mkDerivation {
# no `/usr/include`, theres essentially no risk to dropping
# the flag there. See discussion in NixOS/nixpkgs#191152.
#
+ optionalString ((cc.isClang or false) && !targetPlatform.isDarwin) ''
+ optionalString ((cc.isClang or false) && !(cc.isROCm or false) && !targetPlatform.isDarwin) ''
echo " -nostdlibinc" >> $out/nix-support/cc-cflags
''
+1 -1
View File
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "1oom-fork";
repo = "1oom";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-xEHFuCOyuWmee6kgOc0WUk1iWWFqfFb42F7shGZmutQ=";
};
+1 -1
View File
@@ -102,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "HarbourMasters";
repo = "2ship2harkinian";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-1iSFzroKxwFpsIGNMetSlQKTKRWCy7QtgCTepFdSeY8=";
fetchSubmodules = true;
};
+1 -1
View File
@@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "Yelp";
repo = "aactivator";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-vnBDtLEvU1jHbb5/MXAulXaBaugdCZdLQSP2b8P6SiQ=";
};
+1 -1
View File
@@ -11,7 +11,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "sshlien";
repo = "abcmidi";
rev = "refs/tags/${finalAttrs.version}";
tag = finalAttrs.version;
hash = "sha256-8kzgojLwVVFjpWiQ1/0S3GCVU8oEpoFItjtRDByauDg=";
};
+1 -1
View File
@@ -13,7 +13,7 @@ buildGoModule rec {
src = fetchFromGitHub {
owner = "airbytehq";
repo = "abctl";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-O+ABjageccJudXtO5wUYLIT/kI04f68RLW0B7d//jdw=";
};
+1 -1
View File
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "casterbyte";
repo = "Above";
rev = "refs/tags/v${version}";
tag = "v${version}";
hash = "sha256-tOSAci9aIALNCL3nLui96EdvqjNxnnuj2/dMdWLY9yI=";
};
+2 -2
View File
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "yangao07";
repo = "abPOA";
rev = "refs/tags/v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-90mkXp4cC0Omnx0C7ab7NNs/M2oedIcICTUJl3qhcyo=";
};
@@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "SIMD-based C library for fast partial order alignment using adaptive band";
homepage = "https://github.com/yangao07/abPOA";
changelog = "https://github.com/yangao07/abPOA/releases/tag/${lib.removePrefix "refs/tags/" finalAttrs.src.rev}";
changelog = "https://github.com/yangao07/abPOA/releases/tag/v${finalAttrs.version}";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
mainProgram = "abpoa";
+1 -1
View File
@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "atcoder";
repo = "ac-library";
rev = "refs/tags/v${finalAttrs.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-AIqG98c1tcxxhYcX+NSf6Rw3onw61T5NTZtqQzT9jls=";
};

Some files were not shown because too many files have changed in this diff Show More