[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:
http://llvm-jenkins.debian.net/


>
>
>>     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:
>>         /usr/share/llvm/cmake/LLVM-Config.cmake
>>
>>         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 ;)

S




More information about the llvm-dev mailing list