From: "vo.x (Vit Ondruch) via ruby-core" Date: 2024-10-21T08:50:23+00:00 Subject: [ruby-core:119560] [Ruby master Bug#20800] Don't place `ruby` executable into `/usr/libexec/x86_64-linux/bin` Issue #20800 has been updated by vo.x (Vit Ondruch). > but using --enable-multiarch when not multiarch seems like a misuse of the feature. I don't disagree. If I had other option, I'd use it. If somebody is interested to help, I'll gladly open separate ticket to share what are my thoughts on this topic. > can you explain where you'd like it to place ruby? It is hard to guess what was the reason for [1] (and actually that should be the content of PR / commit message. Can this be improved, please?). So to me, it is questionable why the `/usr/libexec/` + symlink are used on the first place. But given this is reasonable change, then the patch should be likely `/usr/libexec/x86_64-linux/ruby`. At least this is my interpretation of FHS [2] and that would be aligned with what is the standard on Fedora (although admittedly, we would also leave out the `x86_64-linux`, because Fedora is not multilib). BTW I also don't understand why if usage of `/usr/libexec/` + symlink was deemed useful, why it should be mulitilib only. [1]: https://github.com/ruby/ruby/pull/10010 [2]: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html ---------------------------------------- Bug #20800: Don't place `ruby` executable into `/usr/libexec/x86_64-linux/bin` https://bugs.ruby-lang.org/issues/20800#change-110175 * Author: vo.x (Vit Ondruch) * Status: Open * ruby -v: ruby 3.4.0dev (2024-10-15 master 3da3cabf98) +PRISM [x86_64-linux] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Trying to prepare Ruby 3.4 package for Fedora, it seems that since [1], the `ruby` executable is installed into `/usr/libexec/x86_64-linux/bin`: ~~~ installing binary commands: /usr/libexec/x86_64-linux/bin ~~~ Unfortunately, the PR does not explain anything about reasons why. To me, using `libexec` is surprising, because according to FHS [2], the directory is for internal binaries. What is even more surprising is usage of the `bin` subdirectory there, which IMHO does not follow any standard or convention (I don't have `/usr/libexec/x86_64-linux/bin` directory on my Fedora yet). Just FTR, these are the configuration options used: ~~~ /builddir/build/BUILD/ruby-3.4.0_20241016git3da3cabf98-build/ruby-3.4.0-3da3cabf98/configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-rubylibprefix=/usr/share/ruby --with-archlibdir=/usr/lib64 --with-rubyarchprefix=/usr/lib64/ruby --with-sitedir=/usr/local/share/ruby/site_ruby --with-sitearchdir=/usr/local/lib64/ruby/site_ruby --with-vendordir=/usr/share/ruby/vendor_ruby --with-vendorarchdir=/usr/lib64/ruby/vendor_ruby --with-rubyhdrdir=/usr/include --with-rubyarchhdrdir=/usr/include '--with-sitearchhdrdir=$(sitehdrdir)/$(arch)' '--with-vendorarchhdrdir=$(vendorhdrdir)/$(arch)' --with-rubygemsdir=/usr/share/rubygems --with-ruby-pc=ruby.pc --with-compress-debug-sections=no --disable-rpath --enable-mkmf-verbose --enable-shared --with-ruby-version= --enable-multiarch --enable-yjit ~~~ The `--enable-multiarch` is among the options. It is used not because Fedora would be `multiarch`, but because it provides the highest flexibility. [1]: https://github.com/ruby/ruby/pull/10010 [2]: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/