Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2013 01:17:01 +0400
From:      Lev Serebryakov <lev@FreeBSD.org>
To:        freebsd-ports@freebsd.org
Subject:   Multiversioned packages (proposal, without any code)
Message-ID:  <381114808.20130710011701@serebryakov.spb.ru>

next in thread | raw e-mail | index | archive | help
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@FreeBSD.org>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?381114808.20130710011701>