Pete Elmore [Wed, 21 Jan 2015 02:44:03 +0000 (18:44 -0800)]
Be more explicit about the error handled.
Pete Elmore [Mon, 12 Jan 2015 04:24:02 +0000 (20:24 -0800)]
Don't treat inaccessible working directories as build failures.
If the user installing the gem does not have access to the directory
where the `gem install` command is run (which is common for sudo(1),
for example) then extensions will build correctly, but will then report
a build failure when trying to return to the previous working directory
raises an exception. This fixes the bug by returning to a fallback
directory if we can't return to the original one.
SHIBATA Hiroshi [Fri, 9 Jan 2015 14:17:18 +0000 (23:17 +0900)]
backport r48985 from ruby/ruby trunk
SHIBATA Hiroshi [Fri, 9 Jan 2015 14:09:28 +0000 (23:09 +0900)]
removed trailing white-space
SHIBATA Hiroshi [Fri, 9 Jan 2015 14:06:26 +0000 (23:06 +0900)]
Merge pull request #1124 from voxik/relax-cmake-dependency
Relax CMake dependency, so it passes on RHEL 6/CentOS 6.
SHIBATA Hiroshi [Fri, 9 Jan 2015 14:06:20 +0000 (23:06 +0900)]
Merge pull request #1128 from voxik/patch-1
Relax psych require
Vít Ondruch [Fri, 9 Jan 2015 10:56:45 +0000 (11:56 +0100)]
Relax psych require
I am not sure why only Psych ~> 1.2 should be used, since Ruby ships with Psych 2.0.8 now, so relax the dependency.
Vít Ondruch [Thu, 8 Jan 2015 15:01:22 +0000 (16:01 +0100)]
Relax CMake dependency, so it passes on RHEL 6/CentOS 6.
Evan Phoenix [Wed, 7 Jan 2015 06:13:14 +0000 (22:13 -0800)]
Merge pull request #1123 from nobu/Remove-unnecessary-code
Remove unnecessary code
Nobuyoshi Nakada [Wed, 7 Jan 2015 04:51:57 +0000 (13:51 +0900)]
Remove unnecessary code
`Kernel#instance_variable_defined?` accepts a `Symbol` as well as
a `String` from the beginning. Instance variable names are stored
as `ID`s, not `String`s.
SHIBATA Hiroshi [Mon, 8 Dec 2014 12:36:07 +0000 (21:36 +0900)]
Merge pull request #1096 from hakeda/fix-typos-and-misspellings
Fix typos and misspellings
hakeda [Mon, 8 Dec 2014 11:49:51 +0000 (11:49 +0000)]
Fix typos and misspellings
Evan Phoenix [Mon, 8 Dec 2014 02:30:21 +0000 (18:30 -0800)]
Merge pull request #1093 from kou/install-platform-specific-gem
Fix a bug that "gem install" use "ruby" platform rather than specific platform
Aaron Patterson [Sat, 6 Dec 2014 20:19:17 +0000 (12:19 -0800)]
`licenses` always returns a value, so we can remove this conditional
Aaron Patterson [Fri, 5 Dec 2014 20:16:29 +0000 (12:16 -0800)]
use Gem.use_paths rather than direct assignment
Aaron Patterson [Fri, 5 Dec 2014 19:40:33 +0000 (11:40 -0800)]
remove dead code
This method is private and unused, so let's remove it!
Kouhei Sutou [Wed, 3 Dec 2014 10:43:52 +0000 (19:43 +0900)]
Fix a bug that "gem install" use "ruby" platform rather than specific platform
"gem install" with "--platform" option should install the specified
platform gem rather than "ruby" platform.
For example, "gem install --platform=x86-mingw32 gtk2" should install
"gtk2-X.Y.Z-x86-mingw32" not "gtk2-X.Y.Z".
How to confirm the problem:
% sudo gem install --platform=x86-mingw32 gtk2 --verbose
...
Downloading gem gtk2-2.2.3.gem
GET https://api.rubygems.org/gems/gtk2-2.2.3.gem
The command should download "gtk2-2.2.3-x86-mingw32.gem".
Eric Hodel [Wed, 3 Dec 2014 07:22:27 +0000 (23:22 -0800)]
Set release version and date
Eric Hodel [Wed, 3 Dec 2014 06:30:08 +0000 (22:30 -0800)]
Add #1074 to History
Eric Hodel [Wed, 3 Dec 2014 06:28:47 +0000 (22:28 -0800)]
Merge pull request #1074 from tkareine/replace-partition-with-reject
Refactor: replace `partition` with `reject` as selected elements are not used
Eric Hodel [Wed, 3 Dec 2014 06:28:03 +0000 (22:28 -0800)]
Add #1090 to History
Eric Hodel [Wed, 3 Dec 2014 06:27:57 +0000 (22:27 -0800)]
Update Manifest following #1090
Eric Hodel [Wed, 3 Dec 2014 06:26:43 +0000 (22:26 -0800)]
Merge pull request #1090 from robertomiranda/patch-2
Rename CONTRIBUTING to CONTRIBUTING.rdoc
Roberto Miranda [Tue, 2 Dec 2014 14:46:37 +0000 (09:46 -0500)]
Rename CONTRIBUTING to CONTRIBUTING.rdoc
Github Markdown is supported if the file name includes the extension
Eric Hodel [Tue, 2 Dec 2014 01:23:17 +0000 (17:23 -0800)]
Add #1081 to History
Eric Hodel [Tue, 2 Dec 2014 01:22:31 +0000 (17:22 -0800)]
Merge pull request #1081 from indirect/master
Fix grouped expression warning
Eric Hodel [Tue, 2 Dec 2014 01:22:04 +0000 (17:22 -0800)]
Add #1084 to History
Eric Hodel [Tue, 2 Dec 2014 01:20:29 +0000 (17:20 -0800)]
Merge pull request #1084 from jeremyevans/local
Make gem install --local not attempt remote access
Jeremy Evans [Mon, 1 Dec 2014 22:38:11 +0000 (14:38 -0800)]
Add a test for InstallerSet#prefetch
This is overly simplistic, just testing it prefetct is called
on the remote_set, but it at least tests that it is called in
remote mode and not called in local mode.
Jeremy Evans [Mon, 1 Dec 2014 21:09:00 +0000 (13:09 -0800)]
Make gem install --local not attempt remote access
gem install --local has been attempting remote access since
ccde1e0e2e4dba6a7e0951aab37b70b9a93429db was committed back
in February. This is because it prefetches even in --local
mode. Skip prefetching if --local is used, so that no remote
access happens in that case.
Andre Arko [Mon, 1 Dec 2014 08:41:00 +0000 (00:41 -0800)]
Fix grouped expression warning
ruby -w printed "rubygems/lib/rubygems/basic_specification.rb:167:
warning: (...) interpreted as grouped expression"
Eric Hodel [Mon, 1 Dec 2014 05:40:03 +0000 (21:40 -0800)]
Fix issue reference for #1078
Eric Hodel [Sun, 30 Nov 2014 05:31:57 +0000 (21:31 -0800)]
Add #1016 to History
Eric Hodel [Sun, 30 Nov 2014 05:30:44 +0000 (21:30 -0800)]
Merge pull request #1016 from piotrekbator/master
Provide more info on file path length errors
Eric Hodel [Sun, 30 Nov 2014 05:28:50 +0000 (21:28 -0800)]
Add #1019 to History
Eric Hodel [Sun, 30 Nov 2014 05:27:55 +0000 (21:27 -0800)]
Merge pull request #1019 from chastell/warning_clean
Initialize StubSpecification’s @name to make RubyGems warning-free
Eric Hodel [Sun, 30 Nov 2014 05:27:18 +0000 (21:27 -0800)]
Add #1026 to History
Eric Hodel [Sun, 30 Nov 2014 05:25:47 +0000 (21:25 -0800)]
Merge pull request #1026 from fortissimo1997/fix_bug_of_min3
Fix bug in `Gem::Text#min3`
Eric Hodel [Sun, 30 Nov 2014 05:23:42 +0000 (21:23 -0800)]
Add #1038 to History
Eric Hodel [Sun, 30 Nov 2014 05:21:49 +0000 (21:21 -0800)]
Merge pull request #1038 from pushrax/fix-ext-reloading-segfault
Remove shared libraries before copying them into place
Eric Hodel [Sun, 30 Nov 2014 05:04:08 +0000 (21:04 -0800)]
Add #1043 to History
Eric Hodel [Sun, 30 Nov 2014 05:02:59 +0000 (21:02 -0800)]
Merge pull request #1043 from blackwinter/drop-rescue-tsort-cyclic
Drop `rescue TSort::Cyclic` from `Gem::{DependencyList,RequestSet}#tsort_each_child`.
Eric Hodel [Sun, 30 Nov 2014 05:00:39 +0000 (21:00 -0800)]
Update #1060 tests for alternate DLEXT
Eric Hodel [Sun, 30 Nov 2014 04:32:24 +0000 (20:32 -0800)]
Add #1057 to History
Shannon Skipper [Mon, 20 Oct 2014 21:57:05 +0000 (14:57 -0700)]
Suggest a runnable gem pristine command
When warning about missing extensions, suggest a `gem pristine` command that is ready to be run. For example, the missing extensions warning for puma v2.9.1 was `Try: gem pristine puma-2.9.1`, which failed. This changes the suggestion to `Try: gem pristine puma --version 2.9.1`, which succeeds.
Eric Hodel [Sun, 30 Nov 2014 04:23:25 +0000 (20:23 -0800)]
Add #1057 to History
Eric Hodel [Sun, 30 Nov 2014 04:22:11 +0000 (20:22 -0800)]
Merge pull request #1057 from voxik/dont-touch-bin-when-not-needed
Don't touch the binary when not needed.
Eric Hodel [Sun, 30 Nov 2014 04:20:33 +0000 (20:20 -0800)]
Add #1060 to History
Eric Hodel [Sun, 30 Nov 2014 04:18:54 +0000 (20:18 -0800)]
Merge pull request #1060 from rubygems/speedup
Speed up rubygem's Kernel.require
Eric Hodel [Sun, 30 Nov 2014 04:17:13 +0000 (20:17 -0800)]
Add #1064 to History
Eric Hodel [Sun, 30 Nov 2014 04:14:59 +0000 (20:14 -0800)]
Merge pull request #1064 from tkareine/pristine-command-skips-invalid-gems
Small reliability improvements to pristine command
Eric Hodel [Sun, 30 Nov 2014 04:13:22 +0000 (20:13 -0800)]
Update credits for #1058 in History
Eric Hodel [Sun, 30 Nov 2014 04:10:19 +0000 (20:10 -0800)]
Convert dependency API platforms upon load
Previously platforms retrieved from the gem dependencies API were left
as strings instead of converted to Gem::Platform objects. This meant
RubyGems would crash when installing gems.
Now RubyGems converts the platform string to a Platform object after
retrieving it from the API.
Fixes #1058
Eric Hodel [Sun, 30 Nov 2014 04:04:09 +0000 (20:04 -0800)]
Hide internal method prefetch_now
Eric Hodel [Sun, 30 Nov 2014 04:00:57 +0000 (20:00 -0800)]
Ignore URI parse errors for source subclasses
Not all subclasses need a URI so ignore the parse error as they may do
their own thing.
Fixes #1054
Eric Hodel [Sun, 30 Nov 2014 03:44:56 +0000 (19:44 -0800)]
Sort lockfile platforms by string value
Platforms are not ordered but we want consistent output for testing so
just sort by string order.
Eric Hodel [Sun, 30 Nov 2014 03:37:40 +0000 (19:37 -0800)]
Handle pinned lockfile dependencies with versions
A lockfile dependency entry can contain both a version and a ! for
pinning. This case had not been encountered previously but is now.
Fixes #1054
Eric Hodel [Sun, 30 Nov 2014 00:41:59 +0000 (16:41 -0800)]
Match loaded spec for Kernel#gem and Gem.bin_path
Previously we looked for newer versions when running Kernel#gem and
Gem.bin_path which would lead to executable stubs attempting to use the
latest version when RUBYGEMS_GEMDEPS was active or another version had
been loaded.
Now we first check the loaded (active) specifications against the
requirement and check that version against the given dependency.
Fixes #1072
Eric Hodel [Sat, 29 Nov 2014 22:27:12 +0000 (14:27 -0800)]
Describe issues and milestones
Tuomas Kareinen [Sat, 15 Nov 2014 23:56:26 +0000 (01:56 +0200)]
Skip pristine install for gems bundled with old Ruby
MRI Rubies older than 2.0.0 do not store bundled gem specification files
under `default` subdirectory, failing to be recognized as default gems
and thus be skipped from pristine installs by Rubygems.
We observe that old Ruby stores these gems with a regular pattern in
spec's summary field:
```
$ cat ~/.rubies/ruby-1.9.3-p551/lib/ruby/gems/1.9.1/specifications/bigdecimal-1.1.0.gemspec
Gem::Specification.new do |s|
s.name = "bigdecimal"
s.version = "1.1.0"
s.summary = "This bigdecimal is bundled with Ruby"
s.executables = []
end
```
We use this to detect bundled gems when using old Ruby. This allows us
to run pristine install on all gems without errors:
```
$ gem pristine --all
Restoring gems to pristine condition...
Skipped bigdecimal-1.1.0, it is bundled with Ruby < 2.0.0
Skipped io-console-0.3, it is bundled with Ruby < 2.0.0
Skipped json-1.5.5, it is bundled with Ruby < 2.0.0
...
```
It's unclear to me if this detection should be combined to
`Gem::BasicSpecification#default_gem?` and made available to other
commands (such as `gem clean`).
Tuomas Kareinen [Sat, 22 Nov 2014 17:49:55 +0000 (19:49 +0200)]
Replace `partition` with `reject` as selected elements are not used
Tuomas Kareinen [Sat, 15 Nov 2014 23:31:06 +0000 (01:31 +0200)]
Fetch gem to proper cache dir when gem path is not gem home
This fixes the pristine installation error for a gem that is installed
to other GEM PATH than $GEM_HOME and the cache file for that gem is
missing.
Example scenario:
```
$ cat ~/.gemrc
---
:sources:
- https://rubygems.org/
gem: --no-ri --no-rdoc
gempath:
- /Users/tkareine/gem-repo
$ gem env
RubyGems Environment:
...
- INSTALLATION DIRECTORY: /Users/tkareine/.gem/ruby/1.9.3
...
- GEM PATHS:
- /Users/tkareine/.gem/ruby/1.9.3
- /Users/tkareine/gem-repo
...
$ gem install -i ~/gem-repo timecop
Fetching: timecop-0.7.1.gem (100%)
Successfully installed timecop-0.7.1
1 gem installed
$ rm gem-repo/cache/timecop-0.7.1.gem
```
Without the fix we get an error:
```
$ gem pristine timecop
Restoring gems to pristine condition...
Cached gem for timecop-0.7.1 not found, attempting to fetch...
Fetching: timecop-0.7.1.gem (100%)
ERROR: While executing gem ... (Gem::InstallError)
invalid gem: No such file or directory - /Users/tkareine/gem-repo/cache/timecop-0.7.1.gem
```
With the fix:
```
$ gem pristine timecop
Restoring gems to pristine condition...
Cached gem for timecop-0.7.1 not found, attempting to fetch...
Fetching: timecop-0.7.1.gem (100%)
Restored timecop-0.7.1
```
Tuomas Kareinen [Sat, 15 Nov 2014 23:29:46 +0000 (01:29 +0200)]
Skip pristine install for non-cached gem unknown at remote source
This prevents failure on trying to do a pristine installation for a
private gem that is not cached.
Aaron Patterson [Sat, 22 Nov 2014 01:35:58 +0000 (17:35 -0800)]
fix warning in stub specifications
if the name and version methods haven't been called, the instance
variables will not be initialized, and calling to_spec will warn. This
ensures that the data has actually been loaded before looping through
the loaded specs.
Aaron Patterson [Thu, 20 Nov 2014 16:03:48 +0000 (08:03 -0800)]
Merge pull request #1063 from tenderlove/resort
stubs are already sorted, so we don't have to resort
SHIBATA Hiroshi [Mon, 17 Nov 2014 03:26:36 +0000 (12:26 +0900)]
Merge pull request #1035 from hsbt/remove-useless-variables
Removed useless assignment variables
SHIBATA Hiroshi [Mon, 17 Nov 2014 00:47:53 +0000 (09:47 +0900)]
Merge pull request #1061 from rubygems/backport-r48265
backport r48265 without to using refinements
Piotrek Bator [Sun, 16 Nov 2014 13:43:21 +0000 (14:43 +0100)]
Test if TooLongFileName exception messages include names of the offending files.
Aaron Patterson [Sat, 15 Nov 2014 23:35:19 +0000 (15:35 -0800)]
stubs are already sorted, so we don't have to resort
The stub specifications and the regular specifications are sorted in the
same way. Since the list of full specifications is based on the list of
already sorted stub specifications, there is no need to sort the full
specs.
U.Nakamura [Fri, 14 Nov 2014 08:05:00 +0000 (17:05 +0900)]
shouldn't be able to get the fullpath before activating.
SHIBATA Hiroshi [Fri, 14 Nov 2014 06:21:32 +0000 (15:21 +0900)]
backport r48265 without to using refinements
U.Nakamura [Fri, 14 Nov 2014 03:45:25 +0000 (12:45 +0900)]
Pass the full path when calling the original Kernel.require if available.
calling the original Kernel.require with a full path is about 25% faster than with path-less paramter.
this reduces about 5% total time of rubygem's Kernel.require on my test environment.
U.Nakamura [Fri, 14 Nov 2014 03:35:17 +0000 (12:35 +0900)]
Cache Gem::BasicSpecification#contains_requirable_file?.
this reduces about 10% total time of Kernel.require on my test environment.
U.Nakamura [Fri, 14 Nov 2014 03:29:51 +0000 (12:29 +0900)]
Cache Gem::StubSpecification#activated?.
this reduces about 10% total time of Kernel.require on my test environment.
Eric Hodel [Wed, 12 Nov 2014 19:28:32 +0000 (11:28 -0800)]
Set release date and version
Eric Hodel [Tue, 11 Nov 2014 22:28:26 +0000 (14:28 -0800)]
Add staging to CA certificate checker
Also show which certificate each URL needs
Also warn when overwriting an existing certificate (even though git
knows).
Luis Lavena [Tue, 11 Nov 2014 23:26:31 +0000 (20:26 -0300)]
Update History.txt with recent changes
Missed include details in past commits. I'm getting rusty at OSS...
Luis Lavena [Tue, 11 Nov 2014 23:11:35 +0000 (20:11 -0300)]
Update Manifest.txt
Reflect latest changes in certs.
Luis Lavena [Tue, 11 Nov 2014 22:55:12 +0000 (19:55 -0300)]
Add Root CA with SHA1 signature
This is required for some versions of OpenSSL having trouble
to establish and verify the new certificates for rubygems.org
SHA-1-based signatures for trusted root certificates are not a
problem because TLS clients trust them by their identity, rather
than by the signature of their hash.
http://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html
Luis Lavena [Tue, 11 Nov 2014 22:52:43 +0000 (19:52 -0300)]
Remove COMODO intermediate certificates
Root certificates are the ones that matters in this scenario.
SHIBATA Hiroshi [Tue, 11 Nov 2014 07:00:55 +0000 (16:00 +0900)]
backport r48371 from ruby/ruby trunk
SHIBATA Hiroshi [Tue, 11 Nov 2014 07:00:37 +0000 (16:00 +0900)]
backport r48370 from ruby/ruby trunk
Eric Hodel [Tue, 11 Nov 2014 02:53:47 +0000 (18:53 -0800)]
Update Manifest
Eric Hodel [Tue, 11 Nov 2014 02:43:17 +0000 (18:43 -0800)]
Update release date and version
Eric Hodel [Tue, 11 Nov 2014 02:35:43 +0000 (18:35 -0800)]
Add CA roots for upcoming rubygems.org cert change
We need to deploy a new server certificate as Google Chrome no longer
trusting SHA-1-signed certificates:
http://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html
In order to avoid interruption of service users will need the updated
root certificates to verify the new server certificate. Users may be
able to install these certificates by hand into their OpenSSL
certificates pem as well.
Vít Ondruch [Fri, 7 Nov 2014 11:45:37 +0000 (12:45 +0100)]
Don't touch the binary when not needed.
This might cause issues, when Bundler uses the git repository, but the
repository is read-only. In such case, although everything is in correct
state, the execution fails with 'Errno::EPERM: Operation not permitted @
chmod_internal' error.
SHIBATA Hiroshi [Tue, 4 Nov 2014 13:02:40 +0000 (22:02 +0900)]
backport r48268 from ruby/ruby trunk
SHIBATA Hiroshi [Tue, 4 Nov 2014 09:18:48 +0000 (18:18 +0900)]
Add #1044 to History
SHIBATA Hiroshi [Tue, 4 Nov 2014 09:09:14 +0000 (18:09 +0900)]
Merge pull request #1044 from akr/fix-mirror
Don't define MirrorCommand if already defined.
SHIBATA Hiroshi [Tue, 4 Nov 2014 08:54:46 +0000 (17:54 +0900)]
Update travis to latest 2.1 release
Jens Wille [Thu, 9 Oct 2014 16:12:59 +0000 (18:12 +0200)]
Drop `rescue TSort::Cyclic` from `Gem::{DependencyList,RequestSet}#tsort_each_child`.
`TSort::Cyclic` is only raised from `TSort.tsort_each`, not from `TSort#strongly_connected_components` which is used here. Even then, the exception is raised outside the child iterator and thus cannot be rescued in `#tsort_each_child`.
Originally introduced in
f554bc5 and
a1d35cd, respectively.
Zachary Scott [Wed, 15 Oct 2014 07:45:22 +0000 (00:45 -0700)]
Add #1048 to History start RG version 2.5 section
Zachary Scott [Wed, 15 Oct 2014 07:43:52 +0000 (00:43 -0700)]
Merge pull request #1048 from jasonrclark/fix_platform_typo
Fix typo in platform= documentation [ci skip]
Jason R. Clark [Tue, 14 Oct 2014 23:08:59 +0000 (16:08 -0700)]
Fix typo in platform= documentation
Tanaka Akira [Fri, 10 Oct 2014 09:33:44 +0000 (18:33 +0900)]
Don't define MirrorCommand if already defined.
Luis Lavena [Wed, 8 Oct 2014 22:17:45 +0000 (19:17 -0300)]
Add AppVeyor to run tests against Windows CI
[ci skip]
Justin Li [Tue, 7 Oct 2014 16:41:27 +0000 (12:41 -0400)]
Remove shared libraries before copying them into place
Fixes issue #1037
When building an extension that's still loaded into memory, cp_r replaces the
file contents of the same inode. Since Linux mmaps shared libs, they will get
reloaded but not relocated, leading to corruption of the GOT/PLT.
The fix is to unlink the destination before copying, which creates a new inode
and prevents the file from being reloaded.
SHIBATA Hiroshi [Sun, 5 Oct 2014 23:50:25 +0000 (08:50 +0900)]
backport r47787 from ruby/ruby trunk
Eric Hodel [Wed, 1 Oct 2014 08:05:11 +0000 (01:05 -0700)]
Update travis to latest 2.1 release
Eric Hodel [Wed, 1 Oct 2014 07:57:20 +0000 (00:57 -0700)]
Add sponsorship notice to History