[DRE-maint] Bug#1005631: new restriction in rubygems: installing symlink pointing to parent path not allowed - causes ruby-handlebars-assets to ftbfs

Pirate Praveen praveen at onenetbeyond.org
Fri Jun 3 17:22:17 BST 2022



On വ്യാ, ജൂൺ 2 2022 at 08:58:37 വൈകു -03:00:00 
-03:00:00, Antonio Terceiro <terceiro at debian.org> wrote:
> On Thu, Jun 02, 2022 at 06:03:47PM -0300, Lucas Kanashiro wrote:
>>  Em 01/06/2022 15:42, Pirate Praveen escreveu:
>>  > On Sun, 13 Feb 2022 08:59:18 +0100 Lucas Nussbaum 
>> <lucas at debian.org>
>>  > wrote:
>>  > > During a rebuild of all packages in sid, your package failed to 
>> build
>>  > > on amd64.
>>  > >
>>  > >
>>  > > Relevant part (hopefully):
>>  > > > make[1]: Entering directory '/<<PKGBUILDDIR>>'
>>  > > > mkdir -p vendor/assets/javascripts
>>  > > > ln -s /usr/share/javascript/handlebars/handlebars.js
>>  > vendor/assets/javascripts/handlebars.js
>>  > > > ln -s
>>  > /usr/share/javascript/handlebars.runtime/handlebars.runtime.js
>>  > vendor/assets/javascripts/handlebars.runtime.js
>>  >
>>  > [...]
>>  >
>>  > > > Failed to load /dev/null because it doesn't contain valid 
>> YAML hash
>>  > > > ERROR:  While executing gem ... (Gem::Package::SymlinkError)
>>  > > >     installing symlink 
>> 'vendor/assets/javascripts/handlebars.js'
>>  > pointing to parent path 
>> /usr/share/javascript/handlebars/handlebars.js
>>  > of
>>  > 
>> /<<PKGBUILDDIR>>/debian/ruby-handlebars-assets/usr/share/rubygems-integration/all/gems/handlebars_assets-0.23.8
>>  > is not allowed
>>  >
>>  > How do we handle this issue? Should we copy instead? If that is 
>> the
>>  > solution, we will have to rebuild ruby package whenever the js 
>> package
>>  > changes. Can we modify rubygems to allow this link?
> 
> Can you try creating the symlink *after* rubygems has done its thing?
> i.e. instead of creating the link in the source tree, create it at the
> installation directory, after the installation has been done.

We won't be able to run the tests. If I comment out the ln commands, 
tests fail with

Errno::ENOENT: No such file or directory @ rb_sysopen - 
vendor/assets/javascripts/handlebars.js

May be we can copy during build and replace it by symlink in install?

> 
>>  I believe this behavior was introduced by this rubygems upstream 
>> commit:
>> 
>>  
>> https://github.com/rubygems/rubygems/commit/555692b8deb8f6b27ce29b843dc59384d508e8c1
>> 
>>  One thing we could try is to revert it, but maybe we should try to
>>  create a good and convincing user story to file an upstream bug and 
>> get
>>  it fixed there.
> 
> This could be a flag to disable this check that gem2deb could use. I
> don't know if that's simpler than working around the issue as I 
> suggest
> above (not tested, so not sure it works yet).



More information about the Pkg-ruby-extras-maintainers mailing list