NetBSD Problem Report #46685
From Wolfgang.Stukenbrock@nagler-company.com Wed Jul 11 09:54:43 2012
Return-Path: <Wolfgang.Stukenbrock@nagler-company.com>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
by www.NetBSD.org (Postfix) with ESMTP id 58E6963B85F
for <gnats-bugs@gnats.NetBSD.org>; Wed, 11 Jul 2012 09:54:43 +0000 (UTC)
Message-Id: <20120711095433.DEE971E80A9@test-s0.nagler-company.com>
Date: Wed, 11 Jul 2012 11:54:33 +0200 (CEST)
From: Wolfgang.Stukenbrock@nagler-company.com
Reply-To: Wolfgang.Stukenbrock@nagler-company.com
To: gnats-bugs@gnats.NetBSD.org
Subject: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
X-Send-Pr-Version: 3.95
>Number: 46685
>Category: pkg
>Synopsis: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jul 11 09:55:00 +0000 2012
>Last-Modified: Wed Jul 11 12:35:01 +0000 2012
>Originator: Wolfgang Stukenbrock
>Release: NetBSD 5.1.2
>Organization:
Dr. Nagler & Company GmbH
>Environment:
System: NetBSD test-s0 4.0 NetBSD 4.0 (NSW-WS) #0: Tue Aug 17 17:28:09 CEST 2010 wgstuken@test-s0:/usr/src/sys/arch/amd64/compile/NSW-WS amd64
Architecture: x86_64
Machine: amd64
>Description:
pkgsrc 2012Q1 supports the installation of multiple ruby version
on the same machine - e.g. 1.9.3 (the default version) and 1.8.7
in parrallel for applications that need ruby 1.8.x.
Accedently some ruby-packages cannot be installed in that way.
- devel/ruby-rake will fail to install a man page
(And will fail to remve itselft (pkg_delete) for ruby-1.9.3.)
- www/ruby-rack will fail to install (overwrite) an installed
script, that is installed without ruby-version number.
It is even not possible to install two different ruby-rack
versions for different ruby version - same script file problem
There may be more where I'm still not stumbled over ...
May other packages (e.g. the DB-interfaces for mysql, ruby-activesupport3, ...)
can be installed for multiple ruby versions without problems.
>How-To-Repeat:
Try to install one of the packages mentioned above for two ruby
version - e.g.:
cd /usr/pkgsrc/www/ruby-rack
make install
make clean
make RUBY_VERSION_DEFAULT=18 install
cd /usr/pkgsrc/www/ruby-rack12
make RUBY_VERSION_DEFAULT=18 install
>Fix:
All scripts should be installed with the version number in the
file name - or better all files installed in /usr/pkg/bin,
/usr/pkg/man, .... should be installed with the version number.
There should be a symlink to the file with "default"-version number
for binaries such as /usr/pkg/bin/rackup that should be created by
the lang/ruby package or special handlink is required to extract
this information from the /usr/pkg/bin/ruby link, but I'm not shure
if that would be a good idea. (The RUBY_VERSION_DEFAULT cannot be used
during installation, because this is not the real default during
installation.
An other possible way would be to create ruby-version specific packages
for all supported ruby-versions that will handle all aspects of this
PR and the one without the ruby-version number in it will only
create the symlinks to the default version. (this is somethink like
it is for the ruby-package itself, but it would generate lots of
additional packages ...)
>Audit-Trail:
From: Wolfgang Stukenbrock <wolfgang.stukenbrock@nagler-company.com>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: pkg/46685: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
Date: Wed, 11 Jul 2012 13:13:01 +0200
Hi again
ruby-erubis26 is also affected
gnats-admin@NetBSD.org wrote:
> Thank you very much for your problem report.
> It has the internal identification `pkg/46685'.
> The individual assigned to look at your
> report is: pkg-manager.
>
>
>>Category: pkg
>>Responsible: pkg-manager
>>Synopsis: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
>>Arrival-Date: Wed Jul 11 09:55:00 +0000 2012
>>
>
>
From: Takahiro Kambe <taca@back-street.net>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: pkg/46685: ruby packages failed to install if multiple
ruby-version are needed (pkgsrc 2012Q1)
Date: Wed, 11 Jul 2012 20:10:22 +0900 (JST)
In message <20120711095500.D9F7263B8E6@www.NetBSD.org>
on Wed, 11 Jul 2012 09:55:00 +0000 (UTC),
Wolfgang.Stukenbrock@nagler-company.com wrote:
>>Synopsis: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
...
>>How-To-Repeat:
> Try to install one of the packages mentioned above for two ruby
> version - e.g.:
> cd /usr/pkgsrc/www/ruby-rack
> make install
> make clean
> make RUBY_VERSION_DEFAULT=18 install
> cd /usr/pkgsrc/www/ruby-rack12
> make RUBY_VERSION_DEFAULT=18 install
It is current ruby packages' limitation; not a bug but current
specification.
And I don't have goot solution about this problem;
* I don't want to introduce more complexity.
* Difficulty with handling rubygem based packages.
>>Fix:
> All scripts should be installed with the version number in the
> file name - or better all files installed in /usr/pkg/bin,
> /usr/pkg/man, .... should be installed with the version number.
...
> An other possible way would be to create ruby-version specific packages
> for all supported ruby-versions that will handle all aspects of this
> PR and the one without the ruby-version number in it will only
> create the symlinks to the default version. (this is somethink like
> it is for the ruby-package itself, but it would generate lots of
> additional packages ...)
These effort was tried in past as pkgsrc framework, such as pkgview.
Your proposed solution should not be solved by Ruby packages specific
way.
Rather than introducing complexity, I would organize number of
supporing versions; especially, reduce versions of Rails.
These are my rough thinking for now.
--
Takahiro Kambe <taca@back-street.net>
From: Wolfgang Stukenbrock <wolfgang.stukenbrock@nagler-company.com>
To: gnats-bugs@NetBSD.org
Cc: pkg-manager@NetBSD.org, gnats-admin@NetBSD.org, pkgsrc-bugs@NetBSD.org
Subject: Re: pkg/46685: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
Date: Wed, 11 Jul 2012 14:31:47 +0200
Hi,
your're right that it is a limitation of the ruby packages,
But the problem appears only for files directly installed into
/usr/pkg/bin and /usr/pkg/man/...
If a make variable may be set to avoid the installation of theese files,
that would be a workaround.
You have to decide which version should be the default one and set the
variable on the command line when installing into additional ruby
version. The default should be to install everything.
In order to get it installed, I currently just removed the affected
files from PLIST prior building the package and it install as expected
for the additional ruby versions.
Of cause, this way is no garantie that no one will call the script in
/usr/pkg/bin and ends up with the "wrong" ruby version, but for this
situation there cannot be any sollution. E.g. ruby itself is installed
as ruby193 and ruby18 too and a symlink selects the default version and
there is the same problem.
Perhaps installing the conflicting files with a version number all the
time and use the make variable mentioned above to decide to create a
symlink without the version number it will at least solve my problem in
a very elegant way.
And this is more consistant to the way ruby itself is installed.
best regards
W. Stukenbrock
Takahiro Kambe wrote:
> The following reply was made to PR pkg/46685; it has been noted by GNATS.
>
> From: Takahiro Kambe <taca@back-street.net>
> To: gnats-bugs@NetBSD.org
> Cc:
> Subject: Re: pkg/46685: ruby packages failed to install if multiple
> ruby-version are needed (pkgsrc 2012Q1)
> Date: Wed, 11 Jul 2012 20:10:22 +0900 (JST)
>
> In message <20120711095500.D9F7263B8E6@www.NetBSD.org>
> on Wed, 11 Jul 2012 09:55:00 +0000 (UTC),
> Wolfgang.Stukenbrock@nagler-company.com wrote:
> >>Synopsis: ruby packages failed to install if multiple ruby-version are needed (pkgsrc 2012Q1)
> ...
> >>How-To-Repeat:
> > Try to install one of the packages mentioned above for two ruby
> > version - e.g.:
> > cd /usr/pkgsrc/www/ruby-rack
> > make install
> > make clean
> > make RUBY_VERSION_DEFAULT=18 install
> > cd /usr/pkgsrc/www/ruby-rack12
> > make RUBY_VERSION_DEFAULT=18 install
> It is current ruby packages' limitation; not a bug but current
> specification.
>
> And I don't have goot solution about this problem;
>
> * I don't want to introduce more complexity.
> * Difficulty with handling rubygem based packages.
>
> >>Fix:
> > All scripts should be installed with the version number in the
> > file name - or better all files installed in /usr/pkg/bin,
> > /usr/pkg/man, .... should be installed with the version number.
> ...
> > An other possible way would be to create ruby-version specific packages
> > for all supported ruby-versions that will handle all aspects of this
> > PR and the one without the ruby-version number in it will only
> > create the symlinks to the default version. (this is somethink like
> > it is for the ruby-package itself, but it would generate lots of
> > additional packages ...)
> These effort was tried in past as pkgsrc framework, such as pkgview.
> Your proposed solution should not be solved by Ruby packages specific
> way.
>
> Rather than introducing complexity, I would organize number of
> supporing versions; especially, reduce versions of Rails.
>
>
> These are my rough thinking for now.
>
> --
> Takahiro Kambe <taca@back-street.net>
>
>
>
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.