Commit graph

194 commits

Author SHA1 Message Date
Philip Kaludercic
b2ae4e77c7 Avoid reusing :lisp-dir twice in 'package-vc--main-file'
* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Just use
:lisp-dir from 'package-desc-extras', not 'pkg-spec'.

This avoid appending the contents of :lisp-dir twice, in case it is
specified both in pkg-spec and pkg-desc.
2023-02-24 17:14:19 +01:00
Philip Kaludercic
068f8fa303 Ensure right package-desc-type before installing package
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Move copying
code from 'package-vc-install'.
(package-vc-install): Remove copying.  (Bug#61669)
2023-02-24 17:14:19 +01:00
Philip Kaludercic
40f4bc4e0a ; Avoid installing VC package dependencies multiple times
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies):
Check if two package names are eq, instead checking the structural
equality of package-desc objects.
2023-02-16 11:38:51 +01:00
Philip Kaludercic
1c9d81a2b4 Attempt to recognise if a VC package has no Elisp files
* lisp/emacs-lisp/package-vc.el (package-vc-non-code-file-names): Add
new variable used to avoid false-positives.
(package-vc--unpack): Recursively search for .el files excluding the
ones listed in 'package-vc-non-code-file-names', offering to abort the
installation if none are found.
2023-02-16 11:11:23 +01:00
Philip Kaludercic
a3751b5d0c ; Raise an error if a VC package checkout is empty
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if PKG-DIR
is empty before proceeding with the installation.
2023-02-14 19:50:01 +01:00
Philip Kaludercic
6a32ba8b69 ; Fix the installation of dependencies for VC packages
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies):
Work with package-desc objects instead of (PACKAGE-NAME VERSION)
pairs.
2023-02-14 19:50:01 +01:00
Philip Kaludercic
2da05876ed ; Use the right name when specifying VC packages
* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages): Generate dummy package
descriptors in here, if necessary.
(package-vc--unpack): Remove dummy-descriptor generation.
2023-02-12 14:30:14 +01:00
Philip Kaludercic
d4fc701297 Tolerate missing elpa-packages.eld files
* lisp/emacs-lisp/package-vc.el
(package-vc--download-and-read-archives): Replace
'condition-case-unless-debug' with a regular 'condition-case'.

It appears a few people using third-party archives that don't serve
package specifications have been having issues with package-vc, when
toggle-on-error is enabled.  In their case, package-vc would raise an
error in its first invocation, but it would go on working normally
afterwards.  As this behaviour is confusing and the user can't do much
about a missing elpa-packages.eld to begin with, we satisfy ourselves
with printing out a message and continuing on.
2023-02-12 13:26:52 +01:00
Philip Kaludercic
3d17aee13d ; Fix installation of dependencies for VC packages
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies):
Maintain a list of package-desc objects instead of package names to
install.
2023-02-12 13:11:03 +01:00
Philip Kaludercic
161706ec33 ; Actually use dummy package descriptor
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Set pkg-desc if
nil.

This revises the changes from 70947da708.
2023-01-21 19:27:38 +01:00
Philip Kaludercic
384504edf3 Ensure VC package names are not empty
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error
if the package name is empty.
(package-vc-install): Avoid generating an empty file name, if a URL
ends with a slash, and raise an error if the package name is empty.
2023-01-11 09:28:40 +01:00
Philip Kaludercic
70947da708 Handle missing package description when unpacking vc packages
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Create a dummy
descriptor if PKG-DESC is nil.
2023-01-11 09:28:40 +01:00
Eli Zaretskii
cae528457c ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Philip Kaludercic
637f5b164f ; Add "src" to the heuristic sub-directory heuristic
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check for "src"
directories, next to "lisp".
2022-12-27 21:23:38 +01:00
Philip Kaludercic
940ab2423c ; Always consider :lisp-dir when locating main file of VC packages
* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Check the
:lisp-dir entry in the "extras" of a package description to find the
directory with a main file.
2022-12-25 11:21:01 +01:00
Philip Kaludercic
9ab98cd42a Add heuristic to locate lisp code in source packages
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if a
"lisp" directory exists and use that instead of PKG-DIR.

(Bug#60155)
2022-12-25 11:21:01 +01:00
Philip Kaludercic
e8b34109ee Reorder optional arguments to 'package-vc-install'
* lisp/emacs-lisp/package-vc.el (package-vc-install-selected-packages):
Update 'package-vc-install' invocation.
(package-vc-install): Reorder and update documentation.
2022-12-25 09:53:07 +01:00
Philip Kaludercic
b38e56d8a9 Handle missing dependencies for source packages
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Add
new function.
(package-vc--unpack-1): Call 'package-vc-install-dependencies' instead
of 'package-compute-transaction' and 'package-download-transaction'.

It is unreasonable to abort the installation, since we cannot expect
all dependencies to be available in the regular archives.  Instead we
note which packages couldn't be found, and warn the user that these
will be missing.
2022-12-25 09:36:01 +01:00
Philip Kaludercic
367022f316 Ensure package directories for source packages from checkouts
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Set the :dir entry, since `package-vc--unpack-1' assumes the field is
set, as is the case when invoking `package-vc--unpack'.
2022-12-15 18:31:13 +01:00
Philip Kaludercic
a8ee046fb5 Ensure 'package-vc--version' always returns a version
* lisp/emacs-lisp/package-vc.el (package-vc--version): Return "0" even
if the main file exists, but lacks version headers.
2022-12-10 09:48:02 +01:00
Philip Kaludercic
022ab1061b Ensure 'package-vc--main-file' always returns an existing file
* lisp/emacs-lisp/package-vc.el (require): Explicitly require cl-lib.
(package-vc--main-file): If the expected file name is missing, try and
find the closest match.
2022-12-10 09:48:02 +01:00
Philip Kaludercic
357fe91996 Check if package already exists before installing from checkout
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Copy check from 'package-vc--unpack'.
2022-12-10 09:48:02 +01:00
Philip Kaludercic
5e8bc79f6b ; Fix reference in docstring to 'package-vc-install-from-checkout'
* lisp/emacs-lisp/package-vc.el (package-vc-checkout): Fix reference.
2022-12-10 09:48:02 +01:00
Matt Armstrong
af88b00b19 Refresh the package quickstart file in package-vc
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Call
`package--quickstart-maybe-refresh', just as
`package-install-from-buffer' does.  (bug#59728)
2022-12-10 09:48:02 +01:00
Stefan Kangas
2626704054 ; Normalize GPLv3 license statements in new files 2022-12-09 00:13:00 +01:00
Philip Kaludercic
ca42ff5f0e Consistently refer to VC packages as such
* lisp/emacs-lisp/package-vc.el: Replace instances of "source package"
in comments and docstrings.
* lisp/emacs-lisp/package.el: Replace instances of "source package" in
comments and docstrings.
2022-11-27 15:32:00 +01:00
Daanturo
bf93e94060 Show package name in package-vc--unpack prompt
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Display the
package name when asking whether to overwrite its previous
checkout.  (Bug#59548)
2022-11-25 09:02:16 +01:00
Philip Kaludercic
a3fcc4ed0f Don't break when loading VC packages on older Emacs versions
* lisp/emacs-lisp/package-vc.el
(package-vc--generate-description-file): Append a :kind property
instead of modifying the version number.
* lisp/emacs-lisp/package.el (package-desc): Remove special handling
for "vc annotated" versions.  (bug#59404)
2022-11-23 19:35:41 +01:00
Stefan Kangas
beaa2e4953 ; Fix typos (misspelled symbols) 2022-11-21 15:20:11 +01:00
Stefan Kangas
16318bfb51 ; Fix typos 2022-11-20 12:59:39 +01:00
Philip Kaludercic
17889dd828 * lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all} 2022-11-17 20:55:04 +01:00
Philip Kaludercic
fb6d62f881 ; Clarify what a package specification is
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Expand
docstring.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
db28ba29dd Ensure 'package-vc-prepare-patch' runs in the right directory
* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Bind
'default-directory'.p
2022-11-17 20:55:04 +01:00
Philip Kaludercic
0b77909cac Avoid duplicate source packages in 'package-alist'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Remove all
other source packages before installing the new package description.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
5b8f165f75 Fix issues related to 'package-vc-install-from-checkout'
* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Ensure the
package name is a string.
(package-vc--unpack-1): Use pkg-dir instead of the empty return value
of 'package-lisp-dir'.
(package-vc-install-from-checkout): Fix file name handling.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
53c90abfa8 ; * lisp/emacs-lisp/package-vc.el: Update TODO 2022-11-17 20:55:04 +01:00
Philip Kaludercic
4bd7ae833f Allow the direct installation of package specifications
* lisp/emacs-lisp/package-vc.el (package-vc-install): Handle package
specifications as an argument.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
874d8a418f Only fetch elpa-packages.eld when necessary
* lisp/emacs-lisp/package-vc.el: Remove hook from
'package-refresh-contents-hook'.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
228c247e6f Remove duplicate package descriptions after updating
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Ensure there
is always just one instance of a package description in 'package-alist'.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
32f51f17c4 Remove temporary .texi files if used to build documentation
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Remember if a temporary file was generated and delete it afterwards.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
3326337776 Avoid destructive manipulation of 'package-vc--archive-spec-alist'
* lisp/emacs-lisp/package-vc.el (package-vc--desc->spec): Replace
'mapcar' with 'apply'.  This is done to avoid unintentional cycles.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
7ab556b576 Improve robustness of 'package-vc-update'
* lisp/emacs-lisp/package-vc.el (package-vc-update): Ensure that the
command is only invoked with installed packages. that the hook is
always removed and that 'vc-pull' is always called in the right
directory.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
d0ea38b5fe Have 'vc-prepare-patch' handle prefix arguments.
* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Use
'vc-prepare-patch-prompt-revisions'.
* lisp/vc/vc.el (vc-prepare-patch-prompt-revisions): Extract common
function and handle prefix arguments.
(vc-prepare-patch): Pull logic out to
'vc-prepare-patch-prompt-revisions'.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
4aee4cde3a Explain that 'package-vc-install' doesn't remove tarball packages
* lisp/emacs-lisp/package-vc.el (package-vc-install): Expand documentation.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
a467afbd98 Mention package name when package is lacking VC data
* lisp/emacs-lisp/package-vc.el (package-vc-install): Add package name.
(package-vc-checkout): Add package name.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
c8e5069e6d Add new command 'package-vc-update-all'
* lisp/emacs-lisp/package-vc.el (package-vc-update-all): Add command
(package-vc-update): Add an assertion to verify this.
2022-11-17 20:55:04 +01:00
Philip Kaludercic
aa56e50fe2 Raise 'wrong-type-argument' when installing package nil
* lisp/emacs-lisp/package-vc.el (package-vc-install): Check if the
package is nil.
2022-11-17 20:37:28 +01:00
Philip Kaludercic
496c578d9c Have 'package-vc-selected-packages' consider all installed packages
* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages): Consider more than just one
value in `package-alist', in case there are multiple installations.
2022-11-17 20:37:28 +01:00
Philip Kaludercic
7c3d3fa44e Improve robustness of documentation generation
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log
output and display error messages if anything goes wrong.
2022-11-17 20:37:28 +01:00
Philip Kaludercic
a6cd44734d Remove unused variable in 'package-vc--unpack'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Remove 'url'.
2022-11-17 20:37:28 +01:00