Commit Graph

40 Commits

Author SHA1 Message Date
Stephan Creutz
ccca97f226 Replace cl by cl-lib
Since Emacs 27 the package cl is deprecated, the replacement is
cl-lib, which is available since Emacs 24.3.

This patch replaces cl by cl-lib and drops support for Emacs versions
less than 24.3. Dropping older Emacsen is required, because cl-lib is
a builtin starting from version 24.3 and doesn't need an extra package
from ELPA.

Testcases for past issues still contain cl. Most of them seem to be
broken and need further investigation.

This patch is tested with test/run-ert.sh, which outputs:

Ran 10 tests, 10 results as expected, 0 unexpected (2021-01-30 13:24:54+0100, 0.672122 sec)
1 expected failures

and manually by daily usage for a month now.
2021-06-13 16:03:08 +02:00
Noam Postavsky
767847f83d Don't try to build and install :builtin packages
* el-get-build.el (el-get-build-commands): Do nothing if package is
:builtin.
* recipes/cedet.rcp (:post-init): Don't load if it's :builtin.
2017-07-01 19:07:47 -04:00
Noam Postavsky
7d18979451 el-get-build-commands: eval under package-dir
This lets :build recipes use paths relative to the package.
2015-09-12 19:26:59 -04:00
Noam Postavsky
e95ca9355e fix recipe checking for unsafep :build recipes
Make recipe checking functions repsect warning-minimum-level and add
-W<:level> option to el-get-check-recipe-batch for setting it.
2015-07-06 04:16:35 -04:00
Noam Postavsky
17a202b5b3 check all :build/<system-type>s 2015-07-05 15:53:06 -04:00
Noam Postavsky
eeee1ab349 add recipe check for shell interpolation in :build 2015-07-05 15:53:06 -04:00
Noam Postavsky
82135467d1 el-get-build: quote post-build-fun
Instead of converting to lambda.
2015-02-23 22:23:04 -05:00
Noam Postavsky
43eb907821 el-get-build-command-program: regular files only
Directories can also satisfy file-executable-p, but we can't actually
execute those.
2014-06-03 20:20:02 -04:00
Noam Postavsky
bc9fea670e satisfy newer 24.4 byte compiler
It knows argument to eval-after-load is code, and that #' implies
existence of a function.

Some of the package.el functions have changed, but that will be dealt
with separately.
2014-04-04 19:13:27 -04:00
Noam Postavsky
d30ddb78e1 fix byte compile warnings
Move more variables to el-get-custom.el, add requires or
declare-functions as needed.

There were a few places that appeared to be actual bugs: wrong or
missing variable names.
2014-03-22 18:43:42 -04:00
Noam Postavsky
5278b05f35 el-get-set-info-path: make safe if package removed
Use an eval-after-load form that won't throw an error, regardless of
removed packages.
2014-03-04 23:42:44 -05:00
Ryan C. Thompson
cf34f9aa0a Clean up whitespace
This commit is the result of running cleanup-whitespace.sh.

Fixes #549.
2014-02-21 10:52:48 -08:00
Joe Schafer
ff3b762380 Canonicalize the info path file name. 2013-05-16 21:16:31 -04:00
Victor Deryagin
0a202ea35d changed mentions of 'README.asciidoc' to 'README.md' in source files 2013-04-01 15:46:34 +03:00
Damien Cassou
551d7cd55f Fix el-get issue #814 about setting `Info-directory-list'
Signed-off-by: Damien Cassou <damien.cassou@gmail.com>

Conflicts:

	el-get-build.el

Signed-off-by: Damien Cassou <damien.cassou@gmail.com>
2012-07-29 14:39:54 +02:00
Damien Cassou
0d400e5c99 Make `el-get-set-info-path' compatible with the most recent Emacs
Fix github issue #814: "el-get-set-info-path incorrect in recent Emacs"

Signed-off-by: Damien Cassou <damien.cassou@gmail.com>
2012-07-23 14:21:52 +02:00
Rafael Laboissiere
dc60169d34 Avoid loading info.el when adding paths to Info-directory-list
Instead, use the variable Info-default-directory-list, which is defined
in paths.el.

Signed-off-by: Dimitri Fontaine <dim@tapoueh.org>
2012-06-18 17:40:26 +02:00
Bryan Shell
b8aec015bd Only install info when `el-get-install-info' is not nil. 2012-05-10 14:21:48 -05:00
Ryan C. Thompson
34fd8f9a2f Merge branch 'compile-after-build'
Conflicts:
	el-get-build.el
	test/el-get-issue-592.el
2012-03-18 13:56:28 -07:00
Dimitri Fontaine
63cb5f9420 Merge pull request #665 from jleechpe/win-shell-fix
Fix for #490 - Issue with shell quoting on Windows with a cygwin shell
2012-03-14 13:51:12 -07:00
Jonathan Leech-Pepin
97b8cf12c9 If on a Windows system default to "cmdproxy.exe", otherwise use the currently configured shell-file-name.
This fixes #490 by ensuring proper shell quoting on NT Emacs when a cygwin shell is being used.
2012-03-12 11:49:28 -04:00
Ryan C. Thompson
d5f8a0f3d2 More correct handling of post-build-fun 2012-03-07 18:23:32 -08:00
Ryan C. Thompson
5a527d759a Fix test regression on issue 418 2012-02-27 00:56:04 -08:00
Ryan C. Thompson
fee40c2879 Minor fixes in new code 2012-02-26 14:33:47 -08:00
Ryan C. Thompson
267e846afa Always run el-get-compile-process
Since el-get-byte-compile-process now does stale elc cleaning, it
needs to be run even if there's nothing to compile.
2012-02-26 14:33:32 -08:00
Ryan C. Thompson
1d8e1c6ec4 Compute byte-compile list after build
This ensures that files created during the build process can be
byte-compiled in the byte-compile step.
2012-02-26 14:19:50 -08:00
Ryan C. Thompson
541782b61f Do pre-compile cleaning in the same process as compiling 2012-02-25 13:41:31 -08:00
Ryan C. Thompson
9dc0d0465c Clean stale elc files before compiling 2012-02-25 11:34:47 -08:00
Ryan C. Thompson
07236b968b Fix el-get-build always running synchronously
The problem was that the "sync" symbol was inside a backquote and was
not comma-prefixed, so the ":sync" property was getting set literall
to the symbol "'sync" instead of its value. Obviously, "'sync" is a
true value, so the commands were all run synchronously.

Fixes #307.
Fixes #385.
2012-02-11 13:25:09 -08:00
Dimitri Fontaine
7c6e76fe44 Merge pull request #435 from DarwinAwardWinner/build-fix
Let the shell interpret single-string build commands
2011-10-08 03:51:47 -07:00
Ryan C. Thompson
58e7b8eec9 Remove extraneous parentheses 2011-10-07 16:31:25 -07:00
Ryan C. Thompson
0945dd2757 Let the shell interpret single-string build commands 2011-10-07 15:29:52 -07:00
Ryan C. Thompson
508fb7e149 Don't assume that first build command is a string
Build commands are supposed to be either strings or lists of strings.
But the code for deciding whether to eval the :build property only
checks for a string, not a list. This commit fixes this, so that a
build property whose commands are all lists of strings should no
longer cause an error. Evaluation of the :build property now only
happens when the car is a symbol, since that is the only time that
evaluation would not result in an error.

Also in this commit:

* Ensure build commands are all strings or lists of strings and raise
  an error otherwise. The check happens after flattening, so nested
  lists of strings should also pass.
* A few syntax fixes
* Add a function "el-get-list-of-strings-p"
2011-10-07 13:33:45 -07:00
Ryan C. Thompson
9be99cc3db Warn for build commands that rely on whitespace-splitting
El-get-build allows a command to be specified as a single string. It
will split that string on whitespace into a list of strings, and each
element of that list will eventually be shell-quoted (by
`el-get-start-process-list`). This is wrong behavior that can easily
cause an innocent command to be over-escaped or split into too many
arguments, or both. For example, consider a build process that
involves running the following command:

    make SOME_OPTION="this is the option value"

Written as a string in Elisp, that would be:

    "make SOME_OPTION=\"this is the option value\""

After splitting on whitespace and then shell-quoting and then passing
the result to the shell, the above command is equivalent to running
the following at the shell:

    "make" "SOME_OPTION=\"this" "is" "the" "option" "value\""

See the problem? What was once a single argument is now five, and the
quotation marks have been inappropriately quoted. For this reason, I
think auto-whitespace splitting should probably be deprecated. The
command should either be a single string, which would be interpreted
as a command to be run with no arguments, or a list of strings, like
this:

    '("make" "SOME_OPTION=\"this is the option value\"")
2011-10-06 02:31:36 -07:00
Ryan C. Thompson
3fa180a61f Use a list of arguments instead of a single string for command
The `el-get-install-or-init-info` composed a command as a single
pre-quoted string using `concat` and `shell-quote-argument`. It is
better to make the command a list of unquoted arguments, which is what
this commit does.
2011-10-06 02:06:29 -07:00
Ryan C. Thompson
11ef806adc Don't call shell-quote-argument in el-get-build
Also, use slightly more robust type checking on the command.
2011-10-05 14:40:14 -07:00
Dimitri Fontaine
3d2f4c5e63 Fix el-get-install-or-init-info, per #418. 2011-10-03 22:06:40 +02:00
Dimitri Fontaine
7c84e5f61d Fix arguments not properly quoted when building install-info command line, per #408. 2011-09-30 20:54:06 +02:00
Dimitri Fontaine
8db0c4d49b Fix the refactoring so that it actually works.
This includes teaching methods that they now work with a symbolp PACKAGE,
some more cleaning up, and some load-path adjustments now that a part of the
code is in a subdirectory (methods).

Also include some of the tests used to convince oneself that the refactoring
didn't break any and all use cases for el-get, with some rough documentation
about how to use them.
2011-09-22 21:48:11 +02:00
Dimitri Fontaine
0433ca0ce9 Refactoring it all: a beginning. No time for testing yet, just showing ideas. 2011-09-20 15:15:52 +02:00