>> > What about a slight variation:
>> >
>> > for each (symlinkname in the package) do
>> >    if (symlinkname should point to /opt) and (symlinkname is a directory) 
>> > then
>> >        cp -a symlinkname/* to /opt/maemo/symlinkname/
>> >        rm -rf symlinkname
>> >        ln -s /opt/maemo/symlinkname symlinkname
>> >    endif
>> > endfor
>
> I hope no package ships with dotfiles in directories other packages want
> to optify.

Yeah, well spotted!

I have pushed a new version of maemo-optify to gitorious that patches
maintainer scripts to do "late optification" for stuff that dpkg didn't
do.

It's not very well tested yet, of course, so please dig in!

    http://maemo.gitorious.org/maemo-af/maemo-optify

> I'd also like to bring up error handling: if /opt is almost full and
> you cannot migrate existing files, it would be bad to leave things in
> a broken state.

Yes.  It is unfortunately not possible to replace a directory with
something else atomically.  I think the best we can do is to move away
the old directory and put a symlink in its place with two syscalls and
hope that nothing happens in between.  The old directory can then be
removed afterwards.
_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to