Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-05-17 18:05:50 +00:00
committed by GitHub
123 changed files with 1402 additions and 1850 deletions

View File

@@ -35,10 +35,12 @@ jobs:
into: staging-next-25.05
- from: staging-next-25.05
into: staging-25.05
- from: master staging
- name: merge-base(master,staging) → haskell-updates
from: master staging
into: haskell-updates
uses: ./.github/workflows/periodic-merge.yml
with:
from: ${{ matrix.pairs.from }}
into: ${{ matrix.pairs.into }}
name: ${{ matrix.pairs.name || format('{0} → {1}', matrix.pairs.from, matrix.pairs.into) }}
secrets: inherit

View File

@@ -35,4 +35,5 @@ jobs:
with:
from: ${{ matrix.pairs.from }}
into: ${{ matrix.pairs.into }}
name: ${{ format('{0} → {1}', matrix.pairs.from, matrix.pairs.into) }}
secrets: inherit

View File

@@ -15,7 +15,6 @@ on:
jobs:
merge:
runs-on: ubuntu-24.04-arm
name: ${{ inputs.from }} → ${{ inputs.into }}
steps:
# Use a GitHub App to create the PR so that CI gets triggered
# The App is scoped to Repository > Contents and Pull Requests: write for Nixpkgs

View File

@@ -211,6 +211,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
/pkgs/development/compilers/gcc
/pkgs/development/compilers/llvm @alyssais @RossComputerGuy @NixOS/llvm
/pkgs/development/compilers/emscripten @raitobezarius
/doc/toolchains/llvm.chapter.md @alyssais @RossComputerGuy @NixOS/llvm
/doc/languages-frameworks/emscripten.section.md @raitobezarius
# Audio

View File

@@ -36,6 +36,9 @@ let
supportedSystems = builtins.fromJSON (builtins.readFile ../supportedSystems.json);
attrpathsSuperset =
{
evalSystem,
}:
runCommand "attrpaths-superset.json"
{
src = nixpkgs;
@@ -55,6 +58,7 @@ let
-I "$src" \
--option restrict-eval true \
--option allow-import-from-derivation false \
--option eval-system "${evalSystem}" \
--arg enableWarnings false > $out/paths.json
'';
@@ -65,7 +69,7 @@ let
# because `--argstr system` would only be passed to the ci/default.nix file!
evalSystem,
# The path to the `paths.json` file from `attrpathsSuperset`
attrpathFile ? "${attrpathsSuperset}/paths.json",
attrpathFile ? "${attrpathsSuperset { inherit evalSystem; }}/paths.json",
# The number of attributes per chunk, see ./README.md for more info.
chunkSize,
checkMeta ? true,

View File

@@ -9,6 +9,7 @@ preface.chapter.md
using-nixpkgs.md
lib.md
stdenv.md
toolchains.md
build-helpers.md
development.md
contributing.md

View File

@@ -5,6 +5,9 @@
"chap-release-notes": [
"release-notes.html#chap-release-notes"
],
"chap-toolchains": [
"index.html#chap-toolchains"
],
"cmake-ctest": [
"index.html#cmake-ctest"
],
@@ -66,6 +69,9 @@
"pkgs-replacevarswith": [
"index.html#pkgs-replacevarswith"
],
"part-toolchains": [
"index.html#part-toolchains"
],
"preface": [
"index.html#preface"
],
@@ -99,6 +105,12 @@
"sec-build-helper-extendMkDerivation": [
"index.html#sec-build-helper-extendMkDerivation"
],
"sec-building-packages-with-llvm": [
"index.html#sec-building-packages-with-llvm"
],
"sec-building-packages-with-llvm-using-clang-stdenv": [
"index.html#sec-building-packages-with-llvm-using-clang-stdenv"
],
"sec-inkscape": [
"index.html#sec-inkscape"
],
@@ -384,6 +396,9 @@
"chap-stdenv": [
"index.html#chap-stdenv"
],
"sec-using-llvm": [
"index.html#sec-using-llvm"
],
"sec-using-stdenv": [
"index.html#sec-using-stdenv"
],

5
doc/toolchains.md Normal file
View File

@@ -0,0 +1,5 @@
# Toolchains {#part-toolchains}
```{=include=} chapters
toolchains/llvm.chapter.md
```

View File

@@ -0,0 +1,35 @@
# The LLVM Toolchain {#chap-toolchains}
LLVM is a target-independent optimizer and code generator and serves as the basis for many compilers such as Haskell's GHC, rustc, Zig, and many others. It forms the base tools for Apple's Darwin platform.
## Using LLVM {#sec-using-llvm}
LLVM has two ways of being used. One is by using it across all of Nixpkgs and the other is to compile and build individual packages.
### Building packages with LLVM {#sec-building-packages-with-llvm}
Nixpkgs supports two methods of compiling the world with LLVM. One is via setting `useLLVM` in `crossSystem` while importing. This is the recommended way when cross compiling as it is more expressive. An example of doing `aarch64-linux` cross compilation from `x86_64-linux` with LLVM on the target is the following:
```nix
import <nixpkgs> {
localSystem = {
system = "x86_64-linux";
};
crossSystem = {
useLLVM = true;
linker = "lld";
};
}
```
Note that we set `linker` to `lld`. This is because LLVM has its own linker called "lld". By setting it, we utilize Clang and lld within this new instance of Nixpkgs. There is a shorthand method for building everything with LLVM: `pkgsLLVM`. This is easier to use with `nix-build` (or `nix build`):
```bash
nix-build -A pkgsLLVM.hello
```
This will compile the GNU hello package with LLVM and the lld linker like previously mentioned.
#### Using `clangStdenv` {#sec-building-packages-with-llvm-using-clang-stdenv}
Another simple way is to override the stdenv with `clangStdenv`. This causes a single package to be built with Clang. However, this `stdenv` does not override platform defaults to use compiler-rt, libc++, and libunwind. This is the preferred way to make a single package in Nixpkgs build with Clang. There are cases where just Clang isn't enough. For these situations, there is `libcxxStdenv`, which uses Clang with libc++ and compiler-rt.

View File

@@ -6479,6 +6479,12 @@
githubId = 131907205;
name = "David Thievon";
};
dolphindalt = {
email = "dolphindalt@gmail.com";
github = "dolphindalt";
githubId = 13937320;
name = "Dalton Caron";
};
domenkozar = {
email = "domen@dev.si";
github = "domenkozar";
@@ -16744,6 +16750,12 @@
githubId = 7026881;
name = "Jarosław Jedynak";
};
msoos = {
email = "soos.mate@gmail.com";
github = "msoos";
githubId = 1334841;
name = "Mate Soos";
};
mstarzyk = {
email = "mstarzyk@gmail.com";
github = "mstarzyk";

View File

@@ -274,7 +274,7 @@
to review the new defaults and description of
[](#opt-services.nextcloud.poolSettings).
- In `users.users` allocation on systems with multiple users it could happen that collided with others. Now these users get new subuid ranges assigned. When this happens, a warning is issued on the first activation. If the subuids were used (e.g. with rootless container managers like podman), please change the ownership of affected files accordingly.
- In `users.users` subuid allocation on systems with multiple users it could happen that some users' allocated subuid ranges collided with others. Now these users get new subuid ranges assigned. When this happens, a warning is issued on the first activation. If the subuids were used (e.g. with rootless container managers like podman), please change the ownership of affected files accordingly.
- The `services.locate` module does no longer support findutil's `locate` due to its inferior performance compared to `mlocate` and `plocate`. The new default is `plocate`.
As the `service.locate.localuser` option only applied when using findutil's `locate`, it has also been removed.

View File

@@ -24,6 +24,42 @@ Both modules and projects are likely to diverge further with each release.
Which might lead to an even more involved migration.
:::
::: {.warning}
The last supported version of Forgejo which supports migration from Gitea is
*10.0.x*. You should *NOT* try to migrate from Gitea to Forgejo `11.x` or
higher without first migrating to `10.0.x`.
See [upstream migration guide](https://forgejo.org/docs/latest/admin/gitea-migration/)
The last supported version of *Gitea* for this migration process is *1.22*. Do
*NOT* try to directly migrate from Gitea *1.23* or higher, as it will likely
result in data loss.
See [upstream news article](https://forgejo.org/2024-12-gitea-compatibility/)
:::
In order to migrate, the version of Forgejo needs to be pinned to `10.0.x`
*before* using the latest version. This means that nixpkgs commit
[`3bb45b041e7147e2fd2daf689e26a1f970a55d65`](https://github.com/NixOS/nixpkgs/commit/3bb45b041e7147e2fd2daf689e26a1f970a55d65)
or earlier should be used.
To do this, temporarily add the following to your `configuration.nix`:
```nix
{ pkgs, ... }:
let
nixpkgs-forgejo-10 = import (pkgs.fetchFromGitHub {
owner = "NixOS";
repo = "nixpkgs";
rev = "3bb45b041e7147e2fd2daf689e26a1f970a55d65";
hash = "sha256-8JL5NI9eUcGzzbR/ARkrG81WLwndoxqI650mA/4rUGI=";
}) {};
in
{
services.forgejo.package = nixpkgs-forgejo-10.forgejo;
}
```
### Full-Migration {#module-forgejo-migration-gitea-default}
This will migrate the state directory (data), rename and chown the database and
@@ -49,6 +85,8 @@ chown -R forgejo:forgejo /var/lib/forgejo
systemctl restart forgejo
```
Afterwards, the Forgejo version can be set back to a newer desired version.
### Alternatively, keeping the gitea user {#module-forgejo-migration-gitea-impersonate}
Alternatively, instead of renaming the database, copying the state folder and

View File

@@ -97,13 +97,14 @@ let
# Those paths are mounted using BindPaths= or BindReadOnlyPaths=
# for services needing access to them.
"builds.sr.ht::worker".buildlogs = "/var/log/sourcehut/buildsrht-worker";
"git.sr.ht".post-update-script = "/usr/bin/gitsrht-update-hook";
"git.sr.ht".post-update-script = "/usr/bin/git.sr.ht-update-hook";
"git.sr.ht".repos = cfg.settings."git.sr.ht".repos;
"hg.sr.ht".changegroup-script = "/usr/bin/hgsrht-hook-changegroup";
"hg.sr.ht".changegroup-script = "/usr/bin/hg.sr.ht-hook-changegroup";
"hg.sr.ht".repos = cfg.settings."hg.sr.ht".repos;
# Making this a per service option despite being in a global section,
# so that it uses the redis-server used by the service.
"sr.ht".redis-host = cfg.${srv}.redis.host;
"sr.ht".assets = "${cfg.${srv}.package}/share/sourcehut";
}
)
)
@@ -376,7 +377,7 @@ in
redis = mkOption {
description = "The Redis connection used for the Celery worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
default = "redis+socket:///run/redis-sourcehut-builds.sr.ht/redis.sock?virtual_host=2";
};
shell = mkOption {
description = ''
@@ -436,8 +437,8 @@ in
This setting is propagated to newer and existing repositories.
'';
type = types.path;
default = "${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
default = "${cfg.git.package}/bin/git.sr.ht-update-hook";
defaultText = "\${pkgs.sourcehut.gitsrht}/bin/git.sr.ht-update-hook";
};
repos = mkOption {
description = ''
@@ -446,12 +447,12 @@ in
the gitsrht's user as read and write access to it.
'';
type = types.str;
default = "/var/lib/sourcehut/gitsrht/repos";
default = "/var/lib/sourcehut/git.sr.ht/repos";
};
webhooks = mkOption {
description = "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
default = "redis+socket:///run/redis-sourcehut-git.sr.ht/redis.sock?virtual_host=1";
};
};
options."git.sr.ht::api" = {
@@ -477,8 +478,8 @@ in
This setting is propagated to newer and existing repositories.
'';
type = types.str;
default = "${pkgs.sourcehut.hgsrht}/bin/hgsrht-hook-changegroup";
defaultText = "\${pkgs.sourcehut.hgsrht}/bin/hgsrht-hook-changegroup";
default = "${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup";
defaultText = "\${pkgs.sourcehut.hgsrht}/bin/hg.sr.ht-hook-changegroup";
};
repos = mkOption {
description = ''
@@ -487,7 +488,7 @@ in
the hgsrht's user as read and write access to it.
'';
type = types.str;
default = "/var/lib/sourcehut/hgsrht/repos";
default = "/var/lib/sourcehut/hg.sr.ht/repos";
};
srhtext = mkOptionNullOrStr ''
Path to the srht mercurial extension
@@ -507,7 +508,7 @@ in
webhooks = mkOption {
description = "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
default = "redis+socket:///run/redis-sourcehut-hg.sr.ht/redis.sock?virtual_host=1";
};
};
@@ -529,12 +530,12 @@ in
redis = mkOption {
description = "The Redis connection used for the Celery worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=2";
};
webhooks = mkOption {
description = "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
default = "redis+socket:///run/redis-sourcehut-lists.sr.ht/redis.sock?virtual_host=1";
};
};
options."lists.sr.ht::worker" = {
@@ -584,7 +585,7 @@ in
webhooks = mkOption {
description = "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
default = "redis+socket:///run/redis-sourcehut-meta.sr.ht/redis.sock?virtual_host=1";
};
welcome-emails = mkEnableOption "sending stock sourcehut welcome emails after signup";
};
@@ -691,7 +692,7 @@ in
webhooks = mkOption {
description = "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
default = "redis+socket:///run/redis-sourcehut-todo.sr.ht/redis.sock?virtual_host=1";
};
};
options."todo.sr.ht::mail" = {
@@ -763,7 +764,7 @@ in
};
git = {
package = mkPackageOption pkgs "git" {
gitPackage = mkPackageOption pkgs "git" {
example = "gitFull";
};
fcgiwrap.preforkProcess = mkOption {
@@ -774,7 +775,7 @@ in
};
hg = {
package = mkPackageOption pkgs "mercurial" { };
mercurialPackage = mkPackageOption pkgs "mercurial" { };
cloneBundles = mkOption {
type = types.bool;
default = false;
@@ -806,6 +807,7 @@ in
config = mkIf cfg.enable (mkMerge [
{
# TODO: make configurable
environment.systemPackages = [ pkgs.sourcehut.coresrht ];
services.sourcehut.settings = {
@@ -875,14 +877,14 @@ in
set -e
set -x
cd /etc/ssh/sourcehut/subdir
${pkgs.sourcehut.gitsrht}/bin/gitsrht-dispatch "$@"
${cfg.git.package}/bin/git.sr.ht-dispatch "$@"
'';
};
systemd.tmpfiles.settings."10-sourcehut-gitsrht" = mkIf cfg.git.enable (mkMerge [
(builtins.listToAttrs (
map
(name: {
name = "/var/log/sourcehut/gitsrht-${name}";
name = "/var/log/sourcehut/git.sr.ht-${name}";
value.f = {
inherit (cfg.git) user group;
mode = "0644";
@@ -903,7 +905,7 @@ in
]);
systemd.services.sshd = {
preStart = mkIf cfg.hg.enable ''
chown ${cfg.hg.user}:${cfg.hg.group} /var/log/sourcehut/hgsrht-keys
chown ${cfg.hg.user}:${cfg.hg.group} /var/log/sourcehut/hg.sr.ht-keys
'';
serviceConfig = {
LogsDirectory = "sourcehut";
@@ -919,62 +921,62 @@ in
"${pkgs.writeShellScript "buildsrht-keys-wrapper" ''
set -e
cd /run/sourcehut/buildsrht/subdir
exec -a "$0" ${pkgs.sourcehut.buildsrht}/bin/buildsrht-keys "$@"
exec -a "$0" ${cfg.builds.package}/bin/builds.sr.ht-keys "$@"
''}:/usr/bin/buildsrht-keys"
"${pkgs.sourcehut.buildsrht}/bin/master-shell:/usr/bin/master-shell"
"${pkgs.sourcehut.buildsrht}/bin/runner-shell:/usr/bin/runner-shell"
"${cfg.builds.package}/bin/master-shell:/usr/bin/master-shell"
"${cfg.builds.package}/bin/runner-shell:/usr/bin/runner-shell"
]
++ optionals cfg.git.enable [
# /path/to/gitsrht-keys calls /path/to/gitsrht-shell,
# or [git.sr.ht] shell= if set.
"${pkgs.writeShellScript "gitsrht-keys-wrapper" ''
set -e
cd /run/sourcehut/gitsrht/subdir
exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-keys "$@"
''}:/usr/bin/gitsrht-keys"
cd /run/sourcehut/git.sr.ht/subdir
exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-keys "$@"
''}:/usr/bin/git.sr.ht-keys"
"${pkgs.writeShellScript "gitsrht-shell-wrapper" ''
set -e
cd /run/sourcehut/gitsrht/subdir
export PATH="${cfg.git.package}/bin:$PATH"
export SRHT_CONFIG=/run/sourcehut/gitsrht/config.ini
exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-shell "$@"
''}:/usr/bin/gitsrht-shell"
cd /run/sourcehut/git.sr.ht/subdir
export PATH="${cfg.git.gitPackage}/bin:$PATH"
export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini
exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-shell "$@"
''}:/usr/bin/git.sr.ht-shell"
"${pkgs.writeShellScript "gitsrht-update-hook" ''
set -e
export SRHT_CONFIG=/run/sourcehut/gitsrht/config.ini
export SRHT_CONFIG=/run/sourcehut/git.sr.ht/config.ini
# hooks/post-update calls /usr/bin/gitsrht-update-hook as hooks/stage-3
# but this wrapper being a bash script, it overrides $0 with /usr/bin/gitsrht-update-hook
# hence this hack to put hooks/stage-3 back into gitsrht-update-hook's $0
if test "''${STAGE3:+set}"
then
exec -a hooks/stage-3 ${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook "$@"
exec -a hooks/stage-3 ${cfg.git.package}/bin/git.sr.ht-update-hook "$@"
else
export STAGE3=set
exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook "$@"
exec -a "$0" ${cfg.git.package}/bin/git.sr.ht-update-hook "$@"
fi
''}:/usr/bin/gitsrht-update-hook"
''}:/usr/bin/git.sr.ht-update-hook"
]
++ optionals cfg.hg.enable [
# /path/to/hgsrht-keys calls /path/to/hgsrht-shell,
# or [hg.sr.ht] shell= if set.
"${pkgs.writeShellScript "hgsrht-keys-wrapper" ''
set -e
cd /run/sourcehut/hgsrht/subdir
exec -a "$0" ${pkgs.sourcehut.hgsrht}/bin/hgsrht-keys "$@"
''}:/usr/bin/hgsrht-keys"
"${pkgs.writeShellScript "hgsrht-shell-wrapper" ''
cd /run/sourcehut/hg.sr.ht/subdir
exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-keys "$@"
''}:/usr/bin/hg.sr.ht-keys"
"${pkgs.writeShellScript "hg.sr.ht-shell-wrapper" ''
set -e
cd /run/sourcehut/hgsrht/subdir
exec -a "$0" ${pkgs.sourcehut.hgsrht}/bin/hgsrht-shell "$@"
''}:/usr/bin/hgsrht-shell"
cd /run/sourcehut/hg.sr.ht/subdir
exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-shell "$@"
''}:/usr/bin/hg.sr.ht-shell"
# Mercurial's changegroup hooks are run relative to their repository's directory,
# but hgsrht-hook-changegroup looks up ./config.ini
"${pkgs.writeShellScript "hgsrht-hook-changegroup" ''
set -e
test -e "''$PWD"/config.ini ||
ln -s /run/sourcehut/hgsrht/config.ini "''$PWD"/config.ini
exec -a "$0" ${pkgs.sourcehut.hgsrht}/bin/hgsrht-hook-changegroup "$@"
''}:/usr/bin/hgsrht-hook-changegroup"
ln -s /run/sourcehut/hg.sr.ht/config.ini "''$PWD"/config.ini
exec -a "$0" ${cfg.hg.package}/bin/hg.sr.ht-hook-changegroup "$@"
''}:/usr/bin/hg.sr.ht-hook-changegroup"
];
};
};
@@ -985,17 +987,17 @@ in
(import ./service.nix "builds" {
inherit configIniOfService;
srvsrht = "buildsrht";
pkgname = "buildsrht";
port = 5002;
extraServices.buildsrht-api = {
extraServices."build.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
serviceConfig.ExecStart = "${pkgs.sourcehut.buildsrht}/bin/buildsrht-api -b ${cfg.listenAddress}:${
serviceConfig.ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-api -b ${cfg.listenAddress}:${
toString (cfg.builds.port + 100)
}";
};
# TODO: a celery worker on the master and worker are apparently needed
extraServices.buildsrht-worker =
extraServices."build.sr.ht-worker" =
let
qemuPackage = pkgs.qemu_kvm;
serviceName = "buildsrht-worker";
@@ -1024,7 +1026,7 @@ in
fi
'';
serviceConfig = {
ExecStart = "${pkgs.sourcehut.buildsrht}/bin/buildsrht-worker";
ExecStart = "${cfg.builds.package}/bin/builds.sr.ht-worker";
BindPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ];
LogsDirectory = [ "sourcehut/${serviceName}" ];
RuntimeDirectory = [ "sourcehut/${serviceName}/subdir" ];
@@ -1055,7 +1057,7 @@ in
name = "buildsrht-worker-images-pre";
paths = image_dirs;
# FIXME: not working, apparently because ubuntu/latest is a broken link
# ++ [ "${pkgs.sourcehut.buildsrht}/lib/images" ];
# ++ [ "${cfg.builds.package}/lib/images" ];
};
image_dir = pkgs.runCommand "buildsrht-worker-images" { } ''
mkdir -p $out/images
@@ -1072,7 +1074,7 @@ in
{
# Note that git.sr.ht::dispatch is not a typo,
# gitsrht-dispatch always use this section
"git.sr.ht::dispatch"."/usr/bin/buildsrht-keys" =
"git.sr.ht::dispatch"."/usr/bin/builds.sr.ht-keys" =
mkDefault "${cfg.builds.user}:${cfg.builds.group}";
}
(mkIf cfg.builds.enableWorker {
@@ -1113,8 +1115,10 @@ in
(import ./service.nix "git" (
let
baseService = {
path = [ cfg.git.package ];
serviceConfig.BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/gitsrht/repos" ];
path = [ cfg.git.gitPackage ];
serviceConfig.BindPaths = [
"${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos"
];
};
in
{
@@ -1123,23 +1127,23 @@ in
baseService
{
serviceConfig.StateDirectory = [
"sourcehut/gitsrht"
"sourcehut/gitsrht/repos"
"sourcehut/git.sr.ht"
"sourcehut/git.sr.ht/repos"
];
preStart = mkIf (versionOlder config.system.stateVersion "22.05") (mkBefore ''
# Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
(
set +f
shopt -s nullglob
for h in /var/lib/sourcehut/gitsrht/repos/~*/*/hooks/{pre-receive,update,post-update}
do ln -fnsv /usr/bin/gitsrht-update-hook "$h"; done
for h in /var/lib/sourcehut/git.sr.ht/repos/~*/*/hooks/{pre-receive,update,post-update}
do ln -fnsv /usr/bin/git.sr.ht-update-hook "$h"; done
)
'');
}
];
port = 5001;
webhooks = true;
extraTimers.gitsrht-periodic = {
extraTimers."git.sr.ht-periodic" = {
service = baseService;
timerConfig.OnCalendar = [ "*:0/20" ];
};
@@ -1149,7 +1153,7 @@ in
# Probably could use gitsrht-shell if output is restricted to just parameters...
users.users.${cfg.git.user}.shell = pkgs.bash;
services.sourcehut.settings = {
"git.sr.ht::dispatch"."/usr/bin/gitsrht-keys" = mkDefault "${cfg.git.user}:${cfg.git.group}";
"git.sr.ht::dispatch"."/usr/bin/git.sr.ht-keys" = mkDefault "${cfg.git.user}:${cfg.git.group}";
};
systemd.services.sshd = baseService;
}
@@ -1164,49 +1168,50 @@ in
'';
};
locations."~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$" = {
root = "/var/lib/sourcehut/gitsrht/repos";
root = "/var/lib/sourcehut/git.sr.ht/repos";
fastcgiParams = {
GIT_HTTP_EXPORT_ALL = "";
GIT_PROJECT_ROOT = "$document_root";
PATH_INFO = "$uri";
SCRIPT_FILENAME = "${cfg.git.package}/bin/git-http-backend";
SCRIPT_FILENAME = "${cfg.git.gitPackage}/bin/git-http-backend";
};
extraConfig = ''
auth_request /authorize;
fastcgi_read_timeout 500s;
fastcgi_pass unix:/run/gitsrht-fcgiwrap.sock;
fastcgi_pass unix:/run/git.sr.ht-fcgiwrap.sock;
gzip off;
'';
};
};
systemd.sockets.gitsrht-fcgiwrap = {
systemd.sockets."git.sr.ht-fcgiwrap" = {
before = [ "nginx.service" ];
wantedBy = [
"sockets.target"
"gitsrht.service"
"git.sr.ht.service"
];
# This path remains accessible to nginx.service, which has no RootDirectory=
socketConfig.ListenStream = "/run/gitsrht-fcgiwrap.sock";
socketConfig.ListenStream = "/run/git.sr.ht-fcgiwrap.sock";
socketConfig.SocketUser = nginx.user;
socketConfig.SocketMode = "600";
};
})
];
extraServices.gitsrht-api.serviceConfig = {
extraServices."git.sr.ht-api".serviceConfig = {
Restart = "always";
RestartSec = "5s";
ExecStart = "${pkgs.sourcehut.gitsrht}/bin/gitsrht-api -b ${cfg.listenAddress}:${toString (cfg.git.port + 100)}";
BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/gitsrht/repos" ];
ExecStart = "${cfg.git.package}/bin/git.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.git.port + 100)}";
BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ];
};
extraServices.gitsrht-fcgiwrap = mkIf cfg.nginx.enable {
extraServices."git.sr.ht-fcgiwrap" = mkIf cfg.nginx.enable {
serviceConfig = {
# Socket is passed by gitsrht-fcgiwrap.socket
ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${toString cfg.git.fcgiwrap.preforkProcess}";
ExecStart = "${pkgs.fcgiwrap}/bin/fcgiwrap -c ${toString cfg.git.fcgiwrap.preforkProcess}";
# No need for config.ini
ExecStartPre = mkForce [ ];
User = null;
DynamicUser = true;
BindReadOnlyPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/gitsrht/repos" ];
# FIXME: Fails to start with dynamic user
# User = null;
# DynamicUser = true;
BindReadOnlyPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/git.sr.ht/repos" ];
IPAddressDeny = "any";
InaccessiblePaths = [
"-+/run/postgresql"
@@ -1232,8 +1237,8 @@ in
(import ./service.nix "hg" (
let
baseService = {
path = [ cfg.hg.package ];
serviceConfig.BindPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/sourcehut/hgsrht/repos" ];
path = [ cfg.hg.mercurialPackage ];
serviceConfig.BindPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/sourcehut/hg.sr.ht/repos" ];
};
in
{
@@ -1242,26 +1247,26 @@ in
baseService
{
serviceConfig.StateDirectory = [
"sourcehut/hgsrht"
"sourcehut/hgsrht/repos"
"sourcehut/hg.sr.ht"
"sourcehut/hg.sr.ht/repos"
];
}
];
port = 5010;
webhooks = true;
extraTimers.hgsrht-periodic = {
extraTimers."hg.sr.ht-periodic" = {
service = baseService;
timerConfig.OnCalendar = [ "*:0/20" ];
};
extraTimers.hgsrht-clonebundles = mkIf cfg.hg.cloneBundles {
extraTimers."hg.sr.ht-clonebundles" = mkIf cfg.hg.cloneBundles {
service = baseService;
timerConfig.OnCalendar = [ "daily" ];
timerConfig.AccuracySec = "1h";
};
extraServices.hgsrht-api = {
extraServices."hg.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
serviceConfig.ExecStart = "${pkgs.sourcehut.hgsrht}/bin/hgsrht-api -b ${cfg.listenAddress}:${toString (cfg.hg.port + 100)}";
serviceConfig.ExecStart = "${cfg.hgsrht.package}/bin/hg.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.hg.port + 100)}";
};
extraConfig = mkMerge [
{
@@ -1269,7 +1274,7 @@ in
services.sourcehut.settings = {
# Note that git.sr.ht::dispatch is not a typo,
# gitsrht-dispatch always uses this section.
"git.sr.ht::dispatch"."/usr/bin/hgsrht-keys" = mkDefault "${cfg.hg.user}:${cfg.hg.group}";
"git.sr.ht::dispatch"."/usr/bin/hg.sr.ht-keys" = mkDefault "${cfg.hg.user}:${cfg.hg.group}";
};
systemd.services.sshd = baseService;
}
@@ -1290,7 +1295,7 @@ in
# so someone would need to know or guess a SHA value to download anything.
# TODO: proxyPass to an hg serve service?
locations."~ ^/[~^][a-z0-9_]+/[a-zA-Z0-9_.-]+/\\.hg/bundles/.*$" = {
root = "/var/lib/nginx/hgsrht/repos";
root = "/var/lib/nginx/hg.sr.ht/repos";
extraConfig = ''
auth_request /authorize;
gzip off;
@@ -1299,7 +1304,7 @@ in
};
systemd.services.nginx = {
serviceConfig.BindReadOnlyPaths = [
"${cfg.settings."hg.sr.ht".repos}:/var/lib/nginx/hgsrht/repos"
"${cfg.settings."hg.sr.ht".repos}:/var/lib/nginx/hg.sr.ht/repos"
];
};
})
@@ -1330,23 +1335,23 @@ in
inherit configIniOfService;
port = 5006;
webhooks = true;
extraServices.listssrht-api = {
extraServices."lists.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
serviceConfig.ExecStart = "${pkgs.sourcehut.listssrht}/bin/listssrht-api -b ${cfg.listenAddress}:${
serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-api -b ${cfg.listenAddress}:${
toString (cfg.lists.port + 100)
}";
};
# Receive the mail from Postfix and enqueue them into Redis and PostgreSQL
extraServices.listssrht-lmtp = {
extraServices."lists.sr.ht-lmtp" = {
wants = [ "postfix.service" ];
unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service";
serviceConfig.ExecStart = "${pkgs.sourcehut.listssrht}/bin/listssrht-lmtp";
serviceConfig.ExecStart = "${cfg.lists.package}/bin/lists.sr.ht-lmtp";
# Avoid crashing: os.chown(sock, os.getuid(), sock_gid)
serviceConfig.PrivateUsers = mkForce false;
};
# Dequeue the mails from Redis and dispatch them
extraServices.listssrht-process = {
extraServices."lists.sr.ht-process" = {
serviceConfig = {
preStart = ''
cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" cfg.lists.process.celeryConfig} \
@@ -1392,7 +1397,7 @@ in
OnCalendar = [ "daily" ];
AccuracySec = "1h";
};
extraServices.metasrht-api = {
extraServices."meta.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
preStart =
@@ -1414,7 +1419,7 @@ in
) cfg.settings
)
);
serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
serviceConfig.ExecStart = "${cfg.meta.package}/bin/meta.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
};
extraConfig = {
assertions = [
@@ -1428,14 +1433,14 @@ in
}
];
environment.systemPackages = optional cfg.meta.enable (
pkgs.writeShellScriptBin "metasrht-manageuser" ''
pkgs.writeShellScriptBin "meta.sr.ht-manageuser" ''
set -eux
if test "$(${pkgs.coreutils}/bin/id -n -u)" != '${cfg.meta.user}'
then exec sudo -u '${cfg.meta.user}' "$0" "$@"
else
# In order to load config.ini
if cd /run/sourcehut/metasrht
then exec ${pkgs.sourcehut.metasrht}/bin/metasrht-manageuser "$@"
if cd /run/sourcehut/meta.sr.ht
then exec ${cfg.meta.package}/bin/meta.sr.ht-manageuser "$@"
else cat <<EOF
Please run: sudo systemctl start metasrht
EOF
@@ -1452,8 +1457,9 @@ in
port = 5112;
mainService =
let
package = cfg.pages.package;
srvsrht = "pagessrht";
version = pkgs.sourcehut.${srvsrht}.version;
version = package.version;
stateDir = "/var/lib/sourcehut/${srvsrht}";
iniKey = "pages.sr.ht";
in
@@ -1467,13 +1473,13 @@ in
if test ! -e ${stateDir}/db; then
${postgresql.package}/bin/psql '${
cfg.settings.${iniKey}.connection-string
}' -f ${pkgs.sourcehut.pagessrht}/share/sql/schema.sql
}' -f ${cfg.pages.package}/share/sql/schema.sql
echo ${version} >${stateDir}/db
fi
${optionalString cfg.settings.${iniKey}.migrate-on-upgrade ''
# Just try all the migrations because they're not linked to the version
for sql in ${pkgs.sourcehut.pagessrht}/share/sql/migrations/*.sql; do
for sql in ${package}/share/sql/migrations/*.sql; do
${postgresql.package}/bin/psql '${cfg.settings.${iniKey}.connection-string}' -f "$sql" || true
done
''}
@@ -1482,7 +1488,7 @@ in
touch ${stateDir}/webhook
'';
serviceConfig = {
ExecStart = mkForce "${pkgs.sourcehut.pagessrht}/bin/pages.sr.ht -b ${cfg.listenAddress}:${toString cfg.pages.port}";
ExecStart = mkForce "${cfg.pages.package}/bin/pages.sr.ht -b ${cfg.listenAddress}:${toString cfg.pages.port}";
};
};
})
@@ -1490,10 +1496,10 @@ in
(import ./service.nix "paste" {
inherit configIniOfService;
port = 5011;
extraServices.pastesrht-api = {
extraServices."paste.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
serviceConfig.ExecStart = "${pkgs.sourcehut.pastesrht}/bin/pastesrht-api -b ${cfg.listenAddress}:${
serviceConfig.ExecStart = "${cfg.paste.package}/bin/paste.sr.ht-api -b ${cfg.listenAddress}:${
toString (cfg.paste.port + 100)
}";
};
@@ -1503,15 +1509,15 @@ in
inherit configIniOfService;
port = 5003;
webhooks = true;
extraServices.todosrht-api = {
extraServices."todo.sr.ht-api" = {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = "5s";
serviceConfig.ExecStart = "${pkgs.sourcehut.todosrht}/bin/todosrht-api -b ${cfg.listenAddress}:${toString (cfg.todo.port + 100)}";
serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-api -b ${cfg.listenAddress}:${toString (cfg.todo.port + 100)}";
};
extraServices.todosrht-lmtp = {
extraServices."todo.sr.ht-lmtp" = {
wants = [ "postfix.service" ];
unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service";
serviceConfig.ExecStart = "${pkgs.sourcehut.todosrht}/bin/todosrht-lmtp";
serviceConfig.ExecStart = "${cfg.todo.package}/bin/todo.sr.ht-lmtp";
# Avoid crashing: os.chown(sock, os.getuid(), sock_gid)
serviceConfig.PrivateUsers = mkForce false;
};

View File

@@ -1,7 +1,8 @@
srv:
{
configIniOfService,
srvsrht ? "${srv}srht", # Because "buildsrht" does not follow that pattern (missing an "s").
pkgname ? "${srv}srht", # Because "buildsrht" does not follow that pattern (missing an "s").
srvsrht ? "${srv}.sr.ht",
iniKey ? "${srv}.sr.ht",
webhooks ? false,
extraTimers ? { },
@@ -28,7 +29,7 @@ let
mkIf
mkMerge
;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption mkPackageOption;
inherit (lib.strings) concatStringsSep hasSuffix optionalString;
inherit (config.services) postgresql;
redis = config.services.redis.servers."sourcehut-${srvsrht}";
@@ -162,6 +163,8 @@ in
{
enable = mkEnableOption "${srv} service";
package = mkPackageOption pkgs [ "sourcehut" pkgname ] { };
user = mkOption {
type = types.str;
default = srvsrht;
@@ -276,7 +279,7 @@ in
forceSSL = mkDefault true;
locations."/".proxyPass = "http://${cfg.listenAddress}:${toString srvCfg.port}";
locations."/static" = {
root = "${pkgs.sourcehut.${srvsrht}}/${pkgs.sourcehut.python.sitePackages}/${srvsrht}";
root = "${srvCfg.package}/${pkgs.sourcehut.python.sitePackages}/${srvsrht}";
extraConfig = mkDefault ''
expires 30d;
'';
@@ -367,12 +370,12 @@ in
StateDirectory = [ "sourcehut/${srvsrht}" ];
StateDirectoryMode = "2750";
ExecStart =
"${cfg.python}/bin/gunicorn ${srvsrht}.app:app --name ${srvsrht} --bind ${cfg.listenAddress}:${toString srvCfg.port} "
"${cfg.python}/bin/gunicorn ${pkgname}.app:app --name ${srvsrht} --bind ${cfg.listenAddress}:${toString srvCfg.port} "
+ concatStringsSep " " srvCfg.gunicorn.extraArgs;
};
preStart =
let
package = pkgs.sourcehut.${srvsrht};
package = srvCfg.package;
version = package.version;
stateDir = "/var/lib/sourcehut/${srvsrht}";
in
@@ -385,7 +388,7 @@ in
if test ! -e ${stateDir}/db; then
# Setup the initial database.
# Note that it stamps the alembic head afterward
${package}/bin/${srvsrht}-initdb
${postgresql.package}/bin/psql -d ${srvsrht} -f ${package}/share/sourcehut/${srvsrht}-schema.sql
echo ${version} >${stateDir}/db
fi
@@ -401,7 +404,7 @@ in
# See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain>
if test ! -e ${stateDir}/webhook; then
# Update ${iniKey}'s users' profile copy to the latest
${cfg.python}/bin/srht-update-profiles ${iniKey}
${cfg.python}/bin/sr.ht-update-profiles ${iniKey}
touch ${stateDir}/webhook
fi
'';
@@ -424,7 +427,7 @@ in
Type = "simple";
Restart = "always";
ExecStart =
"${cfg.python}/bin/celery --app ${srvsrht}.webhooks worker --hostname ${srvsrht}-webhooks@%%h "
"${cfg.python}/bin/celery --app ${pkgname}.webhooks worker --hostname ${srvsrht}-webhooks@%%h "
+ concatStringsSep " " srvCfg.webhooks.extraArgs;
# Avoid crashing: os.getloadavg()
ProcSubset = mkForce "all";
@@ -443,7 +446,7 @@ in
];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.sourcehut.${srvsrht}}/bin/${timerName}";
ExecStart = "${srvCfg.package}/bin/${timerName}";
};
}
(timer.service or { })

View File

@@ -10,6 +10,8 @@
let
inherit (lib)
concatStringsSep
escapeShellArg
hasInfix
mapAttrs
mapAttrsToList
mkOption
@@ -84,10 +86,18 @@ in
};
config = {
assertions = mapAttrsToList (name: _: {
assertion = !hasInfix "/" name;
message = ''
Specialisation names must not contain forward slashes.
Invalid specialisation name: ${name}
'';
}) config.specialisation;
system.systemBuilderCommands = ''
mkdir $out/specialisation
${concatStringsSep "\n" (
mapAttrsToList (name: path: "ln -s ${path} $out/specialisation/${name}") children
mapAttrsToList (name: path: "ln -s ${path} $out/specialisation/${escapeShellArg name}") children
)}
'';
};

View File

@@ -49,15 +49,15 @@ import ../make-test-python.nix (
machine.wait_for_unit("multi-user.target")
with subtest("Check whether meta comes up"):
machine.wait_for_unit("metasrht-api.service")
machine.wait_for_unit("metasrht.service")
machine.wait_for_unit("metasrht-webhooks.service")
machine.wait_for_unit("meta.sr.ht-api.service")
machine.wait_for_unit("meta.sr.ht.service")
machine.wait_for_unit("meta.sr.ht-webhooks.service")
machine.wait_for_open_port(5000)
machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}")
machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}")
with subtest("Check whether builds comes up"):
machine.wait_for_unit("buildsrht.service")
machine.wait_for_unit("builds.sr.ht.service")
machine.wait_for_open_port(5002)
machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}")
#machine.wait_for_unit("buildsrht-worker.service")

View File

@@ -63,25 +63,26 @@ import ../make-test-python.nix (
machine.wait_for_unit("sshd.service")
with subtest("Check whether meta comes up"):
machine.wait_for_unit("metasrht-api.service")
machine.wait_for_unit("metasrht.service")
machine.wait_for_unit("metasrht-webhooks.service")
machine.wait_for_unit("meta.sr.ht-api.service")
machine.wait_for_unit("meta.sr.ht.service")
machine.wait_for_unit("meta.sr.ht-webhooks.service")
machine.wait_for_open_port(5000)
machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}")
machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}")
with subtest("Create a new user account and OAuth access key"):
machine.succeed("echo ${userPass} | metasrht-manageuser -ps -e ${userName}@${domain}\
-t active_paying ${userName}");
machine.succeed("echo ${userPass} | meta.sr.ht-manageuser -ps -e ${userName}@${domain}\
-t USER ${userName}");
cmd = "srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}"
(_, token) = machine.execute("srht-gen-oauth-tok -i ${domain} -q ${userName} ${userPass}")
token = token.strip().replace("/", r"\\/") # Escape slashes in token before passing it to sed
machine.execute("mkdir -p ~/.config/hut/")
machine.execute("sed s/OAUTH-TOKEN/" + token + "/ ${hutConfig} > ~/.config/hut/config")
with subtest("Check whether git comes up"):
machine.wait_for_unit("gitsrht-api.service")
machine.wait_for_unit("gitsrht.service")
machine.wait_for_unit("gitsrht-webhooks.service")
machine.wait_for_unit("git.sr.ht-api.service")
machine.wait_for_unit("git.sr.ht.service")
machine.wait_for_unit("git.sr.ht-webhooks.service")
machine.succeed("curl -sL http://git.${domain} | grep git.${domain}")
with subtest("Add an SSH key for Git access"):
@@ -95,7 +96,7 @@ import ../make-test-python.nix (
machine.execute("cd test && git add .")
machine.execute("cd test && git commit -m \"Initial commit\"")
machine.execute("cd test && git tag v0.1")
machine.succeed("cd test && git remote add origin gitsrht@git.${domain}:~${userName}/test")
machine.succeed("cd test && git remote add origin git.sr.ht@git.${domain}:~${userName}/test")
machine.execute("( echo -n 'git.${domain} '; cat /etc/ssh/ssh_host_ed25519_key.pub ) > ~/.ssh/known_hosts")
machine.succeed("hut git create test")
machine.succeed("cd test && git push --tags --set-upstream origin master")

View File

@@ -17,13 +17,13 @@
}:
mkLibretroCore {
core = "dolphin";
version = "0-unstable-2024-04-19";
version = "0-unstable-2025-05-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "dolphin";
rev = "89a4df725d4eb24537728f7d655cddb1add25c18";
hash = "sha256-f9O3//EuoCSPQC7GWmf0EzAEpjoKof30kIDBCDw0dbs=";
rev = "a09f78f735f0d2184f64ba5b134abe98ee99c65f";
hash = "sha256-NUnWNj47FmH8perfRwFFnaXeU58shUXqKFOzHf4ce5c=";
};
extraNativeBuildInputs = [

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "tgbdual";
version = "0-unstable-2024-10-21";
version = "0-unstable-2025-05-10";
src = fetchFromGitHub {
owner = "libretro";
repo = "tgbdual-libretro";
rev = "8d305769eebd67266c284558f9d3a30498894d3d";
hash = "sha256-3mlnTgp43qC3yifpr6pvtC4vslddcf6mephKA183vEk=";
rev = "933707c0ba8f12360f6d79712f735a917713709a";
hash = "sha256-58OLuF14aSJGhmXR0RGgPpuHLXYk9LOz7LX03AEFPr4=";
};
makefile = "Makefile";

View File

@@ -1,68 +0,0 @@
{
lib,
stdenv,
fetchurl,
tcl,
tk,
libX11,
glibc,
which,
bison,
flex,
imake,
xorgproto,
gccmakedep,
}:
let
libiconvInc = lib.optionalString stdenv.hostPlatform.isLinux "${glibc.dev}/include";
libiconvLib = lib.optionalString stdenv.hostPlatform.isLinux "${glibc.out}/lib";
in
stdenv.mkDerivation rec {
pname = "tkgate";
version = "1.8.7";
src = fetchurl {
url = "https://www.tkgate.org/downloads/tkgate-${version}.tgz";
sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
};
nativeBuildInputs = [
which
bison
flex
imake
gccmakedep
];
buildInputs = [
tcl
tk
libX11
xorgproto
];
dontUseImakeConfigure = true;
patchPhase = ''
sed -i config.h \
-e 's|.*#define.*TKGATE_TCLTK_VERSIONS.*|#define TKGATE_TCLTK_VERSIONS "${tcl.release}"|' \
-e 's|.*#define.*TKGATE_INCDIRS.*|#define TKGATE_INCDIRS "${tcl}/include ${tk}/include ${libiconvInc} ${libX11.dev}/include"|' \
-e 's|.*#define.*TKGATE_LIBDIRS.*|#define TKGATE_LIBDIRS "${tcl}/lib ${tk}/lib ${libiconvLib} ${libX11.out}/lib"|' \
\
-e '20 i #define TCL_LIBRARY "${tcl}/lib"' \
-e '20 i #define TK_LIBRARY "${tk}/lib/${tk.libPrefix}"' \
-e '20 i #define USE_ICONV 1' \
\
-e "s|.*#define.*TKGATE_HOMEDIRBASE.*|#define TKGATE_HOMEDIRBASE \\\"$out/lib\\\"|" \
-e "s|.*#define.*TKGATE_BINDIR.*|#define TKGATE_BINDIR \\\"$out/bin\\\"|" \
-e "s|.*#define.*TKGATE_MANDIR.*|#define TKGATE_MANDIR \\\"$out/share/man/man1\\\"|" \
-e "s|file:/usr/X11R6/lib/tkgate-|file://$out/lib/tkgate-|"
'';
meta = {
description = "Event driven digital circuit simulator with a TCL/TK-based graphical editor";
mainProgram = "gmac";
homepage = "https://www.tkgate.org/";
license = lib.licenses.gpl2Plus;
hydraPlatforms = lib.platforms.linux;
};
}

View File

@@ -14,57 +14,54 @@
unzip,
pip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.89.15";
version = "0.95.1";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.39";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/builds/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "builds.sr.ht";
rev = version;
hash = "sha256-rmNaBnTPDDQO/ImkGkMwW8fyjQyBUBchTEnbtAK24pw=";
hash = "sha256-On/dKqIuqsCLAgYkJQOeYL7Ne983JzEYKhuLpD5vNu4=";
};
buildsrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "buildsrht-api";
modRoot = "api";
vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q=";
vendorHash = "sha256-GOM7fmJvfPJW3+XzvlwQZ9hBknlXwBKjGSmtIiapleY=";
}
// gqlgen
);
buildsrht-worker = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "buildsrht-worker";
modRoot = "worker";
vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q=";
vendorHash = "sha256-nEXnCeUxlUMNUqhe82MKREXcaC9pvqZqyqhyQW+jQjQ=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "buildsrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api worker" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -78,9 +75,14 @@ buildPythonPackage rec {
lxml
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
@@ -89,8 +91,10 @@ buildPythonPackage rec {
cp -r images $out/lib
cp contrib/submit_image_build $out/bin/builds.sr.ht
ln -s ${buildsrht-api}/bin/api $out/bin/buildsrht-api
ln -s ${buildsrht-worker}/bin/worker $out/bin/buildsrht-worker
ln -s ${buildsrht-api}/bin/api $out/bin/builds.sr.ht-api
ln -s ${buildsrht-worker}/bin/worker $out/bin/builds.sr.ht-worker
install -Dm644 schema.sql $out/share/sourcehut/builds.sr.ht-schema.sql
make install-share
'';
pythonImportsCheck = [ "buildsrht" ];

View File

@@ -24,12 +24,12 @@
sassc,
pythonOlder,
minify,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "srht";
version = "0.71.8";
version = "0.76.1";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
owner = "~sircmpwn";
repo = "core.sr.ht";
rev = version;
hash = "sha256-rDpm2HJOWScvIxOmHcat6y4CWdBE9T2gE/jZskYAFB0=";
hash = "sha256-lAN1JZXQuN2zxi/BdBtbNj52LPj9iYn0WB2OpyQcyuU=";
fetchSubmodules = true;
};
@@ -48,7 +48,7 @@ buildPythonPackage rec {
];
nativeBuildInputs = [
setuptools
setuptools-scm
];
propagatedNativeBuildInputs = [
@@ -81,12 +81,19 @@ buildPythonPackage rec {
importlib-metadata
];
PKGVER = version;
env = {
PREFIX = placeholder "out";
PKGVER = version;
};
postInstall = ''
make install
'';
pythonImportsCheck = [ "srht" ];
meta = with lib; {
homepage = "https://git.sr.ht/~sircmpwn/srht";
homepage = "https://git.sr.ht/~sircmpwn/core.sr.ht";
description = "Core modules for sr.ht";
license = licenses.bsd3;
maintainers = with maintainers; [

View File

@@ -5,8 +5,6 @@
recurseIntoAttrs,
nixosTests,
config,
fetchPypi,
fetchpatch,
}:
# To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
@@ -29,75 +27,6 @@ let
todosrht = self.callPackage ./todo.nix { };
scmsrht = self.callPackage ./scm.nix { };
# sourcehut is not (yet) compatible with SQLAlchemy 2.x
sqlalchemy = super.sqlalchemy_1_4;
# sourcehut is not (yet) compatible with flask-sqlalchemy 3.x
flask-sqlalchemy = super.flask-sqlalchemy.overridePythonAttrs (oldAttrs: rec {
version = "2.5.1";
format = "setuptools";
src = fetchPypi {
pname = "Flask-SQLAlchemy";
inherit version;
hash = "sha256-K9pEtD58rLFdTgX/PMH4vJeTbMRkYjQkECv8LDXpWRI=";
};
propagatedBuildInputs = with self; [
flask
sqlalchemy
];
disabledTests = [ "test_persist_selectable" ];
});
# flask-sqlalchemy 2.x requires flask 2.x
flask = super.flask.overridePythonAttrs (oldAttrs: rec {
version = "2.3.3";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-CcNHqSqn/0qOfzIGeV8w2CZlS684uHPQdEzVccpgnvw=";
};
});
# flask 2.x requires werkzeug 2.x
werkzeug = super.werkzeug.overridePythonAttrs (oldAttrs: rec {
version = "2.3.8";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-VUslfHS763oNJUFgpPj/4YUkP1KlIDUGC3Ycpi2XfwM=";
};
# Fixes a test failure with Pytest 8
patches = (oldAttrs.patches or [ ]) ++ [
(fetchpatch {
url = "https://github.com/pallets/werkzeug/commit/4e5bdca7f8227d10cae828f8064fb98190ace4aa.patch";
hash = "sha256-83doVvfdpymlAB0EbfrHmuoKE5B2LJbFq+AY2xGpnl4=";
})
];
nativeCheckInputs = oldAttrs.nativeCheckInputs or [ ] ++ [ self.pytest-xprocess ];
});
# sourcehut is not (yet) compatible with factory-boy 3.x
factory-boy = super.factory-boy.overridePythonAttrs (oldAttrs: rec {
version = "2.12.0";
src = fetchPypi {
pname = "factory_boy";
inherit version;
hash = "sha256-+vSNYIoXNfDQo8nL9TbWT5EytUfa57pFLE2Zp56Eo3A=";
};
nativeCheckInputs =
(with super; [
django
mongoengine
pytestCheckHook
])
++ (with self; [
sqlalchemy
flask
flask-sqlalchemy
]);
postPatch = "";
});
};
};
in

View File

@@ -11,42 +11,44 @@
pythonOlder,
unzip,
pip,
setuptools,
setuptools-scm,
}:
let
version = "0.85.9";
version = "0.88.10";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.42";
gqlgenVersion = "0.17.64";
};
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "git.sr.ht";
rev = version;
hash = "sha256-tmbBw6x3nqN9nRIR3xOXQ+L5EACXLQYLXQYK3lsOsAI=";
hash = "sha256-o7d2EIx9oJAQSIrMMG/TYjAo7PJwT6rE8kcVMKoYenY=";
};
patches = [ ./patches/core-go-update/git/patch-deps.patch ];
gitApi = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "gitsrht-api";
modRoot = "api";
vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
vendorHash = "sha256-20SxOZrvj41L8A5nuOro9DYiK6FyhwJK5cNAvxPB7qw=";
}
// gqlgen
);
gitDispatch = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "gitsrht-dispatch";
modRoot = "gitsrht-dispatch";
vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
modRoot = "dispatch";
vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y=";
postPatch = ''
substituteInPlace gitsrht-dispatch/main.go \
--replace /var/log/gitsrht-dispatch /var/log/sourcehut/gitsrht-dispatch
substituteInPlace dispatch/main.go \
--replace-fail /var/log/git.sr.ht-dispatch /var/log/sourcehut/git.sr.ht-dispatch
'';
}
// gqlgen
@@ -54,14 +56,14 @@ let
gitKeys = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "gitsrht-keys";
modRoot = "gitsrht-keys";
vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
modRoot = "keys";
vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y=";
postPatch = ''
substituteInPlace gitsrht-keys/main.go \
--replace /var/log/gitsrht-keys /var/log/sourcehut/gitsrht-keys
substituteInPlace keys/main.go \
--replace-fail /var/log/git.sr.ht-keys /var/log/sourcehut/git.sr.ht-keys
'';
}
// gqlgen
@@ -69,14 +71,14 @@ let
gitShell = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "gitsrht-shell";
modRoot = "gitsrht-shell";
vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
modRoot = "shell";
vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y=";
postPatch = ''
substituteInPlace gitsrht-shell/main.go \
--replace /var/log/gitsrht-shell /var/log/sourcehut/gitsrht-shell
substituteInPlace shell/main.go \
--replace-fail /var/log/git.sr.ht-shell /var/log/sourcehut/git.sr.ht-shell
'';
}
// gqlgen
@@ -84,34 +86,29 @@ let
gitUpdateHook = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "gitsrht-update-hook";
modRoot = "gitsrht-update-hook";
vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
modRoot = "update-hook";
vendorHash = "sha256-MXLF7vO8SmUkU1nOxhObuzjT2ZRQQluIX7TRrxL7/3Y=";
postPatch = ''
substituteInPlace gitsrht-update-hook/main.go \
--replace /var/log/gitsrht-update-hook /var/log/sourcehut/gitsrht-update-hook
substituteInPlace update-hook/main.go \
--replace-fail /var/log/git.sr.ht-update-hook /var/log/sourcehut/git.sr.ht-update-hook
'';
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "gitsrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api gitsrht-dispatch gitsrht-keys gitsrht-shell gitsrht-update-hook" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -121,18 +118,25 @@ buildPythonPackage rec {
minio
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
mkdir -p $out/bin
ln -s ${gitApi}/bin/api $out/bin/gitsrht-api
ln -s ${gitDispatch}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
ln -s ${gitKeys}/bin/gitsrht-keys $out/bin/gitsrht-keys
ln -s ${gitShell}/bin/gitsrht-shell $out/bin/gitsrht-shell
ln -s ${gitUpdateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
ln -s ${gitApi}/bin/api $out/bin/git.sr.ht-api
ln -s ${gitDispatch}/bin/dispatch $out/bin/git.sr.ht-dispatch
ln -s ${gitKeys}/bin/keys $out/bin/git.sr.ht-keys
ln -s ${gitShell}/bin/shell $out/bin/git.sr.ht-shell
ln -s ${gitUpdateHook}/bin/update-hook $out/bin/git.sr.ht-update-hook
install -Dm644 schema.sql $out/share/sourcehut/git.sr.ht-schema.sql
make PREFIX=$out install-share
'';
pythonImportsCheck = [ "gitsrht" ];

View File

@@ -1,6 +1,7 @@
{
lib,
fetchFromSourcehut,
fetchpatch,
buildGoModule,
buildPythonPackage,
srht,
@@ -11,65 +12,71 @@
unzip,
pip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.33.0";
version = "0.36.1";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.45";
gqlgenVersion = "0.17.64";
};
pyproject = true;
disabled = pythonOlder "3.7";
patches = [
(fetchpatch {
name = "update-core-go-and-gqlgen.patch";
url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht/rev/2765f086c3a67e00219cabe9a1dd01b2012c5c12.patch";
hash = "sha256-MLZG07tD7vrfvx2GDRUvFd/7VxxZLrAa/C3bB/IvQpI=";
})
./patches/core-go-update/hg/patch-deps.patch
];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "hg.sr.ht";
rev = version;
hash = "sha256-+BYeE+8dXY/MLLYyBBLD+eKqmrPiKyyCGIZLkCPzNYM=";
hash = "sha256-EeWRUb/BZ+KJXNqmzCFYHkvWUaPvF/F7ZaOYM0IEYwk=";
vc = "hg";
};
hgsrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "hgsrht-api";
modRoot = "api";
vendorHash = "sha256-K+KMhcvkG/qeQTnlHS4xhLCcvBQNNp2DcScJPm8Dbic=";
vendorHash = "sha256-elaVmyaO5IbzsnBYRjJvmoOFR8gx1xCfzd3z01KNXVA=";
}
// gqlgen
);
hgsrht-keys = buildGoModule {
inherit src version;
inherit src version patches;
pname = "hgsrht-keys";
modRoot = "hgsrht-keys";
vendorHash = "sha256-7ti8xCjSrxsslF7/1X/GY4FDl+69hPL4UwCDfjxmJLU=";
modRoot = "keys";
vendorHash = "sha256-U5NtgyUgVqI25XBg51U7glNRpR5MZBCcsuuR6f+gZc8=";
postPatch = ''
substituteInPlace hgsrht-keys/main.go \
--replace /var/log/hgsrht-keys /var/log/sourcehut/hgsrht-keys
substituteInPlace keys/main.go \
--replace-fail /var/log/hg.sr.ht-keys /var/log/sourcehut/hg.sr.ht-keys
'';
};
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "hgsrht";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api hgsrht-keys" ""
pyproject = true;
substituteInPlace hgsrht-shell \
--replace /var/log/hgsrht-shell /var/log/sourcehut/hgsrht-shell
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace hg.sr.ht-shell \
--replace-fail /var/log/hg.sr.ht-shell /var/log/sourcehut/hg.sr.ht-shell
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -79,20 +86,27 @@ buildPythonPackage rec {
unidiff
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
ln -s ${hgsrht-api}/bin/api $out/bin/hgsrht-api
ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hgsrht-keys
ln -s ${hgsrht-api}/bin/api $out/bin/hg.sr.ht-api
ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hg.sr.ht-keys
install -Dm644 schema.sql $out/share/sourcehut/hg.sr.ht-schema.sql
make install-share
'';
pythonImportsCheck = [ "hgsrht" ];
meta = with lib; {
homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht";
homepage = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
description = "Mercurial repository hosting service for the sr.ht network";
license = licenses.agpl3Only;
maintainers = with maintainers; [

View File

@@ -5,7 +5,7 @@
buildPythonPackage,
python,
srht,
setuptools,
setuptools-scm,
pip,
pyyaml,
pythonOlder,
@@ -13,43 +13,41 @@
}:
let
version = "0.17.7";
version = "0.20.2";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.43";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/hub/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "hub.sr.ht";
rev = version;
hash = "sha256-IyY7Niy/vZSAXjYZMlxY6uuQ8nH/4yT4+MaRjHtl6G4=";
hash = "sha256-blaaJ7kQBkswmSpEVEsDm6vaxuMuCcW2wmeN+fbwzjg=";
};
hubsrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "hubsrht-api";
modRoot = "api";
vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic=";
vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "hubsrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile --replace "all: api" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -57,13 +55,20 @@ buildPythonPackage rec {
pyyaml
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
ln -s ${hubsrht-api}/bin/api $out/bin/hubsrht-api
ln -s ${hubsrht-api}/bin/api $out/bin/hub.sr.ht-api
install -Dm644 schema.sql $out/share/sourcehut/hub.sr.ht-schema.sql
make install-share
'';
# Module has no tests

View File

@@ -12,48 +12,45 @@
unzip,
pip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.57.18";
version = "0.62.3";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.45";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/lists/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "lists.sr.ht";
rev = version;
hash = "sha256-l+QPocnwHTjrU+M0wnm4tBrbz8KmSb6DovC+skuAnLc=";
hash = "sha256-HU3hnKdIoseCo1/lt3GIOQ5d3joykN11/Bzvk4xvH4Y=";
};
listssrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "listssrht-api";
modRoot = "api";
vendorHash = "sha256-UeVs/+uZNtv296bzXIBio2wcg3Uzu3fBM4APzF9O0hY=";
vendorHash = "sha256-XKDEr8ESs9oBh7DKu2jgPEMDY99nN25inkNwU/rrza8=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "listssrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -65,13 +62,20 @@ buildPythonPackage rec {
emailthreads
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
ln -s ${listssrht-api}/bin/api $out/bin/listssrht-api
ln -s ${listssrht-api}/bin/api $out/bin/lists.sr.ht-api
install -Dm644 schema.sql $out/share/sourcehut/lists.sr.ht-schema.sql
make install-share
'';
pythonImportsCheck = [ "listssrht" ];

View File

@@ -9,47 +9,45 @@
unzip,
pip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.16.5";
version = "0.18.1";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.43";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/man/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "man.sr.ht";
rev = version;
hash = "sha256-JFMtif2kIE/fs5PNcQtkJikAFNszgZTU7BG/8fTncTI=";
hash = "sha256-c2xFC1pmOSGGMP4RVOmgFogj7CY2kHrADsWsm7M5ZK4=";
};
mansrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "mansrht-api";
modRoot = "api";
vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic=";
vendorHash = "sha256-jKNHZrFydp3+cD8MR2izzE8bi4H2uT/7+x/wmPkEIIc=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "mansrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile --replace "all: api" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -57,13 +55,20 @@ buildPythonPackage rec {
pygit2
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
ln -s ${mansrht-api}/bin/api $out/bin/mansrht-api
ln -s ${mansrht-api}/bin/api $out/bin/man.sr.ht-api
install -Dm644 schema.sql $out/share/sourcehut/man.sr.ht-schema.sql
make install-share
'';
pythonImportsCheck = [ "mansrht" ];

View File

@@ -16,47 +16,44 @@
unzip,
pip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.69.8";
version = "0.72.11";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.43";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/meta/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "meta.sr.ht";
rev = version;
hash = "sha256-K7p6cytkPYgUuYr7BVfU/+sVbSr2YEmreIDnTatUMyk=";
hash = "sha256-dh+9wSQLL69xZ2Elmkyb9vEwpE7U7szz62VVS/0IM7Q=";
};
metasrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "metasrht-api";
modRoot = "api";
vendorHash = "sha256-vIkUK1pigVU8vZL5xpHLeinOga5eXXHTuDkHxwUz6uM=";
vendorHash = "sha256-z4gRqI05t3m7ANyDJHmBcOCW476IG/eTfLetPRPbqtg=";
}
// gqlgen
);
in
buildPythonPackage rec {
pname = "metasrht";
inherit version src;
inherit version src patches;
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -71,14 +68,21 @@ buildPythonPackage rec {
zxcvbn
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
mkdir -p $out/bin
ln -s ${metasrht-api}/bin/api $out/bin/metasrht-api
ln -s ${metasrht-api}/bin/api $out/bin/meta.sr.ht-api
install -Dm644 schema.sql $out/share/sourcehut/meta.sr.ht-schema.sql
make install-share
'';
pythonImportsCheck = [ "metasrht" ];

View File

@@ -8,25 +8,23 @@
buildGoModule (
rec {
pname = "pagessrht";
version = "0.15.7";
version = "0.16.0";
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "pages.sr.ht";
rev = version;
hash = "sha256-Lobuf12ybSO7Y4ztOLMFW0dmPFaBSEPCy4Nmh89tylI=";
hash = "sha256-XnKNXYzg9wuL4U2twkAspaQJZy2HWLQQQl9AITtipVU=";
};
patches = ./patches/core-go-update/pages/patch-deps.patch;
postPatch = ''
substituteInPlace Makefile \
--replace "all: server" ""
# fix build failure due to unused import
substituteInPlace server.go \
--replace-warn ' "fmt"' ""
--replace-fail "all: server daily" ""
'';
vendorHash = "sha256-9hpOkP6AYSZe7MW1mrwFEKq7TvVt6OcF6eHWY4jARuU=";
vendorHash = "sha256-klDROxNvR7lk79ptckulImVVwsAfcnKtJJAaevlZSWU=";
postInstall = ''
mkdir -p $out/share/sql/
@@ -48,6 +46,6 @@ buildGoModule (
}
// import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.42";
gqlgenVersion = "0.17.64";
}
)

View File

@@ -8,49 +8,46 @@
pyyaml,
python,
pythonOlder,
setuptools,
setuptools-scm,
unzip,
}:
let
version = "0.15.4";
version = "0.16.1";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.45";
gqlgenVersion = "0.17.64";
};
patches = [ ./patches/core-go-update/paste/patch-deps.patch ];
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "paste.sr.ht";
rev = version;
hash = "sha256-M38hAMRdMzcqxJv7j7foOIYEImr/ZYz/lbYOF9R9g2M=";
hash = "sha256-SWtkE2/sTTJo0zAVFRfsA7fVF359OvgiHOT+yRaiads=";
};
pastesrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "pastesrht-api";
modRoot = "api";
vendorHash = "sha256-vt5nSPcx+Y/SaWcqjV38DTL3ZtzmdjbkJYMv5Fhhnq4=";
vendorHash = "sha256-uVqxPa1YggPgdSzGzXxVNdf4dM2DPGDXajkSXz4NhFM=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "pastesrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api" ""
'';
nativeBuildInputs = [
pip
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -58,14 +55,20 @@ buildPythonPackage rec {
pyyaml
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
mkdir -p $out/bin
ln -s ${pastesrht-api}/bin/api $out/bin/pastesrht-api
ln -s ${pastesrht-api}/bin/api $out/bin/paste.sr.ht-api
make install-share
'';
pythonImportsCheck = [ "pastesrht" ];

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index 07f7c64..972b258 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index aaccf89..73bfe7c 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,26 @@
diff --git a/go.mod b/go.mod
index b1e0834..8299f9b 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
git.sr.ht/~sircmpwn/scm.sr.ht/srht-keys v0.0.0-20241202093706-8da5ec7e6b94
git.sr.ht/~turminal/go-fnmatch v0.0.0-20211021204744-1a55764af6de
diff --git a/go.sum b/go.sum
index 193cce9..9b0bda4 100644
--- a/go.sum
+++ b/go.sum
@@ -35,6 +35,8 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7
git.sr.ht/~sircmpwn/core-go v0.0.0-20240124105042-864816cfbc0c/go.mod h1:OovCpg5LsbYJjmDTpk5wUgHM4tUor736Pmxekm9BUcQ=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20221010085743-46c4299d76a1/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index ba49458..3a31083 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index 61766aa..e01c045 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index ea624d5..3674152 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/vektah/gqlparser/v2 v2.5.23
diff --git a/go.sum b/go.sum
index f67a555..a366a60 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,26 @@
diff --git a/go.mod b/go.mod
index da34484..24757a0 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ toolchain go1.24.0
require (
git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index 4590dd5..0c49985 100644
--- a/go.sum
+++ b/go.sum
@@ -2,6 +2,8 @@ git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2 h1:5CkkRD
git.sr.ht/~emersion/go-emailthreads v0.0.0-20230220165133-75c43015b6c2/go.mod h1:CQUF7XpyupxjwxlNX3PHRCYL+N2COXTRRRS4MgM49R4=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index 21c7713..8f158a2 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/vektah/gqlparser/v2 v2.5.23
diff --git a/go.sum b/go.sum
index f67a555..a366a60 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,26 @@
diff --git a/go.mod b/go.mod
index 463f022..a7dc400 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ require (
git.sr.ht/~emersion/go-oauth2 v0.0.0-20240217160856-2e0d6e20b088
git.sr.ht/~emersion/gqlclient v0.0.0-20230820050442-8873fe0204b9
git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index 9c08b1a..abf1a58 100644
--- a/go.sum
+++ b/go.sum
@@ -6,6 +6,8 @@ git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89 h1:usW1i77LjfTfNzX
git.sr.ht/~sircmpwn/abused v0.0.0-20240216134550-21e8606c6f89/go.mod h1:A+FTCDOSRA0naGMcM9OenO7kMhBxj+Kbd+4nBpg6NO4=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e h1:epi/OdTKtazVbHHn1Qunx+nSHt96+xBBiNgs+SgRGwo=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250311090327-1e3cd785af1e/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index 67aa15c..baffe8e 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ toolchain go1.24.0
require (
git.sr.ht/~adnano/go-gemini v0.2.3
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/CAFxX/httpcompression v0.0.9
diff --git a/go.sum b/go.sum
index ccd1f94..0945505 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~adnano/go-gemini v0.2.3 h1:oJ+Y0/mheZ4Vg0ABjtf5dlmvq1yoONStiaQvmWWkofc=
git.sr.ht/~adnano/go-gemini v0.2.3/go.mod h1:hQ75Y0i5jSFL+FQ7AzWVAYr5LQsaFC7v3ZviNyj46dY=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0 h1:jFSTrW57GbcDoW850vw95zg0pLS1pe+cD5JtAQJ54ho=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250326085317-29a3ebfee9d0/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index bc39fc4..bd01e53 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index 61766aa..e01c045 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b h1:d76irAQODAtl5G1zmKfwf60544fyGz74YT9k+7yYVxc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250304085405-cbf919e45b5b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -0,0 +1,25 @@
diff --git a/go.mod b/go.mod
index a352cfd..ab4beae 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.22.5
toolchain go1.24.0
require (
- git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4
+ git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c
github.com/99designs/gqlgen v0.17.64
github.com/Masterminds/squirrel v1.5.4
diff --git a/go.sum b/go.sum
index 5342a85..50c87f1 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4 h1:LvEcAyN0YDwqsa7QkFXne0bQEWAod6jAI2VIc+kk5sk=
git.sr.ht/~sircmpwn/core-go v0.0.0-20250306104433-8e729e7539f4/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b h1:UuQxEJrh/NNdmaVcK34opEz7ypXnPyxeRcT7Aigz+7E=
+git.sr.ht/~sircmpwn/core-go v0.0.0-20250311210855-6ba248d8be1b/go.mod h1:UHi3kXwgfZ/DIbMu5LeqZb3KrY/jsdUDefc8+3YWC3c=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=

View File

@@ -23,16 +23,17 @@ diff --git a/srht/metrics.py b/srht/metrics.py
index 68caf8e..2df5777 100644
--- a/srht/metrics.py
+++ b/srht/metrics.py
@@ -1,11 +1,12 @@
@@ -1,12 +1,12 @@
import time
+from celery import Celery
from prometheus_client.metrics_core import GaugeMetricFamily
from redis import Redis, ResponseError
from redis import ResponseError
-from srht.redis import from_url
class RedisQueueCollector:
def __init__(self, broker, name, documentation, queue_name="celery"):
- self.redis = Redis.from_url(broker)
- self.redis = from_url(broker)
+ self.redis = Celery("collector", broker=broker).connection_for_read().channel().client
self.queue_name = queue_name
self.name = name

View File

@@ -6,12 +6,12 @@
pyyaml,
buildsrht,
pythonOlder,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "scmsrht";
version = "0.22.24";
version = "0.22.28";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -20,11 +20,11 @@ buildPythonPackage rec {
owner = "~sircmpwn";
repo = "scm.sr.ht";
rev = version;
hash = "sha256-9IgMmYzInfrten7z8bznlSFJlUjHf3k3z76lkP6tP50=";
hash = "sha256-+zxqiz5yPpgTwAw7w8GqJFb3OCcJEH/UhS5u2Xs7pzo=";
};
nativeBuildInputs = [
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -33,9 +33,7 @@ buildPythonPackage rec {
buildsrht
];
preBuild = ''
export PKGVER=${version}
'';
env.PKGVER = version;
pythonImportsCheck = [ "scmsrht" ];

View File

@@ -10,47 +10,44 @@
python,
unzip,
pythonOlder,
setuptools,
setuptools-scm,
}:
let
version = "0.75.10";
version = "0.77.5";
gqlgen = import ./fix-gqlgen-trimpath.nix {
inherit unzip;
gqlgenVersion = "0.17.45";
gqlgenVersion = "0.17.64";
};
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "todo.sr.ht";
rev = version;
hash = "sha256-3dVZdupsygM7/6T1Mn7yRc776aa9pKgwF0hgZX6uVQ0=";
hash = "sha256-P+ypiW3GHoMClBmW5lUNAG6/sydHHnFGyGajmC3WARg=";
};
patches = [ ./patches/core-go-update/todo/patch-deps.patch ];
todosrht-api = buildGoModule (
{
inherit src version;
inherit src version patches;
pname = "todosrht-api";
modRoot = "api";
vendorHash = "sha256-fImOQLnQLHTrg5ikuYRZ+u+78exAiYA19DGQoUjQBOM=";
vendorHash = "sha256-ny6cyUIgmupeU8SFP8+RSQU7DD3Lk+j+mZQBoXKv63I=";
}
// gqlgen
);
in
buildPythonPackage rec {
inherit src version;
inherit src version patches;
pname = "todosrht";
pyproject = true;
disabled = pythonOlder "3.7";
postPatch = ''
substituteInPlace Makefile \
--replace "all: api" ""
'';
nativeBuildInputs = [
setuptools
setuptools-scm
];
propagatedBuildInputs = [
@@ -58,13 +55,20 @@ buildPythonPackage rec {
alembic
];
preBuild = ''
export PKGVER=${version}
export SRHT_PATH=${srht}/${python.sitePackages}/srht
env = {
PKGVER = version;
SRHT_PATH = "${srht}/${python.sitePackages}/srht";
PREFIX = placeholder "out";
};
postBuild = ''
make SASSC_INCLUDE=-I${srht}/share/sourcehut/scss/ all-share
'';
postInstall = ''
ln -s ${todosrht-api}/bin/api $out/bin/todosrht-api
ln -s ${todosrht-api}/bin/api $out/bin/todo.sr.ht-api
install -Dm644 schema.sql $out/share/sourcehut/todo.sr.ht-schema.sql
make install-share
'';
# pytest tests fail

View File

@@ -1,81 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
qttools,
qtmultimedia,
liblo,
gst_all_1,
qmake,
pkg-config,
wrapQtAppsHook,
}:
with stdenv;
mkDerivation rec {
version = "0.6.2";
pname = "mapmap";
src = fetchFromGitHub {
owner = "mapmapteam";
repo = "mapmap";
rev = version;
sha256 = "1pyb3vz19lbfz2hrfqm9a29vnajw1bigdrblbmcy32imkf4isfvm";
};
nativeBuildInputs = [
qmake
pkg-config
wrapQtAppsHook
];
buildInputs = [
qttools
qtmultimedia
liblo
gst_all_1.gstreamer
gst_all_1.gstreamermm
gst_all_1.gst-libav
gst_all_1.gst-vaapi
];
patches = [
(fetchpatch {
name = "message-handler-segfault.patch";
url = "https://github.com/mapmapteam/mapmap/pull/519/commits/22eeee59ba7de6de7b73ecec3b0ea93bdc7f04e8.patch";
sha256 = "0is905a4lf9vvl5b1n4ky6shrnbs5kz9mlwfk78hrl4zabfmcl5l";
})
# fix build with libsForQt515
(fetchpatch {
url = "https://github.com/mapmapteam/mapmap/pull/518/commits/ac49acc1e2ec839832b86838e93a8c13030affeb.patch";
sha256 = "sha256-tSLbyIDv5mSejnw9oru5KLAyQqjgJLLREKQomEUcGt8=";
})
];
installPhase = ''
mkdir -p $out/bin
cp mapmap $out/bin/mapmap
mkdir -p $out/share/applications/
sed 's|Icon=/usr/share/icons/hicolor/scalable/apps/mapmap.svg|Icon=mapmap|g' resources/texts/mapmap.desktop > $out/share/applications/mapmap.desktop
mkdir -p $out/share/icons/hicolor/scalable/apps/
cp resources/images/logo/mapmap.* $out/share/icons/hicolor/scalable/apps/
'';
# RPATH in /tmp hack
# preFixup = ''
# rm -r $NIX_BUILD_TOP/__nix_qt5__
# '';
meta = with lib; {
description = "Open source video mapping software";
homepage = "https://github.com/mapmapteam/mapmap";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "mapmap";
};
}

View File

@@ -1,43 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fuse,
readline,
libgcrypt,
gmp,
}:
stdenv.mkDerivation {
pname = "afpfs-ng";
version = "0.8.2";
src = fetchFromGitHub {
owner = "simonvetter";
repo = "afpfs-ng";
rev = "f6e24eb73c9283732c3b5d9cb101a1e2e4fade3e";
sha256 = "125jx1rsqkiifcffyjb05b2s36rllckdgjaf1bay15k9gzhwwldz";
};
# Add workaround for -fno-common toolchains like upstream gcc-10 to
# avoid build failures like:
# ld: afpcmd-cmdline_main.o:/build/source/cmdline/cmdline_afp.h:4: multiple definition of
# `full_url'; afpcmd-cmdline_afp.o:/build/source/cmdline/cmdline_afp.c:27: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
buildInputs = [
fuse
readline
libgcrypt
gmp
];
meta = with lib; {
homepage = "https://github.com/simonvetter/afpfs-ng";
description = "Client implementation of the Apple Filing Protocol";
license = licenses.gpl2Only;
maintainers = with maintainers; [ rnhmjoj ];
platforms = platforms.linux;
};
}

View File

@@ -1,38 +0,0 @@
--- ats-lang-anairiats-0.2.11/Makefile 2013-12-10 00:43:52.000000000 +0100
+++ ats-lang-anairiats-0.2.11/Makefile 2014-03-02 07:49:06.985837425 +0100
@@ -97,7 +97,7 @@
cd $(abs_top_srcdir)
[ -d $(bindir2) ] || $(MKDIR_P) $(bindir2)
$(MKDIR_P) $(ATSLIBHOME2)/bin
- find ccomp contrib doc libats libc prelude -type d \
+ find ccomp contrib doc libats libatsdoc libc prelude -type d \
-exec $(MKDIR_P) $(ATSLIBHOME2)/\{} \; \
-print
@@ -105,7 +105,7 @@
#
# recursively install all files in the list except .svn control files.
#
- for d in ccomp/runtime contrib doc libats libc prelude; do \
+ for d in ccomp/runtime contrib doc libats libatsdoc libc prelude; do \
cd $(abs_top_srcdir) && \
$(INSTALL) -d $(ATSLIBHOME2)/"$$d" && \
find "$$d" -name .svn -prune -o -type f \
@@ -143,6 +143,17 @@
$(INSTALL) -m 755 ats_env.sh $(bindir2)/"$$b" && \
echo [ats_env.sh] is installed into $(bindir2)/"$$b"; \
done
+#
+# install atsdoc headers
+#
+ for f in \
+ utils/atsdoc/SATS/*.sats utils/atsdoc/DATS/*.dats utils/atsdoc/HATS/*.hats; \
+ do \
+ [ -f "$$f" ] || continue; \
+ cd $(abs_top_srcdir) && \
+ $(INSTALL) -m 644 -D "$$f" $(ATSLIBHOME2)/"$$f" && \
+ echo "$$f"; \
+ done
install:: install_files

View File

@@ -1,30 +0,0 @@
{
lib,
stdenv,
fetchurl,
gmp,
}:
stdenv.mkDerivation rec {
pname = "ats";
version = "0.2.12";
src = fetchurl {
url = "mirror://sourceforge/ats-lang/ats-lang-anairiats-${version}.tgz";
sha256 = "0l2kj1fzhxwsklwmn5yj2vp9rmw4jg0b18bzwqz72bfi8i39736k";
};
# this is necessary because atxt files usually include some .hats files
patches = [ ./install-atsdoc-hats-files.patch ];
buildInputs = [ gmp ];
meta = {
description = "Functional programming language with dependent types";
homepage = "http://www.ats-lang.org";
license = lib.licenses.gpl3Plus;
# TODO: it looks like ATS requires gcc specifically. Someone with more knowledge
# will need to experiment.
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.thoughtpolice ];
};
}

View File

@@ -1,46 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
doxygen,
boost,
zlib,
}:
stdenv.mkDerivation rec {
pname = "axmldec";
version = "1.2.0";
src = fetchFromGitHub {
owner = "ytsutano";
repo = "axmldec";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-LFDZZbRDa8mQmglgS4DA/OqXp0HJZ2uqg1hbStdgvUw=";
};
nativeBuildInputs = [
cmake
doxygen
];
buildInputs = [
boost
zlib
];
meta = with lib; {
description = "Stand-alone binary AndroidManifest.xml decoder";
longDescription = ''
This tool accepts either a binary or a text XML file and prints the
decoded XML to the standard output or a file. It also allows you to
extract the decoded AndroidManifest.xml directly from an APK file.
'';
homepage = "https://github.com/ytsutano/axmldec";
changelog = "https://github.com/ytsutano/axmldec/releases/tag/${src.rev}";
license = licenses.isc;
mainProgram = "axmldec";
maintainers = with maintainers; [ franciscod ];
platforms = platforms.unix ++ platforms.windows;
};
}

View File

@@ -3,24 +3,24 @@
let
pname = "brave";
version = "1.78.97";
version = "1.78.102";
allArchives = {
aarch64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
hash = "sha256-7j03rArdHXYlB8g72DeXivnPVhmCjPd3rtbTsH4nAiU=";
hash = "sha256-V+Kwdb1k/IbAOJfQ9+Nvr75MTQoGhuXM59X0nNmMfTc=";
};
x86_64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
hash = "sha256-SjaYmLCV/od2J6HFNyhh43/swQupl+rXfU8B1VvNXf8=";
hash = "sha256-S5eN33LlpQJFoPkurLKooGkPvqLCV70TjqHVj2e54rk=";
};
aarch64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-arm64.zip";
hash = "sha256-12z9MMUkSOZn7vg7VZ8i/dVdxHGTRcVe4M8ryInEdHw=";
hash = "sha256-BjPcuMOIj6wLZONEzCLZx2UhOM8Sibvb432we+j3Md4=";
};
x86_64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-x64.zip";
hash = "sha256-UMwwpn+ag9dDU0/YHr21a1494wTahsHdyjDnme88m7Q=";
hash = "sha256-/fl4Jq/7Q9phTjMHQiMjNgK2dU52rE7O98nLBaQlM9A=";
};
};

View File

@@ -1,55 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
libxcrypt,
}:
stdenv.mkDerivation rec {
pname = "cde";
version = "0.1";
src = fetchFromGitHub {
owner = "usnistgov";
repo = "corr-CDE";
rev = "v${version}";
sha256 = "sha256-s375gtqBWx0GGXALXR+fN4bb3tmpvPNu/3bNz+75UWU=";
};
# The build is small, so there should be no problem
# running this locally. There is also a use case for
# older systems, where modern binaries might not be
# useful.
preferLocalBuild = true;
buildInputs = [ libxcrypt ];
patchBuild = ''
sed -i -e '/install/d' $src/Makefile
'';
preBuild = ''
patchShebangs .
'';
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: ../readelf-mini/libreadelf-mini.a(dwarf.o):/build/source/readelf-mini/dwarf.c:64:
# multiple definition of `do_wide'; ../readelf-mini/libreadelf-mini.a(readelf-mini.o):/build/source/readelf-mini/readelf-mini.c:170: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
installPhase = ''
install -d $out/bin
install -t $out/bin cde cde-exec
'';
meta = with lib; {
homepage = "https://github.com/usnistgov/corr-CDE";
description = "Packaging tool for building portable packages";
license = licenses.gpl3Plus;
maintainers = [ maintainers.rlupton20 ];
platforms = platforms.linux;
# error: architecture aarch64 is not supported by bundled strace
badPlatforms = [ "aarch64-linux" ];
};
}

View File

@@ -5,12 +5,14 @@
libtommath,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "convertlit";
version = "1.8";
src = fetchzip {
url = "http://www.convertlit.com/convertlit${lib.replaceStrings [ "." ] [ "" ] version}src.zip";
url = "http://www.convertlit.com/convertlit${
lib.replaceStrings [ "." ] [ "" ] finalAttrs.version
}src.zip";
sha256 = "182nsin7qscgbw2h92m0zadh3h8q410h5cza6v486yjfvla3dxjx";
stripRoot = false;
};
@@ -19,18 +21,22 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
postPatch = ''
substituteInPlace clit18/Makefile --replace gcc \$\(CC\)
substituteInPlace clit18/Makefile --replace ../libtommath-0.30/libtommath.a -ltommath
'';
buildPhase = ''
cd lib
make
cd ../clit18
substituteInPlace Makefile \
--replace ../libtommath-0.30/libtommath.a -ltommath
make
'';
installPhase = ''
mkdir -p $out/bin
cp clit $out/bin
install -Dm755 clit $out/bin/clit
'';
meta = {
@@ -40,4 +46,4 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
};
}
})

View File

@@ -1,10 +0,0 @@
--- dbench-65b1987.org/libnfs.c 2017-11-08 12:25:39.652147989 +0000
+++ dbench-65b1987/libnfs.c 2017-11-08 12:26:20.269897054 +0000
@@ -23,6 +23,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <stdint.h>
#define discard_const(ptr) ((void *)((intptr_t)(ptr)))

View File

@@ -1,63 +0,0 @@
{
lib,
stdenv,
fetchgit,
autoconf,
popt,
zlib,
rpcsvc-proto,
libtirpc,
}:
stdenv.mkDerivation rec {
pname = "dbench";
version = "2013-01-01";
src = fetchgit {
url = "git://git.samba.org/sahlberg/${pname}.git";
rev = "65b19870ed8d25bff14cafa1c30beb33f1fb6597";
sha256 = "16lcbwmmx8z5i73k3dnf54yffrpx7ql3y9k3cpkss9dcyxb1p83i";
};
nativeBuildInputs = [
autoconf
rpcsvc-proto
];
buildInputs = [
popt
zlib
libtirpc
];
env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ];
NIX_LDFLAGS = [ "-ltirpc" ];
patches = [
# patch has been also sent upstream and might be included in future versions
./fix-missing-stdint.patch
];
preConfigure = ''
./autogen.sh
configureFlagsArray+=("--datadir=$out/share/dbench")
'';
postInstall = ''
cp -R loadfiles/* $out/share/dbench/doc/dbench/loadfiles
# dbench looks here for the file
ln -s doc/dbench/loadfiles/client.txt $out/share/dbench/client.txt
# backwards compatible to older nixpkgs packaging introduced by
# 3f27be8e5d5861cd4b9487d6c5212d88bf24316d
ln -s dbench/doc/dbench/loadfiles $out/share/loadfiles
'';
meta = with lib; {
description = "Filesystem benchmark tool based on load patterns";
mainProgram = "dbench";
homepage = "https://dbench.samba.org/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@@ -1,55 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
pkg-config,
directfb,
zlib,
libjpeg,
xorgproto,
}:
stdenv.mkDerivation {
pname = "directvnc";
version = "0.7.7.2015-04-16";
src = fetchFromGitHub {
owner = "drinkmilk";
repo = "directvnc";
rev = "d336f586c5865da68873960092b7b5fbc9f8617a";
sha256 = "16x7mr7x728qw7nbi6rqhrwsy73zsbpiz8pbgfzfl2aqhfdiz88b";
};
patches = [
# Pull fix pending upstream inclusion for -fno-common toolchain
# support:
# https://github.com/drinkmilk/directvnc/pull/7
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/drinkmilk/directvnc/commit/e9c23d049bcf31d0097348d44391fe5fd9aad12b.patch";
sha256 = "1dnzr0dnx20w80r73j4a9n6mhbazjzlr5ps9xjj898924cg140zx";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
directfb
zlib
libjpeg
xorgproto
];
meta = with lib; {
description = "DirectFB VNC client";
homepage = "http://drinkmilk.github.io/directvnc/";
license = licenses.gpl2Plus;
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
};
}

View File

@@ -7,12 +7,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "eliza";
version = "0-unstable-2025-04-18";
version = "0-unstable-2025-05-13";
src = fetchFromGitHub {
owner = "anthay";
repo = "ELIZA";
rev = "1a185a37eb12078fa87e1034cc3eec88bfb90323";
hash = "sha256-YhtD7tF7yGcPj6a+L1/uh+bWu+L5qiQ2bpB6gZJie2I=";
rev = "00a277838ac0adb2165625129769c78d518a7215";
hash = "sha256-CSQyVnjyoSNwQlVXhpqjTGJ8psV9z0m2+ZOWUh6Dhm0=";
};
doCheck = true;

View File

@@ -17,16 +17,16 @@
}:
let
version = "0.203.5";
version = "0.203.6";
src = fetchFromGitHub {
owner = "evcc-io";
repo = "evcc";
tag = version;
hash = "sha256-xU8vSYn8+Z4bmpHKYJ+tBo5CtHhO60TXaEYP/Z5bbrI=";
hash = "sha256-hxh0EgOa2ZFpufyS4Aei86QjeJA0vyuornPK7Y5nRtQ=";
};
vendorHash = "sha256-FTVXjYMv5ReFie6mJfolQzR3bb0wcxaCkZDV772HroA=";
vendorHash = "sha256-hhr6UegsurRsrbN3YB9FAkbZkH+B6RwLmG7RRyNR4+4=";
commonMeta = with lib; {
license = licenses.mit;
@@ -52,7 +52,7 @@ buildGo124Module rec {
npmDeps = fetchNpmDeps {
inherit src;
hash = "sha256-2hmW7+wKSZl1tDxw5GBCpc8arDMb1e7qsPSdWFE+F2c=";
hash = "sha256-8hhiEqQclZUc6zgYvTacVAu5Y47gLJyP249lP4WjVGQ=";
};
nativeBuildInputs = [

View File

@@ -7,7 +7,7 @@ index 32817df..da65217 100644
/* cannot save, when evolution is not installed */
- if (!e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.mail"))
+ if (!true)
+ if (!TRUE)
return FALSE;
if (!old_categories || !new_categories)
@@ -40,7 +40,7 @@ index 7374c36..7da2023 100644
/* cannot save, when evolution is not installed */
- if (!e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.mail"))
+ if (!true)
+ if (!TRUE)
return FALSE;
if (!old_categories || !new_categories)
@@ -73,7 +73,7 @@ index cec5417..2e744a0 100644
ICalTimezone *zone = NULL;
- if (e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.calendar")) {
+ if (true) {
+ if (TRUE) {
GSettings *settings;
- settings = g_settings_new ("org.gnome.evolution.calendar");
@@ -101,7 +101,7 @@ index 3458c10..7d21784 100644
gchar *location = NULL;
- if (e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.calendar")) {
+ if (true) {
+ if (TRUE) {
GSettings *settings;
- settings = g_settings_new ("org.gnome.evolution.calendar");

View File

@@ -4,23 +4,23 @@
buildGoModule,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
pname = "f2";
version = "2.0.3";
version = "2.1.1";
src = fetchFromGitHub {
owner = "ayoisaiah";
repo = "f2";
rev = "v${version}";
sha256 = "sha256-AjuWaSEP2X3URZBPD05laV32ms/pULooSQKXUz8sqsU=";
tag = "v${finalAttrs.version}";
hash = "sha256-hl4giLTQtqJiPseiTzWPtksEYlyQpE1UOC7JMUF9v4Y=";
};
vendorHash = "sha256-xKw9shfAtRjD0f4BGALM5VPjGOaYz1IqXWcctHcV/p8=";
vendorHash = "sha256-xeylGT32bGMJjGdpQQH8DBpqxtvMxpqSEsLPbeoUzl4=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${version}"
"-X=github.com/ayoisaiah/f2/v2/app.VersionString=${finalAttrs.version}"
];
# has no tests
@@ -33,4 +33,4 @@ buildGoModule rec {
maintainers = with lib.maintainers; [ zendo ];
mainProgram = "f2";
};
}
})

View File

@@ -2,7 +2,9 @@
stdenv,
lib,
fetchFromGitHub,
fetchpatch2,
cmake,
writableTmpDirAsHomeHook,
docbook-xsl-nons,
libxslt,
pkg-config,
@@ -62,7 +64,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "freerdp";
version = "3.15.0";
version = "3.15.0-unstable-2025-05-16";
src = fetchFromGitHub {
owner = "FreeRDP";
@@ -71,10 +73,17 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-xz1vP58hElXe/jLVrJOSpXcbqShBV7LHRpzqPLa2fDU=";
};
patches = [
# Patch from https://github.com/FreeRDP/FreeRDP/pull/11439
# To be removed at the next release
(fetchpatch2 {
url = "https://github.com/FreeRDP/FreeRDP/commit/67fabc34dce7aa3543e152f78cb4ea88ac9d1244.patch";
hash = "sha256-kYCEjH1kXZJbg2sN6YNhh+y19HTTCaC7neof8DTKZ/8=";
})
];
postPatch =
''
export HOME=$TMP
# skip NIB file generation on darwin
substituteInPlace "client/Mac/CMakeLists.txt" "client/Mac/cli/CMakeLists.txt" \
--replace-fail "if(NOT IS_XCODE)" "if(FALSE)"
@@ -100,6 +109,7 @@ stdenv.mkDerivation (finalAttrs: {
docbook-xsl-nons
pkg-config
wayland-scanner
writableTmpDirAsHomeHook
];
buildInputs =
@@ -198,15 +208,15 @@ stdenv.mkDerivation (finalAttrs: {
inherit gnome-remote-desktop;
};
meta = with lib; {
meta = {
description = "Remote Desktop Protocol Client";
longDescription = ''
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
following the Microsoft Open Specifications.
'';
homepage = "https://www.freerdp.com/";
license = licenses.asl20;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.unix;
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ peterhoeg ];
platforms = lib.platforms.unix;
};
})

View File

@@ -24,8 +24,8 @@ let
in
stdenv.mkDerivation rec {
srcVersion = "dec24a";
version = "20241201_a";
srcVersion = "apr25b";
version = "20250401_b";
pname = "gildas";
src = fetchurl {
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
"http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz"
];
hash = "sha256-5XKImlE5A6JjA6LLqmGc4IzaMMPoHDo8cUPmgRtnEp0=";
hash = "sha256-MmB50tQsSHjvPWSMw485OOXUIL8TbSkk3JC4gNmGP9E=";
};
nativeBuildInputs = [

View File

@@ -28,23 +28,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "guacamole-server";
version = "1.5.5";
version = "1.6.0-unstable-2025-05-16";
src = fetchFromGitHub {
owner = "apache";
repo = "guacamole-server";
rev = finalAttrs.version;
hash = "sha256-ZrUaoWkZ3I/LxE7csDXXeUZ92jZDhkZ1c8EQU0gI1yY=";
rev = "acb69735359d4d4a08f65d6eb0bde2a0da08f751";
hash = "sha256-rqGSQD9EYlK1E6y/3EzynRmBWJOZBrC324zVvt7c2vM=";
};
patches = [
# GUACAMOLE-1952: Add compatibility with FFMPEG 7.0
(fetchpatch2 {
url = "https://github.com/apache/guacamole-server/commit/cc8addf9beb90305037a32f9f861a893be4cae08.patch?full_index=1";
hash = "sha256-VCr2/8lQHKVdsdah9gvak4MjFHO+X4ixE5+zsvwIY1I=";
})
];
NIX_CFLAGS_COMPILE = [
"-Wno-error=format-truncation"
"-Wno-error=format-overflow"

View File

@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
inherit hash;
};
KANIDM_BUILD_PROFILE = "release_nixos_${arch}";
KANIDM_BUILD_PROFILE = "release_nixpgs_${arch}";
patches = lib.optionals enableSecretProvisioning [
"${patchDir}/oauth2-basic-secret-modify.patch"
@@ -59,6 +59,7 @@ rustPlatform.buildRustPackage rec {
postPatch =
let
format = (formats.toml { }).generate "${KANIDM_BUILD_PROFILE}.toml";
socket_path = if stdenv.hostPlatform.isLinux then "/run/kanidm/sock" else "/var/run/kanidm.socket";
profile =
{
cpu_flags = if stdenv.hostPlatform.isx86_64 then "x86_64_legacy" else "none";
@@ -67,12 +68,12 @@ rustPlatform.buildRustPackage rec {
client_config_path = "/etc/kanidm/config";
resolver_config_path = "/etc/kanidm/unixd";
resolver_unix_shell_path = "${lib.getBin bashInteractive}/bin/bash";
server_admin_bind_path = "/run/kanidmd/sock";
server_admin_bind_path = socket_path;
server_config_path = "/etc/kanidm/server.toml";
server_ui_pkg_path = "@htmx_ui_pkg_path@";
}
// lib.optionalAttrs (lib.versionOlder version "1.5") {
admin_bind_path = "/run/kanidmd/sock";
admin_bind_path = socket_path;
default_config_path = "/etc/kanidm/server.toml";
default_unix_shell_path = "${lib.getBin bashInteractive}/bin/bash";
htmx_ui_pkg_path = "@htmx_ui_pkg_path@";
@@ -94,13 +95,16 @@ rustPlatform.buildRustPackage rec {
installShellFiles
];
buildInputs = [
udev
openssl
sqlite
pam
rust-jemalloc-sys
];
buildInputs =
[
openssl
sqlite
pam
rust-jemalloc-sys
]
++ lib.optionals stdenv.hostPlatform.isLinux [
udev
];
# The UI needs to be in place before the tests are run.
postBuild =
@@ -125,15 +129,17 @@ rustPlatform.buildRustPackage rec {
''profile.release.lto="off"''
];
preFixup = ''
installShellCompletion \
--bash $releaseDir/build/completions/*.bash \
--zsh $releaseDir/build/completions/_*
# PAM and NSS need fix library names
mv $out/lib/libnss_kanidm.so $out/lib/libnss_kanidm.so.2
mv $out/lib/libpam_kanidm.so $out/lib/pam_kanidm.so
'';
preFixup =
''
installShellCompletion \
--bash $releaseDir/build/completions/*.bash \
--zsh $releaseDir/build/completions/_*
''
+ lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
# PAM and NSS need fix library names
mv $out/lib/libnss_kanidm.so $out/lib/libnss_kanidm.so.2
mv $out/lib/libpam_kanidm.so $out/lib/pam_kanidm.so
'';
passthru = {
tests = {
@@ -166,7 +172,7 @@ rustPlatform.buildRustPackage rec {
description = "Simple, secure and fast identity management platform";
homepage = "https://github.com/kanidm/kanidm";
license = licenses.mpl20;
platforms = platforms.linux;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
adamcstephens
Flakebi

View File

@@ -100,6 +100,8 @@ stdenv.mkDerivation rec {
};
meta = with lib; {
# error: implicit instantiation of undefined template 'std::char_traits<unsigned char>'
broken = stdenv.hostPlatform.isDarwin;
changelog = "https://downloads.isc.org/isc/kea/${version}/Kea-${version}-ReleaseNotes.txt";
homepage = "https://kea.isc.org/";
description = "High-performance, extensible DHCP server by ISC";

View File

@@ -1,32 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
zlib,
protobufc,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "libgadu";
version = "1.12.2";
src = fetchFromGitHub {
owner = "wojtekka";
repo = pname;
rev = version;
sha256 = "1s16cripy5w9k12534qb012iwc5m9qcjyrywgsziyn3kl3i0aa8h";
};
propagatedBuildInputs = [ zlib ];
buildInputs = [ protobufc ];
nativeBuildInputs = [ autoreconfHook ];
meta = {
description = "Library to deal with gadu-gadu protocol (most popular polish IM protocol)";
homepage = "https://libgadu.net/index.en.html";
platforms = lib.platforms.linux;
license = lib.licenses.lgpl21;
};
}

View File

@@ -1,39 +0,0 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
glib,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "libpseudo";
version = "1.2.0";
src = fetchurl {
url = "mirror://sourceforge/libpseudo/libpseudo-${version}.tar.gz";
sha256 = "0d3pw0m3frycr3x5kzqcaj4r2qh43iv6b0fpd6l4yk0aa4a9560n";
};
patchPhase = ''
sed -i -e s@/usr/local@$out@ -e /ldconfig/d Makefile
'';
preInstall = ''
mkdir -p $out/include
mkdir -p $out/lib
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
glib
ncurses
];
meta = with lib; {
homepage = "http://libpseudo.sourceforge.net/";
description = "Simple, thread-safe messaging between threads";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -1,51 +0,0 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
glib,
ncurses,
gpm,
}:
stdenv.mkDerivation rec {
pname = "libviper";
version = "1.4.6";
src = fetchurl {
url = "mirror://sourceforge/libviper/libviper-${version}.tar.gz";
sha256 = "1jvm7wdgw6ixyhl0pcfr9lnr9g6sg6whyrs9ihjiz0agvqrgvxwc";
};
postPatch = ''
sed -i -e s@/usr/local@$out@ -e /ldconfig/d -e '/cd vdk/d' Makefile
# Fix pending upstream inclusion for ncurses-6.3 support:
# https://github.com/TragicWarrior/libviper/pull/16
# Not applied as it due to unrelated code changes in context.
substituteInPlace viper_msgbox.c --replace \
'mvwprintw(window,height-3,tmp,prompt);' \
'mvwprintw(window,height-3,tmp,"%s",prompt);'
substituteInPlace w_decorate.c --replace \
'mvwprintw(window,0,x,title);' \
'mvwprintw(window,0,x,"%s",title);'
'';
preInstall = ''
mkdir -p $out/include
mkdir -p $out/lib
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
glib
ncurses
gpm
];
meta = with lib; {
homepage = "http://libviper.sourceforge.net/";
description = "Simple window creation and management facilities for the console";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -42,14 +42,14 @@ in
# as bootloader for various platforms and corresponding binary and helper files.
stdenv.mkDerivation (finalAttrs: {
pname = "limine";
version = "9.3.0";
version = "9.3.1";
# We don't use the Git source but the release tarball, as the source has a
# `./bootstrap` script performing network access to download resources.
# Packaging that in Nix is very cumbersome.
src = fetchurl {
url = "https://github.com/limine-bootloader/limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz";
hash = "sha256-9rbkmPFt3BLehnkYAoktfO4AHq1C0wzGPJZm67KxbQs=";
hash = "sha256-KRHWXrsJ1l9gFq0j2gB/MQobqNe3Z8rknrs4m7WMRFU=";
};
enableParallelBuilding = true;

View File

@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "luau";
version = "0.673";
version = "0.674";
src = fetchFromGitHub {
owner = "luau-lang";
repo = "luau";
tag = finalAttrs.version;
hash = "sha256-0a+4BHDIOeMuJzsDSlYeXCcmnUT5KzKO/q4kDhpfHxQ=";
hash = "sha256-9HdrwFbjeRwYXVIm6JtqT+HI0ZFJDm9//kvuU25u5Qo=";
};
nativeBuildInputs = [ cmake ];

View File

@@ -10,6 +10,7 @@
pkg-config,
python3,
replaceVars,
writeShellScriptBin,
zlib,
}:
@@ -66,12 +67,34 @@ python3.pkgs.buildPythonApplication rec {
./007-freebsd-pkgconfig-path.patch
];
postPatch =
if python3.isPyPy then
''
substituteInPlace mesonbuild/modules/python.py \
--replace-fail "PythonExternalProgram('python3', mesonlib.python_command)" \
"PythonExternalProgram('${python3.meta.mainProgram}', mesonlib.python_command)"
substituteInPlace mesonbuild/modules/python3.py \
--replace-fail "state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, 'python3')" \
"state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, '${python3.meta.mainProgram}')"
substituteInPlace "test cases"/*/*/*.py "test cases"/*/*/*/*.py \
--replace-quiet '#!/usr/bin/env python3' '#!/usr/bin/env pypy3' \
--replace-quiet '#! /usr/bin/env python3' '#!/usr/bin/env pypy3'
chmod +x "test cases"/*/*/*.py "test cases"/*/*/*/*.py
''
else
null;
nativeBuildInputs = [ installShellFiles ];
nativeCheckInputs = [
ninja
pkg-config
];
nativeCheckInputs =
[
ninja
pkg-config
]
++ lib.optionals python3.isPyPy [
# Several tests hardcode python3.
(writeShellScriptBin "python3" ''exec pypy3 "$@"'')
];
checkInputs =
[
@@ -116,9 +139,15 @@ python3.pkgs.buildPythonApplication rec {
# pch doesn't work quite right on FreeBSD, I think
''test cases/common/13 pch''
]
++ lib.optionals python3.isPyPy [
# fails for unknown reason
''test cases/python/4 custom target depends extmodule''
]
))
++ [
''HOME="$TMPDIR" python ./run_project_tests.py''
''HOME="$TMPDIR" ${
if python3.isPyPy then python3.interpreter else "python"
} ./run_project_tests.py''
"runHook postCheck"
]
);

View File

@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "moonlight";
version = "1.3.18";
version = "1.3.19";
src = fetchFromGitHub {
owner = "moonlight-mod";
repo = "moonlight";
tag = "v${finalAttrs.version}";
hash = "sha256-CPBdZ/1mQAw0cC36D1Yo+ml+3eDDJtfSELYNIF0fKRw=";
hash = "sha256-cFsVYlIkSNEpGw4qT9Eea6sa1+dZyaCRZNrgQTc8wu4=";
};
nativeBuildInputs = [

View File

@@ -3,14 +3,15 @@
stdenvNoCC,
fetchurl,
undmg,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mos";
version = "3.4.1";
version = "3.5.0";
src = fetchurl {
url = "https://github.com/Caldis/Mos/releases/download/${finalAttrs.version}/Mos.Versions.${finalAttrs.version}.dmg";
hash = "sha256-OOoz6GeBVQZBQyNIQUe4grbZffSvl1m8oKZNmMlQKbM=";
hash = "sha256-o2H4cfMudjoQHfKeV4ORiO9/szoomFP0IP6D6ecMAI4=";
};
sourceRoot = ".";
@@ -25,12 +26,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Smooths scrolling and set mouse scroll directions independently";
description = "Smooths scrolling and set mouse scroll directions independently on macOS";
homepage = "https://mos.caldis.me/";
changelog = "https://github.com/Caldis/Mos/releases/tag/${finalAttrs.version}";
license = licenses.cc-by-nc-40;
maintainers = [ ];
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = platforms.darwin;
};

View File

@@ -10,17 +10,17 @@
}:
rustPlatform.buildRustPackage rec {
pname = "notmuch-mailmover";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "michaeladler";
repo = "notmuch-mailmover";
rev = "v${version}";
hash = "sha256-v70R6CgN4RzG6L8LUg3ZvW895+G4eU8HZ0TI+jRxZ10=";
hash = "sha256-xX1sH+8DaLgCzkl5WwwNEE9+iTdZX0d64SxfmvuVVgs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-aMSYXquyDwPBa4xL7wOSu/Ou1saPG5ZDXhLB4dAnomo=";
cargoHash = "sha256-5jEM5FURnfuoOiu2rqsh4shMp1ajv0zMpIx7r0gv6Bc=";
nativeBuildInputs = [
installShellFiles

View File

@@ -1,19 +1,19 @@
{
"version": "5.0.23",
"version": "5.1.1",
"darwin-amd64": {
"hash": "sha256-u82W5pwJQi0RqhRkQgY9SDahi4HvintFwXG6q+FlBR0=",
"url": "https://github.com/platformsh/cli/releases/download/5.0.23/platform_5.0.23_darwin_all.tar.gz"
"hash": "sha256-wj8zEyYxalEauCOv6VLPgvkfXlf/uA/xwEiHOqxRFic=",
"url": "https://github.com/platformsh/cli/releases/download/5.1.1/platform_5.1.1_darwin_all.tar.gz"
},
"darwin-arm64": {
"hash": "sha256-u82W5pwJQi0RqhRkQgY9SDahi4HvintFwXG6q+FlBR0=",
"url": "https://github.com/platformsh/cli/releases/download/5.0.23/platform_5.0.23_darwin_all.tar.gz"
"hash": "sha256-wj8zEyYxalEauCOv6VLPgvkfXlf/uA/xwEiHOqxRFic=",
"url": "https://github.com/platformsh/cli/releases/download/5.1.1/platform_5.1.1_darwin_all.tar.gz"
},
"linux-amd64": {
"hash": "sha256-Yve4EeMe9j90MqeelqT6S6NwTc1PL5JlzX4aTjR5XUU=",
"url": "https://github.com/platformsh/cli/releases/download/5.0.23/platform_5.0.23_linux_amd64.tar.gz"
"hash": "sha256-2teph6Ozgl5GTckeNExRqCpoUSCCNF7mRRy3wWxOc2U=",
"url": "https://github.com/platformsh/cli/releases/download/5.1.1/platform_5.1.1_linux_amd64.tar.gz"
},
"linux-arm64": {
"hash": "sha256-ejeWn98wCSum6SqdW6RlQ7YvF7dzDRw/vftm82uZAio=",
"url": "https://github.com/platformsh/cli/releases/download/5.0.23/platform_5.0.23_linux_arm64.tar.gz"
"hash": "sha256-iqeErUjouQEsdwEo+6fNQqfULZ9V1lCwsJXDC0lZNdM=",
"url": "https://github.com/platformsh/cli/releases/download/5.1.1/platform_5.1.1_linux_arm64.tar.gz"
}
}

View File

@@ -0,0 +1,17 @@
diff --git a/src/rwpng.c b/src/rwpng.c
index aaa21fc..11d698f 100644
--- a/src/rwpng.c
+++ b/src/rwpng.c
@@ -30,10 +30,12 @@
---------------------------------------------------------------------------*/
#include <stdio.h>
+#include <string.h>
#include <stdlib.h>
#include "png.h" /* libpng header; includes zlib.h */
#include "rwpng.h" /* typedefs, common macros, public prototypes */
+#include <zlib.h>
/* future versions of libpng will provide this macro: */
/* GRR NOTUSED */

View File

@@ -16,16 +16,20 @@ stdenv.mkDerivation rec {
sha256 = "1qmnnl846agg55i7h4vmrn11lgb8kg6gvs8byqz34bdkjh5gwiy1";
};
patches = [
./missing-includes.patch
];
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=incompatible-pointer-types"
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpng
zlib
];
patchPhase = ''
sed -i '/png.h/a \#include <zlib.h>' src/rwpng.c
'';
meta = with lib; {
homepage = "https://pngnq.sourceforge.net/";
description = "PNG quantizer";

View File

@@ -198,7 +198,6 @@ python.pkgs.buildPythonApplication rec {
requests
sentry-sdk
sepaxml
slimit
stripe
text-unidecode
tlds

View File

@@ -1,10 +1,10 @@
{ scala, fetchurl }:
scala.bare.overrideAttrs (oldAttrs: {
version = "3.6.4";
version = "3.7.0";
pname = "scala-next";
src = fetchurl {
inherit (oldAttrs.src) url;
hash = "sha256-I8Jpq/aelCJyAZzvNq5/QbfdD0Mk5mPuzTDxVdkIxKU=";
hash = "sha256-T2zGqv2XSjdA3t0FaJvldcthgpgRrMTyiRznlgQOmBE=";
};
})

View File

@@ -1,48 +0,0 @@
{
stdenv,
sgrep,
fetchurl,
runCommand,
lib,
m4,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "sgrep";
version = "1.94a";
src = fetchurl {
url = "https://www.cs.helsinki.fi/pub/Software/Local/Sgrep/sgrep-${version}.tar.gz";
sha256 = "sha256-1bFkeOOrRHNeJCg9LYldLJyAE5yVIo3zvbKsRGOV+vk=";
};
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/sgrep \
--prefix PATH : ${lib.makeBinPath [ m4 ]}
'';
passthru.tests.smokeTest = runCommand "test-sgrep" { } ''
expr='"<foo>" __ "</foo>"'
data="<foo>1</foo><bar>2</bar>"
${sgrep}/bin/sgrep "$expr" <<<$data >$out
read result <$out
[[ $result = 1 ]]
'';
meta = with lib; {
homepage = "https://www.cs.helsinki.fi/u/jjaakkol/sgrep.html";
description = "Grep for structured text formats such as XML";
mainProgram = "sgrep";
longDescription = ''
sgrep (structured grep) is a tool for searching and indexing text,
SGML, XML and HTML files and filtering text streams using
structural criteria.
'';
platforms = platforms.unix;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ eigengrau ];
};
}

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchgit,
fetchpatch,
autoreconfHook,
boost,
fcgi,
@@ -24,6 +25,26 @@ stdenv.mkDerivation rec {
sha256 = "1qb4dbz5gk10b9w1rf6f4vv7c2wb3a8bfzif6yiaq96ilqad7gdr";
};
# Upgrade to Clang 19 (and thereby LLVM19) causes `std::char_traits` to now be present,
# making `char_traits` references ambiguous due to both `std` and `xmltooling` exporting this symbol,
# and the file in question uses both `using namespace std;` and `using namespace xmltooling;`
# The patches below result in `xmltooling` being removed.
# As `char_traits` is a compile time construct, no runtime repercussions can stem from this.
# See https://shibboleth.atlassian.net/browse/SSPCPP-998 for a related discussion.
patches = lib.optionals (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "19") [
(fetchpatch {
name = "char-traits-ambig-1";
url = "https://git.shibboleth.net/view/?p=cpp-sp.git;a=blobdiff_plain;f=shibsp/util/IPRange.cpp;h=532cf9e94c915667c091d127c696979f63939eb5;hp=d6f00bc36ea25997817a2308314bcdbea572936f;hb=49cd05fa6d9935a45069fa555db7a26ca77d23db;hpb=293ff2ab6454b0946b3b03719efa132bff461f1f";
hash = "sha256-ZF0jsZJoHaxaPPjVbT6Wlq+wjyPQLTnEKcUxONji/hE=";
})
(fetchpatch {
name = "char-traits-ambig-2";
url = "https://git.shibboleth.net/view/?p=cpp-sp.git;a=blobdiff_plain;f=shibsp/util/IPRange.cpp;h=da954870eb03c7cd054ecc5c52a6c1f011787760;hp=354010d5f5e533262cb385ea16756df53fe0c241;hb=793663a67aaa4e9a4aa9172728d924f8cec45cf6;hpb=a43814935030930c49b7a08f5515b861906525c7";
hash = "sha256-4iGwCGpGwAkriOwQmh5AgvHLX1o39NuQ2l4sAJbD2bc=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config

View File

@@ -1,82 +0,0 @@
{
fetchurl,
lib,
stdenv,
perl,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "sloccount";
version = "2.26";
src = fetchurl {
url = "https://www.dwheeler.com/${pname}/${pname}-${version}.tar.gz";
sha256 = "0ayiwfjdh1946asah861ah9269s5xkc8p5fv1wnxs9znyaxs4zzs";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl ];
# Make sure the Flex-generated files are newer than the `.l' files, so that
# Flex isn't needed to recompile them.
patchPhase = ''
for file in *
do
if grep -q /usr/bin/perl "$file"
then
echo "patching \`$file'..."
substituteInPlace "$file" --replace \
"/usr/bin/perl" "${perl}/bin/perl"
fi
done
for file in *.l
do
touch "$(echo $file | sed -es'/\.l$/.c/g')"
done
'';
makeFlags = [
"PREFIX=$(out)"
"CC=${stdenv.cc.targetPrefix}cc"
];
doCheck = true;
checkPhase = ''HOME="$TMPDIR" PATH="$PWD:$PATH" make test'';
preInstall = ''
mkdir -p "$out/bin"
mkdir -p "$out/share/man/man1"
mkdir -p "$out/share/doc"
'';
postInstall = ''
for w in "$out/bin"/*; do
isScript "$w" || continue
wrapProgram "$w" --prefix PATH : "$out/bin"
done
'';
meta = {
description = "Set of tools for counting physical Source Lines of Code (SLOC)";
longDescription = ''
This is the home page of "SLOCCount", a set of tools for
counting physical Source Lines of Code (SLOC) in a large number
of languages of a potentially large set of programs. This suite
of tools was used in my papers More than a Gigabuck: Estimating
GNU/Linux's Size and Estimating Linux's Size to measure the SLOC
of entire GNU/Linux distributions, and my essay Linux Kernel
2.6: It's Worth More! Others have measured Debian GNU/Linux and
the Perl CPAN library using this tool suite.
'';
license = lib.licenses.gpl2Plus;
homepage = "https://www.dwheeler.com/sloccount/";
maintainers = [ ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,16 @@
diff --git a/srht-gen-oauth-tok b/srht-gen-oauth-tok
index a05e209..f2949b5 100755
--- a/srht-gen-oauth-tok
+++ b/srht-gen-oauth-tok
@@ -78,7 +78,10 @@ $mech->submit_form( with_fields => { comment => $tok_comment } );
# Parse the response as XML and find the access token via an XPath expression
my $xpc = XML::LibXML::XPathContext->new(
- XML::LibXML->load_xml(string => $mech->content())
+ XML::LibXML->load_html(
+ string => $mech->content(),
+ recover => 1,
+ )
);
# The token is set as the description (<dd>) of a 'Personal Access Token' term (<dt>)
my $token = $xpc->find("//dt[text() = 'Personal Access Token']/following-sibling::dd/*/node()");

View File

@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
hash = "sha256-GcqP3XbVw2sR5n4+aLUmA4fthNkuVAGnhV1h7suJYdI=";
};
patches = [ ./fix-html-parsing.patch ];
buildInputs = [ perl ];
nativeBuildInputs = [ perl ];

View File

@@ -3,28 +3,40 @@
buildGoModule,
fetchFromGitHub,
nix-update-script,
openssh,
openssl,
}:
buildGoModule rec {
pname = "ssh-tpm-agent";
version = "0.7.0";
version = "0.8.0";
src = fetchFromGitHub {
owner = "Foxboron";
repo = "ssh-tpm-agent";
rev = "v${version}";
hash = "sha256-yK7G+wZIn+kJazKOFOs8EYlRWZkCQuT0qZfmdqbcOnM=";
tag = "v${version}";
hash = "sha256-CSxZctiQ/d4gzCUtfx9Oetb8s0XpHf3MPH/H0XaaVgg=";
};
proxyVendor = true;
vendorHash = "sha256-njKyBfTG/QCPBBsj3Aom42cv2XqLv4YeS4DhwNQNaLA=";
vendorHash = "sha256-84ZB1B+RczJS08UToCWvvVfWrD62IQxy0XoBwn+wBkc=";
buildInputs = [
openssl
];
nativeCheckInputs = [
openssh
];
# disable broken tests, see https://github.com/NixOS/nixpkgs/pull/394097
preCheck = ''
rm cmd/scripts_test.go
substituteInPlace internal/keyring/keyring_test.go --replace-fail ENOKEY ENOENT
substituteInPlace internal/keyring/threadkeyring_test.go --replace-fail ENOKEY ENOENT
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {

View File

@@ -1,41 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
xmlrpc_c,
glib,
zlib,
}:
stdenv.mkDerivation rec {
pname = "subberthehut";
version = "20";
src = fetchFromGitHub {
owner = "mus65";
repo = "subberthehut";
rev = version;
sha256 = "19prdqbk19h0wak318g2jn1mnfm7l7f83a633bh0rhskysmqrsj1";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xmlrpc_c
glib
zlib
];
installPhase = ''
install -Dm755 subberthehut $out/bin/subberthehut
install -Dm644 bash_completion $out/share/bash-completion/completions/subberthehut
'';
meta = with lib; {
homepage = "https://github.com/mus65/subberthehut";
description = "OpenSubtitles.org downloader";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ jqueiroz ];
mainProgram = "subberthehut";
};
}

View File

@@ -1,26 +0,0 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "suid-chroot";
version = "1.0.2";
src = fetchurl {
sha256 = "1a9xqhck0ikn8kfjk338h9v1yjn113gd83q0c50k78xa68xrnxjx";
url = "http://myweb.tiscali.co.uk/scottrix/linux/download/${pname}-${version}.tar.bz2";
};
postPatch = ''
substituteInPlace Makefile --replace /usr $out
sed -i -e '/chmod u+s/d' Makefile
'';
meta = with lib; {
description = "Setuid-safe wrapper for chroot";
license = licenses.gpl2Plus;
platforms = with platforms; unix;
};
}

View File

@@ -1,36 +1,31 @@
{
stdenv,
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
gobject-introspection,
gtk4,
meson,
ninja,
json-glib,
gtk4,
libxml2,
gobject-introspection,
pkg-config,
json-glib,
libadwaita,
libxml2,
}:
stdenv.mkDerivation rec {
pname = "text-engine";
version = "0.1.1";
version = "0.1.1-unstable-2024-09-16";
src = fetchFromGitHub {
owner = "mjakeman";
repo = pname;
rev = "v${version}";
sha256 = "sha256-YSG4Vk3hrmtaJkK1WAlQcdgiDdgC4Un0t6UdaoIcUes=";
rev = "4c26887556fd8e28211324c4058d49508eb5f557";
hash = "sha256-0rMBz2s3wYv7gZiJTj8rixWxBjT6Dd6SaINP8kDbTyw=";
};
patches = [
# Fixes build with newer versions of clang
(fetchpatch {
url = "https://github.com/mjakeman/text-engine/commit/749c94d853c0b0e29e79a1b270ec61947b65c319.patch";
hash = "sha256-vs/a8IBovArw8tc1ZLUsaDHRVyA71KMB1NGENOKNOdk=";
})
];
nativeBuildInputs = [
gobject-introspection
gtk4
@@ -41,18 +36,23 @@ stdenv.mkDerivation rec {
buildInputs = [
libadwaita
json-glib
libxml2
];
meta = with lib; {
postPatch = ''
# See https://github.com/mjakeman/text-engine/pull/42
substituteInPlace src/meson.build \
--replace-fail "dependency('json-glib-1.0')," ""
'';
meta = {
description = "Rich text framework for GTK";
mainProgram = "text-engine-demo";
homepage = "https://github.com/mjakeman/text-engine";
license = with licenses; [
license = with lib.licenses; [
mpl20
lgpl21Plus
];
maintainers = with maintainers; [ foo-dogsquared ];
maintainers = with lib.maintainers; [ foo-dogsquared ];
};
}

View File

@@ -8,34 +8,33 @@
attr,
makeWrapper,
pandoc,
kmod,
coreutils,
installShellFiles,
versionCheckHook,
}:
stdenv.mkDerivation {
pname = "try";
version = "0.2.0-unstable-2025-02-25";
src = fetchFromGitHub {
owner = "binpash";
repo = "try";
rev = "67052d8f20725f3cdc22ffaec33f7b7c14f1eb6b";
hash = "sha256-8mfCmqN50pRAeNTJUlRVrRQulWon4b2OL4Ug/ygBhB0=";
};
# skip TRY_REQUIRE_PROG as it detects executable dependencies by running it
postPatch = ''
sed -i '/^AC_DEFUN(\[TRY_REQUIRE_PROG\]/,/^])$/c\AC_DEFUN([TRY_REQUIRE_PROG], [])' configure.ac
'';
nativeBuildInputs = [
makeWrapper
autoreconfHook
pandoc
attr
util-linux
kmod
installShellFiles
];
# Trigger a overlay run to load the overlayfs module, required by ./configure
preConfigure = ''
mkdir lower upper work merged
unshare -r --mount mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
rm -rf lower upper work merged
'';
installPhase = ''
runHook preInstall
install -Dt $out/bin try
@@ -43,6 +42,7 @@ stdenv.mkDerivation {
install -Dt $out/bin utils/try-summary
wrapProgram $out/bin/try --prefix PATH : ${
lib.makeBinPath [
coreutils
util-linux
mergerfs
attr
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
installShellCompletion --bash --name try.bash completions/try.bash
runHook postInstall
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
@@ -60,15 +61,16 @@ stdenv.mkDerivation {
export version=0.2.0
'';
versionCheckProgramArg = "-v";
meta = with lib; {
meta = {
homepage = "https://github.com/binpash/try";
description = "Lets you run a command and inspect its effects before changing your live system";
mainProgram = "try";
maintainers = with maintainers; [
maintainers = with lib.maintainers; [
pasqui23
ezrizhu
];
license = with licenses; [ mit ];
platforms = platforms.linux;
license = with lib.licenses; [ mit ];
platforms = lib.platforms.linux;
};
}

View File

@@ -1,51 +0,0 @@
{
lib,
stdenv,
fetchurl,
libusb-compat-0_1,
libraw1394,
dcraw,
intltool,
perl,
v4l-utils,
}:
stdenv.mkDerivation rec {
pname = "libunicap";
version = "0.9.12";
src = fetchurl {
url = "https://www.unicap-imaging.org/downloads/${pname}-${version}.tar.gz";
sha256 = "05zcnnm4dfc6idihfi0fq5xka6x86zi89wip2ca19yz768sd33s9";
};
nativeBuildInputs = [ intltool ];
buildInputs = [
libusb-compat-0_1
libraw1394
dcraw
perl
v4l-utils
];
patches = [
# Debian has a patch that fixes the build.
(fetchurl {
url = "https://sources.debian.net/data/main/u/unicap/0.9.12-2/debian/patches/1009_v4l1.patch";
sha256 = "1lgypmhdj681m7d1nmzgvh19cz8agj2f31wlnfib0ha8i3g5hg5w";
})
];
postPatch = ''
find . -type f -exec sed -e '/linux\/types\.h/d' -i '{}' ';'
sed -e 's@/etc/udev@'"$out"'/&@' -i data/Makefile.*
'';
meta = with lib; {
description = "Universal video capture API";
homepage = "https://www.unicap-imaging.org/";
maintainers = [ maintainers.raskin ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -1,57 +0,0 @@
{
lib,
stdenv,
fetchurl,
ncurses,
pkg-config,
glib,
libviper,
libpseudo,
gpm,
libvterm,
}:
stdenv.mkDerivation rec {
pname = "vwm";
version = "2.1.3";
src = fetchurl {
url = "mirror://sourceforge/vwm/vwm-${version}.tar.gz";
sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
};
postPatch = ''
sed -i -e s@/usr/local@$out@ \
-e s@/usr/lib@$out/lib@ \
-e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
-e /ldconfig/d Makefile modules/*/Makefile vwm.h
# Fix ncurses-6.3 support:
substituteInPlace vwm_bkgd.c --replace \
'mvwprintw(window,height-1,width-(strlen(version_str)),version_str);' \
'mvwprintw(window,height-1,width-(strlen(version_str)),"%s", version_str);'
'';
preInstall = ''
mkdir -p $out/bin $out/include
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
ncurses
glib
libviper
libpseudo
gpm
libvterm
];
meta = with lib; {
homepage = "https://vwm.sourceforge.net/";
description = "Dynamic window manager for the console";
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "vwm";
};
}

View File

@@ -17,13 +17,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "wayfarer";
version = "1.2.4";
version = "1.2.4-unstable-2025-04-12";
src = fetchFromGitHub {
owner = "stronnag";
repo = "wayfarer";
rev = finalAttrs.version;
hash = "sha256-Vuiy2SjpK2T1ekbwa/KyIFa1V4BJsnJRIj4b+Yx0VEw=";
# branch development - has new gtk4 code
rev = "2517004bb3c48653100f0c6a6da16fde7927755e";
hash = "sha256-ULmkjyBuqVwsFbLOdvqxvsAH1EF7zXFEBhU//nsV5sU=";
};
postPatch = ''

View File

@@ -0,0 +1,48 @@
diff --git a/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp b/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp
index 8741cea49..075b1ad4f 100644
--- a/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp
+++ b/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp
@@ -301,43 +301,6 @@ public:
return write(chars, start, length, m_charRefFunctor);
}
- void
- writeSafe(
- const XalanDOMChar* theChars,
- size_type theLength)
- {
- for(size_type i = 0; i < theLength; ++i)
- {
- const XalanDOMChar ch = theChars[i];
-
- if (isUTF16HighSurrogate(ch) == true)
- {
- if (i + 1 >= theLength)
- {
- throwInvalidUTF16SurrogateException(ch, 0, getMemoryManager());
- }
- else
- {
- XalanUnicodeChar value = decodeUTF16SurrogatePair(ch, theChars[i+1], getMemoryManager());
-
- if (this->m_isPresentable(value))
- {
- write(value);
- }
- else
- {
- this->writeNumberedEntityReference(value);
- }
-
- ++i;
- }
- }
- else
- {
- write(static_cast<XalanUnicodeChar>(ch));
- }
- }
- }
void
write(const XalanDOMChar* theChars)

View File

@@ -18,6 +18,16 @@ stdenv.mkDerivation {
sha256 = "sha256:0q1204qk97i9h14vxxq7phcfpyiin0i1zzk74ixvg4wqy87b62s8";
};
patches = [
# See https://github.com/llvm/llvm-project/issues/96859
# xalan-c contains a templated code path that tries to access non-existent methods,
# but before Clang 19 and GCC 15 this was no error as the template was never instantiated.
# Note that the suggested fix of adding "-fdelayed-template-parsing"
# to CXX_FLAGS would be sufficient for Clang 19, but as it would break again
# once we upgrade to GCC 15, we remove the dead code entirely.
./0001-clang19-gcc15-compat.patch
];
nativeBuildInputs = [ cmake ];
buildInputs = [
xercesc

View File

@@ -70,9 +70,14 @@ in
epoxy =
old:
(addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy old)
// lib.optionalAttrs stdenv.cc.isClang {
// {
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=incompatible-function-pointer-types"
(
if stdenv.cc.isClang then
"-Wno-error=incompatible-function-pointer-types"
else
"-Wno-error=incompatible-pointer-types"
)
"-Wno-error=int-conversion"
];
};
@@ -81,21 +86,31 @@ in
expat =
old:
(addToBuildInputsWithPkgConfig pkgs.expat old)
// lib.optionalAttrs stdenv.cc.isClang {
// {
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=incompatible-function-pointer-types"
(
if stdenv.cc.isClang then
"-Wno-error=incompatible-function-pointer-types"
else
"-Wno-error=incompatible-pointer-types"
)
];
};
ezxdisp =
old:
(addToBuildInputsWithPkgConfig pkgs.xorg.libX11 old)
// lib.optionalAttrs stdenv.cc.isClang {
// {
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=implicit-function-declaration"
];
};
freetype = addToBuildInputsWithPkgConfig pkgs.freetype;
fuse = addToBuildInputsWithPkgConfig pkgs.fuse;
gl-math = old: {
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=incompatible-pointer-types"
];
};
gl-utils = addPkgConfig;
glfw3 = addToBuildInputsWithPkgConfig pkgs.glfw3;
glls = addPkgConfig;
@@ -118,7 +133,7 @@ in
mdh =
old:
(addToBuildInputs pkgs.pcre old)
// lib.optionalAttrs stdenv.cc.isClang {
// {
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=implicit-function-declaration"
"-Wno-error=implicit-int"

View File

@@ -8,12 +8,12 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "3.3.5";
version = "3.3.6";
pname = "scala-bare";
src = fetchurl {
url = "https://github.com/scala/scala3/releases/download/${finalAttrs.version}/scala3-${finalAttrs.version}.tar.gz";
hash = "sha256-JVQG16L0/3RbahJc+FDz6pazTyb5vnxqP4272l0TalI=";
hash = "sha256-cmdSQkDuKJl2/tG4vAjABF1dKQ0/ruB8a3E3pCUrW5c=";
};
propagatedBuildInputs = [

View File

@@ -152,10 +152,10 @@
sourceVersion = {
major = "7";
minor = "3";
patch = "17";
patch = "19";
};
hash = "sha256-UOBoQPS73pFEgICkEYBoqJuPvK4l/42h4rsUAtyaA0Y=";
hash = "sha256-hwPNywH5+Clm3UO2pgGPFAOZ21HrtDwSXB+aIV57sAM=";
pythonVersion = "2.7";
db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
python = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
@@ -167,31 +167,46 @@
sourceVersion = {
major = "7";
minor = "3";
patch = "17";
patch = "19";
};
hash = "sha256-atdLxXjpxtOoocUVAzEwWOPFjDXfhvdIVFPEvmqyS/c=";
hash = "sha256-p8IpMLkY9Ahwhl7Yp0FH9ENO+E09bKKzweupNV1JKcg=";
pythonVersion = "3.10";
db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
python = __splicedPackages.pypy27;
inherit passthruFun;
};
pypy311 = callPackage ./pypy {
self = __splicedPackages.pypy311;
sourceVersion = {
major = "7";
minor = "3";
patch = "19";
};
hash = "sha256-SBfARLtGmjJ05gqjZFdw+B60+RZup/3E5sNRNFVUyNg=";
pythonVersion = "3.11";
db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
python = __splicedPackages.pypy27;
inherit passthruFun;
};
pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix {
# Not included at top-level
self = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
sourceVersion = {
major = "7";
minor = "3";
patch = "17";
patch = "19";
};
hash =
{
aarch64-linux = "sha256-qN9c4WUPR1aTP4eAhwyRoKQOfJhw10YpvyQTkry1wuM=";
x86_64-linux = "sha256-nzSX+HszctF+RHNp4AFqS+yZprTSpZq6d0olv+Q1NHQ=";
aarch64-darwin = "sha256-gCJIc5sqzIwb5tlH8Zsy/A44wI4xKzXAXMf7IvEHCeQ=";
x86_64-darwin = "sha256-gtRgQhRmyBraSh2Z3y3xuLNTQbOXyF///lGkwwItCDM=";
aarch64-linux = "sha256-/onU/UrxP3bf5zFZdQA1GM8XZSDjzOwVRKiNF09QkQ4=";
x86_64-linux = "sha256-04RFUIwurxTrs4DZwd7TIcXr6uMcfmaAAXPYPLjd9CM=";
aarch64-darwin = "sha256-KHgOC5CK1ttLTglvQjcSS+eezJcxlG2EDZyHSetnp1k=";
x86_64-darwin = "sha256-a+KNRI2OZP/8WG2bCuTQkGSoPMrrW4BgxlHFzZrgaHg=";
}
.${stdenv.system};
pythonVersion = "2.7";
@@ -204,19 +219,39 @@
sourceVersion = {
major = "7";
minor = "3";
patch = "17";
patch = "19";
};
hash =
{
aarch64-linux = "sha256-v79JVJirwv53G2C/ZOXDwHLgr7z8pprHKCxP9Dd/9BY=";
x86_64-linux = "sha256-NA2kGWYGsiRQmhuLMa/SAYE/CCYB3xicE46QXB1g4K8=";
aarch64-darwin = "sha256-KPKf/JxcyQbo6QgT/BRPA34js4TwUuGE4kIzL3tgqwY=";
x86_64-darwin = "sha256-I/8mS3PlvFt8OhufrHdosj35bH1mDLZBLxxSNSGjNL8=";
aarch64-linux = "sha256-ryeliRePERmOIkSrZcpRBjC6l8Ex18zEAh61vFjef1c=";
x86_64-linux = "sha256-xzrCzCOArJIn/Sl0gr8qPheoBhi6Rtt1RNU1UVMh7B4=";
aarch64-darwin = "sha256-PbigP8SWFkgBZGhE1/OxK6oK2zrZoLfLEkUhvC4WijY=";
x86_64-darwin = "sha256-LF5cKjOsiCVR1/KLmNGdSGuJlapQgkpztO3Mau7DXGM=";
}
.${stdenv.system};
pythonVersion = "3.10";
inherit passthruFun;
};
pypy311_prebuilt = callPackage ./pypy/prebuilt.nix {
# Not included at top-level
self = __splicedPackages.pythonInterpreters.pypy311_prebuilt;
sourceVersion = {
major = "7";
minor = "3";
patch = "19";
};
hash =
{
aarch64-linux = "sha256-EyB9v4HOJOltp2CxuGNie3e7ILH7TJUZHgKgtyOD33Q=";
x86_64-linux = "sha256-kXfZ4LuRsF+SHGQssP9xoPNlO10ppC1A1qB4wVt1cg8=";
aarch64-darwin = "sha256-dwTg1TAuU5INMtz+mv7rEENtTJQjPogwz2A6qVWoYcE=";
x86_64-darwin = "sha256-okOfnTDf2ulqXpEBx9xUqKaLVsnXMU6jmbCiXT6H67I=";
}
.${stdenv.system};
pythonVersion = "3.11";
inherit passthruFun;
};
}
// lib.optionalAttrs config.allowAliases {
pypy39_prebuilt = throw "pypy 3.9 has been removed, use pypy 3.10 instead"; # Added 2025-01-03

View File

@@ -121,6 +121,9 @@ stdenv.mkDerivation rec {
dontPatchShebangs = true;
disallowedReferences = [ python ];
# fix compiler error in curses cffi module, where char* != const char*
NIX_CFLAGS_COMPILE =
if stdenv.cc.isClang then "-Wno-error=incompatible-function-pointer-types" else null;
C_INCLUDE_PATH = lib.makeSearchPathOutput "dev" "include" buildInputs;
LIBRARY_PATH = lib.makeLibraryPath buildInputs;
LD_LIBRARY_PATH = lib.makeLibraryPath (
@@ -192,13 +195,18 @@ stdenv.mkDerivation rec {
mkdir -p $out/${executable}-c/pypy/bin
mv $out/bin/${executable} $out/${executable}-c/pypy/bin/${executable}
ln -s $out/${executable}-c/pypy/bin/${executable} $out/bin/${executable}
''
# _testcapi is compiled dynamically, into the store.
# This would fail if we don't do it here.
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
pushd /
$out/bin/${executable} -c "from test import support"
popd
'';
setupHook = python-setup-hook sitePackages;
# TODO: A bunch of tests are failing as of 7.1.1, please feel free to
# fix and re-enable if you have the patience and tenacity.
doCheck = false;
# TODO: Investigate why so many tests are failing.
checkPhase =
let
disabledTests =
@@ -213,6 +221,9 @@ stdenv.mkDerivation rec {
"test_urllib2net"
"test_urllibnet"
"test_urllib2_localnet"
# test_subclass fails with "internal error"
# test_load_default_certs_env fails for unknown reason
"test_ssl"
]
++ lib.optionals isPy3k [
# disable asyncio due to https://github.com/NixOS/nix/issues/1238
@@ -226,6 +237,88 @@ stdenv.mkDerivation rec {
# disable __all__ because of spurious imp/importlib warning and
# warning-to-error test policy
"test___all__"
# fail for multiple reasons, TODO: investigate
"test__opcode"
"test_ast"
"test_audit"
"test_builtin"
"test_c_locale_coercion"
"test_call"
"test_class"
"test_cmd_line"
"test_cmd_line_script"
"test_code"
"test_code_module"
"test_codeop"
"test_compile"
"test_coroutines"
"test_cprofile"
"test_ctypes"
"test_embed"
"test_exceptions"
"test_extcall"
"test_frame"
"test_generators"
"test_grammar"
"test_idle"
"test_iter"
"test_itertools"
"test_list"
"test_marshal"
"test_memoryio"
"test_memoryview"
"test_metaclass"
"test_mmap"
"test_multibytecodec"
"test_opcache"
"test_pdb"
"test_peepholer"
"test_positional_only_arg"
"test_print"
"test_property"
"test_pyclbr"
"test_range"
"test_re"
"test_readline"
"test_regrtest"
"test_repl"
"test_rlcompleter"
"test_signal"
"test_sort"
"test_source_encoding"
"test_ssl"
"test_string_literals"
"test_structseq"
"test_subprocess"
"test_super"
"test_support"
"test_syntax"
"test_sys"
"test_sys_settrace"
"test_tcl"
"test_termios"
"test_threading"
"test_trace"
"test_tty"
"test_unpack_ex"
"test_utf8_mode"
"test_weakref"
"test_capi"
"test_concurrent_futures"
"test_dataclasses"
"test_doctest"
"test_future_stmt"
"test_importlib"
"test_inspect"
"test_pydoc"
"test_warnings"
]
++ lib.optionals isPy310 [
"test_contextlib_async"
"test_future"
"test_lzma"
"test_module"
"test_typing"
];
in
''
@@ -264,6 +357,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://www.pypy.org/";
changelog = "https://doc.pypy.org/en/stable/release-v${version}.html";
description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})";
mainProgram = "pypy";
license = licenses.mit;
@@ -274,6 +368,9 @@ stdenv.mkDerivation rec {
"x86_64-darwin"
];
broken = optimizationLevel == "0"; # generates invalid code
maintainers = with maintainers; [ andersk ];
maintainers = with maintainers; [
andersk
fliegendewurst
];
};
}

View File

@@ -100,7 +100,6 @@ stdenv.mkDerivation {
mv -t $out bin include lib-python lib_pypy site-packages
mv $out/bin/libpypy*-c${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/
${lib.optionalString stdenv.hostPlatform.isLinux ''
mv lib/libffi.so.6* $out/lib/
rm $out/bin/*.debug
''}

View File

@@ -237,7 +237,8 @@ let
}
);
condaTests =
# depends on mypy, which depends on CPython internals
condaTests = lib.optionalAttrs (!python.isPyPy) (
let
requests = callPackage (
{
@@ -276,7 +277,8 @@ let
condaExamplePackage = runCommand "import-requests" { } ''
${pythonWithRequests.interpreter} -c "import requests" > $out
'';
};
}
);
in
lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform) (

View File

@@ -1,57 +0,0 @@
{
lib,
stdenv,
fetchurl,
gfortran,
blas,
lapack,
}:
let
int_t = if blas.isILP64 then "int64_t" else "int32_t";
in
stdenv.mkDerivation rec {
version = "4.2.1";
pname = "suitesparse";
src = fetchurl {
url = "http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-${version}.tar.gz";
sha256 = "1ga69637x7kdkiy3w3lq9dvva7220bdangv2lch2wx1hpi83h0p8";
};
nativeBuildInputs = [ gfortran ];
buildInputs = [
blas
lapack
];
preConfigure = ''
mkdir -p $out/lib
mkdir -p $out/include
sed -i "SuiteSparse_config/SuiteSparse_config.mk" \
-e 's/METIS .*$/METIS =/' \
-e 's/METIS_PATH .*$/METIS_PATH =/' \
-e '/CHOLMOD_CONFIG/ s/$/-DNPARTITION -DLONGBLAS=${int_t}/' \
-e '/UMFPACK_CONFIG/ s/$/-DLONGBLAS=${int_t}/'
'';
makeFlags = [
"PREFIX=\"$(out)\""
"INSTALL_LIB=$(out)/lib"
"INSTALL_INCLUDE=$(out)/include"
"BLAS=-lblas"
"LAPACK=-llapack"
];
meta = with lib; {
homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
description = "Suite of sparse matrix algorithms";
license = with licenses; [
bsd2
gpl2Plus
lgpl21Plus
];
maintainers = with maintainers; [ ttuegel ];
platforms = with platforms; unix;
};
}

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