Compare commits

...

67 Commits

Author SHA1 Message Date
d86be97ced cross: fix emulateBuilder to use build bash in the vmRunCommand 2023-08-05 09:54:56 +00:00
44388b132a cross: fix enableParallelBuilding to work 2023-08-05 09:54:56 +00:00
cd6b112d33 build bonsai/hare/qbe without relying on binfmt emulation 2023-08-05 09:54:56 +00:00
8eb6be863a cross: koreader: build luajit from emulated stdenv, instead of grabbing it from the emulated packageset 2023-08-05 09:54:14 +00:00
3b5ff938ce flake: apply nixpatches/list.nix using the build patcher, not the emulated host patcher 2023-08-05 09:32:50 +00:00
2685c91dd9 cross: build mepo without emulating as many packages 2023-08-05 00:42:07 +00:00
169354bd33 sxmo-utils: fix udev rule 2023-08-04 22:39:30 +00:00
cc1889d2dd mpvScripts.mpris: acquire cross compilation patch via nixpkgs PR 2023-08-04 08:16:06 +00:00
22ffcb1b55 remove fwupd to reduce cross-compilation patches 2023-08-04 07:47:00 +00:00
76abbac6f6 fwupd: define as a sane.program 2023-08-04 07:35:13 +00:00
12e15b6456 wvkbd: fetch cross-compilation fix via nixpkgs PR 2023-08-04 07:27:11 +00:00
8c2a4a31bf cross compilation: remove dead code 2023-08-04 07:21:15 +00:00
1fcfa04447 remove python.pkgs.cryptography as it doesn't cross compile (yet) 2023-08-04 07:19:30 +00:00
f3af31c727 cross: comment out packages i haven't used for an extended time 2023-08-04 05:20:20 +00:00
21e22096b1 uninsane-dot-org: 2023-07-25 -> 2023-08-03 2023-08-04 04:59:56 +00:00
c9383da414 cross: get bonsai to build w/o emulating anything other than stdenv 2023-08-04 04:07:06 +00:00
b82bb13f4f gssapi cross fix: pull from nixpkgs pr 2023-08-04 00:39:02 +00:00
346a68884b cross: fix qt5.overrideScope' deprecation wraning 2023-08-03 23:47:26 +00:00
eb04129959 cross: emulate hare/harec at the consumer level 2023-08-03 23:46:29 +00:00
2e93f58795 update cross-compilation PR URIs 2023-08-03 22:12:10 +00:00
26b77221da nixpkgs: 2023-08-01 -> 2023-08-02
```
• Updated input 'nixpkgs-unpatched':
    'github:nixos/nixpkgs/9e1960bc196baf6881340d53dccb203a951745a2' (2023-08-01)
  → 'github:nixos/nixpkgs/66aedfd010204949cb225cf749be08cb13ce1813' (2023-08-02)
```
2023-08-03 12:32:21 +00:00
6877507ae0 xdg-utils: patch cross compilation via nixpkgs PR 2023-08-03 12:30:31 +00:00
8757f86c57 gupnp: patch via nixpkgs PR 2023-08-03 12:06:40 +00:00
633997f452 gupnp: update patch to point to nixpkgs PR 2023-08-03 11:38:43 +00:00
ff9163b365 iio-sensor-proxy: fix cross via nixpkgs PR 2023-08-03 10:34:50 +00:00
edd86e3981 upower: fix cross via nixpkgs PR 2023-08-03 10:28:21 +00:00
c9b60788b5 update bonsai/hare-ev/hare-json patches 2023-08-03 09:49:19 +00:00
66dad1e519 libgnt patch: use nixpkgs PR 2023-08-03 09:23:26 +00:00
687ceba474 libkiwix: downgrade to 12.0.0 again 2023-08-03 08:47:15 +00:00
6e85f26964 gupnp: fix via upstream PR 2023-08-03 08:46:36 +00:00
40dc8d698e libkiwix: 12.0.0 -> 12.1.0 2023-08-03 06:10:23 +00:00
350f7e32f8 desko: disable dino/gajim XMPP clients until i need them again 2023-08-03 06:10:03 +00:00
3a5b72a258 moby: ship chatty 2023-08-03 06:10:03 +00:00
b40ac95b5c cross: get chatty-latest to cross compile 2023-08-03 06:10:03 +00:00
c1a8d1aa18 sane-bt-search: document the --h265 option 2023-08-03 05:28:32 +00:00
03d7806adf flakey-tests: leave a note about libqmi 2023-08-03 00:39:44 +00:00
9d06bfb544 cross: compile tangram with less emulation 2023-08-03 00:39:18 +00:00
bf5ac3cb76 cross: get mepo to cross compile
haven't tried running it. its dependency on gpsd drags in the host
python, so probably *something* will need fixing.

this reduces the closure by a full 1GB though.
2023-08-03 00:38:21 +00:00
85e63caeb0 nixpkgs: 2023-07-29 -> 2023-08-01
```
• Updated input 'nixpkgs-unpatched':
    'github:nixos/nixpkgs/e6ab46982debeab9831236869539a507f670a129' (2023-07-29)
  → 'github:nixos/nixpkgs/9e1960bc196baf6881340d53dccb203a951745a2' (2023-08-01)
```
2023-08-02 21:32:11 +00:00
dcf97b70e1 programs: use the declPackageSet helper 2023-08-02 21:20:50 +00:00
44059b34c7 don't ship unused sane-scripts 2023-08-02 21:09:16 +00:00
561802ec41 cross: add links to upstream PRs/issues 2023-08-02 20:30:24 +00:00
b464e60a77 chatty: build w/o samba 2023-08-02 20:30:06 +00:00
b73b4b0439 chatty: persist the share directory 2023-08-02 11:36:49 +00:00
991685d149 chatty-latest: add glib-networking to fix TLS 2023-08-02 11:13:11 +00:00
4d7111feef chatty: try a newer build (still fails homeserver handshake) 2023-08-02 10:49:44 +00:00
bd8cec311e cleanup: guiApps syntax 2023-08-02 08:35:36 +00:00
fd174a0475 gui: ship nheko on moby again 2023-08-02 08:33:58 +00:00
3e83a1956c cross: try to fix fractal compilation (no luck) 2023-08-02 08:31:48 +00:00
57f272c9ba sway: expose needed env vars to user dbus services (xdg-desktop-portal) 2023-08-02 08:23:14 +00:00
186c09594d sway: remove default packages (unused) 2023-08-02 08:19:56 +00:00
c74ba4e733 sway: enable xdg-desktop-portal-gtk
it's failing to start though
2023-08-02 08:16:05 +00:00
8a126d0a64 programs: explicitly declare dependencies on gnome-keyring 2023-08-02 07:40:57 +00:00
2e04a512b3 programs: get a semi-working build of chatty (need to set xdg.portal?) 2023-08-02 07:15:33 +00:00
b4c83987f9 overlays: split the pipewire ffado tweak into a preferences overlay 2023-08-02 06:38:46 +00:00
cc09832187 cross: fix libshumate build (used by fractal) 2023-08-02 06:25:53 +00:00
33b41482e2 cross: use upstream iio-sensor-proxy fix 2023-08-02 06:24:59 +00:00
6e523e7162 fractal: fix fractal-latest, and persist data directory 2023-08-02 06:24:00 +00:00
995c586fd9 nixpatches: remove upstreamed gpodder xdg-utils patch 2023-08-01 22:50:20 +00:00
3aa5852cf2 alsa-project as a scope: push patch upstream 2023-08-01 22:48:02 +00:00
8efad09cf4 cross: remove unused qt stuff 2023-08-01 22:47:43 +00:00
a7b71979f9 cross: move gst-plugins-good override into nheko
and fully disable the qt5 stuff; reduces rebuilds & saves 20MB closure
2023-08-01 22:04:28 +00:00
1082ab22bf cross: work to upstream a few more things (deployed & working) 2023-08-01 21:48:25 +00:00
5b2598bcaa cross: upstream a bunch of stuff (still waiting on build...) 2023-08-01 08:07:27 +00:00
1ba877b325 upnp-forward: add a timeout to the unit
especially, this lets the target die, and the timer restart, when the UPNP stuff hangs
2023-07-31 11:06:04 +00:00
7ab5cfa698 cross: update gcr_4 blockers 2023-07-31 10:31:12 +00:00
8a367b718d moby: replace file-roller with xarchiver 2023-07-31 09:59:15 +00:00
37 changed files with 7060 additions and 757 deletions

14
flake.lock generated
View File

@@ -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"
},

View File

@@ -94,7 +94,17 @@
evalHost = { name, local, target }: nixpkgs.lib.nixosSystem {
system = target;
modules = [
(import ./hosts/instantiate.nix { localSystem = local; hostName = name; })
{
nixpkgs = (if (local != null) then {
buildPlatform = local;
} else {}) // {
# TODO: does the earlier `system` arg to nixosSystem make its way here?
hostPlatform.system = target;
};
# nixpkgs.buildPlatform = local; # set by instantiate.nix instead
# nixpkgs.config.replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
}
(import ./hosts/instantiate.nix { hostName = name; })
self.nixosModules.default
self.nixosModules.passthru
{
@@ -103,12 +113,6 @@
self.overlays.sane-all
];
}
({ lib, ... }: {
# TODO: does the earlier `system` arg to nixosSystem make its way here?
nixpkgs.hostPlatform.system = target;
# nixpkgs.buildPlatform = local; # set by instantiate.nix instead
# nixpkgs.config.replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
})
];
};
in {
@@ -174,6 +178,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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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.

View 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
];
};
}

View File

@@ -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
];

View File

@@ -0,0 +1,9 @@
{ ... }:
{
sane.programs.element-desktop = {
# creds/session keys, etc
persist.private = [ ".config/Element" ];
suggestedPrograms = [ "gnome-keyring" ];
};
}

View File

@@ -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" ];
};
}

View 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;
};
}

View 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;
};
}

View File

@@ -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

View File

@@ -0,0 +1,4 @@
{ ... }:
{
sane.programs.tuba.suggestedPrograms = [ "gnome-keyring" ];
}

View 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;
};
}

View File

@@ -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"

View File

@@ -1,10 +1,10 @@
# trampoline from flake.nix into the specific host definition, while doing a tiny bit of common setup
# args from flake-level `import`
{ hostName, localSystem }:
{ hostName }:
# module args
{ lib, ... }:
{ ... }:
{
imports = [
@@ -14,5 +14,4 @@
];
networking.hostName = hostName;
nixpkgs.buildPlatform = lib.mkIf (localSystem != null) localSystem;
}

View File

@@ -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"
];
};

View File

@@ -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; };

View File

@@ -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/*
''

View File

@@ -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;

View File

@@ -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";
};
};

View File

@@ -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)
];
}

View File

@@ -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

View File

@@ -15,9 +15,15 @@
patchedFlakeFor = system: import "${patchedPkgsFor system}/flake.nix";
patchedFlakeOutputsFor = system:
(patchedFlakeFor system).outputs { inherit self; };
extractBuildPlatform = nixosSystemArgs:
let
firstMod = builtins.head nixosSystemArgs.modules;
in
firstMod.nixpkgs.buildPlatform or nixosSystemArgs.system;
in
{
lib.nixosSystem = args: (patchedFlakeOutputsFor args.system).lib.nixosSystem args;
lib.nixosSystem = args: (patchedFlakeOutputsFor (extractBuildPlatform args)).lib.nixosSystem args;
legacyPackages = builtins.mapAttrs
(system: _:

View File

@@ -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
]

View File

@@ -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)

File diff suppressed because it is too large Load Diff

View File

@@ -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
View 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
'';
});
})
];
})

View 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

File diff suppressed because it is too large Load Diff

View File

@@ -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";

View File

@@ -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;
};
}

View File

@@ -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

View File

@@ -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 = [

View File

@@ -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; };

View 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=";
};
})