From: Tom Willemse <tom@ryuslash.org>
To: 15108@debbugs.gnu.org
Subject: bug#15108: [Patch] Updated package dependencies
Date: Wed, 11 Dec 2013 21:29:58 +0100 [thread overview]
Message-ID: <m3lhzrgmgp.fsf@ryuslash.org> (raw)
In-Reply-To: <m31u5uzdp0.fsf@ryuslash.org>
[-- Attachment #1: Type: text/plain, Size: 778 bytes --]
Hey,
I've been meaning to send this for a couple of weeks, but I was unable
to. I apologize.
A while ago the patch I sent last time broke, I fixed it and now here
I'm sending it again, hoping there is still some interest in this or
need for it. I've removed the changes to the ChangeLog (or at least, I'm
not sending them again), since I've lost confidence in it being my place
to do so.
I've tested it most recently bzr trunk revision 115470. All the ways to
specify dependencies work as described before:
;; Package-Requires: foo
;; Package-Requires: (foo bar)
;; Package-Requires: (foo (baz "1.1.0") bar)
;; Package-Requires: (baz "1.1.0")
These would all be valid after this patch.
As before, any comments, criticisms and considerations would be greatly
appreciated.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Package dependency patch --]
[-- Type: text/x-diff, Size: 1149 bytes --]
=== modified file 'lisp/emacs-lisp/package.el'
--- lisp/emacs-lisp/package.el 2013-08-03 02:34:22 +0000
+++ lisp/emacs-lisp/package.el 2013-08-16 20:40:09 +0000
@@ -973,6 +973,17 @@
str)
(error nil))))
+(defun package--prepare-dependencies (deps)
+ "Turn DEPS into an acceptable list of dependencies.
+
+Any parts missing a version string get a default version string
+of \"0\" (meaning any version) and an appropriate level of lists
+is wrapped around any parts requiring it."
+ (cond
+ ((symbolp deps) `((,deps "0")))
+ ((stringp (cadr deps)) `(,deps))
+ (t (mapcar (lambda (dep) (if (symbolp dep) `(,dep "0") dep)) deps))))
+
(defun package-buffer-info ()
"Return a `package-desc' describing the package in the current buffer.
@@ -1003,7 +1014,9 @@
"Package lacks a \"Version\" or \"Package-Version\" header"))
(package-desc-from-define
file-name pkg-version desc
- (if requires-str (package-read-from-string requires-str))
+ (if requires-str
+ (package--prepare-dependencies
+ (package-read-from-string requires-str)))
:kind 'single
:url homepage))))
next prev parent reply other threads:[~2013-12-11 20:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-16 0:23 bug#15108: 24.3.50; Package dependency documentation Tom Willemse
2013-08-16 3:46 ` Stefan Monnier
2013-08-16 6:57 ` Drew Adams
2013-08-16 7:35 ` Tom Willemse
2013-08-16 7:46 ` Drew Adams
2013-08-16 8:06 ` Tom Willemse
2013-08-16 20:58 ` bug#15108: More flexible package dependency specification Tom Willemse
2013-12-11 20:29 ` Tom Willemse [this message]
2013-12-11 20:52 ` bug#15108: [Patch] Updated package dependencies Drew Adams
2013-12-11 21:24 ` bug#15108: " Tom Willemse
2013-12-11 21:57 ` Drew Adams
2013-12-11 22:52 ` bug#15108: [Patch] Updated package dependencies, again Tom Willemse
2013-12-12 18:30 ` bug#15108: [Patch] Updated package dependencies Stefan Monnier
2013-12-12 19:23 ` Tom Willemse
2013-12-15 1:08 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3lhzrgmgp.fsf@ryuslash.org \
--to=tom@ryuslash.org \
--cc=15108@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.