From 895cd4b126fc9d8f3009149e81ab12189969dd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Fri, 29 Dec 2023 14:00:46 +0100 Subject: [PATCH] ReApply PR #276943: "melpa2nix: update to work with Emacs HEAD" This reverts commit 7b623c33889c208cda0997b4929217907310eb1b (PR #277535), reversing changes made to 0aa7301173defecab229898e02afe864c7ac8cf6. --- pkgs/build-support/emacs/melpa.nix | 4 +- pkgs/build-support/emacs/melpa2nix.el | 26 +++++------ .../emacs/package-build-dont-use-mtime.patch | 43 ++++++------------- 3 files changed, 27 insertions(+), 46 deletions(-) diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix index 85bc8aa37b3a..83654cf47144 100644 --- a/pkgs/build-support/emacs/melpa.nix +++ b/pkgs/build-support/emacs/melpa.nix @@ -40,8 +40,8 @@ import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; } ({ src = fetchFromGitHub { owner = "melpa"; repo = "package-build"; - rev = "c3c535e93d9dc92acd21ebc4b15016b5c3b90e7d"; - sha256 = "17z0wbqdd6fspbj43yq8biff6wfggk74xgnaf1xx6ynsp1i74is5"; + rev = "c48aa078c01b4f07b804270c4583a0a58ffea1c0"; + sha256 = "sha256-MzPj375upIiYXdQR+wWXv3A1zMqbSrZlH0taLuxx/1M="; }; patches = [ ./package-build-dont-use-mtime.patch ]; diff --git a/pkgs/build-support/emacs/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el index 72667dea652c..3de77dbf5e5c 100644 --- a/pkgs/build-support/emacs/melpa2nix.el +++ b/pkgs/build-support/emacs/melpa2nix.el @@ -11,22 +11,22 @@ ;; Allow installing package tarfiles larger than 10MB (setq large-file-warning-threshold nil) -(defun melpa2nix-build-package-1 (rcp version commit) - (let ((source-dir (package-recipe--working-tree rcp))) +(defun melpa2nix-build-package-1 (rcp) + (let* ((default-directory (package-recipe--working-tree rcp))) (unwind-protect (let ((files (package-build-expand-files-spec rcp t))) - (cond - ((= (length files) 1) - (package-build--build-single-file-package - rcp version commit files source-dir)) - ((> (length files) 1) - (package-build--build-multi-file-package - rcp version commit files source-dir)) - (t (error "Unable to find files matching recipe patterns"))))))) + (unless files + (error "Unable to find files matching recipe patterns")) + (if (> (length files) 1) + (package-build--build-multi-file-package rcp files) + (package-build--build-single-file-package rcp files)))))) (defun melpa2nix-build-package () - (if (not noninteractive) - (error "`melpa2nix-build-package' is to be used only with -batch")) + (unless noninteractive + (error "`melpa2nix-build-package' is to be used only with -batch")) (pcase command-line-args-left (`(,package ,version ,commit) - (melpa2nix-build-package-1 (package-recipe-lookup package) version commit)))) + (let ((recipe (package-recipe-lookup package))) + (setf (oref recipe commit) commit) + (setf (oref recipe version) version) + (melpa2nix-build-package-1 recipe))))) diff --git a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch b/pkgs/build-support/emacs/package-build-dont-use-mtime.patch index fe94de57a300..1ace7771ea3a 100644 --- a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch +++ b/pkgs/build-support/emacs/package-build-dont-use-mtime.patch @@ -1,40 +1,21 @@ diff --git a/package-build.el b/package-build.el -index e572045..9eb0f82 100644 +index 29cdb61..c19be1b 100644 --- a/package-build.el +++ b/package-build.el -@@ -415,7 +415,7 @@ (defun package-build--write-pkg-file (desc dir) - (princ ";; Local Variables:\n;; no-byte-compile: t\n;; End:\n" - (current-buffer))))) - --(defun package-build--create-tar (name version directory mtime) -+(defun package-build--create-tar (name version directory) - "Create a tar file containing the contents of VERSION of package NAME. - DIRECTORY is a temporary directory that contains the directory - that is put in the tarball. MTIME is used as the modification -@@ -434,7 +434,7 @@ (defun package-build--create-tar (name version directory mtime) - ;; prevent a reproducable tarball as described at +@@ -923,7 +923,6 @@ DIRECTORY is a temporary directory that contains the directory + that is put in the tarball." + (let* ((name (oref rcp name)) + (version (oref rcp version)) +- (time (oref rcp time)) + (tar (expand-file-name (concat name "-" version ".tar") + package-build-archive-dir)) + (dir (concat name "-" version))) +@@ -939,7 +938,7 @@ that is put in the tarball." + ;; prevent a reproducible tarball as described at ;; https://reproducible-builds.org/docs/archives. "--sort=name" -- (format "--mtime=@%d" mtime) +- (format "--mtime=@%d" time) + "--mtime=@0" "--owner=0" "--group=0" "--numeric-owner" "--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime")) (when (and package-build-verbose noninteractive) -@@ -848,12 +848,11 @@ (defun package-build--build-multi-file-package (rcp version commit files source- - (package-build--desc-from-library - name version commit files 'tar) - (error "%s[-pkg].el matching package name is missing" -- name)))) -- (mtime (package-build--get-commit-time rcp commit))) -+ name))))) - (package-build--copy-package-files files source-dir target) - (package-build--write-pkg-file desc target) - (package-build--generate-info-files files source-dir target) -- (package-build--create-tar name version tmp-dir mtime) -+ (package-build--create-tar name version tmp-dir) - (package-build--write-pkg-readme name files source-dir) - (package-build--write-archive-entry desc)) - (delete-directory tmp-dir t nil)))) --- -2.37.2 -