summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chaski/services/bahnhof-name.nix7
-rw-r--r--chaski/services/chat.nix2
-rw-r--r--common/desktop.nix3
-rw-r--r--flora/configuration.nix2
-rw-r--r--flora/services/akkoma.nix7
-rw-r--r--flora/services/blog.nix9
-rw-r--r--home/home.nix13
-rw-r--r--home/newsboat-public.nix12
-rw-r--r--home/packages.nix11
-rw-r--r--ilex/configuration.nix2
-rw-r--r--inputs.nix27
-rw-r--r--npins/default.nix158
-rw-r--r--npins/sources.json192
-rw-r--r--pkgs/bookwyrm.nix142
-rw-r--r--pkgs/bookwyrm/default.nix93
-rw-r--r--pkgs/bookwyrm/unwrapped.nix81
-rw-r--r--pkgs/hikari.nix3
-rw-r--r--pkgs/mollysocket.nix2
-rw-r--r--pkgs/nomsring/nomsring.cabal2
-rw-r--r--pkgs/overlay.nix53
-rw-r--r--pkgs/patches/akkoma-fe-toki-pona-2.patch13
-rw-r--r--pkgs/patches/akkoma-fe-toki-pona.patch14
-rw-r--r--pkgs/wlroots_0_15.nix9
23 files changed, 561 insertions, 296 deletions
diff --git a/chaski/services/bahnhof-name.nix b/chaski/services/bahnhof-name.nix
index 7360372..69d54cc 100644
--- a/chaski/services/bahnhof-name.nix
+++ b/chaski/services/bahnhof-name.nix
@@ -19,8 +19,13 @@
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://localhost:8080";
+ extraConfig = ''
+ proxy_set_header X-Forwarded-Host $host;
+ '';
}; in builtins.listToAttrs
(map (name: { inherit name; value = vhost; })
["bahnhof.name" "ril100.bahnhof.name"
- "ds100.bahnhof.name" "leitpunkt.bahnhof.name"]);
+ "ds100.bahnhof.name" "leitpunkt.bahnhof.name"
+ "rnv.bahnhof.name"
+ ]);
}
diff --git a/chaski/services/chat.nix b/chaski/services/chat.nix
index 6d26ada..484a3b9 100644
--- a/chaski/services/chat.nix
+++ b/chaski/services/chat.nix
@@ -4,7 +4,7 @@
# (and not deal with having an irc relay)
{
- imports = [ inputs.home-manager.nixosModule ];
+ imports = [ inputs.home-manager.nixosModules.default ];
programs.mosh.enable = true;
programs.fish.enable = true;
diff --git a/common/desktop.nix b/common/desktop.nix
index d3812b2..e570579 100644
--- a/common/desktop.nix
+++ b/common/desktop.nix
@@ -86,7 +86,8 @@
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
- ];
+ ] ++ (with lib.attrsets;
+ builtins.filter isDerivation (attrValues pkgs.nerd-fonts));
xdg.portal.wlr.enable = true;
diff --git a/flora/configuration.nix b/flora/configuration.nix
index 40cd3a5..11d5a31 100644
--- a/flora/configuration.nix
+++ b/flora/configuration.nix
@@ -11,7 +11,7 @@
./services/trainspotter.nix
./services/element.nix
./services/ntfy.nix
- ./services/murmur.nix
+ # ./services/murmur.nix
./services/monit.nix
];
diff --git a/flora/services/akkoma.nix b/flora/services/akkoma.nix
index db00bbe..6864a29 100644
--- a/flora/services/akkoma.nix
+++ b/flora/services/akkoma.nix
@@ -45,7 +45,7 @@ in
ref = "stable";
};
admin = {
- package = pkgs.akkoma-frontends.admin-fe;
+ package = pkgs.akkoma-admin-fe;
name = "admin-fe";
ref = "stable";
};
@@ -59,7 +59,8 @@ in
config = {
":pleroma"."Pleroma.Web.Endpoint" = {
"url" = { host = "pleroma.stuebinm.eu"; scheme = "https"; port = 443; };
- "http" = { ip = "::"; port = 4000; };
+ # below uses IPv4; IPv6 breaks the elixir format generator …
+ "http" = { ip = "0.0.0.0"; port = 4000; };
secret_key_base._secret = "/sops/keyBase";
signing_salt._secret = "/sops/signingSalt";
};
@@ -221,7 +222,7 @@ in
enableACME = true;
locations."/" = {
- proxyPass = "http://[${config.containers.pleroma.localAddress6}]:4000";
+ proxyPass = "http://${config.containers.pleroma.localAddress}:4000";
proxyWebsockets = true;
# these headers are in the example config in the NixOS manual.
# take some time to figure out what they all do, and if these
diff --git a/flora/services/blog.nix b/flora/services/blog.nix
index e8335b1..e77cc7c 100644
--- a/flora/services/blog.nix
+++ b/flora/services/blog.nix
@@ -39,7 +39,14 @@ in
services.nginx.virtualHosts."stuebinm.eu" = {
enableACME = true;
forceSSL = true;
- locations."/".root = import inputs.blog { inherit pkgs; };
+ locations."/".root = (import inputs.blog { inherit pkgs; }).overrideAttrs (old: {
+ buildInputs = old.buildInputs ++ [ pkgs.exiftool pkgs.libxml2 ];
+
+ doCheck = true;
+ checkPhase = ''
+ xmllint _site/rss.xml
+ '';
+ });
locations."/bookshelf/".alias = "${gtfsBooks.outPath}/";
};
}
diff --git a/home/home.nix b/home/home.nix
index c93daef..2157528 100644
--- a/home/home.nix
+++ b/home/home.nix
@@ -297,6 +297,7 @@
macro 5 ${mkMpv "five"}
macro f set browser "${pkgs.xdg-utils}/bin/xdg-open %u >/dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u"
macro d set browser "kitty @launch --type tab fish -c 'fetchpdf %u'" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u"
+ macro V set browser "firefox --private-window %u >/dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u"
bind-key j down
bind-key k up
@@ -392,11 +393,13 @@
services.mako = {
enable = true;
- backgroundColor = "#74389eb0";
- borderColor = "#c27cb6ff";
- defaultTimeout = 5000; # milliseconds
- padding = "10";
- output = "DP-9";
+ settings = {
+ background-color = "#74389eb0";
+ border-color = "#c27cb6ff";
+ default-timeout = 5000; # milliseconds
+ padding = "10";
+ output = "DP-9";
+ };
};
services.mpd = {
diff --git a/home/newsboat-public.nix b/home/newsboat-public.nix
index 7d94c32..bd334fb 100644
--- a/home/newsboat-public.nix
+++ b/home/newsboat-public.nix
@@ -219,6 +219,11 @@ with import ./newsboat-lib.nix;
(btag "https://antonia.is/rss.xml" "friends")
(btag "https://ancientalexandra.weebly.com/3/feed" "hist")
(btag "https://github.com/bookwyrm-social/bookwyrm/releases.atom" "comp")
+ (btag "https://rachelbythebay.com/w/atom.xml" "comp")
+ (btag "https://xn--gckvb8fzb.com/index.xml" "comp")
+ (btag "https://blog.aada.cat/index.xml" "friends")
+ (btag "https://jonworth.eu/feed/" "trains")
+ (btag "https://vulpinecitrus.info/blog/atom.xml" "comp")
# paper
(btag "http://arxiv.org/rss/cs.PL" "paper")
@@ -231,8 +236,6 @@ with import ./newsboat-lib.nix;
(ytag "UCXuqSBlHAE6Xw-yeJA0Tunw" "tech") # Linus Tech Tips
(ytag "UCBa659QWEk1AI4Tg--mrJ2A" "stuff") # Tom Scott
(ytag "UCtGG8ucQgEJPeUPhJZ4M4jA" "stuff") # Rare Earth
- (ytag "UCwRH985XgMYXQ6NxXDo8npw" "stuff") # Kurzgesagt de
- (ytag "UCsXVk37bltHxD1rDPwtNM8Q" "stuff") # Kurzgesagt en
(ytag "UC9GwQ_SGeq7Nrn4NQfwVoRA" "climate") # Students for Future
(ytag "UCN29LJGZ8FY30ysxdTnDsaw" "stuff") # Die Filmanalyse
(ytag "UCv1WDP5EiipMQ__C4Cg6aow" "pol") # Tilo Jung
@@ -241,8 +244,6 @@ with import ./newsboat-lib.nix;
(ytag "UCncTjqw75krp9j_wRRh5Gvw" "writing") # World Building Notes
(ytag "UCPlJ-KlPelfnwq0GHSeSpGQ" "talks") # It's all about Math
(ytag "UCmrWzKsW9IGU2l6a_MGJ3dw" "ling") # LangTime Studio
- (ytag "UCXl0Zbk8_rvjyLwAR-Xh9pQ" "maths") # Insights into Mathematics (Wildberger)
- (ytag "UCPjHlmSGP-rMg5PR-PyaJug" "chaos") # Henk Rijckaert
(ytag "UC3XTzVzaHQEd30rQbuvCtTQ" "latenight") # Last Week Tonight
(ytag "UCSju5G2aFaWMqn-_0YBtq5A" "maths") # Standupmaths
(ytag "UC2PA-AKmVpU6NKCGtZq_rKQ" "left") # Philosophy Tube
@@ -305,8 +306,7 @@ with import ./newsboat-lib.nix;
(podcast "https://feed.podbean.com/lingfieldnotes/feed.xml")
(podcast "https://dasklima.podigee.io/feed/mp3")
(podcast "https://www.haecksen.org/podcast/rss")
- (podcast "https://www.ndr.de/nachrichten/info/podcast4684.xml")
-
+
(music "https://feeds.soundcloud.com/users/soundcloud%3Ausers%3A39508706/sounds.rss")
]
diff --git a/home/packages.nix b/home/packages.nix
index 30d129d..2bdee84 100644
--- a/home/packages.nix
+++ b/home/packages.nix
@@ -1,12 +1,12 @@
{ config, lib, pkgs, inputs, system, craneLib, ... }:
let
- isabelle = import "${inputs.playground.outPath}/isabelle-nix-fhsenv" { inherit pkgs; };
+ isabelle = import "${inputs.playground.outPath}/isabelle-nix-fhsenv" { inherit pkgs; };
in
{
home.packages = with pkgs; [
emacs-pgtk
- emacs-all-the-icons-fonts nerdfonts
+ emacs-all-the-icons-fonts julia-mono
# internet apps & clients
firefox keepassxc mumble lynx offpunk
@@ -17,7 +17,7 @@ in
gimp-with-plugins inkscape pavucontrol # krita
gst_all_1.gstreamer vimiv-qt
# LaTeX & documents
- xournal pandoc zathura pdfpc
+ xournalpp pandoc zathura pdfpc
poppler_utils typst rustex
(texlive.combine {
inherit (texlive) scheme-full;
@@ -28,8 +28,9 @@ in
wl-clipboard showrt
kijetesantakaluotokieni mpc_cli dufs progress hledger
wineWowPackages.full sops xdg-utils exiftool
- mercurial darcs git-annex-remote-remarkable2
+ mercurial darcs git-annex-remote-remarkable2 git-who
rlwrap
+ inputs.ocaml-forester.legacyPackages.${system}.forester
# graphical utils
kitty
# gnss things
@@ -58,7 +59,7 @@ in
# C/C++
clang clang-tools rtags irony-server
# others
- python39 inweb
+ python3 inweb
# nix things
npins nix-output-monitor direnv
# isabelle
diff --git a/ilex/configuration.nix b/ilex/configuration.nix
index f8530b8..d648adc 100644
--- a/ilex/configuration.nix
+++ b/ilex/configuration.nix
@@ -10,7 +10,7 @@
services.avahi.enable = true;
services.avahi.nssmdns4 = true;
services.avahi.nssmdns6 = true;
- services.ipp-usb.enable=true;
+ services.ipp-usb.enable = true;
hardware.sane.enable = true;
users.users.stuebinm.extraGroups = [ "scanner" "lp" ];
};
diff --git a/inputs.nix b/inputs.nix
index 7329531..9cb3bf3 100644
--- a/inputs.nix
+++ b/inputs.nix
@@ -63,7 +63,32 @@ let
simple-nixos-mailserver = import sources.simple-nixos-mailserver;
lix-overlay = import "${sources.lix-nixos-module}/overlay.nix" {
- lix = sources.lix;
+ lix = sources.lix // { rev = sources.lix.revision; };
+ };
+
+
+ ###### Forester stuff
+
+ flake-compat = import sources.flake-compat;
+
+ # currently unused
+ opam2json = callFlake "opam2json" {
+ nixpkgs = nixpkgs-flake;
+ };
+ # opam-nix does not want to be called like this; i do not know why
+ # opam-nix = callFlake "opam-nix"{
+ # inherit (sources) opam-repository opam-overlays mirage-opam-overlays;
+ # inherit (inputs) flake-utils opam2json flake-compat;
+ # nixpkgs = nixpkgs-unstable-flake;
+ # };
+ # so i gave up an use the flake-compat'd version instead, which uses an
+ # old nixpkgs pin i cannot easily change ...
+ opam-nix = (flake-compat { src = sources.opam-nix.outPath; }).defaultNix;
+
+ ocaml-forester = callFlake "ocaml-forester" {
+ nixpkgs = nixpkgs-flake;
+ inherit (inputs) opam-nix flake-utils;
+ inherit (sources) opam-repository;
};
};
in inputs
diff --git a/npins/default.nix b/npins/default.nix
index 891db57..8955703 100644
--- a/npins/default.nix
+++ b/npins/default.nix
@@ -1,64 +1,148 @@
+/*
+ This file is provided under the MIT licence:
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
# Generated by npins. Do not modify; will be overwritten regularly
let
- requireFile = { sha256, hashMode ? "recursive" }:
- builtins.derivation {
- name = "source";
- outputHashMode = hashMode;
- outputHashAlgo = "sha256";
- outputHash = sha256;
- preferLocalBuild = true;
- allowSubstitutes = false;
- builder = "builtins:fetchurl";
- system = "builtin"; # builtins.currentSystem;
- };
-
data = builtins.fromJSON (builtins.readFile ./sources.json);
version = data.version;
- mkSource = spec:
- assert spec ? type; let
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
+ range =
+ first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1);
+
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
+ stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
+
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
+ stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
+ concatMapStrings = f: list: concatStrings (map f list);
+ concatStrings = builtins.concatStringsSep "";
+
+ # If the environment variable NPINS_OVERRIDE_${name} is set, then use
+ # the path directly as opposed to the fetched source.
+ # (Taken from Niv for compatibility)
+ mayOverride =
+ name: path:
+ let
+ envVarName = "NPINS_OVERRIDE_${saneName}";
+ saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name;
+ ersatz = builtins.getEnv envVarName;
+ in
+ if ersatz == "" then
+ path
+ else
+ # this turns the string into an actual Nix path (for both absolute and
+ # relative paths)
+ builtins.trace "Overriding path of \"${name}\" with \"${ersatz}\" due to set \"${envVarName}\"" (
+ if builtins.substring 0 1 ersatz == "/" then
+ /. + ersatz
+ else
+ /. + builtins.getEnv "PWD" + "/${ersatz}"
+ );
+
+ mkSource =
+ name: spec:
+ assert spec ? type;
+ let
path =
- if spec.type == "Git" then mkGitSource spec
- else if spec.type == "GitRelease" then mkGitSource spec
- else if spec.type == "PyPi" then mkPyPiSource spec
- else if spec.type == "Channel" then mkChannelSource spec
- else builtins.throw "Unknown source type ${spec.type}";
+ if spec.type == "Git" then
+ mkGitSource spec
+ else if spec.type == "GitRelease" then
+ mkGitSource spec
+ else if spec.type == "PyPi" then
+ mkPyPiSource spec
+ else if spec.type == "Channel" then
+ mkChannelSource spec
+ else if spec.type == "Tarball" then
+ mkTarballSource spec
+ else
+ builtins.throw "Unknown source type ${spec.type}";
in
- spec // { outPath = path; };
+ spec // { outPath = mayOverride name path; };
- mkGitSource = { repository, revision, url ? null, hash, ... }:
+ mkGitSource =
+ {
+ repository,
+ revision,
+ url ? null,
+ submodules,
+ hash,
+ branch ? null,
+ ...
+ }:
assert repository ? type;
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
# In the latter case, there we will always be an url to the tarball
- if url != null then
- (builtins.fetchTarball {
+ if url != null && !submodules then
+ builtins.fetchTarball {
inherit url;
sha256 = hash; # FIXME: check nix version & use SRI hashes
- })
- else assert repository.type == "Git";
+ }
+ else
let
- cached = requireFile { sha256 = hash; };
- fetched = builtins.fetchGit {
- url = repository.url;
- rev = revision;
- };
- in if builtins.pathExists (builtins.unsafeDiscardStringContext cached.outPath)
- then cached.outPath
- else builtins.trace "npins: re-fetching source ${repository.url}" fetched.outPath;
+ url =
+ if repository.type == "Git" then
+ repository.url
+ else if repository.type == "GitHub" then
+ "https://github.com/${repository.owner}/${repository.repo}.git"
+ else if repository.type == "GitLab" then
+ "${repository.server}/${repository.repo_path}.git"
+ else
+ throw "Unrecognized repository type ${repository.type}";
+ urlToName =
+ url: rev:
+ let
+ matched = builtins.match "^.*/([^/]*)(\\.git)?$" url;
+
+ short = builtins.substring 0 7 rev;
+
+ appendShort = if (builtins.match "[a-f0-9]*" rev) != null then "-${short}" else "";
+ in
+ "${if matched == null then "source" else builtins.head matched}${appendShort}";
+ name = urlToName url revision;
+ in
+ builtins.fetchGit ({
+ rev = revision;
+ inherit name;
+ # hash = hash;
+ inherit url submodules;
+ } // (if branch != null then {
+ ref = "refs/heads/${branch}";
+ } else {}));
- mkPyPiSource = { url, hash, ... }:
+ mkPyPiSource =
+ { url, hash, ... }:
builtins.fetchurl {
inherit url;
sha256 = hash;
};
- mkChannelSource = { url, hash, ... }:
+ mkChannelSource =
+ { url, hash, ... }:
builtins.fetchTarball {
inherit url;
sha256 = hash;
};
+
+ mkTarballSource =
+ {
+ url,
+ locked_url ? url,
+ hash,
+ ...
+ }:
+ builtins.fetchTarball {
+ url = locked_url;
+ sha256 = hash;
+ };
in
-if version == 3 then
- builtins.mapAttrs (_: mkSource) data.pins
+if version == 5 then
+ builtins.mapAttrs mkSource data.pins
else
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
diff --git a/npins/sources.json b/npins/sources.json
index 3b2ea60..94f72f0 100644
--- a/npins/sources.json
+++ b/npins/sources.json
@@ -8,9 +8,10 @@
"repo": "ai.robots.txt"
},
"branch": "main",
- "revision": "678380727e8685af8c5311bcfa1f55c7aa866d3b",
- "url": "https://github.com/ai-robots-txt/ai.robots.txt/archive/678380727e8685af8c5311bcfa1f55c7aa866d3b.tar.gz",
- "hash": "1wm84mbjypgzm0nfsl4c8pfkx93hr1iaxgq4s4lsxhzqk6x4ns5k"
+ "submodules": false,
+ "revision": "8b8bf9da5d11095dcb5dafe07e757ff5c4439b94",
+ "url": "https://github.com/ai-robots-txt/ai.robots.txt/archive/8b8bf9da5d11095dcb5dafe07e757ff5c4439b94.tar.gz",
+ "hash": "1aiq7b1njziwfrnp1h0n62mqgsfggqf55grkp5mblgg78xgzxrxb"
},
"almanac": {
"type": "Git",
@@ -19,6 +20,7 @@
"url": "https://stuebinm.eu/git/forks/almanac"
},
"branch": "master",
+ "submodules": false,
"revision": "cdd82b013777324f146c4961b866154a9287110b",
"url": null,
"hash": "0804k1zcnyhfdgjxmpgyg9l537j6p4ajrjgzz9svxka6acc1l85h"
@@ -29,10 +31,11 @@
"type": "Git",
"url": "https://stuebinm.eu/git/bahnhof.name"
},
- "branch": "main",
- "revision": "2dd565d546ef7cba05846e90d79ae4a15a193f41",
+ "branch": "rnv",
+ "submodules": false,
+ "revision": "38ea5267c448f7c3d228477479a2dd66e57d4688",
"url": null,
- "hash": "137wq0hj9j4wikq401mz577a7r5cmfzfxyf4wv1ncxy450l4lrsh"
+ "hash": "0bl87zbh4jpw25h7bk6mkh0789ppbpa13zqxlm59r4wfp1nz8yii"
},
"blog": {
"type": "Git",
@@ -41,9 +44,10 @@
"url": "ssh://cgit/~/blog"
},
"branch": "main",
- "revision": "99f88a9b675838f08e711a73a1bd5b6c80d66d31",
+ "submodules": false,
+ "revision": "61d865b1cb837f059bcd0b215d6f83ae33393e32",
"url": null,
- "hash": "1dnkz5vsbn8f924crhqp97xfkamypai1mqmbj867kwv0bvs036gb"
+ "hash": "0076rfb3fzb8j9mbi0xlv1fx8l0v9rvba6gfn6xydds75ahmf0bj"
},
"deploy-rs": {
"type": "Git",
@@ -52,10 +56,27 @@
"url": "https://stuebinm.eu/git/forks/deploy-rs"
},
"branch": "nom-flag",
+ "submodules": false,
"revision": "9001480e03ab8c957716e2bf164bbde605472399",
"url": null,
"hash": "1iiplqa731ldha728xk2fi36n87p20hnzf35g21jli1dlknw388f"
},
+ "flake-compat": {
+ "type": "GitRelease",
+ "repository": {
+ "type": "GitHub",
+ "owner": "edolstra",
+ "repo": "flake-compat"
+ },
+ "pre_releases": false,
+ "version_upper_bound": null,
+ "release_prefix": null,
+ "submodules": false,
+ "version": "v1.1.0",
+ "revision": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "url": "https://api.github.com/repos/edolstra/flake-compat/tarball/v1.1.0",
+ "hash": "19d2z6xsvpxm184m41qrpi1bplilwipgnzv9jy17fgw421785q1m"
+ },
"flake-utils": {
"type": "GitRelease",
"repository": {
@@ -66,6 +87,7 @@
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
+ "submodules": false,
"version": "v1.0.0",
"revision": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8",
"url": "https://api.github.com/repos/numtide/flake-utils/tarball/v1.0.0",
@@ -78,6 +100,7 @@
"url": "https://stuebinm.eu/git/forks/gtfs-books"
},
"branch": "main",
+ "submodules": false,
"revision": "2a9d4fcf48b872aef1343f71dfddf44946fd8eb5",
"url": null,
"hash": "077xjxaisjqcnqwjpq8cfg34y27cv5aidvzwv4d5736rz9v96bak"
@@ -89,10 +112,11 @@
"owner": "nix-community",
"repo": "home-manager"
},
- "branch": "release-24.11",
- "revision": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca",
- "url": "https://github.com/nix-community/home-manager/archive/b4bbdc6fde16fc2051fcde232f6e288cd22007ca.tar.gz",
- "hash": "1vf41h2362jk6qxih57wx779i1sqmd98j49cw5z6mhxs429apzhg"
+ "branch": "release-25.05",
+ "submodules": false,
+ "revision": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
+ "url": "https://github.com/nix-community/home-manager/archive/44831a7eaba4360fb81f2acc5ea6de5fde90aaa3.tar.gz",
+ "hash": "07pk5m6mxi666dclaxdwf7xrinifv01vvgxn49bjr8rsbh31syaq"
},
"isabelle-utils": {
"type": "Git",
@@ -101,6 +125,7 @@
"url": "https://stuebinm.eu/git/isabelle-utils"
},
"branch": "master",
+ "submodules": false,
"revision": "e7427d5c67c0a90c369adecb4b0c65c043cb2e34",
"url": null,
"hash": "129pizyyvxg7lzgk9pqn48a7brhyh5fv7vwzrs7wnhkp30hrpjq2"
@@ -112,9 +137,10 @@
"url": "https://git.lix.systems/lix-project/lix.git"
},
"branch": "main",
- "revision": "3684c2f8a07ef156032dace6ac640b78cffcd96e",
+ "submodules": false,
+ "revision": "a99842e0af7cb8a1b6adb2cddbbe6a63b1e9ee4d",
"url": null,
- "hash": "1nr2fcikg0y7idxbzcd057scff9ysazipjq4k3qnld50r7gdvsni"
+ "hash": "0vsgz2r95f4whvrmghgqsg2xy1mc4mj6jwd2zrlyr9iivcwi1pw1"
},
"lix-nixos-module": {
"type": "Git",
@@ -123,9 +149,23 @@
"url": "https://git.lix.systems/lix-project/nixos-module.git"
},
"branch": "main",
- "revision": "58baedd53f9da81fd728a4f3b08c378e5ba9ae58",
+ "submodules": false,
+ "revision": "6c95c0b6f73f831226453fc6905c216ab634c30f",
"url": null,
- "hash": "0w7n1i403j1pkdx44y4pfhbvq711x3nsnq4zwgiqfqpwd7qj4755"
+ "hash": "0lgfg939gfn4yifyib7f88gvcl4y8p7jjvq5k6ia8q68lw240wsy"
+ },
+ "mirage-opam-overlays": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "dune-universe",
+ "repo": "mirage-opam-overlays"
+ },
+ "branch": "main",
+ "submodules": false,
+ "revision": "eddcd1bc7e035392596b603d23dde67a88e6f6bc",
+ "url": "https://github.com/dune-universe/mirage-opam-overlays/archive/eddcd1bc7e035392596b603d23dde67a88e6f6bc.tar.gz",
+ "hash": "09cwhnnmphicm4j6figds2ckagbnypdmcqmbgcszjn6zzll5fymx"
},
"nixos-mailserver": {
"type": "Git",
@@ -135,9 +175,10 @@
"server": "https://gitlab.com/"
},
"branch": "master",
- "revision": "da66510f688b7eac54e3cac7c75be4b8dd78ce8b",
- "url": "https://gitlab.com/api/v4/projects/simple-nixos-mailserver%2Fnixos-mailserver/repository/archive.tar.gz?sha=da66510f688b7eac54e3cac7c75be4b8dd78ce8b",
- "hash": "0imxmdbx8z0hn0yvgrhazs0qx788a92w8hgysr1vlqfxwd4qc3gf"
+ "submodules": false,
+ "revision": "1ccd57f177539ed8c207b893c3f9798d88f87d2e",
+ "url": "https://gitlab.com/api/v4/projects/simple-nixos-mailserver%2Fnixos-mailserver/repository/archive.tar.gz?sha=1ccd57f177539ed8c207b893c3f9798d88f87d2e",
+ "hash": "1dvgzzzdl60k7cq067id01p40c3nqvfqw34m8gi7qhx3j6aw6knk"
},
"nixpkgs": {
"type": "Git",
@@ -146,10 +187,11 @@
"owner": "NixOS",
"repo": "nixpkgs"
},
- "branch": "nixos-24.11",
- "revision": "a39ed32a651fdee6842ec930761e31d1f242cb94",
- "url": "https://github.com/NixOS/nixpkgs/archive/a39ed32a651fdee6842ec930761e31d1f242cb94.tar.gz",
- "hash": "16pw0f94nr3j91z0wm4ndjm44xfd238vcdkg07s2l74znkaavnwk"
+ "branch": "nixos-25.05",
+ "submodules": false,
+ "revision": "00d2457e2f608b4be6fe8b470b0a36816324b0ae",
+ "url": "https://github.com/NixOS/nixpkgs/archive/00d2457e2f608b4be6fe8b470b0a36816324b0ae.tar.gz",
+ "hash": "10h8yz4x1iacrp1bsih2kmpn1chaxwpmqrpy1lysrb8p9hfwacp1"
},
"nixpkgs-unstable": {
"type": "Git",
@@ -159,9 +201,10 @@
"repo": "nixpkgs"
},
"branch": "nixpkgs-unstable",
- "revision": "b3582c75c7f21ce0b429898980eddbbf05c68e55",
- "url": "https://github.com/NixOS/nixpkgs/archive/b3582c75c7f21ce0b429898980eddbbf05c68e55.tar.gz",
- "hash": "1vf26scmz0826g49mqclmm4pblk5gzw5d4bk9bwql0psz916ij0n"
+ "submodules": false,
+ "revision": "a672be65651c80d3f592a89b3945466584a22069",
+ "url": "https://github.com/NixOS/nixpkgs/archive/a672be65651c80d3f592a89b3945466584a22069.tar.gz",
+ "hash": "1p2g7g9vlpv14xz6rrlb8i6w8sxki8i35m15phjiwfrqaf6x508i"
},
"ntfy-matrix-bot": {
"type": "Git",
@@ -170,10 +213,84 @@
"url": "https://stuebinm.eu/git/ntfy-matrix-bot"
},
"branch": "main",
+ "submodules": false,
"revision": "c4bedb1756c96db3f7d01feedc6587f7b0c3dc0f",
"url": null,
"hash": "1kq34zk7k6rg9k8frvx51hl1ldqqbfgvhm9f827b5a4c0rx28dah"
},
+ "ocaml-forester": {
+ "type": "GitRelease",
+ "repository": {
+ "type": "Git",
+ "url": "https://git.sr.ht/~jonsterling/ocaml-forester"
+ },
+ "pre_releases": false,
+ "version_upper_bound": null,
+ "release_prefix": null,
+ "submodules": false,
+ "version": "5.0",
+ "revision": "5ceee0e7d20febc0552caad0f71aa01750574d43",
+ "url": null,
+ "hash": "1ajajlg1yksk666mp5xf0ipy0c2r4pz650mrcprm45rf76xxjmj9"
+ },
+ "opam-nix": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "tweag",
+ "repo": "opam-nix"
+ },
+ "branch": "main",
+ "submodules": false,
+ "revision": "98ca8f4401e996aeac38b6f14bf3a82d85b7add7",
+ "url": "https://github.com/tweag/opam-nix/archive/98ca8f4401e996aeac38b6f14bf3a82d85b7add7.tar.gz",
+ "hash": "0iwxpacx7dzqyvnilsy54bzaf23f5yvmm155qkw3i6yxygav2xvm"
+ },
+ "opam-overlays": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "dune-universe",
+ "repo": "opam-overlays"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "d5c12f6d5c7909e6119a82bc4aba682ac3110b2d",
+ "url": "https://github.com/dune-universe/opam-overlays/archive/d5c12f6d5c7909e6119a82bc4aba682ac3110b2d.tar.gz",
+ "hash": "199qrblnd9mblr8l815wibmc147qinyvkqqi2gjmby76g3aw1h4x"
+ },
+ "opam-repository": {
+ "type": "GitRelease",
+ "repository": {
+ "type": "GitHub",
+ "owner": "ocaml",
+ "repo": "opam-repository"
+ },
+ "pre_releases": false,
+ "version_upper_bound": null,
+ "release_prefix": null,
+ "submodules": false,
+ "version": "1.2.0",
+ "revision": "62aabc825803c9dbf126488219524e68d74cd41c",
+ "url": "https://api.github.com/repos/ocaml/opam-repository/tarball/1.2.0",
+ "hash": "1rk665nzczykyxxs7c7kp2hgy49sn3alvcw15n7gsxm9qyxw0agz"
+ },
+ "opam2json": {
+ "type": "GitRelease",
+ "repository": {
+ "type": "GitHub",
+ "owner": "tweag",
+ "repo": "opam2json"
+ },
+ "pre_releases": false,
+ "version_upper_bound": null,
+ "release_prefix": null,
+ "submodules": false,
+ "version": "v0.4",
+ "revision": "562752a30aaff8985890ef5a2049a82247fc4b0f",
+ "url": "https://api.github.com/repos/tweag/opam2json/tarball/v0.4",
+ "hash": "00z4iqyl1x27nhkn89y771jl0iyqi2kfk8mq55nh0m798xnxz5g6"
+ },
"playground": {
"type": "Git",
"repository": {
@@ -181,6 +298,7 @@
"url": "https://stuebinm.eu/git/playground"
},
"branch": "master",
+ "submodules": false,
"revision": "19144f12772063b1c6f00ad186dabbf53ea25985",
"url": null,
"hash": "1ss0n237f0dmw0akw2q0qp8nvnijcg35f9qgy3i27m4ib3gl4ybk"
@@ -193,9 +311,10 @@
"repo": "rust-overlay"
},
"branch": "master",
- "revision": "5b07506ae89b025b14de91f697eba23b48654c52",
- "url": "https://github.com/oxalica/rust-overlay/archive/5b07506ae89b025b14de91f697eba23b48654c52.tar.gz",
- "hash": "0fdxclbzc84h91924rq8s1g7hnz6p9ifcnxxsc2p3y0fyzckbx8b"
+ "submodules": false,
+ "revision": "7ed7e8c74be95906275805db68201e74e9904f07",
+ "url": "https://github.com/oxalica/rust-overlay/archive/7ed7e8c74be95906275805db68201e74e9904f07.tar.gz",
+ "hash": "1iqg073ara6z5mzzwz12zb20swq8lbjkgy0k4bc170g6bh03vmjx"
},
"showrt": {
"type": "Git",
@@ -204,6 +323,7 @@
"url": "https://stuebinm.eu/git/showrt"
},
"branch": "main",
+ "submodules": false,
"revision": "7de36af3c6ffcc25832a6ff2303ba6c4c1101de5",
"url": null,
"hash": "09shk9b3969gmbmh8mavgss6f90zb51rsfby5n1d924agxzl93d6"
@@ -216,6 +336,7 @@
"server": "https://gitlab.com/"
},
"branch": "nixos-24.05",
+ "submodules": false,
"revision": "636b82f4175e3f6b1e80d2189bb0469e2ae01a55",
"url": "https://gitlab.com/api/v4/projects/simple-nixos-mailserver%2Fnixos-mailserver/repository/archive.tar.gz?sha=636b82f4175e3f6b1e80d2189bb0469e2ae01a55",
"hash": "08zdidja5kdqgskynxsmcd8skh1b7cfl9ijjy9pak4b5h3aw2iqv"
@@ -228,9 +349,10 @@
"repo": "sops-nix"
},
"branch": "master",
- "revision": "e93ee1d900ad264d65e9701a5c6f895683433386",
- "url": "https://github.com/Mic92/sops-nix/archive/e93ee1d900ad264d65e9701a5c6f895683433386.tar.gz",
- "hash": "1y264yahazf9m9z11i5hbcaaw11j3dkcd8fl48pbc2ysa94fn6iz"
+ "submodules": false,
+ "revision": "aeb517262102f13683d7a191c7e496b34df8d24c",
+ "url": "https://github.com/Mic92/sops-nix/archive/aeb517262102f13683d7a191c7e496b34df8d24c.tar.gz",
+ "hash": "1pra1yavc8xhgvl53jji8w3f9d8j5shgkfzwav69wyg429n8rlcb"
},
"traveltext": {
"type": "Git",
@@ -239,6 +361,7 @@
"url": "https://stuebinm.eu/git/traveltext"
},
"branch": "main",
+ "submodules": false,
"revision": "d876202506621eb76012c12cbb0e91fd2bb0ada0",
"url": null,
"hash": "0886l3r4fnnd6pc699n9l7kzh1y00y6bbdalab90gjqccviwv9cd"
@@ -250,10 +373,11 @@
"url": "https://stuebinm.eu/git/forks/uplcg"
},
"branch": "main",
+ "submodules": false,
"revision": "b61c0b191578d6ed39a6038cca7b436764a1f9f1",
"url": null,
"hash": "0675z5gvw0chx3hrr7bpiqxiwcykxhgw8qws17yazi071i8jgl29"
}
},
- "version": 3
-} \ No newline at end of file
+ "version": 5
+}
diff --git a/pkgs/bookwyrm.nix b/pkgs/bookwyrm.nix
deleted file mode 100644
index 92764ce..0000000
--- a/pkgs/bookwyrm.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{ lib
-, fetchFromGitHub
-, python
-, writeShellScriptBin
-, writeText
-, settings ? { }
-}:
-
-let
- # set some dummy values to make the package build
- settingsWithDefaults = {
- DOMAIN = "localhost";
- DEBUG = false;
- USE_HTTPS = false;
- EMAIL = "your@email.here";
- PGPORT = 5432;
- POSTGRES_USER = "bookwyrm";
- POSTGRES_DB = "bookwyrm";
- POSTGRES_HOST = "localhost";
- REDIS_ACTIVITY_HOST = "localhost";
- REDIS_ACTIVITY_PORT = 6379;
- REDIS_BROKER_HOST = "localhost";
- REDIS_BROKER_PORT = 6379;
- EMAIL_HOST = "smtp.example.com";
- EMAIL_PORT = 587;
- EMAIL_HOST_USER = "mail@example.org";
- EMAIL_HOST_PASSWORD = "blub";
- MEDIA_ROOT = "/var/lib/bookwyrm/images";
- } // settings;
-
- # toShellVar produces "" for false, which bookwyrm rejects
- toDjangoVar = name: value: lib.toShellVar name
- (if value == false then "false" else
- (if value == true then "true" else value));
-
- envfile = writeText "bookwyrm.env"
- (lib.strings.concatLines
- (lib.mapAttrsToList toDjangoVar settingsWithDefaults));
-
- bookwyrm = python.pkgs.buildPythonApplication rec {
- pname = "bookwyrm";
- version = "0.7.5";
-
- format = "other";
-
- src = fetchFromGitHub {
- owner = "bookwyrm-social";
- repo = "bookwyrm";
- rev = "refs/tags/v${version}";
- hash = "sha256-/oak9dEB2rR2z8b9oXVQ6+F2H7s0F5hVxmAlPdpaA0w=";
- };
-
- propagatedBuildInputs = with python.pkgs; [
- aiohttp
- bleach
- celery
- colorthief
- django
- django-celery-beat
- bw-file-resubmit
- django-compressor
- django-imagekit
- django-model-utils
- django-sass-processor
- django-csp
- django-oauth-toolkit
- django-storages
- django-pgtrigger
- s3-tar
- environs
- flower
- gunicorn
- libsass
- markdown
- packaging
- pillow
- psycopg2
- pycryptodome
- dateutil
- redis
- requests
- responses
- pytz
- boto3
- django-storages
- django-redis
- opentelemetry-api
- opentelemetry-exporter-otlp-proto-grpc
- # opentelemetry-instrumentation-celery
- opentelemetry-instrumentation-django
- # opentelemetry-instrumentation-pyscopg2
- opentelemetry-sdk
- protobuf
- pyotp
- qrcode
- grpcio
- ];
-
- postBuild = ''
- ln -s ${envfile} .env
- # needed for the python settings.py file to not fail, but not
- # used during the commands executed below, so this is safe
- export SECRET_KEY=fnord
-
- substituteInPlace contrib/systemd/* \
- --replace /opt/bookwyrm/venv/bin/gunicorn ${lib.getExe python.pkgs.gunicorn} \
- --replace /opt/bookwyrm/venv/bin/celery ${lib.getExe' python.pkgs.celery "celery"} \
- --replace /opt/bookwyrm $out
-
- sed -i /BindPath/d contrib/systemd/*
-
- python manage.py compile_themes
- python manage.py collectstatic --no-input
- '';
-
- postInstall = ''
- mkdir -p $out/lib/systemd/system
- cp -r * .env $out
- cp -r contrib/systemd/* $out/lib/systemd/system
- '';
-
- passthru = {
- pythonPath = python.pkgs.makePythonPath propagatedBuildInputs;
- gunicorn = python.pkgs.gunicorn;
- celery = python.pkgs.celery;
- manage = environmentFile: writeShellScriptBin "bookwyrm-manage.py" ''
- set -a
- ${if environmentFile != null
- then "source ${environmentFile}"
- else ""}
- export PYTHONPATH=${passthru.pythonPath}
- cd ${bookwyrm.outPath}
- exec ${bookwyrm.outPath}/manage.py "$@"
- '';
- };
-
- # hacky hacky hack
- shellHook = ''
- export PYTHONPATH=${passthru.pythonPath}
- '';
- };
-in bookwyrm
diff --git a/pkgs/bookwyrm/default.nix b/pkgs/bookwyrm/default.nix
new file mode 100644
index 0000000..6e0756b
--- /dev/null
+++ b/pkgs/bookwyrm/default.nix
@@ -0,0 +1,93 @@
+{ lib
+, stdenvNoCC
+, writeShellScriptBin
+, writeText
+, source-han-sans-vf-ttf
+, bookwyrm-unwrapped
+, settings ? { }
+}:
+
+let
+ # set some dummy values to make the package build
+ settingsWithDefaults = {
+ DOMAIN = "localhost";
+ DEBUG = false;
+ EMAIL = "your@email.here";
+ PGPORT = 5432;
+ POSTGRES_USER = "bookwyrm";
+ POSTGRES_DB = "bookwyrm";
+ POSTGRES_HOST = "localhost";
+ REDIS_ACTIVITY_HOST = "localhost";
+ REDIS_ACTIVITY_PORT = 6379;
+ REDIS_BROKER_HOST = "localhost";
+ REDIS_BROKER_PORT = 6379;
+ EMAIL_HOST = "smtp.example.com";
+ EMAIL_PORT = 587;
+ EMAIL_HOST_USER = "mail@example.org";
+ EMAIL_HOST_PASSWORD = "blub";
+ MEDIA_ROOT = "/var/lib/bookwyrm/images";
+ } // settings;
+
+ # toShellVar produces "" for false, which bookwyrm rejects
+ toDjangoVar = name: value: lib.toShellVar name
+ (if value == false then "false" else
+ (if value == true then "true" else value));
+
+ envfile = writeText "bookwyrm.env"
+ (lib.strings.concatLines
+ (lib.mapAttrsToList toDjangoVar settingsWithDefaults));
+
+in stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "bookwyrm";
+ inherit (bookwyrm-unwrapped) version;
+ src = bookwyrm-unwrapped;
+
+ dontConfigure = true;
+
+ buildPhase = ''
+ runHook preBuild
+
+ ln -s ${envfile} .env
+ # needed for the python settings.py file to not fail, but not
+ # used during the commands executed below, so this is safe
+ export SECRET_KEY=fnord
+
+ export PYTHONPATH=${bookwyrm-unwrapped.pythonPath}
+ ./manage.py compile_themes
+ ./manage.py collectstatic --no-input
+
+ ln -s ${source-han-sans-vf-ttf}/share/fonts/variable/SourceHanSans-VF.ttf.ttc static/fonts/source_han_sans/
+
+ substituteInPlace contrib/systemd/* \
+ --replace /opt/bookwyrm/venv/bin/gunicorn ${lib.getExe bookwyrm-unwrapped.gunicorn} \
+ --replace /opt/bookwyrm/venv/bin/celery ${lib.getExe' bookwyrm-unwrapped.celery "celery"} \
+ --replace /opt/bookwyrm $out
+
+ sed -i /BindPath/d contrib/systemd/*
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/lib/systemd/system
+ cp -r * .env $out
+ cp -r contrib/systemd/* $out/lib/systemd/system
+
+ runHook postInstall
+ '';
+
+ passthru = rec {
+ inherit (bookwyrm-unwrapped) celery gunicorn pythonPath;
+ manage = environmentFile: writeShellScriptBin "bookwyrm-manage.py" ''
+ set -a
+ ${if environmentFile != null
+ then "source ${environmentFile}"
+ else ""}
+ export PYTHONPATH=${pythonPath}
+ cd ${finalAttrs.finalPackage.outPath}
+ exec ${finalAttrs.finalPackage.outPath}/manage.py "$@"
+ '';
+ };
+})
diff --git a/pkgs/bookwyrm/unwrapped.nix b/pkgs/bookwyrm/unwrapped.nix
new file mode 100644
index 0000000..dce4279
--- /dev/null
+++ b/pkgs/bookwyrm/unwrapped.nix
@@ -0,0 +1,81 @@
+{ lib
+, fetchFromGitHub
+, python
+}:
+
+python.pkgs.buildPythonApplication rec {
+ pname = "bookwyrm-unwrapped";
+ version = "0.8.0";
+
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "bookwyrm-social";
+ repo = "bookwyrm";
+ rev = "refs/tags/v${version}";
+ hash = "sha256-juJLl6yN/u5Tx9j2rgT6d+92U4QAqhxG/LFZlIQtFxA=";
+ };
+
+ propagatedBuildInputs = with python.pkgs; [
+ aiohttp
+ bleach
+ celery
+ colorthief
+ django
+ django-celery-beat
+ bw-file-resubmit
+ django-compressor
+ django-imagekit
+ django-model-utils
+ django-sass-processor
+ django-csp
+ django-oauth-toolkit
+ django-storages
+ django-pgtrigger
+ s3-tar
+ environs
+ flower
+ gunicorn
+ libsass
+ markdown
+ packaging
+ pillow
+ psycopg
+ pycryptodome
+ dateutil
+ redis
+ requests
+ responses
+ pytz
+ boto3
+ django-storages
+ django-redis
+ opentelemetry-api
+ opentelemetry-exporter-otlp-proto-grpc
+ # opentelemetry-instrumentation-celery
+ opentelemetry-instrumentation-django
+ # opentelemetry-instrumentation-pyscopg2
+ opentelemetry-sdk
+ protobuf
+ pyotp
+ qrcode
+ grpcio
+ ua-parser
+ ];
+
+ postInstall = ''
+ mkdir $out
+ cp -r * $out
+ '';
+
+ passthru = {
+ pythonPath = python.pkgs.makePythonPath propagatedBuildInputs;
+ gunicorn = python.pkgs.gunicorn;
+ celery = python.pkgs.celery;
+ };
+
+ # hacky hacky hack
+ shellHook = ''
+ export PYTHONPATH=${passthru.pythonPath}
+ '';
+}
diff --git a/pkgs/hikari.nix b/pkgs/hikari.nix
index 6506590..afbc335 100644
--- a/pkgs/hikari.nix
+++ b/pkgs/hikari.nix
@@ -2,6 +2,7 @@
, pkg-config, bmake
, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
, libucl, wayland, wayland-protocols, wayland-scanner, wlroots, mesa
+, libdrm, libgbm
, features ? {
gammacontrol = true;
layershell = true;
@@ -27,6 +28,8 @@ stdenv.mkDerivation rec {
libevdev
libinput
libxkbcommon
+ libdrm
+ libgbm
linux-pam
pango
pixman
diff --git a/pkgs/mollysocket.nix b/pkgs/mollysocket.nix
index 1a079b4..a58c1a0 100644
--- a/pkgs/mollysocket.nix
+++ b/pkgs/mollysocket.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
hash = "sha256-2OWkPTbrD4oXHoB+qszVjLr0e/AUuNnuaYXZ3kOyuxg=";
};
- cargoHash = "sha256-fVH5gzQYzW6uIBO8Fob04IiVyxHDh+Pr21rSow40qLk=";
+ cargoHash = "sha256-fR87PUgb+F2Q4vRYUonmGi6JzJLvGWPEKhwHw+TAsyQ=";
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/nomsring/nomsring.cabal b/pkgs/nomsring/nomsring.cabal
index fca40c5..ea3625f 100644
--- a/pkgs/nomsring/nomsring.cabal
+++ b/pkgs/nomsring/nomsring.cabal
@@ -13,7 +13,7 @@ common warnings
executable nomsring
import: warnings
main-is: Main.hs
- build-depends: base ^>=4.18
+ build-depends: base
, cgi ^>=3001.5
, data-clist ^>= 0.2
default-language: GHC2021
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
index 2d561ff..a3a58a7 100644
--- a/pkgs/overlay.nix
+++ b/pkgs/overlay.nix
@@ -12,7 +12,7 @@ let
radicle = import ./radicle.nix;
in
{
- beam = super.beam_nox;
+ beam = super.beam_minimal;
git-annex-remote-remarkable2 = self.callPackage
({ rustPlatform, fetchgit, ... }:
@@ -31,8 +31,11 @@ in
galmon-core = self.callPackage ./galmon.nix {};
galmon-full = self.callPackage ./galmon.nix { buildAll = true; };
- akkoma-fe = super.akkoma-frontends.akkoma-fe.overrideAttrs (old: {
- patches = [ ./patches/akkoma-fe-toki-pona.patch ];
+ akkoma-fe = super.akkoma-fe.overrideAttrs (old: {
+ patches = [
+ ./patches/akkoma-fe-toki-pona.patch
+ ./patches/akkoma-fe-toki-pona-2.patch
+ ];
});
akkoma = (self.callPackage ./akkoma {}).overrideAttrs {
@@ -50,39 +53,6 @@ in
cargoLock.lockFile = "${src}/Cargo.lock";
};
- mergiraf = self.rustPlatform.buildRustPackage rec {
- pname = "mergiraf";
- version = "git";
- src = self.fetchgit {
- url = "https://codeberg.org/mergiraf/mergiraf";
- rev = "v0.2.0";
- hash = "sha256-egtX2daCbPXi5rX2OxbEZA/VI9R4HMj5LRKbUEBFo+E=";
- };
- # TODO: probably unnecessary once we are on nixpkgs 24.11; earlier version
- # hardcode --frozen here, but cargo wants --offline.
- # the postBuild hook is necessary to set up things for the install hook
- buildPhase = ''
- cargo build -j $NIX_BUILD_CORES \
- --target x86_64-unknown-linux-gnu \
- --release \
- --offline
-
- runHook postBuild
- '';
- # no idea why this didn't work with either test or build inputs ..
- preCheck = ''
- export PATH=$PATH:${self.gitMinimal}/bin
- '';
- cargoLock = {
- lockFile = "${src}/Cargo.lock";
- outputHashes = {
- "tree-sitter-go-0.23.1" = "sha256-elPqkvVYs0vADOuN/umDteWP5hqcXhQAoSkqYDtTxaU=";
- "tree-sitter-xml-0.7.0" = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw=";
- "tree-sitter-yaml-0.6.1" = "sha256-gS+SjOnGl/86U9VV/y1ca7naYIe7DAOvOv++jCRLTKo=";
- };
- };
- };
-
rustex = rustPlatform.buildRustPackage rec {
pname = "rustex";
version = "git";
@@ -202,7 +172,7 @@ in
, lib, stm, text, time, vector, wai, wai-extra, warp
}:
mkDerivation {
- pname = "bahnhof.name";
+ pname = "bahnhof-name";
version = "0.2.0.0";
src = inputs.bahnhof-name;
isLibrary = false;
@@ -212,6 +182,7 @@ in
http-client-openssl http-types stm text time vector wai wai-extra
warp
];
+ jailbreak = true;
mainProgram = "bahnhof-name";
license = lib.licenses.eupl12;
postInstall = ''
@@ -245,13 +216,13 @@ in
git-who = self.buildGoModule rec {
pname = "git-who";
- version = "0.7";
+ version = "1.1";
src = (self.fetchFromGitHub {
owner = "sinclairtarget";
repo = "git-who";
rev = "v${version}";
- hash = "sha256-Ujtwb4DTK7dUcyHvaF52a/YF3YO6WyszUIoxrEKE9jo=";
+ hash = "sha256-W3PDD0Gp9KStfa3+Wf2n8oxC5sp+YI/G5I3ukTg7H6k=";
# submodules contain test data and have ssh urls, hence this absurdity
fetchSubmodules = true;
leaveDotGit = true;
@@ -277,9 +248,11 @@ in
#### packaged mostly as shitpost / to play around with ####
- bookwyrm = (self.callPackage ./bookwyrm.nix {
+ bookwyrm = self.callPackage ./bookwyrm {};
+ bookwyrm-unwrapped = (self.callPackage ./bookwyrm/unwrapped.nix {
python = super.python312.override ({
packageOverrides = self: super: {
+ django = self.django_5;
django-sass-processor = self.callPackage ./python/django-sass-processor.nix {};
django-imagekit = self.callPackage ./python/django-imagekit.nix {};
django-pgtrigger = self.callPackage ./python/django-pgtrigger.nix {};
diff --git a/pkgs/patches/akkoma-fe-toki-pona-2.patch b/pkgs/patches/akkoma-fe-toki-pona-2.patch
new file mode 100644
index 0000000..3dc549b
--- /dev/null
+++ b/pkgs/patches/akkoma-fe-toki-pona-2.patch
@@ -0,0 +1,13 @@
+diff --git a/src/lib/post_language.js b/src/lib/post_language.js
+index 7dcaebce..4d146773 100644
+--- a/src/lib/post_language.js
++++ b/src/lib/post_language.js
+@@ -3,7 +3,7 @@ import { computed } from 'vue'
+
+ export const usePostLanguageOptions = () => {
+ const postLanguageOptions = computed(() => {
+- return iso6391.getAllCodes().map(lang => ({
++ return iso6391.getAllCodes().concat(['tok']).map(lang => ({
+ key: lang,
+ value: lang,
+ label: lang,
diff --git a/pkgs/patches/akkoma-fe-toki-pona.patch b/pkgs/patches/akkoma-fe-toki-pona.patch
index 281fdfc..b556fb6 100644
--- a/pkgs/patches/akkoma-fe-toki-pona.patch
+++ b/pkgs/patches/akkoma-fe-toki-pona.patch
@@ -4,23 +4,9 @@ Date: Fri, 23 Jun 2023 01:56:43 +0200
Subject: [PATCH] mi la, toki pona li pona a
---
- src/components/post_status_form/post_status_form.js | 2 +-
src/services/locale/locale.service.js | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
-diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
-index 5647a9eb..25180ba9 100644
---- a/src/components/post_status_form/post_status_form.js
-+++ b/src/components/post_status_form/post_status_form.js
-@@ -303,7 +303,7 @@ const PostStatusForm = {
- mobileLayout: state => state.interface.mobileLayout
- }),
- isoLanguages () {
-- return iso6391.getAllCodes();
-+ return iso6391.getAllCodes().concat(['tok']);
- }
- },
- watch: {
diff --git a/src/services/locale/locale.service.js b/src/services/locale/locale.service.js
index 8cef2522..8bee6ad2 100644
--- a/src/services/locale/locale.service.js
diff --git a/pkgs/wlroots_0_15.nix b/pkgs/wlroots_0_15.nix
index 93095f8..6b63e4c 100644
--- a/pkgs/wlroots_0_15.nix
+++ b/pkgs/wlroots_0_15.nix
@@ -23,6 +23,9 @@
, glslang
, libliftoff
, libdisplay-info
+, libdrm
+, libgbm
+, cmake
, nixosTests
, enableXWayland ? true
@@ -47,6 +50,8 @@ stdenv.mkDerivation {
hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
};
+ CFLAGS = [ "-Wno-calloc-transposed-args" ];
+
postPatch = ''
substituteInPlace backend/drm/meson.build \
--replace /usr/share/hwdata/ ${hwdata}/share/hwdata/
@@ -58,10 +63,12 @@ stdenv.mkDerivation {
strictDeps = true;
depsBuildBuild = [ pkg-config ];
- nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang ];
+ nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang cmake ];
buildInputs = [
libGL
+ libdrm
+ libgbm
libcap
libinput
libpng