From 8178cdfd4d006ec24b9670325607f1e320eed248 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 23 Dec 2023 15:42:53 -0800 Subject: [PATCH 1/2] melpa: Account for recent breaking change in Emacs 30 package--prepare-dependencies has been renamed in a recent revision of Emacs 30. --- pkgs/build-support/emacs/melpa.nix | 2 +- .../package-build-lm-package-requires.patch | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 pkgs/build-support/emacs/package-build-lm-package-requires.patch diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix index 85bc8aa37b3aa..2fb22aee911e8 100644 --- a/pkgs/build-support/emacs/melpa.nix +++ b/pkgs/build-support/emacs/melpa.nix @@ -44,7 +44,7 @@ import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; } ({ sha256 = "17z0wbqdd6fspbj43yq8biff6wfggk74xgnaf1xx6ynsp1i74is5"; }; - patches = [ ./package-build-dont-use-mtime.patch ]; + patches = [ ./package-build-dont-use-mtime.patch ./package-build-lm-package-requires.patch ]; dontConfigure = true; dontBuild = true; diff --git a/pkgs/build-support/emacs/package-build-lm-package-requires.patch b/pkgs/build-support/emacs/package-build-lm-package-requires.patch new file mode 100644 index 0000000000000..8b9127bb8328e --- /dev/null +++ b/pkgs/build-support/emacs/package-build-lm-package-requires.patch @@ -0,0 +1,22 @@ +diff --git a/package-build.el b/package-build.el +index e572045..32affb2 100644 +--- a/package-build.el ++++ b/package-build.el +@@ -553,9 +553,11 @@ still be renamed." + nil t) + (match-string-no-properties 1))) + "No description available.") +- (when-let ((require-lines (lm-header-multiline "package-requires"))) +- (package--prepare-dependencies +- (package-read-from-string (mapconcat #'identity require-lines " ")))) ++ (if (fboundp 'lm-package-requires) ++ (lm-package-requires) ++ (when-let ((require-lines (lm-header-multiline "package-requires"))) ++ (package--prepare-dependencies ++ (package-read-from-string (mapconcat #'identity require-lines " "))))) + :kind (or type 'single) + :url (lm-homepage) + :keywords (lm-keywords-list) +-- +2.42.0 + From cb364ed852a7faddb8179fa5742e6c0eddb6fb1e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 24 Dec 2023 02:21:07 -0800 Subject: [PATCH 2/2] melpa: toss patches, and instead adjust to upstream breakages --- pkgs/build-support/emacs/melpa.nix | 6 +-- pkgs/build-support/emacs/melpa2nix.el | 17 +++----- .../emacs/package-build-dont-use-mtime.patch | 40 ------------------- .../package-build-lm-package-requires.patch | 22 ---------- 4 files changed, 8 insertions(+), 77 deletions(-) delete mode 100644 pkgs/build-support/emacs/package-build-dont-use-mtime.patch delete mode 100644 pkgs/build-support/emacs/package-build-lm-package-requires.patch diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix index 2fb22aee911e8..a882145c3f3d7 100644 --- a/pkgs/build-support/emacs/melpa.nix +++ b/pkgs/build-support/emacs/melpa.nix @@ -40,12 +40,10 @@ 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 ./package-build-lm-package-requires.patch ]; - dontConfigure = true; dontBuild = true; diff --git a/pkgs/build-support/emacs/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el index 72667dea652c1..6064b0edc4eaa 100644 --- a/pkgs/build-support/emacs/melpa2nix.el +++ b/pkgs/build-support/emacs/melpa2nix.el @@ -12,17 +12,12 @@ (setq large-file-warning-threshold nil) (defun melpa2nix-build-package-1 (rcp version commit) - (let ((source-dir (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"))))))) + (oset rcp version version) + (oset rcp commit commit) + (oset rcp time 0) + (let ((package-build-checkout-function #'ignore) + (package-build-cleanup-function #'ignore)) + (package-build--package rcp))) (defun melpa2nix-build-package () (if (not noninteractive) diff --git a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch b/pkgs/build-support/emacs/package-build-dont-use-mtime.patch deleted file mode 100644 index fe94de57a3002..0000000000000 --- a/pkgs/build-support/emacs/package-build-dont-use-mtime.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/package-build.el b/package-build.el -index e572045..9eb0f82 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 - ;; https://reproducible-builds.org/docs/archives. - "--sort=name" -- (format "--mtime=@%d" mtime) -+ "--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 - diff --git a/pkgs/build-support/emacs/package-build-lm-package-requires.patch b/pkgs/build-support/emacs/package-build-lm-package-requires.patch deleted file mode 100644 index 8b9127bb8328e..0000000000000 --- a/pkgs/build-support/emacs/package-build-lm-package-requires.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/package-build.el b/package-build.el -index e572045..32affb2 100644 ---- a/package-build.el -+++ b/package-build.el -@@ -553,9 +553,11 @@ still be renamed." - nil t) - (match-string-no-properties 1))) - "No description available.") -- (when-let ((require-lines (lm-header-multiline "package-requires"))) -- (package--prepare-dependencies -- (package-read-from-string (mapconcat #'identity require-lines " ")))) -+ (if (fboundp 'lm-package-requires) -+ (lm-package-requires) -+ (when-let ((require-lines (lm-header-multiline "package-requires"))) -+ (package--prepare-dependencies -+ (package-read-from-string (mapconcat #'identity require-lines " "))))) - :kind (or type 'single) - :url (lm-homepage) - :keywords (lm-keywords-list) --- -2.42.0 -