[MacPorts] #50448: Change filenames of binary packages built against libc++ on < 10.9

MacPorts noreply at macports.org
Tue Jan 26 10:20:13 PST 2016


#50448: Change filenames of binary packages built against libc++ on < 10.9
-------------------------+--------------------------------
 Reporter:  mojca@…      |      Owner:  macports-tickets@…
     Type:  enhancement  |     Status:  new
 Priority:  Normal       |  Milestone:
Component:  base         |    Version:  2.3.4
 Keywords:               |       Port:
-------------------------+--------------------------------
 This ticket is meant for discussion about the implementation of unique
 filenames for packages built against `libc++` on OS X versions prior to
 10.9, so that we could eventually set up a buildslave and distribute
 binaries for that configuration as described in [[LibcxxOnOlderSystems]].

 There are three (four) categories of packages:
   * `noarch`
   * C++ programs and libraries (that link against libc++ or libstdc++)
     * packages that require C++11 and thus link against libc++ even where
 default is libstdc++ (like `clang-3.X`, `root6`, ... )
   * packages that don't require stdlib

 My suggestion:
   * no changes are needed for `noarch` (but when setting up a new
 buildslave we should make sure to only upload packages from one of them)
   * packages that link against stdlib
     * I would suggest to make no changes on >= 10.9
     * we should add something like `libc++` to the name (or potentially
 something shorter)
     * while we could add `stdlibc++` to the name of default configuration,
 I don't see any reason to do so as it would only require extra work
 (unless we start differentiating between package with/without the need for
 stdlib)
   * package that don't link against stdlib
     * we could do a similar analysis as for `noarch` and differentiate
 between packages that link against stdlib and those that don't with a
 special flag; but we need to remember that there might be further
 differences between the packages built on the old buildslaves and those
 built on the new one, for example due to `delete_la_files` setting; my
 suggestion would be not to worry about differentiating packages that link
 against stdlib and those that don't, but that's certainly debatable
     * If it's easy enough to implement, we could do it for reasons of
 "purism". The question is then: should packages contain a similar keyword
 as `noarch`? Who would add those flags? If we do something about that, OS
 X versions >= 10.9 should be affected as well and we should change the
 names (and either rebuild or rename the packages) there as well.
   * packages that link against `libc++`
     * if we want a quck & dirty solution: don't bother about those special
 cases (the package would only have `libc++` in the name if it was built on
 the new buildslave and we would still ship two version)
     * if we want to optimize space and only upload the package once, we
 would have to do some major cleanup on the existing buildbots (due to
 `delete_la_files` etc) and most likely ship the files from the new
 buildbot

 Basically we have two ways:
   * do it right (quite a bit of effort)
   * do it in a quick and dirty way (but make it work faster)

 While discussing this it might be worth thinking about potential
 (simultaneous) switch to `*.tar.xz` for archives which could save quite
 some space both for end users as well as on the buildbots / servers with
 packages.

-- 
Ticket URL: <https://trac.macports.org/ticket/50448>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list