Multiversioned packages (proposal, without any code)

Lev Serebryakov lev at FreeBSD.org
Tue Jul 9 21:17:09 UTC 2013


Hello, Freebsd-ports.

 I (as msp430-* ports maintainer, MSP430 is 16 bit microcontroller from TI)
had interesting discussion with one of new MSP430 binutils/ports authors
(RedHad/TI employee). He claims, that now no system (FreeBSD included) has
proper support for msp430 (or any other embedded[1], for
the matter) toolchain.

 In embedded world "proper support" means that user could have several
versions of toolchains installed AT ONCE. And "several" means here not
only major versions, like "gcc47 and "gcc48" but different PATCHLEVELS of
same version, differs, maybe, in one or two LD scripts or header files, or.
may be, one bugfix in compiler, backported from trunk. It is customary in
embedded world to stick to one toolchain version for one project and din't
migrate to newer versions (but start new projects with new version of
toolchain, maybe). Of course, in this world nobody installs such tools,
libraries and headers to system FS hierarchy. It is normal to have
"/opt/msp430-toolchain-4.7.12.20130115/*",
"/opt/msp430-toolchain-4.7.14.20130420/*", etc. and use full paths in
Makefiles (via defining CC, CPP, LD and other variables).

 Now it is impossible to have such scheme under FreeBSD package management
(pkg). We solve this for major versions of gcc, with different ports for
different versions, for example, but it is not enough for embedded
toolchains (which contains of binutils, gcc, newlib and headers), as I
mention above.

 My proposal is to support installing multiple versions of SAME package
(port) in system if each version has its own unique PREFIX.

 In such case, installing of new PORTREVISION should replace old one, and
installing of new PORTVERSION should add new version!

 Now it is impossible to support such thing, as far as I understand.

 What do you think? Is it possible to support such scheme in pkgs and ports?


[1] "embedded" in context of this message means "no OS, bare hardware, like
AVR 8 bit, MSP430 16 bit or Arm Cortex-M3 32 bit" and not "SOHO router on
ARM/MIPS with proper OS, MMU, etc".

-- 
// Black Lion AKA Lev Serebryakov <lev at FreeBSD.org>



More information about the freebsd-ports mailing list