motu-release will revert libgems-ruby to the old state.

Stefan Potyra sistpoty at ubuntu.com
Fri Aug 29 22:39:52 BST 2008


Hi,

first off, this was not an easy decision. It didn't happen so far yet, that 
motu-release had to decide if an upload should indeed get reverted, and hence 
this decision was done only with consent among all motu-release members. The 
key factor in regards to this decision was if this upload does work towards 
making an improvement in regards to the intrepid-release, or if it did in fact 
result in the opposite, hence making it unfit for release.

The following options were considered:
1) do not interfere,  regressions/bugs are not grave enough to warrant an 
action of motu-release
2) revert the upload, either by archive admin intervention, or by uploading 
the old version with a higher version number.
3) revert the packaging back to the old version, but keep the svn snapshot 
(adjusting patches of the old packaging as needed)
4) Issue a one week deadline to Matthiaz/Neil to revert the packaging back to 
the old version, keeping the svn snapshot, otherwise falling back to 2.

Since the svn snapshot made some patches unnecessary, option 3) was eliminated 
because it could cause regressions in a reversion upload from motu-release, 
whereas 4) seemed to address this concerns better.

In order to find out, if 1) was a possible way, the possible regressions of 
gem handling in the change were examined compared to the previous package. 
This lead to the following findings:

Executables of gems get symlinked via the alternatives mechanism to 
/usr/local/bin.

Using the alternatives mechanism was considered inappropriate and counter-
intuitive.

/usr/local/bin is the first entry in $PATH, so executables installed there 
override any executables installed from Debian/Ubuntu packages.

As a result, this can lead to problems in case there is a name clash between a 
binary shipped from an Ubuntu package and a binary installed from a gem. Among 
the problems of non-determinism and possible failing behaviour of Ubuntu-
packages in case such a name-clash occurs, this situation is both hard to 
detect for a user/sysadmin, but also hard to fix without modifying 
/usr/local/bin in the first place (which however counter-acts the idea of the 
new gem handling).

Especially the possible security problems arising from this approach (the mail 
from Stephan Hermann with imagemagick shipped by a gem served as an example in 
the motu-release discussion, especially since imagemagick is often called by 
web applications), was considered a critical enough issue to eliminate option 
1).

Another non-technical concern was also raised against option 1): The advice of 
developers in regards to the new gem handling was asked at [1] -- something 
which motu-release unambigously encourages -- but was obviously ignored when 
doing the upload in question.

In order to find out, if patches from the new packaging should be kept, the 
diff to the old version was examined. 
The only noteworthy patch that was found, that doesn't fall under the catagory 
gem-handling, was a modification of the libgems updating mechanism. In 
contrast to the old version, this patch modifies the libgems package to call 
"apt-get install rubygems[version]" instead of printing a message to the user 
as the old package did. This approach was considered buggy as well, since it 
fails when apt-get is concurrently executed and is a no-operation in case
the package list is not up to date.

Finally, the discussion came down to choose between option 2) and 4). While 
importing a svn-snapshot wasn't considered a problem (since it was done before 
FeatureFreeze), motu-release tried to find out arguments why this was done in 
the first place. motu-release was convinced that this was done only in regards 
to the new gem handling. 
Likewise, the mislabeling of a svn-snapshot as non-technical argument was 
considered a bad practice. 
As a result it was decided to go for option 2).

In this regard, motu-release found that unaccepting uploads is not possible 
with soyuz. To determine whether an epoch should be added, or rather a 
complicated version number should be used, motu-release contacted Lucas to 
find out if an epoch could be added to the debian package as well. However 
since Lucas stated that he was only the co-maintainer, and the maintainer 
would not very likely to agree to such a change, using a mangled version 
number was decided upon.

As a result, motu-release will upload a reverted package within 24 hours. 
After that upload, libgems-ruby is free to be modified following the freeze 
rules again.

Finally, in case this decision should not be acceptable to the involved 
parties, feel free to escalate to motu-council.

Cheers,
    Stefan - on behalf of motu-release.




More information about the ubuntu-devel mailing list