Compare commits
64 Commits
staging/ni
...
wip-emulat
Author | SHA1 | Date | |
---|---|---|---|
282ef0f8d3 | |||
45578b2f00 | |||
2685c91dd9 | |||
169354bd33 | |||
cc1889d2dd | |||
22ffcb1b55 | |||
76abbac6f6 | |||
12e15b6456 | |||
8c2a4a31bf | |||
1fcfa04447 | |||
f3af31c727 | |||
21e22096b1 | |||
c9383da414 | |||
b82bb13f4f | |||
346a68884b | |||
eb04129959 | |||
2e93f58795 | |||
26b77221da | |||
6877507ae0 | |||
8757f86c57 | |||
633997f452 | |||
ff9163b365 | |||
edd86e3981 | |||
c9b60788b5 | |||
66dad1e519 | |||
687ceba474 | |||
6e85f26964 | |||
40dc8d698e | |||
350f7e32f8 | |||
3a5b72a258 | |||
b40ac95b5c | |||
c1a8d1aa18 | |||
03d7806adf | |||
9d06bfb544 | |||
bf5ac3cb76 | |||
85e63caeb0 | |||
dcf97b70e1 | |||
44059b34c7 | |||
561802ec41 | |||
b464e60a77 | |||
b73b4b0439 | |||
991685d149 | |||
4d7111feef | |||
bd8cec311e | |||
fd174a0475 | |||
3e83a1956c | |||
57f272c9ba | |||
186c09594d | |||
c74ba4e733 | |||
8a126d0a64 | |||
2e04a512b3 | |||
b4c83987f9 | |||
cc09832187 | |||
33b41482e2 | |||
6e523e7162 | |||
995c586fd9 | |||
3aa5852cf2 | |||
8efad09cf4 | |||
a7b71979f9 | |||
1082ab22bf | |||
5b2598bcaa | |||
1ba877b325 | |||
7ab5cfa698 | |||
8a367b718d |
14
flake.lock
generated
14
flake.lock
generated
@@ -85,11 +85,11 @@
|
||||
},
|
||||
"nixpkgs-unpatched": {
|
||||
"locked": {
|
||||
"lastModified": 1690640159,
|
||||
"narHash": "sha256-5DZUYnkeMOsVb/eqPYb9zns5YsnQXRJRC8Xx/nPMcno=",
|
||||
"lastModified": 1691006197,
|
||||
"narHash": "sha256-DbtxVWPt+ZP5W0Usg7jAyTomIM//c3Jtfa59Ht7AV8s=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e6ab46982debeab9831236869539a507f670a129",
|
||||
"rev": "66aedfd010204949cb225cf749be08cb13ce1813",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -152,11 +152,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1690326573,
|
||||
"narHash": "sha256-UgsGOTx00sp4Oev6QNN2u+4AMVehgGO/8yODF++8bwM=",
|
||||
"lastModified": 1691106178,
|
||||
"narHash": "sha256-3mZ9gTvMpbZA9ea9ovoQpn2wKuQY0QZ7MDdEjArYdAQ=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "fcec1d09b6c469d9425a716b11b4f4995a285774",
|
||||
"revCount": 204,
|
||||
"rev": "f4d91aa201b6e49af690f250d4786bd1d8b4dcfd",
|
||||
"revCount": 205,
|
||||
"type": "git",
|
||||
"url": "https://git.uninsane.org/colin/uninsane"
|
||||
},
|
||||
|
@@ -174,6 +174,7 @@
|
||||
disable-flakey-tests = final: prev: import ./overlays/disable-flakey-tests.nix final prev;
|
||||
pkgs = final: prev: import ./overlays/pkgs.nix final prev;
|
||||
pins = final: prev: import ./overlays/pins.nix final prev;
|
||||
preferences = final: prev: import ./overlays/preferences.nix final prev;
|
||||
optimizations = final: prev: import ./overlays/optimizations.nix final prev;
|
||||
passthru = final: prev:
|
||||
let
|
||||
|
@@ -18,7 +18,10 @@
|
||||
sane.roles.build-machine.enable = true;
|
||||
sane.roles.build-machine.emulation = false;
|
||||
sane.zsh.showDeadlines = false; # ~/knowledge doesn't always exist
|
||||
sane.programs.consoleUtils.suggestedPrograms = [ "desktopConsoleUtils" ];
|
||||
sane.programs.consoleUtils.suggestedPrograms = [
|
||||
"desktopConsoleUtils"
|
||||
"sane-scripts.stop-all-servo"
|
||||
];
|
||||
sane.services.dyn-dns.enable = true;
|
||||
sane.services.wg-home.enable = true;
|
||||
sane.services.wg-home.enableWan = true;
|
||||
|
@@ -23,7 +23,6 @@
|
||||
|
||||
# non-free firmware
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# powertop will default to putting USB devices -- including HID -- to sleep after TWO SECONDS
|
||||
powerManagement.powertop.enable = false;
|
||||
|
@@ -1,170 +1,201 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
declPackageSet = pkgs: {
|
||||
package = null;
|
||||
suggestedPrograms = pkgs;
|
||||
};
|
||||
in
|
||||
{
|
||||
sane.programs = {
|
||||
# PACKAGE SETS
|
||||
sysadminUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"btrfs-progs"
|
||||
"cacert.unbundled" # some services require unbundled /etc/ssl/certs
|
||||
"cryptsetup"
|
||||
"dig"
|
||||
"efibootmgr"
|
||||
"fatresize"
|
||||
"fd"
|
||||
"file"
|
||||
"gawk"
|
||||
"git"
|
||||
"gptfdisk"
|
||||
"hdparm"
|
||||
"htop"
|
||||
"iftop"
|
||||
"inetutils" # for telnet
|
||||
"iotop"
|
||||
"iptables"
|
||||
"jq"
|
||||
"killall"
|
||||
"lsof"
|
||||
"miniupnpc"
|
||||
"nano"
|
||||
# "ncdu" # ncurses disk usage. doesn't cross compile (zig)
|
||||
"neovim"
|
||||
"netcat"
|
||||
"nethogs"
|
||||
"nmap"
|
||||
"openssl"
|
||||
"parted"
|
||||
"pciutils"
|
||||
"powertop"
|
||||
"pstree"
|
||||
"ripgrep"
|
||||
"screen"
|
||||
"smartmontools"
|
||||
"socat"
|
||||
"strace"
|
||||
"subversion"
|
||||
"tcpdump"
|
||||
"tree"
|
||||
"usbutils"
|
||||
"wget"
|
||||
"wirelesstools" # iwlist
|
||||
];
|
||||
};
|
||||
sysadminExtraUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"backblaze-b2"
|
||||
"duplicity"
|
||||
"sqlite" # to debug sqlite3 databases
|
||||
];
|
||||
};
|
||||
"sane-scripts.backup" = declPackageSet [
|
||||
"sane-scripts.backup-ls"
|
||||
"sane-scripts.backup-restore"
|
||||
];
|
||||
"sane-scripts.bittorrent" = declPackageSet [
|
||||
"sane-scripts.bt-add"
|
||||
"sane-scripts.bt-rm"
|
||||
"sane-scripts.bt-search"
|
||||
"sane-scripts.bt-show"
|
||||
];
|
||||
"sane-scripts.dev" = declPackageSet [
|
||||
"sane-scripts.dev-cargo-loop"
|
||||
"sane-scripts.git-init"
|
||||
];
|
||||
"sane-scripts.cli" = declPackageSet [
|
||||
"sane-scripts.deadlines"
|
||||
"sane-scripts.find-dotfiles"
|
||||
"sane-scripts.ip-check"
|
||||
"sane-scripts.ip-reconnect"
|
||||
"sane-scripts.private-change-passwd"
|
||||
"sane-scripts.private-do"
|
||||
"sane-scripts.private-init"
|
||||
"sane-scripts.private-lock"
|
||||
"sane-scripts.private-unlock"
|
||||
"sane-scripts.rcp"
|
||||
"sane-scripts.reboot"
|
||||
"sane-scripts.reclaim-boot-space"
|
||||
"sane-scripts.reclaim-disk-space"
|
||||
"sane-scripts.secrets-dump"
|
||||
"sane-scripts.secrets-unlock"
|
||||
"sane-scripts.secrets-update-keys"
|
||||
"sane-scripts.shutdown"
|
||||
"sane-scripts.ssl-dump"
|
||||
"sane-scripts.sudo-redirect"
|
||||
"sane-scripts.sync-from-servo"
|
||||
"sane-scripts.vpn-down"
|
||||
"sane-scripts.vpn-up"
|
||||
"sane-scripts.which"
|
||||
"sane-scripts.wipe-browser"
|
||||
];
|
||||
"sane-scripts.sys-utils" = declPackageSet [
|
||||
"sane-scripts.ip-port-forward"
|
||||
];
|
||||
|
||||
|
||||
sysadminUtils = declPackageSet [
|
||||
"btrfs-progs"
|
||||
"cacert.unbundled" # some services require unbundled /etc/ssl/certs
|
||||
"cryptsetup"
|
||||
"dig"
|
||||
"efibootmgr"
|
||||
"fatresize"
|
||||
"fd"
|
||||
"file"
|
||||
# "fwupd"
|
||||
"gawk"
|
||||
"git"
|
||||
"gptfdisk"
|
||||
"hdparm"
|
||||
"htop"
|
||||
"iftop"
|
||||
"inetutils" # for telnet
|
||||
"iotop"
|
||||
"iptables"
|
||||
"jq"
|
||||
"killall"
|
||||
"lsof"
|
||||
"miniupnpc"
|
||||
"nano"
|
||||
# "ncdu" # ncurses disk usage. doesn't cross compile (zig)
|
||||
"neovim"
|
||||
"netcat"
|
||||
"nethogs"
|
||||
"nmap"
|
||||
"openssl"
|
||||
"parted"
|
||||
"pciutils"
|
||||
"powertop"
|
||||
"pstree"
|
||||
"ripgrep"
|
||||
"screen"
|
||||
"smartmontools"
|
||||
"socat"
|
||||
"strace"
|
||||
"subversion"
|
||||
"tcpdump"
|
||||
"tree"
|
||||
"usbutils"
|
||||
"wget"
|
||||
"wirelesstools" # iwlist
|
||||
];
|
||||
sysadminExtraUtils = declPackageSet [
|
||||
"backblaze-b2"
|
||||
"duplicity"
|
||||
"sane-scripts.backup"
|
||||
"sqlite" # to debug sqlite3 databases
|
||||
];
|
||||
|
||||
# TODO: split these into smaller groups.
|
||||
# - moby doesn't want a lot of these.
|
||||
# - categories like
|
||||
# - dev?
|
||||
# - debugging?
|
||||
consoleUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"alsaUtils" # for aplay, speaker-test
|
||||
# "cdrtools"
|
||||
"clinfo"
|
||||
"dmidecode"
|
||||
"dtrx" # `unar` alternative, "Do The Right eXtraction"
|
||||
"efivar"
|
||||
# "flashrom"
|
||||
"fwupd"
|
||||
"git" # needed as a user package, for config.
|
||||
# "gnupg"
|
||||
# "gocryptfs"
|
||||
# "gopass"
|
||||
# "gopass-jsonapi"
|
||||
"helix" # text editor
|
||||
"kitty" # TODO: move to GUI, but `ssh servo` from kitty sets `TERM=xterm-kitty` in the remove and breaks things
|
||||
"libsecret" # for managing user keyrings. TODO: what needs this? lift into the consumer
|
||||
"lm_sensors" # for sensors-detect. TODO: what needs this? lift into the consumer
|
||||
"lshw"
|
||||
# "memtester"
|
||||
"neovim" # needed as a user package, for swap persistence
|
||||
# "nettools"
|
||||
# "networkmanager"
|
||||
# "nixos-generators"
|
||||
"nmon"
|
||||
# "node2nix"
|
||||
# "oathToolkit" # for oathtool
|
||||
# "ponymix"
|
||||
"pulsemixer"
|
||||
"python3"
|
||||
# "python3Packages.eyeD3" # music tagging
|
||||
"ripgrep" # needed as a user package so that its user-level config file can be installed
|
||||
"rsync"
|
||||
"sane-scripts" # TODO: split; moby doesn't need the duplicity related ones
|
||||
"snapper"
|
||||
"sops"
|
||||
"speedtest-cli"
|
||||
# "ssh-to-age"
|
||||
"sudo"
|
||||
# "tageditor" # music tagging
|
||||
# "unar"
|
||||
"wireguard-tools"
|
||||
"xdg-terminal-exec"
|
||||
"xdg-utils" # for xdg-open
|
||||
# "yarn"
|
||||
"zsh"
|
||||
];
|
||||
};
|
||||
consoleUtils = declPackageSet [
|
||||
"alsaUtils" # for aplay, speaker-test
|
||||
# "cdrtools"
|
||||
"clinfo"
|
||||
"dmidecode"
|
||||
"dtrx" # `unar` alternative, "Do The Right eXtraction"
|
||||
"efivar"
|
||||
# "flashrom"
|
||||
"git" # needed as a user package, for config.
|
||||
# "gnupg"
|
||||
# "gocryptfs"
|
||||
# "gopass"
|
||||
# "gopass-jsonapi"
|
||||
"helix" # text editor
|
||||
"kitty" # TODO: move to GUI, but `ssh servo` from kitty sets `TERM=xterm-kitty` in the remove and breaks things
|
||||
"libsecret" # for managing user keyrings. TODO: what needs this? lift into the consumer
|
||||
"lm_sensors" # for sensors-detect. TODO: what needs this? lift into the consumer
|
||||
"lshw"
|
||||
# "memtester"
|
||||
"neovim" # needed as a user package, for swap persistence
|
||||
# "nettools"
|
||||
# "networkmanager"
|
||||
# "nixos-generators"
|
||||
"nmon"
|
||||
# "node2nix"
|
||||
# "oathToolkit" # for oathtool
|
||||
# "ponymix"
|
||||
"pulsemixer"
|
||||
"python3"
|
||||
# "python3Packages.eyeD3" # music tagging
|
||||
"ripgrep" # needed as a user package so that its user-level config file can be installed
|
||||
"rsync"
|
||||
"sane-scripts.bittorrent"
|
||||
"sane-scripts.cli"
|
||||
"snapper"
|
||||
"sops"
|
||||
"speedtest-cli"
|
||||
# "ssh-to-age"
|
||||
"sudo"
|
||||
# "tageditor" # music tagging
|
||||
# "unar"
|
||||
"wireguard-tools"
|
||||
"xdg-terminal-exec"
|
||||
"xdg-utils" # for xdg-open
|
||||
# "yarn"
|
||||
"zsh"
|
||||
];
|
||||
|
||||
desktopConsoleUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"gh" # MS GitHub cli
|
||||
"nix-index"
|
||||
"nixpkgs-review"
|
||||
"sequoia"
|
||||
];
|
||||
};
|
||||
desktopConsoleUtils = declPackageSet [
|
||||
"gh" # MS GitHub cli
|
||||
"nix-index"
|
||||
"nixpkgs-review"
|
||||
"sane-scripts.dev"
|
||||
"sequoia"
|
||||
];
|
||||
|
||||
consoleMediaUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"ffmpeg"
|
||||
"imagemagick"
|
||||
"sox"
|
||||
"yt-dlp"
|
||||
];
|
||||
};
|
||||
consoleMediaUtils = declPackageSet [
|
||||
"ffmpeg"
|
||||
"imagemagick"
|
||||
"sox"
|
||||
"yt-dlp"
|
||||
];
|
||||
|
||||
tuiApps = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"aerc" # email client
|
||||
"msmtp" # sendmail
|
||||
"offlineimap" # email mailbox sync
|
||||
"sfeed" # RSS fetcher
|
||||
"visidata" # TUI spreadsheet viewer/editor
|
||||
"w3m" # web browser
|
||||
];
|
||||
};
|
||||
tuiApps = declPackageSet [
|
||||
"aerc" # email client
|
||||
"msmtp" # sendmail
|
||||
"offlineimap" # email mailbox sync
|
||||
"sfeed" # RSS fetcher
|
||||
"visidata" # TUI spreadsheet viewer/editor
|
||||
"w3m" # web browser
|
||||
];
|
||||
|
||||
iphoneUtils = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"ifuse"
|
||||
"ipfs"
|
||||
"libimobiledevice"
|
||||
];
|
||||
};
|
||||
iphoneUtils = declPackageSet [
|
||||
"ifuse"
|
||||
"ipfs"
|
||||
"libimobiledevice"
|
||||
"sane-scripts.sync-from-iphone"
|
||||
];
|
||||
|
||||
devPkgs = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"clang"
|
||||
"nodejs"
|
||||
"tree-sitter"
|
||||
];
|
||||
};
|
||||
devPkgs = declPackageSet [
|
||||
"clang"
|
||||
"nodejs"
|
||||
"tree-sitter"
|
||||
];
|
||||
|
||||
|
||||
# INDIVIDUAL PACKAGE DEFINITIONS
|
||||
@@ -174,9 +205,6 @@
|
||||
# creds, but also 200 MB of node modules, etc
|
||||
discord.persist.private = [ ".config/discord" ];
|
||||
|
||||
# creds/session keys, etc
|
||||
element-desktop.persist.private = [ ".config/Element" ];
|
||||
|
||||
# `emote` will show a first-run dialog based on what's in this directory.
|
||||
# mostly, it just keeps a LRU of previously-used emotes to optimize display order.
|
||||
# TODO: package [smile](https://github.com/mijorus/smile) for probably a better mobile experience.
|
||||
|
44
hosts/common/programs/chatty.nix
Normal file
44
hosts/common/programs/chatty.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
chattyNoOauth = pkgs.chatty.override {
|
||||
# the OAuth feature (presumably used for web-based logins) pulls a full webkitgtk.
|
||||
# especially when using the gtk3 version of evolution-data-server, it's an ancient webkitgtk_4_1.
|
||||
# disable OAuth for a faster build & smaller closure
|
||||
evolution-data-server = pkgs.evolution-data-server.override {
|
||||
enableOAuth2 = false;
|
||||
gnome-online-accounts = pkgs.gnome-online-accounts.override {
|
||||
# disables the upstream "goabackend" feature -- presumably "Gnome Online Accounts Backend"
|
||||
# frees us from webkit_4_1, in turn.
|
||||
enableBackend = false;
|
||||
gvfs = pkgs.gvfs.override {
|
||||
# saves 20 minutes of build time, for unused feature
|
||||
samba = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
chatty-latest = pkgs.chatty-latest.override {
|
||||
evolution-data-server-gtk4 = pkgs.evolution-data-server-gtk4.override {
|
||||
gnome-online-accounts = pkgs.gnome-online-accounts.override {
|
||||
# disables the upstream "goabackend" feature -- presumably "Gnome Online Accounts Backend"
|
||||
# frees us from webkit_4_1, in turn.
|
||||
enableBackend = false;
|
||||
gvfs = pkgs.gvfs.override {
|
||||
# saves 20 minutes of build time, for unused feature
|
||||
samba = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
sane.programs.chatty = {
|
||||
# package = chattyNoOauth;
|
||||
package = chatty-latest;
|
||||
suggestedPrograms = [ "gnome-keyring" ];
|
||||
persist.private = [
|
||||
".local/share/chatty" # matrix avatars and files
|
||||
# ".purple" # XMPP stuff
|
||||
];
|
||||
};
|
||||
}
|
@@ -4,14 +4,18 @@
|
||||
imports = [
|
||||
./aerc.nix
|
||||
./assorted.nix
|
||||
./chatty.nix
|
||||
./cozy.nix
|
||||
./element-desktop.nix
|
||||
./epiphany.nix
|
||||
./evince.nix
|
||||
./firefox.nix
|
||||
./fontconfig.nix
|
||||
./fractal.nix
|
||||
./fwupd.nix
|
||||
./git.nix
|
||||
./gnome-feeds.nix
|
||||
./gnome-keyring.nix
|
||||
./gpodder.nix
|
||||
./gthumb.nix
|
||||
./helix.nix
|
||||
@@ -38,8 +42,10 @@
|
||||
./steam.nix
|
||||
./sublime-music.nix
|
||||
./tangram.nix
|
||||
./tuba.nix
|
||||
./vlc.nix
|
||||
./wireshark.nix
|
||||
./xarchiver.nix
|
||||
./zeal.nix
|
||||
./zsh
|
||||
];
|
||||
|
9
hosts/common/programs/element-desktop.nix
Normal file
9
hosts/common/programs/element-desktop.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ ... }:
|
||||
{
|
||||
sane.programs.element-desktop = {
|
||||
# creds/session keys, etc
|
||||
persist.private = [ ".config/Element" ];
|
||||
|
||||
suggestedPrograms = [ "gnome-keyring" ];
|
||||
};
|
||||
}
|
@@ -4,9 +4,9 @@
|
||||
# package = pkgs.fractal-latest;
|
||||
package = pkgs.fractal-next;
|
||||
|
||||
# XXX by default fractal stores its state in ~/.local/share/<UUID>.
|
||||
# after logging in, manually change ~/.local/share/keyrings/... to point it to some predictable subdir.
|
||||
# then reboot (so that libsecret daemon re-loads the keyring...?)
|
||||
persist.private = [ ".local/share/fractal" ];
|
||||
# XXX by default fractal stores its state in ~/.local/share/stable/<UUID>.
|
||||
persist.private = [ ".local/share/stable" ];
|
||||
|
||||
suggestedPrograms = [ "gnome-keyring" ];
|
||||
};
|
||||
}
|
||||
|
7
hosts/common/programs/fwupd.nix
Normal file
7
hosts/common/programs/fwupd.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
services.fwupd = lib.mkIf config.sane.programs.fwupd.enabled {
|
||||
# enables the dbus service, which i think the frontend speaks to.
|
||||
enable = true;
|
||||
};
|
||||
}
|
10
hosts/common/programs/gnome-keyring.nix
Normal file
10
hosts/common/programs/gnome-keyring.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
sane.programs.gnome-keyring = {
|
||||
package = pkgs.gnome.gnome-keyring;
|
||||
};
|
||||
# adds gnome-keyring as a xdg-data-portal (xdg.portal)
|
||||
services.gnome.gnome-keyring = lib.mkIf config.sane.programs.gnome-keyring.enabled {
|
||||
enable = true;
|
||||
};
|
||||
}
|
@@ -8,6 +8,7 @@
|
||||
{
|
||||
sane.programs.mpv = {
|
||||
package = pkgs.wrapMpv pkgs.mpv-unwrapped {
|
||||
youtubeSupport = false; #< XXX(2023/08/03): doesn't cross compile until next staging -> master merge
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris
|
||||
# uosc
|
||||
|
4
hosts/common/programs/tuba.nix
Normal file
4
hosts/common/programs/tuba.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
sane.programs.tuba.suggestedPrograms = [ "gnome-keyring" ];
|
||||
}
|
7
hosts/common/programs/xarchiver.nix
Normal file
7
hosts/common/programs/xarchiver.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
sane.programs.xarchiver.package = pkgs.xarchiver.override {
|
||||
# unar doesn't cross compile well, so disable support for it
|
||||
unar = null;
|
||||
};
|
||||
}
|
@@ -13,6 +13,7 @@ let
|
||||
};
|
||||
in {
|
||||
sane.programs.zeal = {
|
||||
# package = pkgs.zeal-qt6; #< TODO: upgrade system to qt6 versions of everything (i.e. jellyfin-media-player, nheko)
|
||||
package = pkgs.zeal-qt5;
|
||||
persist.plaintext = [
|
||||
".cache/Zeal"
|
||||
|
@@ -10,21 +10,24 @@
|
||||
|
||||
sane.programs.guiApps = {
|
||||
package = null;
|
||||
suggestedPrograms = [
|
||||
"firefox"
|
||||
suggestedPrograms = lib.optionals (pkgs.system == "x86_64-linux") [
|
||||
"x86GuiApps"
|
||||
] ++ [
|
||||
# package sets
|
||||
"tuiApps"
|
||||
] ++ lib.optional (pkgs.system == "x86_64-linux") "x86GuiApps"
|
||||
++ [
|
||||
] ++ [
|
||||
# "celluloid" # mpv frontend
|
||||
"chatty" # matrix/xmpp/irc client
|
||||
"cozy" # audiobook player
|
||||
# "emote"
|
||||
"epiphany" # gnome's web browser
|
||||
"evince" # works on phosh
|
||||
"firefox"
|
||||
# "foliate" # e-book reader
|
||||
# "fractal" # matrix client
|
||||
# "gnome.cheese"
|
||||
# "gnome-feeds" # RSS reader (with claimed mobile support)
|
||||
"gnome.file-roller"
|
||||
# "gnome.file-roller"
|
||||
# "gnome.gnome-maps" # works on phosh
|
||||
# "gnome-podcasts"
|
||||
# "gnome.gnome-system-monitor"
|
||||
@@ -38,9 +41,9 @@
|
||||
# "lollypop"
|
||||
"mepo" # maps viewer
|
||||
"mpv"
|
||||
"nheko"
|
||||
# "networkmanagerapplet"
|
||||
# "newsflash"
|
||||
"nheko"
|
||||
"pavucontrol"
|
||||
# "picard" # music tagging
|
||||
# "libsForQt5.plasmatube" # Youtube player
|
||||
@@ -62,13 +65,14 @@
|
||||
"blanket" # ambient noise generator
|
||||
"brave" # for the integrated wallet -- as a backup
|
||||
# "chromium" # chromium takes hours to build. brave is chromium-based, distributed in binary form, so prefer it.
|
||||
"dino"
|
||||
# "dino" # XMPP client
|
||||
"electrum"
|
||||
"element-desktop"
|
||||
# "font-manager" #< depends on webkitgtk4_0 (expensive to build)
|
||||
"gajim" # XMPP client
|
||||
# "gajim" # XMPP client
|
||||
"gimp" # broken on phosh
|
||||
"gnome.dconf-editor"
|
||||
"gnome.file-roller"
|
||||
"gnome.gnome-disk-utility"
|
||||
"gnome.nautilus" # file browser
|
||||
# "gnome.totem" # video player, supposedly supports UPnP
|
||||
@@ -94,6 +98,7 @@
|
||||
suggestedPrograms = [
|
||||
"megapixels" # camera app
|
||||
"portfolio-filemanager"
|
||||
"xarchiver"
|
||||
];
|
||||
};
|
||||
|
||||
|
@@ -97,9 +97,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# some programs (e.g. fractal) **require** a "Secret Service Provider"
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# unlike other DEs, sway configures no audio stack
|
||||
# administer with pw-cli, pw-mon, pw-top commands
|
||||
services.pipewire = {
|
||||
@@ -133,9 +130,38 @@ in
|
||||
};
|
||||
|
||||
programs.sway = {
|
||||
# provides xdg-desktop-portal-wlr, which exposes on dbus:
|
||||
# - org.freedesktop.impl.portal.ScreenCast
|
||||
# - org.freedesktop.impl.portal.Screenshot
|
||||
enable = true;
|
||||
extraPackages = []; # nixos adds swaylock, swayidle, foot, dmenu by default
|
||||
# "wrapGAppsHook wrapper to execute sway with required environment variables for GTK applications."
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
# provide portals for:
|
||||
# - org.freedesktop.impl.portal.Access
|
||||
# - org.freedesktop.impl.portal.Account
|
||||
# - org.freedesktop.impl.portal.DynamicLauncher
|
||||
# - org.freedesktop.impl.portal.Email
|
||||
# - org.freedesktop.impl.portal.FileChooser
|
||||
# - org.freedesktop.impl.portal.Inhibit
|
||||
# - org.freedesktop.impl.portal.Notification
|
||||
# - org.freedesktop.impl.portal.Print
|
||||
# and conditionally (i.e. unless buildPortalsInGnome = false) for:
|
||||
# - org.freedesktop.impl.portal.AppChooser (@appchooser_iface@)
|
||||
# - org.freedesktop.impl.portal.Background (@background_iface@)
|
||||
# - org.freedesktop.impl.portal.Lockdown (@lockdown_iface@)
|
||||
# - org.freedesktop.impl.portal.RemoteDesktop (@remotedesktop_iface@)
|
||||
# - org.freedesktop.impl.portal.ScreenCast (@screencast_iface@)
|
||||
# - org.freedesktop.impl.portal.Screenshot (@screenshot_iface@)
|
||||
# - org.freedesktop.impl.portal.Settings (@settings_iface@)
|
||||
# - org.freedesktop.impl.portal.Wallpaper (@wallpaper_iface@)
|
||||
xdg.portal.extraPortals = [
|
||||
(pkgs.xdg-desktop-portal-gtk.override {
|
||||
buildPortalsInGnome = false;
|
||||
})
|
||||
];
|
||||
|
||||
sane.user.fs.".config/sway/config".symlink.text =
|
||||
import ./sway-config.nix { inherit pkgs; };
|
||||
|
||||
|
@@ -170,4 +170,13 @@ in ''
|
||||
pos 1920,0
|
||||
res 1920x1080
|
||||
}
|
||||
|
||||
# XXX: needed for xdg-desktop-portal-* to work.
|
||||
# this is how we expose these env vars to user dbus services:
|
||||
# - DISPLAY
|
||||
# - WAYLAND_DISPLAY
|
||||
# - SWAYSOCK
|
||||
# - XDG_CURRENT_DESKTOP
|
||||
# for more, see: <repo:nixos/nixpkgs:nixos/modules/programs/wayland/sway.nix>
|
||||
include /etc/sway/config.d/*
|
||||
''
|
||||
|
@@ -178,9 +178,6 @@ in
|
||||
# TODO: nerdfonts is 4GB. it accepts an option to ship only some fonts: probably want to use that.
|
||||
fonts.packages = [ pkgs.nerdfonts ];
|
||||
|
||||
# some programs (e.g. fractal/nheko) **require** a "Secret Service Provider"
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# lightdm-mobile-greeter: "The name org.a11y.Bus was not provided by any .service files"
|
||||
services.gnome.at-spi2-core.enable = true;
|
||||
|
||||
|
@@ -47,9 +47,11 @@ let
|
||||
lib.mkIf portCfg.visibleTo.wan {
|
||||
"upnp-forward-${port}" = {
|
||||
description = "forward port ${port} from upstream gateway to this host";
|
||||
serviceConfig.Type = "oneshot";
|
||||
restartTriggers = [(builtins.toJSON portCfg)];
|
||||
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.TimeoutSec = "6min";
|
||||
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "upnp-forwards.target" ];
|
||||
script =
|
||||
@@ -120,9 +122,9 @@ in
|
||||
systemd.timers.upnp-forwards = {
|
||||
wantedBy = [ "network.target" ];
|
||||
timerConfig = {
|
||||
OnStartupSec = "1min";
|
||||
OnStartupSec = "75s";
|
||||
OnCalendar = cfg.upnpRenewInterval;
|
||||
RandomizeDelaySec = "2min";
|
||||
RandomizeDelaySec = "30s";
|
||||
Unit = "upnp-forwards.target";
|
||||
};
|
||||
};
|
||||
|
@@ -233,6 +233,7 @@ in
|
||||
(lib.mapAttrs' (pkgName: _pkg: { name = "libsForQt5.${pkgName}"; value = {}; }) pkgs.libsForQt5)
|
||||
(lib.mapAttrs' (pkgName: _pkg: { name = "plasma5Packages.${pkgName}"; value = {}; }) pkgs.plasma5Packages)
|
||||
(lib.mapAttrs' (pkgName: _pkg: { name = "python3Packages.${pkgName}"; value = {}; }) pkgs.python3Packages)
|
||||
(lib.mapAttrs' (pkgName: _pkg: { name = "sane-scripts.${pkgName}"; value = {}; }) pkgs.sane-scripts)
|
||||
(lib.mapAttrs' (pkgName: _pkg: { name = "sway-contrib.${pkgName}"; value = {}; }) pkgs.sway-contrib)
|
||||
];
|
||||
}
|
||||
|
@@ -1,14 +0,0 @@
|
||||
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
|
||||
index d188ecdda55..69174ba7dc7 100644
|
||||
--- a/pkgs/top-level/all-packages.nix
|
||||
+++ b/pkgs/top-level/all-packages.nix
|
||||
@@ -26607,7 +26607,8 @@ with pkgs;
|
||||
|
||||
tinyalsa = callPackage ../os-specific/linux/tinyalsa { };
|
||||
|
||||
- inherit (callPackage ../os-specific/linux/alsa-project { })
|
||||
+ alsa-project = callPackage ../os-specific/linux/alsa-project { };
|
||||
+ inherit (alsa-project)
|
||||
alsa-firmware
|
||||
alsa-lib
|
||||
alsa-oss
|
@@ -20,6 +20,13 @@ let
|
||||
);
|
||||
in [
|
||||
|
||||
# (fetchpatch' {
|
||||
# # TODO: check back in on this around 2023-10-01
|
||||
# title = "libkiwix: 12.0.0 -> 12.1.0";
|
||||
# prUrl = "https://github.com/NixOS/nixpkgs/pull/246700";
|
||||
# hash = "sha256-LyTkWNgG1mynCdckKm3Hj9ifzLemyrhJ9BFVaPppwgw=";
|
||||
# })
|
||||
|
||||
# (fetchpatch' {
|
||||
# # XXX: doesn't cleanly apply; fetch `firefox-pmos-mobile` branch from my git instead
|
||||
# title = "firefox-pmos-mobile: init at -pmos-2.2.0";
|
||||
@@ -58,15 +65,15 @@ in [
|
||||
# hash = "sha256-oQEM3EZfAOmfZzDu9faCqyOFZsdHYGn1mVBgkxt68Zg=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
saneCommit = "c3becd7cdf144d85d12e2e76663e9549a0536efd";
|
||||
title = "firefox-pmos-mobile: init at 4.0.2";
|
||||
saneCommit = "c3becd7cdf144d85d12e2e76663e9549a0536efd";
|
||||
hash = "sha256-NRh2INUMA2K7q8zioqKA7xwoqg7v6sxpuJRpTG5IP1Q=";
|
||||
})
|
||||
|
||||
# splatmoji: init at 1.2.0
|
||||
(fetchpatch' {
|
||||
saneCommit = "75149039b6eaf57d8a92164e90aab20eb5d89196";
|
||||
title = "splatmoji: init at 1.2.0";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/211874";
|
||||
saneCommit = "75149039b6eaf57d8a92164e90aab20eb5d89196";
|
||||
hash = "sha256-jDXYLlXaEBKMrZ2dgxc6ucrcX/5dtqoIIKw+Ay19vlc=";
|
||||
})
|
||||
|
||||
@@ -87,18 +94,15 @@ in [
|
||||
# upgrade to 22.3.6 instead
|
||||
# ./2023-02-28-mesa-22.3.6.patch
|
||||
|
||||
# fix qt6.qtbase and qt6.qtModule to cross-compile.
|
||||
# unfortunately there's some tangle that makes that difficult to do via the normal `override` facilities
|
||||
./2023-03-03-qtbase-cross-compile.patch
|
||||
|
||||
# let ccache cross-compile
|
||||
# TODO: why doesn't this apply?
|
||||
# ./2023-03-04-ccache-cross-fix.patch
|
||||
|
||||
# 2023-04-11: bambu-studio: init at 01.06.02.04
|
||||
(fetchpatch' {
|
||||
title = "bambu-studio: init at 01.06.02.04";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/206495";
|
||||
hash = "sha256-XG4hvHXmP/wgiKuNRCAfttaGLrg/6mAOr+YvAVmycKQ=";
|
||||
hash = "sha256-Z+IOzd+bnxjg6neF1YcrRDTzz9GhJfbbj0Wa8yTXsa4=";
|
||||
})
|
||||
|
||||
# (fetchpatch' {
|
||||
@@ -149,34 +153,35 @@ in [
|
||||
})
|
||||
|
||||
# (fetchpatch' {
|
||||
# title = "hare-json: init at unstable-2023-01-31";
|
||||
# saneCommit = "260f9c6ac4e3564acbceb46aa4b65fbb652f8e23";
|
||||
# hash = "sha256-bjLKANo0+zaxugJlEk1ObPqRHWOKptD7dXB+/xzsYqA=";
|
||||
# title = "hare-json: init at unstable-2023-02-25";
|
||||
# saneCommit = "6c88c2b087755e8f60c9f61c6361dec2f7a38155";
|
||||
# hash = "sha256-9TTlhwLDZESaFC02k4+YER+NvoNVPz9wFYV79+Dmuxs=";
|
||||
# })
|
||||
# (fetchpatch' {
|
||||
# title = "hare-ev: init at unstable-2022-12-29";
|
||||
# saneCommit = "4058200a407c86c5d963bc49b608aa1a881cbbf2";
|
||||
# hash = "sha256-wm1aavbCfxBhcOXh4EhFO4u0LrA9tNr0mSczHUK8mQU=";
|
||||
# saneCommit = "1761049e9b8620091f29bf864ecbbf204b0c56b4";
|
||||
# hash = "sha256-H2ekBJx/iRX8E4uVmdEyaAZVhqeM25QbwvQ9Ki7fMQ0=";
|
||||
# })
|
||||
# (fetchpatch' {
|
||||
# title = "bonsai: init at 1.0.0";
|
||||
# saneCommit = "65d37294d939384e8db400ea82d25ce8b4ad6897";
|
||||
# hash = "sha256-2easgOtJfzvVcz/3nt3lo1GKLLotrM4CkBRyTgIAhHU=";
|
||||
# saneCommit = "507252828934c73c7cffe255dae237c041676c27";
|
||||
# hash = "sha256-HwycOd3v4IifdQqQmMP6w14g0E/T9RAjAw41AsUZQoc=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
# includes hare-json and hare-ev as pre-reqs
|
||||
title = "bonsai: init at 1.0.0";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/233892";
|
||||
hash = "sha256-HqtDgisbR0xOUY4AxhzEv+2JJMPyQMawKo6nbd9pxhE=";
|
||||
hash = "sha256-f7tdHz0lFsSJO8C0saMuG8e7VzSx8XDy/UXjbqWHP9M=";
|
||||
})
|
||||
|
||||
# make alsa-project members overridable
|
||||
./2023-05-31-toplevel-alsa.patch
|
||||
|
||||
# qt6 qtwebengine: specify `python` as buildPackages
|
||||
./2023-06-02-qt6-qtwebengine-cross.patch
|
||||
|
||||
# Jellyfin: don't build via `libsForQt5.callPackage`
|
||||
./2023-06-06-jellyfin-no-libsForQt5-callPackage.patch
|
||||
(fetchpatch' {
|
||||
title = "alsa-project: expose the scope as a top-level package to support overrides";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/246656";
|
||||
saneCommit = "28f76deae50cc53f5f6a5e846e04426357b8ce2e";
|
||||
# hash = "sha256-dBWStotLBa4LN7JmriTzoFX3/SQr/qxGO8glv3MNyZQ=";
|
||||
hash = "sha256-QvurEnupAdPVVnHYl4DC1OqJronGt31REkTJO/alr60=";
|
||||
})
|
||||
|
||||
# pin to a pre-0.17.3 release
|
||||
# removing this and using stock 0.17.3 (also 0.17.4) causes:
|
||||
@@ -189,12 +194,6 @@ in [
|
||||
# related: <https://github.com/NixOS/nixpkgs/issues/236890#issuecomment-1585030861>
|
||||
# ./2023-06-10-lemmy-downgrade.patch
|
||||
|
||||
# (fetchpatch' {
|
||||
# title = "gpodder: wrap with missing `xdg-utils` path";
|
||||
# saneCommit = "10d0ac11bc083cbcf0d6340950079b3888095abf";
|
||||
# hash = "sha256-cu8L30ZiUJnWFGRR/SK917TC7TalzpGkurGkUAAxl54=";
|
||||
# })
|
||||
|
||||
(fetchpatch' {
|
||||
title = "koreader: 2023.04 -> 2023.05.1";
|
||||
saneCommit = "a5c471bd263abe93e291239e0078ac4255a94262";
|
||||
@@ -208,6 +207,7 @@ in [
|
||||
hash = "sha256-uNerTwyFzivTU+o9bEKmNMFceOmy2AKONfKJWI5qkzo=";
|
||||
})
|
||||
|
||||
|
||||
(fetchpatch' {
|
||||
title = "gthumb: make the webservices feature be optional";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/240602";
|
||||
@@ -232,36 +232,139 @@ in [
|
||||
hash = "sha256-8NqqLBbjt1fLj4ZYhat7wPqQSv/aez9IwgSK2b4CfW8=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
title = "libgudev: fix cross failing to build checks";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/245761";
|
||||
hash = "sha256-jEQeGAcDGrv0TYouBTfn5ubWaosWg/ecmUW0ii1QIVs=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
title = "wvkbd: support cross compilation";
|
||||
saneCommit = "34379f5770662b483ab0cbe252cf23dd663d84dc";
|
||||
hash = "sha256-Duim5hPBtfGePBte29ZUtojyRAts9lQlbleUsTJNkwI=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "python310Packages.gssapi: support cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/247048";
|
||||
saneCommit = "4766ae46f863734fbe96dc4e537870b6b3894cf4";
|
||||
hash = "sha256-qCAJjPRoH8nvKzB+uwDQtGQbFfHS/MiY7m1J0BMl7tY=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "perlPackages.FileBaseDir: 0.08 -> 0.09";
|
||||
saneCommit = "acc990b04bbe8c99587eadccc65f100c326ec204";
|
||||
hash = "sha256-8s789GGARJH1i088OGBjGGnL2l5m8Q+iBPS213QsS6A=";
|
||||
hash = "sha256-7JZqAlcNFP6orJZCEqe5eodVxTUHeSLGyniRvw/+PuQ=";
|
||||
})
|
||||
# (fetchpatch' {
|
||||
# title = "perlPackages.FileBaseDir: 0.08 -> 0.09";
|
||||
# saneCommit = "acc990b04bbe8c99587eadccc65f100c326ec204";
|
||||
# hash = "sha256-8s789GGARJH1i088OGBjGGnL2l5m8Q+iBPS213QsS6A=";
|
||||
# })
|
||||
# (fetchpatch' {
|
||||
# title = "perlPackages.TestFile: 1.443 -> 1.993";
|
||||
# saneCommit = "6cf080fb51d034f9c2ddd60cef7dee7d041afd3e";
|
||||
# hash = "sha256-fAZpduh3JZeFixJ4yX0wkh/GRp0gYKsTT+XkNdpK7CU=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
title = "xdg-utils: enable cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/246954";
|
||||
saneCommit = "b7aa5e0c1ec06723cf1594de192703a65be21497";
|
||||
hash = "sha256-4iE2EDIe3nSkB8xFXucyCH7k2oiIoBiuYZYAtF31G38=";
|
||||
hash = "sha256-jA84RKt4nOEZsBlACaqa0GeBiDdFOBYARgAq4NgTqtY=";
|
||||
})
|
||||
# (fetchpatch' {
|
||||
# # N.B.: duplicates outstanding, merged PR: <https://github.com/NixOS/nixpkgs/pull/246362>
|
||||
# # - also a stale, approved PR: <https://github.com/NixOS/nixpkgs/pull/245761>
|
||||
# title = "libgudev: support cross compilation";
|
||||
# saneCommit = "4dc30718fe01e9dbed4ffc2ff375148da218e86b";
|
||||
# hash = "sha256-Nb2LphSyv8Dayqfwqfua0eKtNzsnaf7PC/KYUhIvnT8=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
title = "gupnp: fix cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/246931";
|
||||
saneCommit = "3af24c9e517689d048bb62511c6e8acf9bc55684";
|
||||
# hash = "sha256-6yl6I/zOcUe0TDKEi/vjEzyU4OWoGi0PMht3VOKWmQo=";
|
||||
hash = "sha256-NYA72+liKZXnUoAGor3MR62YmZNsNPJ3SEfWGhpeiY4=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "perlPackages.TestFile: 1.443 -> 1.993";
|
||||
saneCommit = "6cf080fb51d034f9c2ddd60cef7dee7d041afd3e";
|
||||
hash = "sha256-fAZpduh3JZeFixJ4yX0wkh/GRp0gYKsTT+XkNdpK7CU=";
|
||||
title = "blueman: support cross compilation";
|
||||
saneCommit = "e070195bdf213dffb0164574397b6a7417f81c9e";
|
||||
hash = "sha256-6JnIJCVBbV4tmFinX7Qv2wO2AThrgxrnyb9T4Ov6p5w=";
|
||||
})
|
||||
# (fetchpatch' {
|
||||
# # N.B.: duplicates merged PR: <https://github.com/NixOS/nixpkgs/pull/246369>
|
||||
# title = "tracker: support cross compilation";
|
||||
# saneCommit = "bea390fd0c4fda96db5b1fad06ee071a10561305";
|
||||
# hash = "sha256-Y2tVoTvSIIT9ufghqqsXgmqWq9daH+WKj4JHZgWbWwE=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
title = "tracker-miners: support cross compilation";
|
||||
saneCommit = "24b062309ea8baa2d8303c0610c9ec7b8c399e8b";
|
||||
hash = "sha256-Jj+1z2DeCEY+DqI1J4vYjYJwDDMRcA93CqpZSXzG0wE=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
# alternate fix for upower; Arturrin
|
||||
title = "upower: Fix cross";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/247031";
|
||||
hash = "sha256-Skn1dO+SDXbrWYWn8QpSBzYaTis/KUXLEY+pJxO9pWM=";
|
||||
})
|
||||
# (fetchpatch' {
|
||||
# # PR also includes the nativeBuildInputs fix
|
||||
# title = "upower: fix cross compilation";
|
||||
# prUrl = "https://github.com/NixOS/nixpkgs/pull/246945";
|
||||
# saneCommit = "3ab262456acc016c8dc834df1d1f7e61a00e01e3";
|
||||
# # hash = "sha256-kTFZVu9oDiYH4W4SoQQj0pNuo9hTJk6jUy+hy34HUtA=";
|
||||
# hash = "sha256-PpC9YRMqg/wPfFgAPNV80mwbZWCKxNi4agxNf0yQutI=";
|
||||
# })
|
||||
# (fetchpatch' {
|
||||
# title = "upower: don't pass unnecessary nativeBuildInputs";
|
||||
# saneCommit = "e2cbfb1bc81afadc5d31c18d43e774fa9a985f98";
|
||||
# hash = "sha256-7Q9Fjp7xrw3e887inc5cc01OvuOhThnVYduSLNtv2d0=";
|
||||
# })
|
||||
(fetchpatch' {
|
||||
title = "iio-sensor-proxy: support cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/246947";
|
||||
saneCommit = "dc1c3341fef6c64d5fbc983670819cf7932f5be1";
|
||||
# hash = "sha256-lSVGjNepRLMfLgaAG3zv/BfoEhJg8yX7EqaCgu8/b8I=";
|
||||
hash = "sha256-0rO+qkWgdrZsuHnoRdQ0SqEEW+PYcJaLixrOgJSOssk=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "mpvScripts.mpris: support cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/247087";
|
||||
saneCommit = "f7cd92e2afa26852ccf53f8ca59c13d82bf7bf64";
|
||||
# hash = "sha256-MB3qloOW4pXZmbCIVsUKP2DnPoePmBf+qRc2x/o+nDw=";
|
||||
hash = "sha256-uMbnfO0WY2/AFpvvnHQGKVSTE2rPrm3SCef4f04Bt78=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "wvkbd: support cross compilation";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/247083";
|
||||
saneCommit = "34379f5770662b483ab0cbe252cf23dd663d84dc";
|
||||
# hash = "sha256-Duim5hPBtfGePBte29ZUtojyRAts9lQlbleUsTJNkwI=";
|
||||
hash = "sha256-aC7zEM4pV4YXh5X0m2nYAkH0vLgVTNq8bgIP8CLZy4I=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "clapper: support cross compilation";
|
||||
saneCommit = "8a171b49aca406f8220f016e56964b3fae53a3df";
|
||||
hash = "sha256-R11IYatGhSXxZnJxJid519Oc9Kh56D9NT2/cxf2CLuM=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "gcr_4: support cross compilation";
|
||||
saneCommit = "a8c3d69236fa67382a8c18cc1ef0f34610fd3275";
|
||||
hash = "sha256-UnLqkkpXxBKaqlsoD1jUIigZkxgLtNpjmMHOx10HpfE=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "networkmanager-openvpn: support cross compilation";
|
||||
saneCommit = "6f53c267fbeb2ff543f075032a7e73af2d4bcb9e";
|
||||
hash = "sha256-gq9AyKH7/k2ZVSZ3jpPJPt3uAM+CllXQnaiC1tE1r/8=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "WIP: networkmanager-sstp: support cross compilation";
|
||||
saneCommit = "6de63fe320406ec9a509db721c52b3894a93bda2";
|
||||
hash = "sha256-EY3bQuv/80JbpquUJhc89CcYAgN9A9KkpsSitw/684I=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "WIP: networkmanager-l2tp: support cross compilation";
|
||||
saneCommit = "7a4191c570b0e5a1ab257222c26a4a2ecb945037";
|
||||
hash = "sha256-FiPJhHGqZ8MFwLY+1t6HgbK6ndomFSYUKvApvrikRHE=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "gtkspell2: support cross compilation";
|
||||
saneCommit = "56348833b4411e9fe2016c24c7fc4af1e3c1d28a";
|
||||
hash = "sha256-0RMxouOBw7SUmQDLB2qGey714DaM0AOvZlZ5nB+Lkc4=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "libgnt: 2.14.1 -> 2.14.3";
|
||||
prUrl = "https://github.com/NixOS/nixpkgs/pull/246937";
|
||||
saneCommit = "ecd423195d72036a209912868ad02742cb4b6fcd";
|
||||
# hash = "sha256-u4V/UHNtd2c3+FppuJ5LeLNSV8ZaLe8cqj8HmcW2a/0=";
|
||||
hash = "sha256-cGhJSby0K+e1hKPdPZjLFRKvwjGaTbq/kb6Fxj2v8g8=";
|
||||
})
|
||||
(fetchpatch' {
|
||||
title = "pidgin: support cross compilation";
|
||||
saneCommit = "caacbcc54e217f5ee9281422777a7f712765f71a";
|
||||
hash = "sha256-PDCp4GOm6hWcRob4kz7qXZfxAF6YbYrESx9idoS3e/s=";
|
||||
})
|
||||
|
||||
(fetchpatch' {
|
||||
@@ -290,4 +393,14 @@ in [
|
||||
./02-rpi4-uboot.patch
|
||||
|
||||
# ./07-duplicity-rich-url.patch
|
||||
|
||||
# fix qt6.qtbase and qt6.qtModule to cross-compile.
|
||||
# unfortunately there's some tangle that makes that difficult to do via the normal `override` facilities
|
||||
# ./2023-03-03-qtbase-cross-compile.patch
|
||||
|
||||
# qt6 qtwebengine: specify `python` as buildPackages
|
||||
# ./2023-06-02-qt6-qtwebengine-cross.patch
|
||||
|
||||
# Jellyfin: don't build via `libsForQt5.callPackage`
|
||||
# ./2023-06-06-jellyfin-no-libsForQt5-callPackage.patch
|
||||
]
|
||||
|
@@ -5,6 +5,7 @@
|
||||
final: prev:
|
||||
let
|
||||
pkgs = import ./pkgs.nix;
|
||||
preferences = import ./preferences.nix;
|
||||
disable-flakey-tests = import ./disable-flakey-tests.nix;
|
||||
optimizations = import ./optimizations.nix;
|
||||
cross = import ./cross.nix;
|
||||
@@ -18,6 +19,7 @@ let
|
||||
in
|
||||
renderOverlays [
|
||||
pkgs
|
||||
preferences
|
||||
disable-flakey-tests
|
||||
(ifCross optimizations)
|
||||
(ifCross cross)
|
||||
|
1127
overlays/cross.nix
1127
overlays/cross.nix
File diff suppressed because it is too large
Load Diff
@@ -15,36 +15,51 @@ let
|
||||
(p.stdenv.targetPlatform.system == "aarch64-linux")
|
||||
(f upstream)
|
||||
);
|
||||
emulatedOnly = f: p: p.overrideAttrs (upstream:
|
||||
next.lib.optionalAttrs
|
||||
(p.stdenv.targetPlatform.system == "aarch64-linux" && p.stdenv.buildPlatform.system == "aarch64-linux")
|
||||
(f upstream)
|
||||
);
|
||||
dontCheckAarch64 = aarch64Only (_: {
|
||||
# only `dontCheck` if the package is being built for aarch64
|
||||
doCheck = false;
|
||||
doInstallCheck = false;
|
||||
});
|
||||
dontCheckEmulated = emulatedOnly (_: {
|
||||
doCheck = false;
|
||||
});
|
||||
in {
|
||||
# 2023/07/27
|
||||
# 4 tests fail when building `host-pkgs.moby.emulated.elfutils`
|
||||
# it might be enough to only disable checks when targeting aarch64, which could reduce rebuilds?
|
||||
elfutils = dontCheckAarch64 prev.elfutils;
|
||||
|
||||
# 2023/07/31
|
||||
# tests just hang after mini-record-2
|
||||
# only for binfmt-emulated aarch64 -> aarch64 build
|
||||
gnutls = dontCheckEmulated prev.gnutls;
|
||||
|
||||
# 2023/07/31
|
||||
# tests fail (not timeout), but only when cross compiling, and not on servo (so, due to binfmt?)
|
||||
gupnp = dontCheck prev.gupnp;
|
||||
|
||||
# hangs during checkPhase (or maybe it just takes 20-30 minutes)
|
||||
# libqmi = dontCheckEmulated prev.libqmi;
|
||||
|
||||
# 2023/07/28
|
||||
# "7/7 libwacom:all / pytest TIMEOUT 30.36s killed by signal 15 SIGTERM"
|
||||
# N.B.: it passes on x86_64, but only if it's not CPU starved (i.e. nix build with -j1 if it fails)
|
||||
libwacom = aarch64Only (_: {
|
||||
doCheck = false;
|
||||
mesonFlags = [ "-Dtests=disabled" ];
|
||||
}) prev.libwacom;
|
||||
|
||||
pipewire = prev.pipewire.override {
|
||||
# avoid a dep on python3.10-PyQt5, which has mixed qt5 versions.
|
||||
# this means we lose firewire support (oh well..?)
|
||||
ffadoSupport = false;
|
||||
};
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(py-next: py-prev: {
|
||||
pyarrow = py-prev.pyarrow.overridePythonAttrs (upstream: {
|
||||
# 2023/04/02
|
||||
# disabledTests = upstream.disabledTests ++ [ "test_generic_options" ];
|
||||
disabledTestPaths = upstream.disabledTestPaths or [] ++ [
|
||||
disabledTestPaths = (upstream.disabledTestPaths or []) ++ [
|
||||
"pyarrow/tests/test_flight.py"
|
||||
];
|
||||
});
|
||||
@@ -54,4 +69,9 @@ in {
|
||||
# 2023/02/22
|
||||
# "27/37 tracker:core / service TIMEOUT 60.37s killed by signal 15 SIGTERM"
|
||||
tracker = dontCheck prev.tracker;
|
||||
|
||||
# 2023/07/31
|
||||
# fails a test (didn't see which one)
|
||||
# only for binfmt-emulated aarch64 -> aarch64 build
|
||||
umockdev = dontCheckEmulated prev.umockdev;
|
||||
})
|
||||
|
29
overlays/preferences.nix
Normal file
29
overlays/preferences.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
# personal preferences
|
||||
# prefer to encode these in `sane.programs`
|
||||
# resort to this method for e.g. system dependencies, or things which are referenced from too many places.
|
||||
(next: prev: {
|
||||
pipewire = prev.pipewire.override {
|
||||
# avoid a dep on python3.10-PyQt5, which has mixed qt5 versions.
|
||||
# this means we lose firewire support (oh well..?)
|
||||
ffadoSupport = false;
|
||||
};
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(pySelf: pySuper: {
|
||||
# TODO(2023/08/02): cryptography (a dependency of komikku -> keyring -> secretstorage -> cryptography) doesn't cross compile
|
||||
# so disable it. can be re-enabled in next staging -> master merge.
|
||||
# see:
|
||||
# - <https://github.com/NixOS/nixpkgs/pull/245287/files>
|
||||
# - <https://github.com/NixOS/nixpkgs/pull/244135>
|
||||
keyring = (pySuper.keyring.override {
|
||||
secretstorage = null;
|
||||
jeepney = null;
|
||||
}).overrideAttrs (upstream: {
|
||||
postPatch = (upstream.postPatch or "") + ''
|
||||
sed -i /SecretStorage/d setup.cfg
|
||||
sed -i /jeepney/d setup.cfg
|
||||
'';
|
||||
});
|
||||
})
|
||||
];
|
||||
})
|
87
pkgs/additional/chatty-latest/default.nix
Normal file
87
pkgs/additional/chatty-latest/default.nix
Normal file
@@ -0,0 +1,87 @@
|
||||
{ chatty
|
||||
, fetchFromGitLab
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, itstool
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
# , wrapGAppsHook
|
||||
# , evolution-data-server
|
||||
, feedbackd
|
||||
, glibmm
|
||||
, gnome-desktop
|
||||
, gspell
|
||||
# , gtk3
|
||||
, json-glib
|
||||
, libgcrypt
|
||||
, libhandy
|
||||
, libphonenumber
|
||||
, modemmanager
|
||||
, olm
|
||||
, pidgin
|
||||
, protobuf
|
||||
, sqlite
|
||||
# NEW
|
||||
, evolution-data-server-gtk4
|
||||
, glib-networking
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
chatty.overrideAttrs (upstream: {
|
||||
pname = "chatty-latest";
|
||||
version = "unstable-2023-08-01";
|
||||
src = fetchFromGitLab {
|
||||
domain = "source.puri.sm";
|
||||
owner = "Librem5";
|
||||
repo = "chatty";
|
||||
rev = "ca556b7df539b37e08ed2c73e2beb2b6cc7b91f3";
|
||||
hash = "sha256-Tzdai2VU9wh/HW52uB+9uzpQymZmTqwiGqB6N20IvxE=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
postPatch = (upstream.postPatch or "") + ''
|
||||
substituteInPlace build-aux/meson/postinstall.py \
|
||||
--replace 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
#wrapGAppsHook
|
||||
|
||||
# NEW
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# evolution-data-server
|
||||
feedbackd
|
||||
glib-networking # for TLS
|
||||
glibmm
|
||||
gnome-desktop
|
||||
gspell
|
||||
# gtk3
|
||||
json-glib
|
||||
libgcrypt
|
||||
libhandy
|
||||
libphonenumber
|
||||
modemmanager
|
||||
olm
|
||||
pidgin
|
||||
protobuf
|
||||
sqlite
|
||||
|
||||
# NEW
|
||||
libadwaita
|
||||
gtk4
|
||||
evolution-data-server-gtk4
|
||||
];
|
||||
})
|
5684
pkgs/additional/fractal-latest/Cargo.lock
generated
Normal file
5684
pkgs/additional/fractal-latest/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,7 @@
|
||||
{ fractal-next, fetchFromGitLab, rustPlatform }:
|
||||
|
||||
(fractal-next.overrideAttrs (prev: rec {
|
||||
pname = "fractal-latest";
|
||||
version = "unstable-2023-07-28";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
|
@@ -211,16 +211,10 @@ let
|
||||
src = ./src;
|
||||
};
|
||||
};
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "sane-scripts";
|
||||
paths = lib.attrValues sane-bin;
|
||||
passthru = sane-bin // {
|
||||
lib = sane-lib;
|
||||
};
|
||||
meta = {
|
||||
description = "collection of scripts associated with sane systems";
|
||||
homepage = "https://git.uninsane.org";
|
||||
platforms = lib.platforms.all;
|
||||
in sane-bin // {
|
||||
lib = sane-lib;
|
||||
all = symlinkJoin {
|
||||
name = "sane-scripts";
|
||||
paths = lib.attrValues sane-bin;
|
||||
};
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@ options:
|
||||
--full display all results
|
||||
--help show this help message and exit
|
||||
--manga show only manga results
|
||||
--h265 show only H.265 video (HEVC)
|
||||
--json output one json document instead of a human-readable table
|
||||
--top=<n> show the <n> top rated torrents (default: 5)
|
||||
--verbose show more information, useful for debugging/development
|
||||
|
@@ -3,6 +3,7 @@
|
||||
, bemenu
|
||||
, bonsai
|
||||
, conky
|
||||
, coreutils
|
||||
, dbus
|
||||
, fetchgit
|
||||
, fetchpatch
|
||||
@@ -135,10 +136,23 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i 's@/usr/lib/udev/rules\.d@/etc/udev/rules.d@' Makefile
|
||||
# allow sxmo to source its init file
|
||||
sed -i "s@/etc/profile\.d/sxmo_init.sh@$out/etc/profile.d/sxmo_init.sh@" scripts/core/*.sh
|
||||
sed -i "s@/usr/bin/@@g" scripts/core/sxmo_version.sh
|
||||
# remove absolute paths
|
||||
substituteInPlace scripts/core/sxmo_version.sh \
|
||||
--replace "/usr/bin/" ""
|
||||
|
||||
# let superd find sxmo service binaries at runtime via PATH
|
||||
# TODO: replace with fully-qualified paths
|
||||
sed -i 's:ExecStart=/usr/bin/:ExecStart=/usr/bin/env :' configs/superd/services/*.service
|
||||
|
||||
# install udev rules to where nix expects
|
||||
substituteInPlace Makefile \
|
||||
--replace "/usr/lib/udev/rules.d" "/etc/udev/rules.d"
|
||||
# avoid relative paths in udev rules
|
||||
substituteInPlace configs/udev/90-sxmo.rules \
|
||||
--replace "/bin/chgrp" "${coreutils}/bin/chgrp" \
|
||||
--replace "/bin/chmod" "${coreutils}/bin/chmod"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@@ -24,6 +24,7 @@ let
|
||||
bonsai = unpatched.bonsai or (callPackage ./additional/bonsai { });
|
||||
bootpart-uefi-x86_64 = callPackage ./additional/bootpart-uefi-x86_64 { };
|
||||
cargoDocsetHook = callPackage ./additional/cargo-docset/hook.nix { };
|
||||
chatty-latest = callPackage ./additional/chatty-latest { };
|
||||
feeds = lib.recurseIntoAttrs (callPackage ./additional/feeds { });
|
||||
lemoa = callPackage ./additional/lemoa { };
|
||||
jellyfin-media-player-qt6 = callPackage ./additional/jellyfin-media-player-qt6 { };
|
||||
@@ -43,8 +44,7 @@ let
|
||||
mpv-uosc-latest = callPackage ./additional/mpv-uosc-latest { };
|
||||
mx-sanebot = callPackage ./additional/mx-sanebot { };
|
||||
rtl8723cs-firmware = callPackage ./additional/rtl8723cs-firmware { };
|
||||
# TODO: use `recurseIntoAttrs` ?
|
||||
sane-scripts = callPackage ./additional/sane-scripts { };
|
||||
sane-scripts = lib.recurseIntoAttrs (callPackage ./additional/sane-scripts { });
|
||||
static-nix-shell = callPackage ./additional/static-nix-shell { };
|
||||
sublime-music-mobile = callPackage ./additional/sublime-music-mobile { };
|
||||
sxmo-utils = callPackage ./additional/sxmo-utils { };
|
||||
@@ -89,6 +89,8 @@ let
|
||||
|
||||
cozy = callPackage ./patched/cozy { inherit (unpatched) cozy; };
|
||||
|
||||
engrampa = callPackage ./patched/engrampa { inherit (unpatched) mate; };
|
||||
|
||||
# mozilla keeps nerfing itself and removing configuration options
|
||||
firefox-unwrapped = callPackage ./patched/firefox-unwrapped { inherit (unpatched) firefox-unwrapped; };
|
||||
|
||||
|
14
pkgs/patched/engrampa/default.nix
Normal file
14
pkgs/patched/engrampa/default.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ mate
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
mate.engrampa.overrideAttrs (super: {
|
||||
pname = "engrampa-sane";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mate-desktop";
|
||||
repo = "engrampa";
|
||||
# point to a version > 1.27.0, for working cross compilation.
|
||||
# remove this override once engrampa > 1.27.0 is released.
|
||||
rev = "45f52c13baa93857d912effb4f1f9a58c41a0da3";
|
||||
hash = "sha256-j7tASMjBSA+d1a9Fu3G/328aRDqNJjXoITxogRH0YI4=";
|
||||
};
|
||||
})
|
Reference in New Issue
Block a user