haccfiles/pkgs/default.nix

58 lines
1.5 KiB
Nix
Raw Normal View History

{ sources, system ? builtins.currentSystem, ... }@args:
2020-11-27 20:56:20 +00:00
let
pkgs = import sources.nixpkgs args;
unstable = import sources.nixpkgs-unstable args;
oldstable = import sources.nixpkgs-oldstable args;
2020-11-27 20:56:20 +00:00
callPackage = pkgs.lib.callPackageWith (pkgs // newpkgs);
2020-11-27 20:56:20 +00:00
newpkgs = {
mattermost = callPackage ./mattermost {inherit sources;};
hainich: hacky version of thelounge as webchat Intended for KontraIAA; requirements were that it should be a simple and non-confusing as possible. I tried both KiwiIRC and thelounge, and found both horrible to package (a fact not helped by the somewhat opaque structure of nixpkgs.nodePackages, which does contain a version of thelounge but will apparently ignore overrides of the src attribute). Instead, this now contains a very hacky version of thelounge, which merely takes the already-built version from nixpkgs and glues some extra css to it which hides potentially confusing fields. Things hidden on the "connect" screen: - the "name" field (since thelounge offers "nick" "name" and "realname" by default, which seems too much for something embedded on a website) - the "I have a password" checkbox Things hidden on the general view: - the button to open the side panel (the panel itself is not hidden, and will appear by itself on wider layouts), so that users will only see that one channel - the "channel options" menu (which includes a "leave channel" option which would effectively break the webchat) Things not addressed: - thelounge has autocompletion for /join /leave, etc. Do we want to disable that as well? - It would probably useful to suppress all the "x joined the channel" messages. Thelounge supports this, but apparently doesn't support setting it as default? Misc: - for now, users will be connected to #thelounge on libera.chat, which appears to be okay with being used as an experimental channel - I allowed prefetching link previews, but only on the server's side (i.e. users' browsers won't fetch content from arbitrary sites) - not yet tested on hainich, but should work (tested in a NixOS container) - currently assumes a "webchat.voc.hacc.space" domain (I think we had a voc domain? but I forgot where it is …)
2021-08-05 17:11:43 +00:00
2023-01-22 01:25:07 +00:00
tracktrain = import sources.tracktrain {
nixpkgs = pkgs;
compiler = "default";
2023-01-22 01:25:07 +00:00
};
hainich: hacky version of thelounge as webchat Intended for KontraIAA; requirements were that it should be a simple and non-confusing as possible. I tried both KiwiIRC and thelounge, and found both horrible to package (a fact not helped by the somewhat opaque structure of nixpkgs.nodePackages, which does contain a version of thelounge but will apparently ignore overrides of the src attribute). Instead, this now contains a very hacky version of thelounge, which merely takes the already-built version from nixpkgs and glues some extra css to it which hides potentially confusing fields. Things hidden on the "connect" screen: - the "name" field (since thelounge offers "nick" "name" and "realname" by default, which seems too much for something embedded on a website) - the "I have a password" checkbox Things hidden on the general view: - the button to open the side panel (the panel itself is not hidden, and will appear by itself on wider layouts), so that users will only see that one channel - the "channel options" menu (which includes a "leave channel" option which would effectively break the webchat) Things not addressed: - thelounge has autocompletion for /join /leave, etc. Do we want to disable that as well? - It would probably useful to suppress all the "x joined the channel" messages. Thelounge supports this, but apparently doesn't support setting it as default? Misc: - for now, users will be connected to #thelounge on libera.chat, which appears to be okay with being used as an experimental channel - I allowed prefetching link previews, but only on the server's side (i.e. users' browsers won't fetch content from arbitrary sites) - not yet tested on hainich, but should work (tested in a NixOS container) - currently assumes a "webchat.voc.hacc.space" domain (I think we had a voc domain? but I forgot where it is …)
2021-08-05 17:11:43 +00:00
# a version of the lounge with some extra css that
# hides things the hacc-voc doesn't need
thelounge-hacked = pkgs.stdenv.mkDerivation {
name = "thelounge-hacked";
src = pkgs.thelounge;
phases = [ "buildPhase" "installPhase" ];
buildPhase = ''
cp $src/* -r .
chmod 777 lib/node_modules/thelounge/public/css/style.css
cat ${./thelounge/css-patch.css} >> lib/node_modules/thelounge/public/css/style.css
'';
installPhase = ''
mkdir -p $out
cp * -r $out
'';
};
uffd = oldstable.callPackage ./uffd { };
2022-04-30 20:43:12 +00:00
netbox = pkgs.netbox.override (super: rec {
python3 = super.python3.override (oldpy: {
packageOverrides = self: super: {
social-auth-core = super.social-auth-core.overrideAttrs ( old: {
name = "social-auth-with-uffd";
patches = [ ./netbox/0001-add-uffd-oauth2-backend.patch ];
});
};
});
});
2022-12-09 01:53:48 +00:00
inherit (unstable) vaultwarden vaultwarden-vault;
inherit oldstable;
inherit (oldstable) uwsgi flask;
2020-11-27 20:56:20 +00:00
};
in pkgs.extend(_: _: newpkgs)