This commit is contained in:
Andrea Ciceri 2023-11-08 14:30:47 +01:00
parent d977d7857a
commit c2dc6078f7
Signed by: aciceri
SSH key fingerprint: SHA256:/AagBweyV4Hlfg9u092n8hbHwD5fcB6A3qhDiDA65Rg
6 changed files with 148 additions and 207 deletions

View file

@ -11,28 +11,30 @@
lib,
system,
...
}: let
inherit (inputs.emacs-overlay.overlays.default pkgs pkgs) emacsPackagesFor;
in {
_module.args.pkgs = inputs.nixpkgs.legacyPackages.${system}.extend (self: super: {
extra-package-inputs = lib.mapAttrs' (inputName: input: {
name = builtins.head (builtins.match "extra-package-(.*)" inputName);
value = input;
}) (lib.filterAttrs (inputName: _: ! builtins.isNull (builtins.match "extra-package-.*" inputName)) inputs);
}: {
_module.args.pkgs = lib.foldl (lp: lp.extend) inputs.nixpkgs.legacyPackages.${system} [
(self: super: {
extra-package-inputs = lib.mapAttrs' (inputName: input: {
name = builtins.head (builtins.match "extra-package-(.*)" inputName);
value = input;
}) (lib.filterAttrs (inputName: _: ! builtins.isNull (builtins.match "extra-package-.*" inputName)) inputs);
})
# Some tree-sitter grammars in nixpksg are built with a too new ABI
# https://github.com/NixOS/nixpkgs/issues/209114
# tree-sitter-grammars =
# super.tree-sitter-grammars
# // {
# tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs (_: {
# nativeBuildInputs = [self.nodejs self.tree-sitter];
# configurePhase = ''
# tree-sitter generate --abi 13 src/grammar.json
# '';
# });
# };
});
# (_: _: {
# tree-sitter-grammars =
# super.tree-sitter-grammars
# // {
# tree-sitter-rust = super.tree-sitter-grammars.tree-sitter-rust.overrideAttrs (_: {
# nativeBuildInputs = [self.nodejs self.tree-sitter];
# configurePhase = ''
# tree-sitter generate --abi 13 src/grammar.json
# '';
# });
# };
# }
# )
];
packages = {
treesitGrammars = let
@ -45,25 +47,19 @@
cp $f $out/"libtree-sitter-$(basename $f)"
done
'';
ccrEmacsWithoutPackages = inputs'.emacs-overlay.packages.emacs-unstable.override {
ccrEmacsWithoutPackages = pkgs.emacs29.override {
withSQLite3 = true;
withWebP = true;
withPgtk = true;
};
ccrEmacs = let
emacs =
(emacsPackagesFor self'.packages.ccrEmacsWithoutPackages).emacsWithPackages
(import ./packages.nix pkgs);
in
pkgs.runCommand "emacs" {} ''
cp -r ${emacs} emacs
chmod 700 -R emacs
mkdir emacs/share/emacs
cp -r emacs $out
'';
default = self'.packages.ccrEmacs;
ccrEmacs =
(pkgs.emacsPackagesFor config.packages.ccrEmacsWithoutPackages).emacsWithPackages
(import ./packages.nix pkgs);
default = config.packages.ccrEmacs;
};
apps = {
ccrEmacs.program = "${self'.packages.ccrEmacs}/bin/emacs";
ccrEmacs.program = "${config.packages.ccrEmacs}/bin/emacs";
default = config.apps.ccrEmacs;
};
};