From 7466e0f264426f47086dbabb0384b0ebd3026c0c Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Tue, 29 Dec 2015 13:23:49 -0600 Subject: [PATCH 1/3] melpaBuild: accept recipeFile in lieu of fileSpecs --- pkgs/build-support/emacs/melpa.nix | 11 +++++++++++ pkgs/build-support/emacs/melpa2nix.el | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix index a1f10ad31437..8fd2a00b50a8 100644 --- a/pkgs/build-support/emacs/melpa.nix +++ b/pkgs/build-support/emacs/melpa.nix @@ -8,6 +8,8 @@ with lib; { pname , version +, recipeFile ? null + , files ? null , fileSpecs ? [ "*.el" "*.el.in" "dir" "*.info" "*.texi" "*.texinfo" @@ -43,8 +45,17 @@ import ./generic.nix { inherit lib stdenv emacs texinfo; } ({ 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} + ''} runHook postBuild ''; diff --git a/pkgs/build-support/emacs/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el index 858ffd7593bf..f1309fc0d57b 100644 --- a/pkgs/build-support/emacs/melpa2nix.el +++ b/pkgs/build-support/emacs/melpa2nix.el @@ -21,6 +21,15 @@ (`(,package ,version . ,files) (melpa2nix-package-build-archive package version files)))) +(defun melpa2nix-build-package-from-recipe () + (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))) + (files (package-build--config-file-list rcp))) + (melpa2nix-package-build-archive package version files))))) + (defun melpa2nix-package-build-archive (name version files) "Build a package archive for package NAME." (package-build--message "\n;;; %s\n" name) From 1d8e3db9fff600d444644d3619da965e050290f5 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Tue, 29 Dec 2015 13:24:28 -0600 Subject: [PATCH 2/3] melpa-packages: use recipeFile --- pkgs/applications/editors/emacs-modes/melpa-packages.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 891bb5df5672..16f147695914 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -36,10 +36,14 @@ let 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 src; + inherit recipeFile src; packageRequires = let lookupDep = d: self."${d}" or null; in map lookupDep recipe.deps; From c266de63eebb690b80ecf3cae59d3d0b56e46aae Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Tue, 29 Dec 2015 13:24:42 -0600 Subject: [PATCH 3/3] melpa-stable-packages: use recipeFile --- .../editors/emacs-modes/melpa-stable-packages.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix index 7572c722e33f..2dadbae85358 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix @@ -38,10 +38,14 @@ let 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 src; + inherit recipeFile src; packageRequires = let lookupDep = d: self."${d}" or null; in map lookupDep recipe.deps;