[LEDE-DEV] [PATCH 00/12] alternatives support

Yousong Zhou yszhou4tech at gmail.com
Mon Mar 6 08:27:29 PST 2017


On 5 March 2017 at 23:06, Matthias Schiffer
<mschiffer at universe-factory.net> wrote:
> On 03/05/2017 10:31 AM, Yousong Zhou wrote:
>> This patch set tries to make it possible that files serving the same purpose
>> and installed to different locations can be available under the same name
>> through a symbolic link
>>
>> The idea is from alternatives of debian system [1,2].  "ip" command is a good
>> example of the problem it tries to solve [3].   Files provided by different
>> packages cannot be installed to the same location, so we have busybox ip,
>> ip-tiny, ip-full all installed to different locations
>>
>> It works by first adding to CONTROL file of each ipkg a new field "Alternatives",
>> which is a list of specs of the following form seprated by commas to describe
>> alternatives provided by this package
>>
>>     <prio>:<path>:<altpath>
>>
>> The new field will be interpreted by postinst and prerm script.  <path> will be
>> a symbolic link to <altpath> of the highest <prio>, and updates will be made to
>> UCI config "opkg"
>>
>> Several patches for uci are also included here to support usage at build-time.
>> The whole series is available in my staging tree [4]
>>
>>  [1] https://wiki.debian.org/DebianAlternatives
>>  [2] https://debian-administration.org/article/91/Using_the_Debian_alternatives_system
>>  [3] https://bugs.lede-project.org/index.php?do=details&task_id=428
>>  [4] https://git.lede-project.org/?p=lede/yousong/staging.git;a=summary
>
> First of all, thank you very much for working on this, I've been missing
> this feature for a long time. I have some comments though:
>
> I see that the opkg UCI config contains a lot of redundant data when many
> alternatives are installed (for example, many busybox applets and their
> corresponding coreutils/util-linux/... variants); AFAICT, the same
> information is also available in the opkg status files.
>
> I think I'd opt for not making this list of alternatives configurable
> independently of opkg. Adding configuration to UCI would only be necessary
> when a user overrides the automatic selection. This could also avoid adding
> host UCI support to the build system, making the whole patchset a lot smaller.
>
> Matthias
>

Thanks for the feedback.  I agree that it should be sealed inside opkg
and could be more neat that way.  Probably I decided to code it with
shell scripting just because the task seemed to be a more "low-hanging
fruit" with that approach ;)  Lazy me!

Anyway, I will investigate the opkg-lede codebase and report back at a
later time.

Cheers,
                yousong



More information about the Lede-dev mailing list