On Fri, Oct 16, 2009 at 03:06:43PM +0100, Andrew Flegg wrote:
> On Fri, Oct 16, 2009 at 14:58, Marius Vollmer <[email protected]> 
> wrote:
> > ext Thomas Perl <[email protected]> writes:
> >
> >> I don't really know much about dpkg internals, but maybe it would be
> >> possible for maemo-optify to add a small script to postinst that will do
> >> something like this (in pseudocode):
> >>
> >> for each (symlinkname in the package) do
> >>     if (symlinkname points to /opt) and (symlinkname is a directory) then
> >>         if (symlinkname is an empty directory) then
> >>             remove directory, recreate correct symlink
> >>         else
> >>             create symlinks inside the directory
> >>         endif
> >>     endif
> >> endfor
> 
> So, the problem with this is removing content underneath that dir
> installed by something else.
> 
> > 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/

I hope no package ships with dotfiles in directories other packages want
to optify.

> >        rm -rf symlinkname
> >        ln -s /opt/maemo/symlinkname symlinkname
> >    endif
> > endfor
> >
> > This would migrate the existing files and would establish a symlink
> > structure that matches what is in the package.
> 
> So, let's imagine:
> 
>     mygame_0.0.1        has /usr/share/mygame/
>     mygame-extras_0.0.1 has /usr/share/mygame/extras.xml
> 
>     mygame_0.0.2        has /usr/share/mygame -> /opt/maemo/usr/share/mygame/
> 
> When mygame v0.0.2 is installed, what will happen when
> mygame-extras_0.0.1 is uninstalled? Is dpkg clever enough to follow
> the /usr/share/mygame symlink and delete
> /opt/maemo/usr/share/mygame/extras.xml?

/opt is a symlink to /home/opt.

Packages that contain files in /opt/maemo/... can be installed and
uninstalled successfully.

I think this might just work, but what a hack!

> > (What a hack.)
> 
> Yeah, but not entirely unelegant ;-)

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.

Marius Gedminas
-- 
Java has a huge standard library, and Python's standard library is either even
larger or much smaller, depending upon whether you are talking about
functionality, or lines of code. ;-)
        -- Simon Brunning

Attachment: signature.asc
Description: Digital signature

_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to