Commit graph

136 commits

Author SHA1 Message Date
Mislav Marohnić
3ae43a44e2 Capitalize "Usage:" header for consistency with rbenv help system 2014-11-26 20:46:44 -08:00
Mislav Marohnić
38ae3b56b0 Improve ruby-build test for too many arguments
Use exactly the same arguments that would have `ruby-build` succeed at
executing, but add one more extra to test argument counting.
2014-11-26 20:46:44 -08:00
Ivan Kuchin
fa38b660e2 Abort with usage help on wrong number of CLI arguments
- rbenv-install accepts 0 or 1 argument
- rbenv-uninstall accepts 1 argument
- ruby-build accepts 2 arguments
2014-11-26 20:45:53 -08:00
Mislav Marohnić
ff2b5dc90e Ensure that assert_output_contains receives an argument 2014-11-17 15:07:40 -08:00
Mislav Marohnić
7f1869cbcd Fix error message assertions in JRuby tests
`assert_failure` only accepts an expected message as argument, and only
if it matches the output in full.
2014-11-17 14:56:06 -08:00
Mislav Marohnić
19a59f42cc Ignore RUBY_CONFIGURE_OPTS from environment in testing
Avoids failures caused by somebody's environment possibly having
RUBY_CONFIGURE_OPTS exported to have a value.
2014-11-16 16:07:39 -08:00
Mislav Marohnić
e8a97b10f6 Fix the test suite on Darwin
Setting CC makes sure that we never have to perform the Darwin-specific
check for whether we should default to `CC=clang` and thus break `uname`
stubs in unrelated tests.

CI never caught this because Travis already has CC set to gcc-4.6.
2014-10-31 04:13:57 +01:00
Mislav Marohnić
fc6e0ae69d Fix comparing OS X version when it has 3 components 2014-10-31 04:08:00 +01:00
Mislav Marohnić
ffcb7ed67f Add test that ensures duplicate Ruby definitions don't get displayed 2014-10-28 19:30:01 +01:00
Mislav Marohnić
194e007e62 Merge branch 'yosemite'
Fixes #651, fixes #648
2014-10-28 18:52:50 +01:00
Mislav Marohnić
84d61e8675 Unset CC to isolate from CI build environment 2014-10-28 18:03:14 +01:00
Mislav Marohnić
f104098909 Fix rbx-1.2.4 setup phase
Rubinius back then didn't have a Gemfile, so don't try to invoke `bundle`.
Instead, rely on the host Ruby to already have rake installed.
2014-10-28 15:41:09 +01:00
Mislav Marohnić
6e39eb52a8 Use CC=clang by default on Yosemite to avoid gcc-4.2
Newer MRIs will pick up gcc-4.2 from PATH and use that instead of
`/usr/bin/gcc`. While this worked up till now, it will not work in
Yosemite anymore since Homebrew's apple-gcc42 is generally not
compatible with 10.10.

So when CC has not explicitly been set, set it to `clang` to avoid
searching the PATH for any other gcc versions. This fixes MRI builds on
systems where apple-gcc42 is installed.
2014-10-28 15:28:07 +01:00
Mislav Marohnić
dafba300b1 Silence warnings when testing gccs
This silences the warning that gcc-4.2 produces on Yosemite:

    couldn't understand kern.osversion `14.0.0'
2014-10-28 10:59:01 +01:00
Mislav Marohnić
10fd04909d Fix Yosemite builds that use gcc-4.2 through require_gcc
The definitions that use `require_gcc` are not compatible with Apple's
clang-powered `gcc` and need gcc-4.2 from Homebrew. However, builds
using gcc-4.2 fail on Yosemite with a warning:

    couldn't understand kern.osversion `14.0.0'

Although the warning is non-fatal, the build goes to shit from there. It
seems that setting the magical value `MACOSX_DEPLOYMENT_TARGET=10.9`
makes the build work and doesn't seem to have negative consequences.
2014-10-28 10:58:38 +01:00
Mislav Marohnić
4ef4ed4cd1 Merge pull request #633 from sstephenson/upgrade-instructions
Show specific upgrade instructions based on environment
2014-09-11 10:30:47 -07:00
Mislav Marohnić
e754d67e14 Fix test to compensate for different ls output on Fedora/Centos 2014-09-09 00:03:18 -07:00
Mislav Marohnić
aa4a237f79 Show specific upgrade instructions based on environment
Because ruby-build is both a Homebrew formula and an rbenv plugin, some
people end up with both installed. In these cases, executing
`rbenv install` vs. `ruby-build` might not use the same install. Users
end up being unsure where `rbenv install` is coming from and upgrading
it from the wrong location.

This detect whether ruby-build is contained in Homebrew or git and shows
upgrade instructions accordingly. Example:

    See all available versions with \`rbenv install --list'.

    If the version you need is missing, try upgrading ruby-build:

      brew update && brew upgrade ruby-build
2014-09-08 22:23:23 -07:00
Mislav Marohnić
56c8f296ce rbenv install completion includes definitions from plugins
Before, `ruby-build --definitions` was invoked sooner than
RUBY_BUILD_DEFINITIONS was built up with paths from rbenv plugins.
2014-09-08 20:14:33 -07:00
Mislav Marohnić
0170728de9 Merge pull request #630 from sstephenson/freebsd-make
On FreeBSD 10, stop defaulting to MAKE=gmake
2014-09-08 13:38:01 -07:00
Mislav Marohnić
323c2b778b Sort Ruby versions when listing available definitions
Stable releases should now be sorted as a higher version than preview
releases or RCs. For instance:

- 1.9.3-preview < 1.9.3-rc1 < 1.9.3-p0
- 2.1.0-dev < 2.1.0-rc1 < 2.1.0
- jruby-1.7.0-preview1 < jruby-1.7.0-rc1 < jruby-1.7.0
2014-09-08 13:06:48 -07:00
Mislav Marohnić
0e58079d66 On FreeBSD, stop defaulting to MAKE=gmake
It appears that regular `make` that ships on FreeBSD 10 is compatible
enough to build Rubies. This enables ruby-build on fresh FreeBSD
installs (which don't have `gmake` by default) without having to
explicitly set `MAKE=make`.
2014-09-08 09:52:15 -07:00
Mislav Marohnić
f4c2fe67e3 Fix detecting of CPU cores on FreeBSD
On FreeBSD, use the same approach as OS X with `sysctl`.
2014-09-08 09:11:39 -07:00
Mislav Marohnić
311d96f779 Fix rbenv install --list for definitions auto-discovery
The build definitions auto-discovered from rbenv plugins would
previously not appear in `--list` results due to discovery process
taking place too late.
2014-09-06 02:57:19 -07:00
Mislav Marohnić
f8015da306 Fix output assertion
`assert_success` doesn't accept an argument via stdin
2014-09-06 02:56:39 -07:00
Mislav Marohnić
e8e77e6028 Read ruby-build revision from git if available
But don't assume that RUBY_BUILD_ROOT is where ruby-build's own files
reside, since RUBY_BUILD_ROOT can be overriden with alternate definition
files location.
2014-08-25 17:54:33 -07:00
Mislav Marohnić
78bc84660b Auto-discovery of build definitions from rbenv plugins
The `share/ruby-build/` directory from each rbenv plugin, if it exists,
is added to RUBY_BUILD_DEFINITIONS automatically during `rbenv install`.
2014-08-18 16:08:06 -07:00
Mislav Marohnić
6847c47274 Add rbenv-install tests 2014-08-18 16:08:06 -07:00
Mislav Marohnić
f118b173af Extra definitions paths via RUBY_BUILD_DEFINITIONS
This is a colon-separated list of directories that will get searched for
build definition in order from left to right.
2014-08-17 12:20:53 -07:00
Mislav Marohnić
ff75ca7204 Support changing RUBY_BUILD_ROOT
This is to allow specifying an alternate path where `share/ruby-build/*`
definitions reside. Useful in tests as well.
2014-08-17 12:20:53 -07:00
Mislav Marohnić
4e2177d5c2 Add test for ruby-build definitions 2014-08-16 19:56:40 -07:00
Yamashita Yuu
07ef88d7c8 Surely update local git working copy 2014-06-07 01:27:49 +09:00
Yamashita Yuu
28dcc3f85b Add tests for fetch_git 2014-06-07 01:27:49 +09:00
Mislav Marohnić
5dc9233199 Merge remote-tracking branch 'origin' into shasum 2014-05-23 14:40:48 +07:00
Thomas Johansen
b4154d11e8 Re-introduce legacy MD5 checksum verification based on checksum length
This is so any 3rd-party definitions continue to work even if they have
MD5 checksums embedded.
2014-05-23 14:39:41 +07:00
Thomas Johansen
fb5e2b1ae6 Replace MD5 commands with SHA2 equivalents
A more secure hashing algorithm makes it less feasible to serve up a
modified tarball that matches the same checksum.

See the discussion in #548
2014-05-23 14:34:37 +07:00
Mislav Marohnić
1786cf75d2 Fix patch passed via stdin in tests
[picture of I Have No Idea What I'm Doing dog]

https://travis-ci.org/sstephenson/ruby-build/builds/23435342
2014-04-21 17:12:06 +02:00
Mislav Marohnić
c76cde673e Make --patch compatible with git diff patches
Filenames in git diff patches are prefixed by default by "a/" (source)
and "b/" destination. Such patches don't work with ruby-builds `--patch`
option since it internally uses `patch -p0`.

Prior workarounds were to use either an intermediate step:

    filterdiff --strip=1

or to generate the patch without the prefix in the first place:

    git diff --no-prefix ...

Now, git diff patches are detected by searching for this pattern:

    diff --git a/...

And `patch -p1` is used by default in such cases to strip the 1st
component of filename paths.

Fixes #521, closes #484
2014-04-21 16:01:06 +02:00
Mislav Marohnić
74b21936a1 Use patch --force to ignore missing files when patching
From patch(1):

    -f  or  --force
       Assume that the user knows exactly what he or she is doing, and do  not
       ask any questions.  Skip patches whose headers do not say which file is
       to be patched; patch files even though they have the wrong version  for
       the Prereq: line in the patch; and assume that patches are not reversed
       even if they look like they are.  This option does not suppress commen-
       tary; use -s for that.

Fixes #555
2014-04-21 15:32:34 +02:00
Adam Harvey
2e6e100a2e Prefer ggrep for grep invocations that use GNU extensions. 2014-04-18 10:51:26 +10:00
Mislav Marohnić
a4c3dbc573 Avoid sed with extended regexp
Seems like sed 4.1.5 on RHEL 5.3 doesn't support `-E`, and sed on OS X doesn't
support `-r` to activate the extended regexp mode. Best to avoid extended regexp
altogether for compatibility.

Fixes #495
2014-04-05 21:29:38 +02:00
Mislav Marohnić
f44d7ba8c6 Add test for Rubinius gem binstubs fix
References #433
2014-04-05 21:24:46 +02:00
Jose Luis Salas
53920b0fe1 Update libyaml to 0.1.6
Security fix for CVE-2014-2525

Advisory: http://www.ocert.org/advisories/ocert-2014-003.html
2014-03-26 21:17:10 +01:00
Mislav Marohnić
1bcd249ffa Avoid re-downloading if there's a valid tarball in build location
If there already exists a valid tarball in the build location, e.g. as
artefact of a previous install using `--keep`, don't re-download the
file, as there is no need.

References #487
2014-03-25 04:15:50 +01:00
Mislav Marohnić
a3009b4641 Fix re-downloading tarball when destination file already exists
Previously, curl and wget were instructed to try to resume the download
if the destination file already exists. This is supposed to be done via
the "Range" HTTP header, but doesn't work well with CloudFront:

    HTTP server doesn't seem to support byte ranges. Cannot resume.

CloudFront is supposed to support ranges, so I don't know what's going
on here. It might be failing only in case the existing file is a fully
downloaded tarball?

In any case, this disables resuming downloads and resorts to simply
re-downloading the tarball always, overwriting the existing file.

Fixes #487
2014-03-25 03:21:27 +01:00
Mislav Marohnić
ea481d2766 Add test for JRuby+Graal 2014-02-26 01:23:25 +01:00
Colin Mattson
060f50fcd8 Improve Java 7 detection
Java on most (all?) platforms directs `-version` output to STDERR.
2014-02-17 19:44:49 -07:00
Mislav Marohnić
047953e125 Simplify Java 7 detection and error message 2014-02-10 20:11:22 +01:00
Erik Michaels-Ober
63fc2c91b0 Update libyaml to version 0.1.5
Closes https://github.com/sstephenson/ruby-build/issues/499.
2014-02-04 11:51:46 +01:00
Mislav Marohnić
55bb34235b Merge pull request #493 from eric/add-make-install-opts-variables
Add MAKE_INSTALL_OPTS for packages
2014-01-29 14:47:34 -08:00