#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