Project

General

Profile

Actions

Bug #7874

closed

multiarch support enhancements

Added by terceiro (Antonio Terceiro) almost 12 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.0.0dev (2013-02-17 trunk 39293)
Backport:
[ruby-core:52395]

Description

Hi, I am one the maintainers of Ruby in Debian, thanks a lot for adding multiarch support.

While preparing packages for Ruby 2.0, I found two issues:

  1. On a x86_64 Debian system with Linux kernel, Ruby will say that the architecture is "x86_64-linux", but the standard architecture name for such a system, as used in multiarch-enabled packages, is "x86_64-linux-gnu". In order to not break other systems, I suggest adding a --with-multiarchname argument to ./configure so that the Debian package can pass in the appropriate architecture name during ./configure stage.

  2. the pkg-config data also has to be installed inside multiarch paths.

I am attaching patches for both issues.


Files

Updated by terceiro (Antonio Terceiro) almost 12 years ago

Hi,

there is also another problem: when --enabled-shared is used, the shared libraries are not installed in the multiarch path. I am working on a patch for that.

Updated by vo.x (Vit Ondruch) almost 12 years ago

Ad 1) You can use --host=x86_64-linux-gnu if I am not mistaken.
Ad 2) It seems to duplicate #7867

Actions #3

Updated by terceiro (Antonio Terceiro) almost 12 years ago

Attaching a patch that fixes the path for installing both the libraries and the pkg-config data. It supersedes 0002-Install-pkgconfig-data-to-architecture-specific-path.patch attached before.

Updated by ko1 (Koichi Sasada) almost 12 years ago

  • Category set to build
  • Assignee set to nobu (Nobuyoshi Nakada)

Updated by mame (Yusuke Endoh) almost 12 years ago

Hello Antoino,

Doesn't Vit's comment help you?
And please attach the patch for "another issue" into the ticket #7867.

Thanks!

--
Yusuke Endoh

Updated by terceiro (Antonio Terceiro) almost 12 years ago

mame (Yusuke Endoh) wrote:

Hello Antoino,

Doesn't Vit's comment help you?

I tried --host= but it does not have any effect on the paths used in the installation. In this case we really need to use the standard architecture name for $arch.

And please attach the patch for "another issue" into the ticket #7867.

Fair enough - just did it. But note that such patch fixes #7867 and stuff I am reporting here (i.e. the install path for libraries (.so, .a) into multiarch paths.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

The arch name is taken from --target option, not --host.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

As for the second patch, I guess it would be:
AC_SUBST(ENABLE_MULTIARCH, ${multiarch:-no})
Note the colon.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

Sorry, I's confused a little last night.
multiarch is set to an empty string or unset, so terceiro's substitution is correct.

Updated by mame (Yusuke Endoh) almost 12 years ago

  • Status changed from Open to Assigned

Sorry, I don't understand the situation.
Nobu, do you think that we should import terceiro's patches?

--
Yusuke Endoh

Actions #11

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r39333.
Antonio, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


configure.in: adjust libdirname

  • configure.in (libdirname): adjust library path name which libruby
    files will be installed. [Bug #7874]
  • tool/rbinstall.rb (libdir): ditto.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

  • Status changed from Closed to Open
  • % Done changed from 100 to 50
Actions #13

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

  • Status changed from Open to Closed
  • % Done changed from 50 to 100

This issue was solved with changeset r39334.
Antonio, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


configure.in: target_os suffix

  • configure.in (target_os): do not strip -gnu suffix on Linux if
    --target is given explicitly. [Bug #7874]

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

I think r39334 fixes a longstanding bug, which ignores explicitly specified option, not only guessed name.

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago

Others are libdir concerned patches, and I think they are not stable enough to backport yet.

Updated by terceiro (Antonio Terceiro) almost 12 years ago

Hi,

With the current state in trunk it does not build anymore:

$ autoreconf && ./configure --target=x86_64-linux-gnu --enable-multiarch
[...]
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ruby-2.0.pc
Variable 'archlibdir' not defined in './ruby.tmp.pc'

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0