[#103135] [Ruby master Feature#17768] Proposal: Downward assignments — mame@...

Issue #17768 has been reported by mame (Yusuke Endoh).

10 messages 2021/04/01

[#103162] [Ruby master Feature#17773] Alias `Numeric#zero?` and `Float#zero?` as `Numeric#empty?` and `Float#empty?` — sawadatsuyoshi@...

Issue #17773 has been reported by sawa (Tsuyoshi Sawada).

9 messages 2021/04/02

[#103241] [Ruby master Bug#17777] 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99 — eregontp@...

Issue #17777 has been reported by Eregon (Benoit Daloze).

17 messages 2021/04/05

[#103280] [Ruby master Bug#17781] Resolv::DNS RequestID table allocations are never freed, causing DNS lookups to eventually hang — supermathie@...

Issue #17781 has been reported by supermathie (Michael Brown).

9 messages 2021/04/07

[#103305] [Ruby master Feature#17785] Allow named parameters to be keywords — marcandre-ruby-core@...

Issue #17785 has been reported by marcandre (Marc-Andre Lafortune).

21 messages 2021/04/08

[#103310] [Ruby master Feature#17786] Proposal: new "ends" keyword — jzakiya@...

Issue #17786 has been reported by jzakiya (Jabari Zakiya).

13 messages 2021/04/08

[#103317] [Ruby master Bug#17787] Four AIX build issues with xlc compiler and ruby-3.0.1 — lamont@...

Issue #17787 has been reported by lamont (Lamont Granquist).

9 messages 2021/04/08

[#103342] [Ruby master Feature#17790] Have a way to clear a String without resetting its capacity — jean.boussier@...

Issue #17790 has been reported by byroot (Jean Boussier).

14 messages 2021/04/09

[#103386] [Ruby master Bug#17793] `shorten-64-to-32` error for 32-bit Android due to `struct stat` definition — xtkoba+ruby@...

Issue #17793 has been reported by xtkoba (Tee KOBAYASHI).

8 messages 2021/04/11

[#103400] [Ruby master Feature#17795] `before_fork` and `after_fork` callback API — jean.boussier@...

Issue #17795 has been reported by byroot (Jean Boussier).

42 messages 2021/04/12

[#103434] [Ruby master Bug#17799] Seg fault in rb_class_clear_method_cache — stanhu@...

Issue #17799 has been reported by stanhu (Stan Hu).

14 messages 2021/04/13

[#103481] [Ruby master Feature#17808] Feature Request: JS like splat of Object properties as named method parameters — brad.krane@...

Issue #17808 has been reported by Lithium (Brad Krane).

8 messages 2021/04/16

[#103556] [Ruby master Bug#17820] `Errno::EINVAL` from `Process.kill` with available signal on Windows — alex.wayfer@...

Issue #17820 has been reported by AlexWayfer (Alexander Popov).

9 messages 2021/04/22

[#103591] [Ruby master Bug#17827] Monitor is not fiber safe — samuel@...

Issue #17827 has been reported by ioquatix (Samuel Williams).

11 messages 2021/04/25

[#103593] [Ruby master Misc#17828] Deprecate use of master and slave — yyoshida.at.work@...

Issue #17828 has been reported by yyoshida.at.work@gmail.com (Yasuhiro Yoshida).

10 messages 2021/04/26

[#103596] [Ruby master Feature#17830] Add Integer#previous and Integer#prev — rafasoaresms@...

Issue #17830 has been reported by rafasoares (Rafael Soares).

9 messages 2021/04/26

[#103631] [Ruby master Feature#17837] Add support for Regexp timeouts — sam.saffron@...

Issue #17837 has been reported by sam.saffron (Sam Saffron).

45 messages 2021/04/27

[ruby-core:103531] [Ruby master Misc#17815] Snapcraft Ruby plugin

From: paddor@...
Date: 2021-04-20 19:59:58 UTC
List: ruby-core #103531
Issue #17815 has been updated by paddor (Patrik Wenger).


Wow, I just figured out something. It's the env variable `GEM_PATH` from my system that leaks into the process being run (duh). For some reason I thought that snap processes were more isolated. If I `env -i` (ignore environment) first, it derives the correct `GEM_PATH` and the gem can be loaded:

```
$ env -i /snap/bin/test-my-ruby-plugin
this is executable hello-world
```

```
$ env -i /snap/bin/test-my-ruby-plugin.gem-env
RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.15
  - RUBY VERSION: 3.0.1 (2021-04-05 patchlevel 64) [x86_64-linux]
  - INSTALLATION DIRECTORY: /snap/test-my-ruby-plugin/x44/lib/ruby/gems/snap
  - USER INSTALLATION DIRECTORY: /home/user/snap/test-my-ruby-plugin/x44/.local/share/gem/ruby/snap
  - RUBY EXECUTABLE: /snap/test-my-ruby-plugin/x44/bin/ruby
  - GIT EXECUTABLE:
  - EXECUTABLE DIRECTORY: /snap/test-my-ruby-plugin/x44/bin
  - SPEC CACHE DIRECTORY: /home/user/snap/test-my-ruby-plugin/x44/.local/share/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: //etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
  - GEM PATHS:
     - /snap/test-my-ruby-plugin/x44/lib/ruby/gems/snap
     - /home/user/snap/test-my-ruby-plugin/x44/.local/share/gem/ruby/snap
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /snap/test-my-ruby-plugin/x44/usr/sbin
     - /snap/test-my-ruby-plugin/x44/usr/bin
     - /snap/test-my-ruby-plugin/x44/sbin
     - /snap/test-my-ruby-plugin/x44/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
```

That's good because in production there won't be a `GEM_PATH` env var.

----------------------------------------
Misc #17815: Snapcraft Ruby plugin
https://bugs.ruby-lang.org/issues/17815#change-91632

* Author: paddor (Patrik Wenger)
* Status: Open
* Priority: Normal
----------------------------------------
I'm working on a Ruby build plugin for the Snapcraft v2 plugin AP, since the v1 Ruby plugin does not work on the Ubuntu `core20`  image. The v2 API only allows to influence the build step, which means there's no nice way for the plugin to set environment variables that apply during runtime. The problem is that the final paths to Ruby's stdlib are unknown during compile time.

I've got it to work by renaming the `ruby` executable to `ruby.bare` and creating a wrapper script `ruby` that sets the `$RUBYLIB` and `$GEM_PATH` env variables based on `$SNAP` before `exec`ing `ruby.bare`. I don't like that it requires a wrapper script though, since it would have to awkwardly determine the arch-specific stdlib directory to support any platform. The current wrapper script is this:

```sh
#!/bin/sh
export RUBYLIB="$SNAP/lib/ruby/snap:$SNAP/lib/ruby/snap/x86_64-linux:$RUBYLIB"
export GEM_PATH="$SNAP/lib/ruby/gems/snap:$GEM_PATH"

exec `dirname $0`/ruby.bare "$@"
```


What possible solutions are there? I could maybe fix the shebangs of Ruby executables like `gem` and `bundle`, but not `ruby` itself since it's binary. Also, I'm not sure if env variable expansion even works in shebang.
Can the configure script's `--with-search-path` be made to support env variable expansion during runtime? That still wouldn't solve the issue about the arch-specific directory.

Python apparently determines its load paths relative to the executable being run. Does Ruby support anything like that?

Any other ideas? 
Current state: https://github.com/paddor/snapcraft-ruby-plugin-v2



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread