Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 540182 - dev-ruby/test-unit-3.0.9-r1 hangs after "Running prepare phase for ruby19 ..."
Summary: dev-ruby/test-unit-3.0.9-r1 hangs after "Running prepare phase for ruby19 ..."
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-15 19:43 UTC by Harris Landgarten
Modified: 2015-05-09 06:01 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Harris Landgarten 2015-02-15 19:43:02 UTC
test-unit-3.0.9-r1 will not install with paludis

sudo cave resolve test-unit -1zx


Checking 'test-unit-3.0.9.gem'... ok
>>> Running ebuild phase killold as root:root...
>>> Starting builtin_killold
>>> Done builtin_killold
>>> Completed ebuild phase killold
>>> Running ebuild phases init saveenv as paludisbuild:paludisbuild...
>>> Starting builtin_init
>>> Done builtin_init
>>> Starting builtin_saveenv
>>> Done builtin_saveenv
>>> Completed ebuild phases init saveenv
>>> Running ebuild phases loadenv setup saveenv as root:root...
>>> Starting builtin_loadenv
>>> Done builtin_loadenv
>>> Starting pkg_setup
>>> Done pkg_setup
>>> Starting builtin_saveenv
>>> Done builtin_saveenv
>>> Completed ebuild phases loadenv setup saveenv
>>> Running ebuild phases loadenv unpack saveenv as paludisbuild:paludisbuild...
>>> Starting builtin_loadenv
>>> Done builtin_loadenv
>>> Starting src_unpack
 * Running unpack phase for all ...
 * Unpacking .gem file... ...                                                                                                                                                                               [ ok ]
 * Uncompressing metadata ...                                                                                                                                                                               [ ok ]
 * Unpacking data.tar.gz ...                                                                                                                                                                                [ ok ]
>>> Done src_unpack
>>> Starting builtin_saveenv
>>> Done builtin_saveenv
>>> Completed ebuild phases loadenv unpack saveenv
>>> Running ebuild phases loadenv prepare saveenv as paludisbuild:paludisbuild...
>>> Starting builtin_loadenv
>>> Done builtin_loadenv
>>> Starting src_prepare
 * Running prepare phase for all ...
 * Running source copy phase for ruby19 ...
 * Running source copy phase for ruby21 ...
 * Running source copy phase for ruby22 ...
 * Running prepare phase for ruby19 ...


I then hangs and never goes any further

It builds with portage.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2015-02-16 09:07:23 UTC
1) Please post your `emerge --info' (or equivalent) output in a comment.
2) Please attach the entire build log to this bug report.
Comment 2 Harris Landgarten 2015-02-16 13:40:57 UTC
The build log is 0 length. I guess the hang is very early. I posted what shows on the screen which is as much of a build log as there is.

Since this is a problem is only showing on paludis, I am not sure if you want emerge --info or something from cave. Let me know.

More important is if someone else sees the same.

looking at the ebuild, this is the section paludis is have trouble with:



each_ruby_prepare() {
	case ${RUBY} in
		*ruby19)
			# Remove metadata to avoid registering the unsupported
			# power_assert dependency.
			rm ../metadata || die
			;;
	esac
}

when looking at the build directory after the hang:

/var/tmp/paludis/dev-ruby-test-unit-3.0.9-r1/work/ruby19 still contains metadata so the rm ../metadata || die is dying
Comment 3 Hans de Graaff gentoo-dev Security 2015-02-25 18:22:10 UTC
(In reply to Harris Landgarten from comment #2)

> /var/tmp/paludis/dev-ruby-test-unit-3.0.9-r1/work/ruby19 still contains
> metadata so the rm ../metadata || die is dying

If the rm fails then the ebuild would die, not hang.

Deleting ../metadata is slightly sneaky since it goes outside of the assigned ${S} directory. Perhaps this is tripping up something in paludis. Two things to try to collect more data:

What happens if you comment out/remove that line?
Can you emerge e.g. dev-ruby/rubypants? That ebuild uses the same mechanism.

I'm assuming that in general you have no issue with paludis and ruby ebuilds.
Comment 4 Harris Landgarten 2015-02-27 20:29:14 UTC
ruby-pants installs fine

after commenting out rm ../metadata || die

test-unit install fine as well.

Hope that information helps.

I still hang in same spot with the current ebuild
Comment 5 Hans de Graaff gentoo-dev Security 2015-04-28 18:05:09 UTC
(In reply to Harris Landgarten from comment #4)
> ruby-pants installs fine
> 
> after commenting out rm ../metadata || die
> 
> test-unit install fine as well.
> 
> Hope that information helps.
> 
> I still hang in same spot with the current ebuild

Actually that doesn't help in that it doesn't help to pinpoint the issue. :-( The rubypants build does the same rm ../metadata trickery. If that would fail consistenly we would at least know what to fix. In any case thanks for testing.

CC'ing the paludis maintainer, perhaps he can shed some light on what is going on here.
Comment 6 Mihai Moldovan 2015-05-06 07:36:32 UTC
It's not paludis. It's rm.

write(2, "rm: remove write-protected regul"..., 109rm: remove write-protected regular file '../metadata'? ) = 109

Change rm to rm -f and everything will be working fine.

Although, can I suppose that this behavior is probably going against PMS and broken anyway? At the very least it smells fishy to me.
Comment 7 Harris Landgarten 2015-05-06 11:38:28 UTC
I confirm changing rm to rm -f in the ebuild allows test-unit to build with paludis
Comment 8 Hans de Graaff gentoo-dev Security 2015-05-09 06:01:09 UTC
(In reply to Mihai Moldovan from comment #6)

> Change rm to rm -f and everything will be working fine.

Thanks! I've updated all the dev-ruby packages that do this to use rm -f.