[aur-general] Merge and disown request

Anatol Pomozov anatol.pomozov at gmail.com
Sun Dec 29 21:14:19 EST 2013


Hi

On Sun, Dec 29, 2013 at 3:31 PM, Armin K. <krejzi at email.com> wrote:
> On 12/28/2013 10:29 AM, Evgeniy Alekseev wrote:
>> On Tuesday 24 December 2013 14:02:43 Armin K. wrote:
>>> I've contacted the maintainers of clang-svn two weeks ago (see comments)
>>> but he didn't responded yet. I'd like you to disown clang-svn so someone
>>> else can step up maintaining, but since I've asked maintainer of
>>> llvm-svn (which you can also see in comments of llvm-svn package) to
>>> merge clang-svn into it, you can go ahead and merge it instead of
>>> disowning it first, then merging it later.
>>>
>>> https://aur.archlinux.org/packages/clang-svn into
>>> https://aur.archlinux.org/packages/llvm-svn
>>
>> Hi.
>> First, our rules assume communication with the maintainer via e-mail [1, the
>> third paragraph], because some people disable notifications about new
>> comments. And this package isn't marked as out-of-date.
>
> I'll contact maintainer via e-mail then, but I might wait a week before
> doing that, since it's holidays time.
>
>> Second, I don't think merging clang into llvm is a good idea. I believe that
>> packages in AUR must not contain several different packages (as clang and
>> llvm), because it creates difficulties when creating a dependency tree and
>> finding a needed package.
>>

These 2 packages are different. llvm is a library and clang is a C
frontend for it. llvm is used by many other projects.

> clang package already contains llvm, since clang is built as part of
> llvm but is built differently than llvm and they conflict with each
> other in this case but they should belong with each other.

These packages should not conflict. llvm-svn should install only llvm
specific files and clang-svn should install only clang specific files.
I quickly looked at package() in clang-svn and it makes me believe
that it installs llvm files also.

Here is what clang-svn does
https://aur.archlinux.org/packages/cl/clang-svn/PKGBUILD:

cd "$srcdir/$_svnmod-build/build"
make DESTDIR=$pkgdir install


And it differs from package_clang() function in
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/llvm

cd "$srcdir/llvm-$pkgver.src/tools/clang"
make DESTDIR="$pkgdir" install


I believe clang-svn should do something similar, i.e. install only
clang specific files.


> As you can see in the pkgbuild, clang clones llvm source and everything
> from that source is built.

This is a problem of build system used by upstream project (in this case clang).

On *nix, projects usually split its codebases into small pieces and if
it requires additional dependencies (like headers/libraries) then they
are installed as system packages. On systems that do not have good
package managers (windows/osx) the only reasonable way to build the
project is to pull all dependencies sources and build them as well,
there is no other way to get those dependencies.

That is why clang and many other projects pull dependencies sources
and build them. Instead, on Linux, they should use system libraries. I
filed a ticket for similar issue in liblikely
https://github.com/biometrics/likely/issues/39

I think the best way to resolve the clang issue is to ask clang/llvm
community to split the codebases, let clang to be built separately and
let it use llvm system libraries/headers (at least as a build time
option).


More information about the aur-general mailing list