[maemo-developers] busybox symlinks discussion

From: David Horn dhorn2000 at gmail.com
Date: Mon Dec 15 22:03:28 EET 2008
On Mon, Dec 15, 2008 at 12:11 PM, Eero Tamminen <eero.tamminen at nokia.com> wrote:
> Hi,
>
> ext David Horn wrote:
>>>>
>>>> Since rm and tar will disappear as part of dpkg removing diablo
>>>> busybox prior to installing my new busybox (as already discussed, this
>>>> {temporary rm/tar} is a one-time need, as future busybox should track
>>>> upstream)
>>>
>>> If rm/tar symlinks are in separate package, temporary links
>>> are going to be always needed for upgrades.
>>
>> I'm not certain I understand (or perhaps I am missing the point).
>
> This was scenario where the symlink thing has exact version dependency
> to Busybox i.e. that goes away when Busybox goes away, but actually
> with your setup the dependency wouldn't need to be versioned as it
> would work also with different Busybox configurations.
>
>
>> If rm/tar symlinks ARE in the same busybox package as /bin/buybox, any
>> busybox package replacement  will break dpkg, and require temporary
>> links as a solution.
>
> If both old and new busybox packages are providing them, it should work
> fine. (Debian has had to handle these kind of things much earlier than
> Maemo)
>
>

I need to reflash my N810 and do some clean environment investigation.
 I have sufficiently mucked around enough with the package system and
busybox on my device that I no longer trust my test results.  I
thought I could reproduce a problem, but can no longer see the suspect
behavior.

 <sigh>  Nothing is ever simple.

> [...]
>>>
>>> After having tested these things a bit and briefly discussing with
>>> the dpkg maintainer, I had come to a conclusion that trying to support
>>> replacement of distribution essentials isn't a completely sane goal...
>>
>> I'm right there with you!  Lack of sanity never stopped anyone before
>> however ;)
>
> The main point is that without fixed essentials you wouldn't have
> a stable base on which to build things upon and test them against.
> Debian policy also states that packages shouldn't declare dependencies
> to essentials (to prevent dependency loops that can prevent updates)
> so it would be nice forcing them except for something like SSUs.
>
>
>>> So, I changed the approach a bit so that all symlinks corresponding to
>>> essential Debian utilities (utilities in Debian packages marked as
>>> essential), would be still included into the busybox package itself.
>>> We just should try to make those in Busybox as compatible to GNU ones as
>>> possible by enabling relevant BB configuration options etc.[1]
>>>
>>> Only utilities corresponding to non-essential Debian packages would
>>> be in separate symlinks packages (there are a lot of those still).
>>> However, getting back to a known, tested configuration could then be
>>> more of a hit-and-miss.  You would need to do it manually by removing
>>> any replacement packages you've installed and then re-running the
>>> Busybox symlink creation script.
>
> [...]
>>
>> Getting back to known, tested configuration always requires removing
>> replacement packages by it's nature.
>
> With always correct package Provides/Conflicts/Replaces this would
> be done automatically by the package management.
>

Yes, I gather that is the optimum situation.  I definitively need to
do some more RTFM on debian packages and apt and dpkg.

> Attached is how the busybox packaging created by my script would
> currently look like for a Diablo compatible configuration.
>

Thanks for sending this.  I'll take a closer look in the next few days.

--David Horn
--
Non quia difficilia sunt non audemus, sed quia non audemus, difficilia sunt.

> Updating non-essentials to their real variants and back works fine.
>
>
>>> You script is much simpler than mine though. :-)
>>
>> If simpler == easier to maintain down the road for new Maemo releases,
>> then this is a good thing.   If not, then probably not ;)
>
>
>        - Eero
>
>

More information about the maemo-developers mailing list