[llvm-dev] Improving deb packages
Sylvestre Ledru via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 17 02:03:49 PDT 2016
Le 17/08/2016 à 09:31, Paweł Bylica a écrit :
> On Mon, Jul 25, 2016 at 12:28 PM Sylvestre Ledru <sylvestre at debian.org <mailto:sylvestre at debian.org>> wrote:
> Do you mind if I steal that and I add this to my CI to test that we don't regress? or are you planning to maintain it?
> No problem, you can steal whatever you want. What CI do you have in mind? I could join in and help maintaining it there.
Packages on apt.llvm.org are built using this jenkins instance:
>> Issues I've identified:
>> 1. Packaging adds version prefix to binaries, directories, etc. -- eg. llc is renamed to llc-3.8. I'm not sure how it is done, but maybe we should add support for such feature to LLVM's cmake?
> This is done in debian/rules, by creating symlink http://anonscm.debian.org/viewvc/pkg-llvm/llvm-toolchain/branches/snapshot/debian/rules?revision=2020&view=markup#l319
> We do that to make sure that the different version of llvm/clang are co-installable. llc and others are provided by this llvm defaults ( https://packages.qa.debian.org/l/llvm-defaults.html ).
> Having this available upstream would be good but this hasn't been a source of troubles in the past.
>> 1. Default install location for cmake shared files is <prefix>/lib/llvm/share/llvm/cmake. find_package() is not able to find them there as it is non-standard path. find_package() needs a hint, like setting LLVM_DIR variable as
>> in https://github.com/chfast/llvm-apt-tests/blob/master/configure.sh#L6
>> If we moved the cmake shared files to <prefix>/lib/llvm/cmake no hint would be needed.
> This should be fixed
>> 1. On Ubuntu, packaging script moves cmake shared files to <prefix>/share/llvm-X.Y/cmake. I'm guessing to solve the issue (2). find_package() is able to find LLVMConfig.cmake file without any hint, but this file contains absolute paths referencing previous locations of other files. You
>> usually get issues like this one:
>> CMake Error at /usr/share/llvm-3.8/cmake/LLVMConfig.cmake:181 (include):
>> include could not find load file:
>> Maybe it is good idea to include other cmake files assuming there are located next to the main file instead of relying on absolute paths.
> This is probably related to llvm-defaults behavior.
>> 1. It's a bit weird Debian and Ubuntu packages has different layout of installed shared files.
> I don't think it is the case. I am not making any changes in Ubuntu packages. In some cases, Ubuntu official packages are patched from Debian's but patches are usually forwarded to me.
> I've rechecked. You are right, however Ubuntu packages it differently, but we should not care about that. I have to modify my test config to force installing llvm-3.8-dev from apt.llvm.org <http://apt.llvm.org>.
If you are talking about Ubuntu packages into the Ubuntu archives, Ubuntu devs are not making this kind of changes.
Minor changes are done: https://patches.ubuntu.com/l/llvm-toolchain-3.8/llvm-toolchain-3.8_1:3.8.1-8ubuntu2.patch
(and I don't agree with those, so, I haven't merged in Debian's packages).
> Sorry for late answer, was on holidays and busy with other projects. I will try proceed with the idea to move cmake shared files withing LLVM dir structure.
No worries ;)
More information about the llvm-dev