On 11/24/2011 12:31 PM, Takashi Iwai wrote:
At Thu, 24 Nov 2011 12:05:31 -0800, Greg KH wrote:
At Thu, 24 Nov 2011 09:48:50 +0100, Ludwig Nussel wrote:
Greg KH wrote:
As a proposal for 12.2, I would like to implement the move of all binaries to /usr/ like is being done at the moment in Fedora. [...] If there are no major objections, I'll start working on Base:system in December. This would be really massive and invasive change. Could you try this out in a branch first before bothering packagers, please? The modifications needed are most likely not just simple spec file changes even if it may seem so in the first place. Esp the update case seems underestimated to me. Also keep in mind that Factory must still be able to bootstrap itself during the transition. Has anyone considered modifying rpm to transparently take care of the relocation? It's my concern when I read the post, too. The idea itself sounds nice, but I foresee many problems with this action.
Actually two things I thought of immediately:
- Updates Can rpm replace a directory into a symlink when the directory isn't empty? That is, when something is left in /lib/* (a left-over of temporary file or some wild non-distro packages), /lib can't be linked to /usr/lib yet. So, it'll be a mixed state without /usr/lib symlink fallback. The filesystem package will handle this, I'm working with the Red Hat
On Thu, Nov 24, 2011 at 10:32:08AM +0100, Takashi Iwai wrote: people as they just solved this very problem, so yes, this will be taken care of. So, filesystem package will do it by some post script or such? I can imagine that it contains /lib, /bin, etc as %ghost, and copy all existing ones (cleverly with taking hard-links into accounts) to /usr/ in %post. Any other methods may break something, I guess.
Maybe more problem would be /bin -> /usr/bin, because the path might be set in shebang. When you update bash, it's placed to /usr/bin, but /bin -> /usr/bin symlink still doesn't exist. What happens if you run a shell script of the old (still not updated) package? I think the symlink pointing from /bin to /usr/bin should handle this, why would the link not be there anymore? One problem is that this filesystem.rpm update becomes to a high dependency. When bash.rpm is updated with the new location, and if user updates bash.rpm before filesystem.rpm, this will break badly.
And, can Tumbleweed handle this mess smoothly? It better, I'll be testing to ensure this works properly :)
- The spec file rewrites Many spec files contain the hard-coded /lib, /bin or /sbin. Can we use this as is? Or if the change is needed, can we provide a macro for sharing the spec for different versions? The spec files look like they need to be rewritten. First glance, it "only" looks to be about 250 or so, again, most of this work is already done for us in the link I posted. Rewriting the spec files would be more or less systematically. It'd be still helpful if we have some macros, though.
thanks,
Takashi Just out of curiosity, if /usr goes away, what happens to /usr/local... And my favorite, /usr/local/src
Just askin' Bruce -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org