Merge pull request #12410 from ttuegel/emacs-packages
Emacs package updates
This commit is contained in:
commit
a79040f360
1822
pkgs/applications/editors/emacs-modes/elpa-generated.nix
Normal file
1822
pkgs/applications/editors/emacs-modes/elpa-generated.nix
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -13,46 +13,17 @@ To update the list of packages from ELPA,
|
||||
|
||||
{ fetchurl, lib, stdenv, texinfo }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) makeScope mapAttrs;
|
||||
|
||||
json = builtins.readFile ./elpa-packages.json;
|
||||
manifest = builtins.fromJSON json;
|
||||
|
||||
mkPackage = self: name: recipe:
|
||||
let drv =
|
||||
{ elpaBuild, stdenv, fetchurl }:
|
||||
let
|
||||
unknownFetcher =
|
||||
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
|
||||
fetch =
|
||||
{ inherit fetchurl; }."${recipe.fetch.tag}"
|
||||
or unknownFetcher;
|
||||
args = builtins.removeAttrs recipe.fetch [ "tag" ];
|
||||
src = fetch args;
|
||||
in elpaBuild {
|
||||
pname = name;
|
||||
inherit (recipe) version;
|
||||
inherit src;
|
||||
packageRequires =
|
||||
let lookupDep = d: self."${d}" or null;
|
||||
in map lookupDep recipe.deps;
|
||||
meta = {
|
||||
homepage = "http://elpa.gnu.org/packages/${name}.html";
|
||||
license = stdenv.lib.licenses.free;
|
||||
};
|
||||
};
|
||||
in self.callPackage drv {};
|
||||
|
||||
in
|
||||
|
||||
self:
|
||||
|
||||
let
|
||||
super = removeAttrs (mapAttrs (mkPackage self) manifest) [ "dash" ];
|
||||
|
||||
elpaBuild = import ../../../build-support/emacs/melpa.nix {
|
||||
imported = import ./elpa-generated.nix {
|
||||
inherit (self) callPackage;
|
||||
};
|
||||
|
||||
super = removeAttrs imported [ "dash" ];
|
||||
|
||||
elpaBuild = import ../../../build-support/emacs/elpa.nix {
|
||||
inherit fetchurl lib stdenv texinfo;
|
||||
inherit (self) emacs;
|
||||
};
|
||||
@ -63,11 +34,14 @@ self:
|
||||
});
|
||||
};
|
||||
|
||||
elpaPackages = super // {
|
||||
overrides = {
|
||||
# These packages require emacs-25
|
||||
el-search = markBroken super.el-search;
|
||||
iterators = markBroken super.iterators;
|
||||
midi-kbd = markBroken super.midi-kbd;
|
||||
stream = markBroken super.stream;
|
||||
};
|
||||
|
||||
elpaPackages = super // overrides;
|
||||
|
||||
in elpaPackages // { inherit elpaBuild elpaPackages; }
|
||||
|
60036
pkgs/applications/editors/emacs-modes/melpa-generated.nix
Normal file
60036
pkgs/applications/editors/emacs-modes/melpa-generated.nix
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -14,62 +14,171 @@ To update the list of packages from MELPA,
|
||||
|
||||
{ lib }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) makeScope mapAttrs;
|
||||
|
||||
json = builtins.readFile ./melpa-packages.json;
|
||||
manifest = builtins.fromJSON json;
|
||||
|
||||
mkPackage = self: name: recipe:
|
||||
let drv =
|
||||
{ melpaBuild, stdenv, fetchbzr, fetchcvs, fetchFromGitHub, fetchFromGitLab
|
||||
, fetchgit, fetchhg, fetchsvn, fetchurl }:
|
||||
let
|
||||
unknownFetcher =
|
||||
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
|
||||
fetch =
|
||||
{
|
||||
inherit fetchbzr fetchcvs fetchFromGitHub fetchFromGitLab fetchgit fetchhg
|
||||
fetchsvn fetchurl;
|
||||
}."${recipe.fetch.tag}"
|
||||
or unknownFetcher;
|
||||
args = builtins.removeAttrs recipe.fetch [ "tag" ];
|
||||
src = fetch args;
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/${recipe.recipe.commit}/recipes/${name}";
|
||||
inherit (recipe.recipe) sha256;
|
||||
};
|
||||
in melpaBuild {
|
||||
pname = name;
|
||||
inherit (recipe) version;
|
||||
inherit recipeFile src;
|
||||
packageRequires =
|
||||
let lookupDep = d: self."${d}" or null;
|
||||
in map lookupDep recipe.deps;
|
||||
meta = {
|
||||
homepage = "http://melpa.org/#/${name}";
|
||||
license = stdenv.lib.licenses.free;
|
||||
};
|
||||
};
|
||||
in self.callPackage drv {};
|
||||
|
||||
in
|
||||
|
||||
self:
|
||||
|
||||
let
|
||||
super = mapAttrs (mkPackage self) manifest;
|
||||
imported = import ./melpa-generated.nix { inherit (self) callPackage; };
|
||||
super = builtins.removeAttrs imported [
|
||||
"swbuff-x" # required dependency swbuff is missing
|
||||
];
|
||||
|
||||
markBroken = pkg: pkg.override {
|
||||
melpaBuild = args: self.melpaBuild (args // {
|
||||
meta = (args.meta or {}) // { broken = true; };
|
||||
dontConfigure = pkg: pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
configureScript = "true";
|
||||
});
|
||||
});
|
||||
|
||||
markBroken = pkg: pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
meta = (drv.meta or {}) // { broken = true; };
|
||||
});
|
||||
});
|
||||
|
||||
overrides = {
|
||||
ac-php = super.ac-php.override {
|
||||
inherit (self.melpaPackages) company popup;
|
||||
};
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
|
||||
airline-themes = super.airline-themes.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
bufshow = markBroken super.bufshow;
|
||||
|
||||
# part of a larger package
|
||||
# upstream issue: missing package version
|
||||
cmake-mode = markBroken (dontConfigure super.cmake-mode);
|
||||
|
||||
# upstream issue: missing file header
|
||||
cn-outline = markBroken super.cn-outline;
|
||||
|
||||
# upstream issue: missing file header
|
||||
connection = markBroken super.connection;
|
||||
|
||||
# upstream issue: missing file header
|
||||
crux = markBroken super.crux;
|
||||
|
||||
# upstream issue: missing file header
|
||||
dictionary = markBroken super.dictionary;
|
||||
|
||||
easy-kill-extras = super.easy-kill-extras.override {
|
||||
inherit (self.melpaPackages) easy-kill;
|
||||
};
|
||||
|
||||
# missing git
|
||||
egg = markBroken super.egg;
|
||||
|
||||
# upstream issue: missing file header
|
||||
elmine = markBroken super.elmine;
|
||||
|
||||
ess-R-data-view = super.ess-R-data-view.override {
|
||||
inherit (self.melpaPackages) ess ctable popup;
|
||||
};
|
||||
|
||||
ess-R-object-popup = super.ess-R-object-popup.override {
|
||||
inherit (self.melpaPackages) ess popup;
|
||||
};
|
||||
|
||||
# missing OCaml
|
||||
flycheck-ocaml = markBroken super.flycheck-ocaml;
|
||||
|
||||
# upstream issue: missing file header
|
||||
fold-dwim = markBroken super.fold-dwim;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
helm-lobsters = markBroken super.helm-lobsters;
|
||||
|
||||
# upstream issue: missing file header
|
||||
helm-words = markBroken super.helm-words;
|
||||
|
||||
# upstream issue: missing file header
|
||||
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
|
||||
|
||||
# upstream issue: missing file header
|
||||
initsplit = markBroken super.initsplit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
jsfmt = markBroken super.jsfmt;
|
||||
|
||||
# upstream issue: missing file header
|
||||
link = markBroken super.link;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
link-hint = markBroken super.link-hint;
|
||||
|
||||
# part of a larger package
|
||||
llvm-mode = dontConfigure super.llvm-mode;
|
||||
|
||||
# upstream issue: missing file header
|
||||
maxframe = markBroken super.maxframe;
|
||||
|
||||
# missing OCaml
|
||||
merlin = markBroken super.merlin;
|
||||
|
||||
mhc = super.mhc.override {
|
||||
inherit (self.melpaPackages) calfw;
|
||||
};
|
||||
|
||||
# missing .NET
|
||||
nemerle = markBroken super.nemerle;
|
||||
|
||||
# part of a larger package
|
||||
notmuch = dontConfigure super.notmuch;
|
||||
|
||||
# missing OCaml
|
||||
ocp-indent = markBroken super.ocp-indent;
|
||||
|
||||
# upstream issue: missing file header
|
||||
perl-completion = markBroken super.perl-completion;
|
||||
|
||||
# upstream issue: truncated file
|
||||
powershell = markBroken super.powershell;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
processing-snippets = markBroken super.processing-snippets;
|
||||
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
# upstream issue: missing package version
|
||||
quack = markBroken super.quack;
|
||||
|
||||
# upstream issue: missing file header
|
||||
railgun = markBroken super.railgun;
|
||||
|
||||
# upstream issue: missing file footer
|
||||
seoul256-theme = markBroken super.seoul256-theme;
|
||||
|
||||
spaceline = super.spaceline.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
# upstream issue: missing file header
|
||||
stgit = markBroken super.stgit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
textmate = markBroken super.textmate;
|
||||
|
||||
# missing OCaml
|
||||
utop = markBroken super.utop;
|
||||
|
||||
# upstream issue: missing file header
|
||||
voca-builder = markBroken super.voca-builder;
|
||||
|
||||
# upstream issue: missing file header
|
||||
window-numbering = markBroken super.window-numbering;
|
||||
|
||||
# upstream issue: missing file header
|
||||
zeitgeist = markBroken super.zeitgeist;
|
||||
};
|
||||
|
||||
melpaPackages = super // {
|
||||
# broken upstream
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
};
|
||||
melpaPackages = super // overrides;
|
||||
in
|
||||
melpaPackages // { inherit melpaPackages; }
|
||||
|
26460
pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
Normal file
26460
pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -16,62 +16,146 @@ To update the list of packages from MELPA Stable,
|
||||
|
||||
{ lib }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) makeScope mapAttrs;
|
||||
|
||||
json = builtins.readFile ./melpa-stable-packages.json;
|
||||
manifest = builtins.fromJSON json;
|
||||
|
||||
mkPackage = self: name: recipe:
|
||||
let drv =
|
||||
{ melpaBuild, stdenv, fetchbzr, fetchcvs, fetchFromGitHub, fetchFromGitLab
|
||||
, fetchgit, fetchhg, fetchsvn, fetchurl }:
|
||||
let
|
||||
unknownFetcher =
|
||||
abort "emacs-${name}: unknown fetcher '${recipe.fetch.tag}'";
|
||||
fetch =
|
||||
{
|
||||
inherit fetchbzr fetchcvs fetchFromGitHub fetchFromGitLab fetchgit fetchhg
|
||||
fetchsvn fetchurl;
|
||||
}."${recipe.fetch.tag}"
|
||||
or unknownFetcher;
|
||||
args = builtins.removeAttrs recipe.fetch [ "tag" ];
|
||||
src = fetch args;
|
||||
recipeFile = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/${recipe.recipe.commit}/recipes/${name}";
|
||||
inherit (recipe.recipe) sha256;
|
||||
};
|
||||
in melpaBuild {
|
||||
pname = name;
|
||||
inherit (recipe) version;
|
||||
inherit recipeFile src;
|
||||
packageRequires =
|
||||
let lookupDep = d: self."${d}" or null;
|
||||
in map lookupDep recipe.deps;
|
||||
meta = {
|
||||
homepage = "http://stable.melpa.org/#/${name}";
|
||||
license = stdenv.lib.licenses.free;
|
||||
};
|
||||
};
|
||||
in self.callPackage drv {};
|
||||
|
||||
in
|
||||
|
||||
self:
|
||||
|
||||
let
|
||||
super = mapAttrs (mkPackage self) manifest;
|
||||
imported = import ./melpa-stable-generated.nix { inherit (self) callPackage; };
|
||||
|
||||
markBroken = pkg: pkg.override {
|
||||
melpaBuild = args: self.melpaBuild (args // {
|
||||
meta = (args.meta or {}) // { broken = true; };
|
||||
super = imported;
|
||||
|
||||
dontConfigure = pkg: pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
configureScript = "true";
|
||||
});
|
||||
});
|
||||
|
||||
markBroken = pkg: pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
meta = (drv.meta or {}) // { broken = true; };
|
||||
});
|
||||
});
|
||||
|
||||
overrides = {
|
||||
ac-php = super.ac-php.override {
|
||||
inherit (self.melpaPackages) company popup;
|
||||
};
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
|
||||
airline-themes = super.airline-themes.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
bufshow = markBroken super.bufshow;
|
||||
|
||||
# part of a larger package
|
||||
# upstream issue: missing package version
|
||||
cmake-mode = markBroken (dontConfigure super.cmake-mode);
|
||||
|
||||
# upstream issue: missing file header
|
||||
connection = markBroken super.connection;
|
||||
|
||||
# upstream issue: missing file header
|
||||
crux = markBroken super.crux;
|
||||
|
||||
# upstream issue: missing file header
|
||||
dictionary = markBroken super.dictionary;
|
||||
|
||||
easy-kill-extras = super.easy-kill-extras.override {
|
||||
inherit (self.melpaPackages) easy-kill;
|
||||
};
|
||||
|
||||
# missing git
|
||||
egg = markBroken super.egg;
|
||||
|
||||
# upstream issue: missing file header
|
||||
elmine = markBroken super.elmine;
|
||||
|
||||
ess-R-data-view = super.ess-R-data-view.override {
|
||||
inherit (self.melpaPackages) ess ctable popup;
|
||||
};
|
||||
|
||||
ess-R-object-popup = super.ess-R-object-popup.override {
|
||||
inherit (self.melpaPackages) ess popup;
|
||||
};
|
||||
|
||||
# missing OCaml
|
||||
flycheck-ocaml = markBroken super.flycheck-ocaml;
|
||||
|
||||
# upstream issue: missing file header
|
||||
fold-dwim = markBroken super.fold-dwim;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
helm-lobsters = markBroken super.helm-lobsters;
|
||||
|
||||
# upstream issue: missing file header
|
||||
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
|
||||
|
||||
# upstream issue: missing file header
|
||||
initsplit = markBroken super.initsplit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
jsfmt = markBroken super.jsfmt;
|
||||
|
||||
# upstream issue: missing file header
|
||||
link = markBroken super.link;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
link-hint = markBroken super.link-hint;
|
||||
|
||||
# upstream issue: missing file header
|
||||
maxframe = markBroken super.maxframe;
|
||||
|
||||
# missing OCaml
|
||||
merlin = markBroken super.merlin;
|
||||
|
||||
mhc = super.mhc.override {
|
||||
inherit (self.melpaPackages) calfw;
|
||||
};
|
||||
|
||||
# missing .NET
|
||||
nemerle = markBroken super.nemerle;
|
||||
|
||||
# part of a larger package
|
||||
notmuch = dontConfigure super.notmuch;
|
||||
|
||||
# missing OCaml
|
||||
ocp-indent = markBroken super.ocp-indent;
|
||||
|
||||
# upstream issue: truncated file
|
||||
powershell = markBroken super.powershell;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
processing-snippets = markBroken super.processing-snippets;
|
||||
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
spaceline = super.spaceline.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
# upstream issue: missing file header
|
||||
stgit = markBroken super.stgit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
textmate = markBroken super.textmate;
|
||||
|
||||
# missing OCaml
|
||||
utop = markBroken super.utop;
|
||||
|
||||
# upstream issue: missing file header
|
||||
voca-builder = markBroken super.voca-builder;
|
||||
|
||||
# upstream issue: missing file header
|
||||
window-numbering = markBroken super.window-numbering;
|
||||
};
|
||||
|
||||
melpaStablePackages = super // {
|
||||
# broken upstream
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
};
|
||||
melpaStablePackages = super // overrides;
|
||||
in
|
||||
melpaStablePackages // { inherit melpaStablePackages; }
|
||||
|
30
pkgs/build-support/emacs/elpa.nix
Normal file
30
pkgs/build-support/emacs/elpa.nix
Normal file
@ -0,0 +1,30 @@
|
||||
# builder for Emacs packages built for packages.el
|
||||
|
||||
{ lib, stdenv, fetchurl, emacs, texinfo }:
|
||||
|
||||
with lib;
|
||||
|
||||
{ pname
|
||||
, version
|
||||
, src
|
||||
, ...
|
||||
}@args:
|
||||
|
||||
import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
|
||||
|
||||
phases = "installPhase fixupPhase distPhase";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
emacs --batch -Q -l ${./elpa2nix.el} \
|
||||
-f elpa2nix-install-package \
|
||||
"${src}" "$out/share/emacs/site-lisp/elpa"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
||||
// removeAttrs args [ "files" "fileSpecs"
|
||||
"meta"
|
||||
])
|
30
pkgs/build-support/emacs/elpa2nix.el
Normal file
30
pkgs/build-support/emacs/elpa2nix.el
Normal file
@ -0,0 +1,30 @@
|
||||
(require 'package)
|
||||
(package-initialize)
|
||||
|
||||
(defun elpa2nix-install-package ()
|
||||
(if (not noninteractive)
|
||||
(error "`elpa2nix-install-package' is to be used only with -batch"))
|
||||
(pcase command-line-args-left
|
||||
(`(,archive ,elpa)
|
||||
(progn (setq package-user-dir elpa)
|
||||
(elpa2nix-install-file archive)))))
|
||||
|
||||
(defun elpa2nix-install-from-buffer ()
|
||||
"Install a package from the current buffer."
|
||||
(let ((pkg-desc (if (derived-mode-p 'tar-mode)
|
||||
(package-tar-file-info)
|
||||
(package-buffer-info))))
|
||||
;; Install the package itself.
|
||||
(package-unpack pkg-desc)
|
||||
pkg-desc))
|
||||
|
||||
(defun elpa2nix-install-file (file)
|
||||
"Install a package from a file.
|
||||
The file can either be a tar file or an Emacs Lisp file."
|
||||
(let ((is-tar (string-match "\\.tar\\'" file)))
|
||||
(with-temp-buffer
|
||||
(if is-tar
|
||||
(insert-file-contents-literally file)
|
||||
(insert-file-contents file))
|
||||
(when is-tar (tar-mode))
|
||||
(elpa2nix-install-from-buffer))))
|
@ -32,8 +32,11 @@ stdenv.mkDerivation ({
|
||||
unpackCmd = ''
|
||||
case "$curSrc" in
|
||||
*.el)
|
||||
cp $curSrc $pname.el
|
||||
chmod +w $pname.el
|
||||
# keep original source filename without the hash
|
||||
local filename=$(basename "$curSrc")
|
||||
filename="''${filename:33}"
|
||||
cp $curSrc $filename
|
||||
chmod +w $filename
|
||||
sourceRoot="."
|
||||
;;
|
||||
*)
|
||||
|
@ -28,8 +28,6 @@ let
|
||||
sha256 = "1biwg2pqmmdz5iwqbjdszljazqymvgyyjcnc255nr6qz8mhnx67j";
|
||||
};
|
||||
|
||||
fname = "${pname}-${version}";
|
||||
|
||||
targets = concatStringsSep " " (if files == null then fileSpecs else files);
|
||||
|
||||
defaultMeta = {
|
||||
@ -41,31 +39,33 @@ in
|
||||
import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
|
||||
inherit packageBuild;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
buildPhase =
|
||||
if recipeFile == null
|
||||
then ''
|
||||
runHook preBuild
|
||||
|
||||
emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \
|
||||
${if recipeFile == null
|
||||
then
|
||||
''
|
||||
-f melpa2nix-build-package \
|
||||
${pname} ${version} ${targets}
|
||||
''
|
||||
else
|
||||
''
|
||||
-f melpa2nix-build-package-from-recipe \
|
||||
${pname} ${version} ${recipeFile}
|
||||
''}
|
||||
export archive=$(emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \
|
||||
-f melpa2nix-build-package \
|
||||
${pname} ${version} ${targets})
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
runHook postBuild
|
||||
''
|
||||
else ''
|
||||
runHook preBuild
|
||||
|
||||
export archive=$(emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \
|
||||
-f melpa2nix-build-package-from-recipe \
|
||||
${recipeFile} ${version})
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
emacs --batch -Q -l $packageBuild -l ${./melpa2nix.el} \
|
||||
-f melpa2nix-install-package \
|
||||
${fname}.* $out/share/emacs/site-lisp/elpa
|
||||
emacs --batch -Q -l ${./elpa2nix.el} \
|
||||
-f elpa2nix-install-package \
|
||||
"$archive" "$out/share/emacs/site-lisp/elpa"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
@ -6,14 +6,6 @@
|
||||
(setq package-build-working-dir (expand-file-name ".")
|
||||
package-build-archive-dir (expand-file-name "."))
|
||||
|
||||
(defun melpa2nix-install-package ()
|
||||
(if (not noninteractive)
|
||||
(error "`melpa2nix-install-package' is to be used only with -batch"))
|
||||
(pcase command-line-args-left
|
||||
(`(,archive ,elpa)
|
||||
(progn (setq package-user-dir elpa)
|
||||
(package-install-file archive)))))
|
||||
|
||||
(defun melpa2nix-build-package ()
|
||||
(if (not noninteractive)
|
||||
(error "`melpa2nix-build-package' is to be used only with -batch"))
|
||||
@ -25,8 +17,10 @@
|
||||
(if (not noninteractive)
|
||||
(error "`melpa2nix-build-package' is to be used only with -batch"))
|
||||
(pcase command-line-args-left
|
||||
(`(,package ,version ,recipe-file)
|
||||
(let* ((rcp (cdr (package-build--read-from-file recipe-file)))
|
||||
(`(,recipe-file ,version)
|
||||
(let* ((recipe (package-build--read-from-file recipe-file))
|
||||
(rcp (cdr recipe))
|
||||
(package (car recipe))
|
||||
(files (package-build--config-file-list rcp)))
|
||||
(melpa2nix-package-build-archive package version files)))))
|
||||
|
||||
@ -38,8 +32,11 @@
|
||||
version
|
||||
files
|
||||
package-build-working-dir
|
||||
package-build-archive-dir)))
|
||||
package-build-archive-dir))
|
||||
(archive-file (package-build--archive-file-name archive-entry)))
|
||||
|
||||
(package-build--message "Built in %.3fs, finished at %s"
|
||||
(progn
|
||||
(package-build--message "Built in %.3fs, finished at %s"
|
||||
(time-to-seconds (time-since start-time))
|
||||
(current-time-string))))
|
||||
(current-time-string))
|
||||
(princ (format "%s\n" archive-file)))))
|
||||
|
@ -24,6 +24,9 @@
|
||||
## FOR CONTRIBUTORS
|
||||
#
|
||||
# When adding a new package here please note that
|
||||
# * please use `elpaBuild` for pre-built package.el packages and
|
||||
# `melpaBuild` or `trivialBuild` if the package must actually
|
||||
# be built from the source.
|
||||
# * lib.licenses are `with`ed on top of the file here
|
||||
# * both trivialBuild and melpaBuild will automatically derive a
|
||||
# `meta` with `platforms` and `homepage` set to something you are
|
||||
@ -235,23 +238,6 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
auctex = melpaBuild rec {
|
||||
pname = "auctex";
|
||||
version = "11.87.7";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/${pname}-${version}.tar";
|
||||
sha256 = "07bhw8zc3d1f2basjy80njmxpsp4f70kg3ynkch9ghlai3mm2b7n";
|
||||
};
|
||||
buildPhase = ''
|
||||
cp $src ${pname}-${version}.tar
|
||||
'';
|
||||
meta = {
|
||||
description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
|
||||
homepage = https://www.gnu.org/software/auctex/;
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
autotetris = melpaBuild {
|
||||
pname = "autotetris-mode";
|
||||
version = "20141114.846";
|
||||
@ -1172,23 +1158,6 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
let-alist = melpaBuild rec {
|
||||
pname = "let-alist";
|
||||
version = "1.0.4";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/${pname}-${version}.el";
|
||||
sha256 = "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x";
|
||||
};
|
||||
unpackPhase = "true";
|
||||
buildPhase = ''
|
||||
cp $src ${pname}-${version}.el
|
||||
'';
|
||||
meta = {
|
||||
description = "Easily let-bind values of an assoc-list by their names";
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
log4e = melpaBuild rec {
|
||||
pname = "log4e";
|
||||
version = "0.3.0";
|
||||
@ -1381,16 +1350,13 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
org-plus-contrib = melpaBuild rec {
|
||||
org-plus-contrib = elpaBuild rec {
|
||||
pname = "org-plus-contrib";
|
||||
version = "20150406";
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/elpa/${pname}-${version}.tar";
|
||||
sha256 = "1ny2myg4rm75ab2gl5rqrwy7h53q0vv18df8gk3zv13kljj76c6i";
|
||||
};
|
||||
buildPhase = ''
|
||||
cp $src ${pname}-${version}.tar
|
||||
'';
|
||||
meta = {
|
||||
description = "Notes, TODO lists, projects, and authoring in plain-text with Emacs";
|
||||
license = gpl3Plus;
|
||||
@ -1926,7 +1892,7 @@ in
|
||||
lib.makeScope newScope (self:
|
||||
{}
|
||||
// melpaPackages self
|
||||
// melpaStablePackages self
|
||||
// elpaPackages self
|
||||
// melpaStablePackages self
|
||||
// packagesFun self
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user