Commit graph

221 commits

Author SHA1 Message Date
Nobuyoshi Nakada
cc3352cc41
rbinstall.rb: record bundled gem files 2020-05-09 00:55:55 +09:00
Nobuyoshi Nakada
8a6ba10f9d
Do not make disabled directories at installation [Bug #12392] 2020-03-16 17:26:10 +09:00
David Rodríguez
2b6ec768fc
Fix rbinstall bugs (#2930)
* Fix incorrect calls to `Gem.ensure_gem_subdirectories`

This method doesn't take keyword args.

* Remove stuff no longer necessary

Now `Gem.ensure_gem_subdirectories` is doing its job, so some stuff is
no longer needed.

* Use the proper method for default gems

* Respect DESTDIR when creating rubygems folder layout

* Use `Gem.default_specifications_dir`
2020-03-08 10:18:53 +09:00
Vít Ondruch
9bede6e942 Fix wrong RegExp.
The missing `\` in PR #2922 causes the default gems to be installed from
the .gem packages instead from the expanded sources.
2020-02-28 14:32:20 +09:00
Nobuyoshi Nakada
8dab71b9d0
Simplified single script case
Simply use `File.basename` to remove the directory name (and
suffix), instead of `gsub` which can replace unintended parts.
2020-02-26 16:45:35 +09:00
Vít Ondruch
9d6d531527 Cache destination dir.
It is not necessary to strip the `destdir` prefix every iteration, when
it can be done just once.
2020-02-26 11:04:52 +09:00
Vít Ondruch
b8a8fdba63 Properly detect mode for binaries.
.gemspec files specifies not just `bin`, but also other directories.
2020-02-26 11:04:52 +09:00
Vít Ondruch
e087b029e5 Use class variable @src_dir instead of local path.
The local `path` variable does not provide any additional value and was
kept around just for clarity for easier review of the `extrac_files`
method move.
2020-02-26 11:04:52 +09:00
Vít Ondruch
c9fab1ac06 Use local {dir,prog,data}_mode variables instead of globals.
This just gets the `RbInstall::DirPackage` closer by functionality to
`Gem::Package`.
2020-02-26 11:04:52 +09:00
Vít Ondruch
6609940a5e Use $script_mode instead of $prog_mode for gem inistallation.
rbinstall is using `$script_mode` and `$prog_mode`. However, the
`$script_mode` fallbacks to `$prog_mode` if not provided.

However, RubyGems do not distinguish between `$script_mode` and
`$prog_mode`:

92892bbc3a/lib/rubygems/installer.rb (L196)
92892bbc3a/lib/rubygems/installer.rb (L515)
92892bbc3a/lib/rubygems/installer.rb (L543)

Comparing the usage of `$script_mode` and `$prog_mode`, it seems that
the `$script_mode` should be used where RubyGems expects `$prog_mode`.
2020-02-26 11:04:52 +09:00
Vít Ondruch
e960ef6f18 Use Gem::Package like object instead of monkey patching.
1. This is similar to what RubyGems does and it is less magic [[1]].
2. It avoids deprecated code paths in RubyGems [[2]].

[1]: 92892bbc3a/lib/rubygems/installer.rb (L151)
[2]: 92892bbc3a/lib/rubygems/installer.rb (L187)
2020-02-26 11:04:52 +09:00
Nobuyoshi Nakada
55bf0ef1aa Share extracted bundled gems with gems for bundler
Extract bundled gems under ".bundle/gems" and get rid of
duplication which cause constant redefinition warnings at
`test-all` after `extract-gems` and `test-bundler`.
2020-02-25 20:40:36 +09:00
Hiroshi SHIBATA
563f177aa4
UnpackedInstaller on rbinstall.rb is inherited from Gem::Installer.
It also needs to explicitly convert from String to Gem::Package
  with initialization.
2020-02-01 11:31:46 +09:00
Hiroshi SHIBATA
f8df531bbf
Gem::Installer.new(String, options) is obsoleted. Explicitly converted
to Gem::Package from String instance.
2020-02-01 11:23:34 +09:00
Nobuyoshi Nakada
33d02e6bc7
Skip empty directories to install [Bug #16596] 2020-01-28 10:04:25 +09:00
Nobuyoshi Nakada
390293525a
Remove binary data at installation
And revert "Relaxed warning assertions",
6f9be8505d.
2019-11-11 12:20:03 +09:00
卜部昌平
a569bc09e2 add include/ruby/backward/cxxanyargs.hpp
Compilation of extension libraries written in C++ are reportedly
broken due to https://github.com/ruby/ruby/pull/2404

The root cause of this issue was that the definition of ANYARGS
differ between C and C++, and that of C++ is incompatible with the
updated ones.

We are using the incompatibility against itself.  In C++ two distinct
function prototypes can be overloaded.  We provide the old, ANYARGSed
prototypes in addition to the current granular ones; and let the
older ones warn about types.
2019-09-06 15:50:58 +09:00
Yusuke Endoh
8cb9efbbe6 tool/rbinstall.rb: remove a keyword-argument warning 2019-08-31 07:17:46 +09:00
David Rodríguez
3b55394b07 Ensure all default gems have an gem folder
Even if they don't ship with any executables. This makes rbinstall
behaviour consistent with rubygems `gem install --default` command.
2019-08-23 18:20:46 +10:00
Nobuyoshi Nakada
ff3704031a
Insert a newline before =end
For a certain editor which cannot handle here-document properly.
2019-07-15 09:28:44 +09:00
Jeremy Evans
51361272f9 Respect --dest-dir when removing old default gems
Before this, tool/rbinstall would try to remove a gem file that
it may not have access too.

Fixes issue introduced in f550da512c.
2019-06-25 19:02:48 -07:00
hsbt
c52ca1f2ff Revert r58345 and r58371.
These changes break the behavior of default gems. Bug #13428 says
  r58345 is reasonable because gemspec file is installed by `to_ruby_for_cache`
  method. But I revert `to_ruby_for_cache` in rbinstall.rb at r58403.
  There is no reason that we apply r58345 now.

  But I'm not sure about gemspec of default gems affects standalone gems.
  I'm going to investigate it on rubygems/rubygems.

  [Bug #15500][ruby-core:90867]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-19 03:36:22 +00:00
nobu
92c6072ef4 rbinstall.rb: add --exclude option for install-nodoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17 23:23:14 +00:00
hsbt
f550da512c Removed old gemspecs of default gems for the Ruby committers.
[Bug #12764][ruby-core:77284]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-17 13:45:48 +00:00
nobu
5a846eb657 rbinstall.rb: purge %x[git ls-files] too
[Bug #13423]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20 04:03:07 +00:00
nobu
4df4b48455 rbinstall.rb: syntax error in gemspec
* tool/rbinstall.rb (load_gemspec): do not hide syntax errors in
  a gemspec file.  check if the result instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20 03:51:15 +00:00
usa
adc32fd30c Install script of default gems as is to its libexec dir
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-13 10:51:59 +00:00
hsbt
a943328194 Use stub executables generated by RubyGems istead of original executables.
It resolved the conflict issues when invoking `gem i rdoc` and the binstub
issues with Bundler and Rails.

  [Bug #5060][ruby-core:38257][Fix GH-2023]

  * https://github.com/rubygems/rubygems/pull/2338
  * https://github.com/heroku/heroku-buildpack-ruby/issues/829

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25 01:20:00 +00:00
nobu
a3b92a5d92 rbinstall.rb: do not install rdoc flag files [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 00:37:48 +00:00
k0kubun
0fd5f063aa win32/Makefile.sub: generate MJIT header pdb
in the MJIT-header-specific path, not default path like vc140.pdb.

mjit_worker.c: specify the MJIT-header-specific pdb path.

tool/rbinstall.rb: install MJIT header pdb as well.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 16:28:04 +00:00
k0kubun
34ade9a4b7 win32/Makefile.sub: install MJIT header and object
to prefix. This is a retry of r64947. So this doesn't still make mswin MJIT
on install directory succeed. One more step required.

tool/rbinstall.rb: This change is needed to install headers correctly since
the extensions are .obj and .pch, not .h


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 15:01:56 +00:00
nobu
92b469e7da Install HTML docs if produced
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-02 01:56:43 +00:00
nobu
a0ff2a6aaf Expand gemspec path to the real path
`make install` has loaded forwardable.rb twice, from
forwardable.gemspec and prime.gemspec.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-29 07:04:29 +00:00
hsbt
8a9996493a Fixed installation failure with mswin environment.
[ruby-core:88699][Bug #15035]
  This patch was provided by MSP-Greg.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-28 13:42:39 +00:00
knu
6251615c12 Skip colliding filenames in LIBRUBY_ALIASES
This allows user to specify any name in `--with-so-name` that might
cause a name clash with LIBRUBY_ALIASES on the platform.

Without this, for example, configuring with `--with-soname=ruby
--enable-shared` on macOS would end up running `ln -sf libruby.dylib
libruby.dylib` only to fail with the following error in installation:

```
make[2]: stat: libruby.dylib: Too many levels of symbolic links
```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-01 07:13:38 +00:00
nobu
ecedebab2c tool: fixed shadowing variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-18 00:40:06 +00:00
nobu
36bc8c0b28 tool: removed unused variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-18 00:38:00 +00:00
nobu
9ce0a84640 rbinstall.rb: fix timing to read stub
* tool/rbinstall.rb ($script_installer.stub): read stub file on
  demand.  as `$cmdtype` is set to "exe" in parse_args, it is not
  set yet when `$script_installer` is defined.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-27 01:58:29 +00:00
normal
6c721bd44f tool/rbinstall.rb: allow owner to have write permissions
Denying write permissions to the owner seems wrong.

Oddly, this problem only manifests in the "ruby_2_4" branch when
installing bundled gems (rake and friends).  It does not happen
with "ruby_2_3", or "trunk", so it might be related to RubyGems
changes.

* tool/rbinstall.rb: set umask to 022
  [ruby-core:84420] [Bug #14227]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-05 09:41:21 +00:00
nobu
e24e33c134 rbinstall.rb: show categories of default gems
* tool/rbinstall.rb (#install_default_gem): show categories of
  default gems, pure ruby libraries and libraries with extensions.
  [ruby-core:83600] [Bug #14065]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-30 05:45:20 +00:00
nobu
6a16d03365 rbinstall.rb: fix for --cmd-type=cmd
* tool/rbinstall.rb (PROLOG_SCRIPT): fix wrapper code for cmd
  script.  [Bug#13997]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-13 01:26:51 +00:00
nobu
e22f35ef2a rbinstall.rb: shell code as comments
* tool/rbinstall.rb (PROLOG_SCRIPT): wrap shell code by
  =begin/=end as comments.  [ruby-core:83202] [Bug#13997]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 07:27:16 +00:00
hsbt
5b3d137b1f Fixed broken bundle gem command.
This patch is provided by @gyugyu (Yusuke Yagyu)

  * Remove README* entry from no_install that there is no README* files except README.md.tt
  * Rename .travis.yml.tt to travis.yml.tt like gitignore.tt

  [Bug #13975][ruby-dev:50278][fix GH-1710]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-05 08:32:01 +00:00
hsbt
08c1dde4cc fix a label for bundled gems.
"bundle gems" is a wrong name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-08 05:18:18 +00:00
hsbt
cd8f990442 Rervert r58304. Because Rubygems have specialized finder for default gems.
We need to list library entries for default gems.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-19 11:50:03 +00:00
nobu
e326045afc rbinstall.rb: ignore skipped exts
* tool/rbinstall.rb (default-gems): skip gemspec if corresponding
  Makefile does not exist.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-16 14:54:59 +00:00
nobu
5bca8051af rbinstall.rb: no file list for default gems
* tool/rbinstall.rb (default-gems): no file list is used now.
  all files should be installed as standard libraries.
  [ruby-core:80667] [Bug #13428]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-14 00:45:49 +00:00
nobu
796e995007 rbinstall.rb: purge git ls-files
* tool/rbinstall.rb (load_gemspec): purge `git ls-files` generated
  by bundle.  it is not available always everywhere everytime.
  [ruby-dev:50068] [Bug #13423]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-12 08:39:19 +00:00
nobu
7965327d13 Install only files explicitly referenced by bundled gems.
[Bug #13417]
[Fix GH-1580]
Author:    Vít Ondruch <vondruch@redhat.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-11 12:20:21 +00:00
nobu
8913e2946e Spec#files are not used anymore.
[Fix GH-1579]
Author:    Vít Ondruch <vondruch@redhat.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-11 12:20:18 +00:00