Compare commits

..

No commits in common. "4c8d7df4328bc873ade20fa53a188deffadde67f" and "388891aa555151dc029be90032c94cf1bd13e92d" have entirely different histories.

8 changed files with 224 additions and 34 deletions

28
.travis.yml Normal file
View File

@ -0,0 +1,28 @@
version: ~> 1.0
import: nix-community/nix-travis-ci:nix.yml@main
dist: xenial
os: linux
env:
global:
- CACHIX_CACHE="xeals"
- NUR_REPO="xeals"
jobs:
include:
- env: NIX_PATH=nixpkgs=channel:nixpkgs-unstable
- env: NIX_PATH=nixpkgs=channel:nixos-unstable
# - env: NIX_PATH=nixpkgs=channel:nixos-20.03
script:
- nix-build ci.nix -kA buildOutputs
- nix eval -f default.nix 'lib'
- nix eval -f default.nix 'modules'
- nix eval -f default.nix 'overlays'
after_success:
- if [ -n "${CACHIX_CACHE}" ]; then nix-build ci.nix -kA cacheOutputs | cachix push "${CACHIX_CACHE}"; fi
- if [[ NUR_REPO != "xeals" && "cron" != "${TRAVIS_EVENT_TYPE}" && "false" = "${TRAVIS_PULL_REQUEST}" && "master" = "${TRAVIS_BRANCH}" ]]; then
curl -XPOST "https://nur-update.herokuapp.com/update?repo=${NUR_REPO}"; fi

View File

@ -2,26 +2,44 @@
**My personal [NUR](https://github.com/nix-community/NUR) repository** **My personal [NUR](https://github.com/nix-community/NUR) repository**
[CI](https://git.xeals.me/xeals/nur-packages/actions) [![Cachix Cache](https://img.shields.io/badge/cachix-xeals-blue.svg)](https://xeals.cachix.org) [![CI](https://github.com/xeals/nur-packages/actions/workflows/build.yml/badge.svg)](https://github.com/xeals/nur-packages/actions) [![Cachix Cache](https://img.shields.io/badge/cachix-xeals-blue.svg)](https://xeals.cachix.org)
## Using ## Noteworthy packages
Using packages is easier through the combined [NUR](https://github.com/nix-community/NUR) flake. ### Jetbrains with plugins
A fan of the Emacs/Vim/VSCode plugin builder? Now enjoy it with your favourite Jetbrains IDE!
The system is mostly proof-of-concept and there are a couple of issues with it at the moment, but it works for what is available in the repo.
#### Using
```nix ```nix
# flake.nix { pkgs ? import <nixpkgs> {} }:
{ let
inputs = { xeals = import (builtins.fetchTarball "https://git.xeal.me/xeals/nur-packages/archive/master.tar.gz") {
xeals.url = "git+https://git.xeal.me/xeals/nur-packages"; # Direct inherit pkgs;
xeals.url = "github:xeals/nur-packages"; # GitHub mirror
}; };
in
outputs = { nixpkgs, xeals, ... }: { # e.g., for IntelliJ IDEA
nixosConfigurations.foo = nixpkgs.lib.nixosSystem { xeals.jetbrains.ideaCommunityWithPlugins (jpkgs: [
modules = [ jpkgs.ideavim
xeals.nixosModules.betanin jpkgs.checkstyle-idea
]; ])
};
};
}
``` ```
#### Issues
- [ ] The plugin derivation overrides the base instead of extending it; this is really only an issue for the open-source IDEs, and only once they're actually built from source (instead of repackaging the JARs)
- [ ] Plugins must be manually added to the repo; long-term, I'd really want some way to scrape them, or at least have a script to add and update
### spotify-ripper
`spotify-ripper` is pretty flexible in the formats it supports, so the derivation allows you to customize which support packages to build with.
The default package comes with nothing (which is not entirely useful -- this will probably change at some point). See [the builder](./pkgs/tools/misc/spotify-ripper/default.nix) for options.
## General issues
- [ ] `spotify-ripper` does not build on stable NixOS channels before 20.09 when built with m4a or mp4 support, as `fdk-aac-encoder` is not available
- [ ] Due to changes in toolchains affected fixed output hashes, anything using `buildGoModule` and `buildRustPackage` will fail on NixOS 20.03. Override the hashes of `vendor` and `cargoDeps` attributes as needed

12
flake.lock generated
View File

@ -5,11 +5,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1701680307, "lastModified": 1694529238,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -20,11 +20,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1704008649, "lastModified": 1699725108,
"narHash": "sha256-rGPSWjXTXTurQN9beuHdyJhB8O761w1Zc5BqSSmHvoM=", "narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d44d59d2b5bd694cd9d996fd8c51d03e3e9ba7f7", "rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -5,6 +5,10 @@
inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }: outputs = { self, nixpkgs, flake-utils }:
let
inherit (nixpkgs) lib;
inherit (flake-utils.lib) mkApp;
in
flake-utils.lib.eachDefaultSystem flake-utils.lib.eachDefaultSystem
(system: (system:
let let
@ -13,12 +17,14 @@
{ {
packages = import ./pkgs/top-level { localSystem = system; inherit pkgs; }; packages = import ./pkgs/top-level { localSystem = system; inherit pkgs; };
formatter = pkgs.writeShellScriptBin "nur-packages-fmt" ''
${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt .
${pkgs.deadnix}/bin/deadnix -e .
'';
checks = { checks = {
# FIXME: Disabled until I can work out what to do with generated code.
# nixpkgs-fmt = pkgs.writeShellScriptBin "nixpkgs-fmt-check" ''
# ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt --check .
# '';
# deadnix = pkgs.writeShellScriptBin "deadnix-check" ''
# ${pkgs.deadnix}/bin/deadnix --fail .
# '';
# Ensures that the NUR bot can evaluate and find all our packages. # Ensures that the NUR bot can evaluate and find all our packages.
# Normally we'd also run with `--option restrict-eval true`, but # Normally we'd also run with `--option restrict-eval true`, but
# this is incompatible with flakes because reasons. # this is incompatible with flakes because reasons.
@ -41,11 +47,19 @@
devShells.ci = pkgs.mkShellNoCC { devShells.ci = pkgs.mkShellNoCC {
buildInputs = [ pkgs.nix-build-uncached ]; buildInputs = [ pkgs.nix-build-uncached ];
}; };
apps = {
alacritty = mkApp { drv = pkgs.alacritty-ligatures; exePath = "/bin/alacritty"; };
psst-cli = mkApp { drv = pkgs.psst; exePath = "/bin/psst-cli"; };
psst-gui = mkApp { drv = pkgs.psst; exePath = "/bin/psst-gui"; };
samrewritten = mkApp { drv = pkgs.samrewritten; };
spotify-ripper = mkApp { drv = pkgs.spotify-ripper; };
};
}) })
// { // {
nixosModules = nixpkgs.lib.mapAttrs (_: path: import path) (import ./modules) // { nixosModules = lib.mapAttrs (_: path: import path) (import ./modules) // {
default = { default = {
imports = nixpkgs.lib.attrValues self.nixosModules; imports = lib.attrValues self.nixosModules;
}; };
}; };

View File

@ -9,11 +9,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "atlauncher"; pname = "atlauncher";
version = "3.4.35.4"; version = "3.4.35.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${version}/ATLauncher-${version}.jar"; url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${version}/ATLauncher-${version}.jar";
hash = "sha256-M8ygN70yizJM6VEffBh/lH/DneKAzQ5UFzc3g51dja0="; hash = "sha256-CVJQGMnETW9BOn2To09/UuLrseNfovUyEFhcz/zyHOQ=";
}; };
dontUnpack = true; dontUnpack = true;

View File

@ -0,0 +1,62 @@
diff --git a/cardboard/meson.build b/cardboard/meson.build
index b236f71..a90f230 100644
--- a/cardboard/meson.build
+++ b/cardboard/meson.build
@@ -4,24 +4,15 @@ xkbcommon = dependency('xkbcommon')
xcb = dependency('xcb', required: get_option('xwayland'))
wlroots_version = '>=0.10.0'
-wlroots_proj = subproject(
+wlroots = dependency(
'wlroots',
- default_options: ['examples=false'],
required: true,
version: wlroots_version,
)
-wlroots = wlroots_proj.get_variable('wlroots')
-wlroots_conf = wlroots_proj.get_variable('conf_data')
-wlroots_has_xwayland = wlroots_conf.get('WLR_HAS_XWAYLAND') == 1
+have_xwayland = xcb.found()
-if get_option('xwayland').enabled() and not wlroots_has_xwayland
- error('Cannot enable Xwayland support in cardboard: wlroots has been built without Xwayland support')
-endif
-have_xwayland = xcb.found() and wlroots_has_xwayland
-
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
conf_data = configuration_data()
conf_data.set10('HAVE_XWAYLAND', have_xwayland)
diff --git a/cutter/meson.build b/cutter/meson.build
index f1260a4..1485f37 100644
--- a/cutter/meson.build
+++ b/cutter/meson.build
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-only
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
executable(
'cutter',
diff --git a/libcardboard/meson.build b/libcardboard/meson.build
index 89698fe..3ac8115 100644
--- a/libcardboard/meson.build
+++ b/libcardboard/meson.build
@@ -1,11 +1,9 @@
# SPDX-License-Identifier: GPL-3.0-only
libcardboard_inc = include_directories('include')
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
-cereal_proj = subproject('cereal', required: true)
-cereal = cereal_proj.get_variable('cereal_dep')
+cereal = dependency('cereal', required: true, method: 'cmake')
sources = files(
'src/command_protocol.cpp',

View File

@ -0,0 +1,68 @@
{ stdenv
, lib
, fetchFromGitLab
, cereal
, cmake
, libGL
, libX11
, libinput
, libxkbcommon
, meson
, ninja
, pixman
, pkg-config
, tl-expected
, wayland
, wayland-protocols
, wlroots
}:
stdenv.mkDerivation rec {
pname = "cardboard";
version = "20210120.g7b15613";
src = fetchFromGitLab {
owner = "cardboardwm";
repo = "cardboard";
rev = "7b15613e6e1222a6a83d69a2e5da2810dfb45522";
sha256 = "044sb0lv1gcywpdncvlv7npxvbsqcc1mwpk0f6i73dinchdz7gmq";
};
patches = [
./0001-use-system-dependencies.patch
];
# CMake likes to own the configurePhase, but we only need it for dependency
# discovery. Remove it.
configurePhase = "mesonConfigurePhase";
nativeBuildInputs = [
cmake
meson
ninja
pkg-config
];
buildInputs = [
cereal
libGL
libX11
libinput
libxkbcommon
pixman
tl-expected
wayland
wayland-protocols
wlroots
];
passthru.providedSessions = [ "cardboard" ];
meta = with lib; {
description = "Scrollable tiling Wayland compositor designed with laptops in mind";
homepage = "https://gitlab.com/cardboardwm/cardboard";
license = licenses.gpl3;
platforms = wlroots.meta.platforms;
broken = true;
};
}

View File

@ -9,14 +9,14 @@
let let
pname = "cura5"; pname = "cura5";
version = "5.6.0"; version = "5.5.0";
name = "${pname}-${version}"; name = "${pname}-${version}";
cura5 = appimageTools.wrapType2 { cura5 = appimageTools.wrapType2 {
inherit pname version; inherit pname version;
src = fetchurl { src = fetchurl {
url = "https://github.com/Ultimaker/Cura/releases/download/${version}/Ultimaker-Cura-${version}-linux-X64.AppImage"; url = "https://github.com/Ultimaker/Cura/releases/download/${version}/Ultimaker-Cura-${version}-linux-X64.AppImage";
hash = "sha256-EHiWoNpLKHPzv6rZrtNgEr7y//iVcRYeV/TaCn8QpEA="; hash = "sha256-EG5LMiDFUSXFbtRhd15egPkbp12kEp2TdUdLssSy7Jg=";
}; };
extraPkgs = _: [ ]; extraPkgs = _: [ ];
}; };