From: Arseny Maslennikov <arseny@altlinux.org> To: devel@lists.altlinux.org Subject: Re: [devel] [#263468] EPERM (try 14) llvm-common.git=11.0.0-alt2 srpm=llvm11.0-11.0.0-alt2.src.rpm Date: Mon, 11 Jan 2021 19:38:51 +0300 Message-ID: <X/x/Gydomqfpfga0@cello> (raw) In-Reply-To: <20210111160945.GA1739369@lks.home> [-- Attachment #1: Type: text/plain, Size: 10695 bytes --] On Mon, Jan 11, 2021 at 05:09:45PM +0100, Konstantin Lepikhov wrote: > Hi Arseny! > > On 01/08/2021, at 12:18:41 AM you wrote: > > УМВР. Может, мой почтовый клиент сломал ссылку или ваш не так показал? > > > > Прикладываю файлом. > > > diff --git a/llvm11.spec b/llvm11.spec <...> > > +%global v_major 11 > > +%global v_majmin %v_major.0 > > +%global v_full %v_majmin.0 > > +%global rcsuffix %nil > а так ли нужны все эти приседания с версиями и rc? У нас же не daily > builds собираются. До поры до времени. Начинать готовить адаптацию спека лучше с каких-то достаточно поздних rc, особенно в случае, когда после выхода времени у мейнтейнера мало, а чуть раньше — много. > > > +%global llvm_name llvm%v_majmin > > +%global clang_name clang%v_majmin > > +%global clangd_name clangd%v_majmin > > +%global lld_name lld%v_majmin > т.е. планируется собирать раздельные версии clang/llvm/lld? не в рамках одного исходного пакета. <...> > > %def_disable tests > > %ifarch x86_64 aarch64 > > %def_without clang > почему? without_clang используется только если у нас bootstrap. Иначе > будет сборка без LTO. Внимательно посмотрите changelog и архив. Одна из возможных причин: http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.git;a=commit;h=4b3c6c13e4d70fd201691c636d57b5b020e00709 Надо думать, что с этим делать. > > > @@ -18,44 +39,62 @@ > > %def_without clang > > %endif > > > > +%define tarversion %v_full%rcsuffix > > + > > Name: %llvm_name > > -Version: 11.0.0 > > -Release: alt1 > > -Summary: The Low Level Virtual Machine > > +Version: %v_full > > +Release: alt2 > > +Summary: The LLVM Compiler Infrastructure <...> > > %package libs > > Group: Development/C > > Summary: LLVM shared libraries > > +%requires_filesystem > > > > %description libs > > -Shared libraries for the LLVM compiler infrastructure. > > +This package contains shared libraries needed to develop new > > +native programs that use LLVM. > ? разве тут что-то неверно? старый description был слишком неточным и подходил к нескольким бинарным пакетам. > > > > > %package doc > > Summary: Documentation for LLVM > > Group: Documentation <...> > > > > %build > > +%define _cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=OFF > > %cmake -G Ninja \ > > -DLLVM_PARALLEL_LINK_JOBS=1 \ > > -DCMAKE_BUILD_TYPE=Release \ > > + -DCMAKE_INSTALL_PREFIX=%llvm_prefix \ > > + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=OFF \ > > -DBUILD_SHARED_LIBS:BOOL=OFF \ > > - -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF;NVPTX;" \ > > + -DLLVM_TARGETS_TO_BUILD="all" \ > Почему нам нужны все TARGETS? Я скоро буду собирать пакеты, которые этим будут пользоваться. Ну, и для "clang -target aarch64-unknown-linux-gnu" какого-нибудь. > > > -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='AVR' \ > > -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ > > -DLLVM_ENABLE_ZLIB:BOOL=ON \ > > @@ -287,13 +395,13 @@ ninja -vvv -j %__nprocs -C BUILD > > > > %install > > pushd BUILD > > -cmake -DCMAKE_INSTALL_PREFIX=%buildroot%prefix ../ > > +cmake -DCMAKE_INSTALL_PREFIX=%buildroot%llvm_prefix ../ > > sed -i 's|man\ tools/lld/docs/docs-lld-html|man|' build.ninja > > sed -i '/^[[:space:]]*include.*tools\/lld\/docs\/cmake_install.cmake.*/d' tools/lld/cmake_install.cmake > > popd > > ninja -C BUILD install > > > > -# And prepare Clang documentation > > +# Prepare Clang documentation. > > rm -rf BUILD/clang-docs > > mkdir -p BUILD/clang-docs > > for f in LICENSE.TXT NOTES.txt README.txt; do > > @@ -301,113 +409,295 @@ for f in LICENSE.TXT NOTES.txt README.txt; do > > done > > rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools} > > > > -install -m 0755 BUILD/%_lib/LLVMHello.so %buildroot%_libdir/ > > -install -m 0755 BUILD/%_lib/BugpointPasses.so %buildroot%_libdir/ > > -mkdir -p %buildroot%_docdir/lld > > - > > -file %buildroot%_bindir/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d > > -file %buildroot%_libdir/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d > > +install -m 0755 BUILD/%_lib/LLVMHello.so %buildroot%llvm_libdir/ > > +install -m 0755 BUILD/%_lib/BugpointPasses.so %buildroot%llvm_libdir/ > > +mkdir -p %buildroot%llvm_docdir/lld > > > > %ifarch %ix86 > > -cd %buildroot%_libdir/clang/%version/lib/linux > > +cd %buildroot%llvm_libdir/clang/%v_full/lib/linux > > ls *-i[3-9]86* | while read f; do ln -s $f $(echo $f | sed 's|i[3-9]86|i386|') ; done > > %endif > > > > +# The following files are not used by LLVM builds for Linux. > > +rm -f %buildroot%llvm_bindir/argdumper > > +rm -f %buildroot%llvm_datadir/clang/clang-format-bbedit.applescript > > + > > +# Install the clang bash completion. > > +mkdir -p %buildroot%_datadir/bash-completion/completions > > +ln -sr %buildroot%llvm_datadir/clang/bash-autocomplete.sh %buildroot%_datadir/bash-completion/completions/clang-%v_major > > + > > +# Symlink executables to %_bindir. > > +mkdir -p %buildroot%_bindir > > +for b in %buildroot%llvm_bindir/*; do > > + bb="$(basename "$b")" > > + echo "$bb" | grep -q -- '-%v_major$' && continue # if already appended > > + ln -srv "$b" "%buildroot%_bindir/$bb-%v_major" > > +done Вот тут написано, почему man1dir не лишний: > > +# Symlink man pages to the man dirs. > > +for mand in %buildroot%llvm_datadir/man/man*; do > > + mand_index="${mand##*/man}" > > + for m in "$mand"/*.[1-9]*; do > > + # Let's force compress the man page, then symlink it. > > + # /usr/lib/llvm-11.0/share/man/manD/utilX.D.xz -> /usr/share/man/manD/utilX-11.D.xz > > + # Otherwise, brp-alt(compress) keeps fucking us up. > > + # It remakes the symlinks first, then compresses their targets, > > + # severing the symlinks. > > + /usr/lib/rpm/compress_files "$m" > > + > > + mb="$(basename "$m")" # e. g. llvm-ar.1.xz > > + new_mb="${mb%%.[1-9]*}-%v_major.$mand_index" # e. g. llvm-ar-11.1.xz > > + > > + mkdir -p "%buildroot%_mandir/man$mand_index" > > + ln -srv "$m" "%buildroot%_mandir/man$mand_index/$new_mb" > > + done > > +done > > + > > +# Symlink sonamed shared libraries in %llvm_prefix/%_libdir to %_libdir. > > +mkdir -p %buildroot%_libdir > > +find %buildroot%llvm_libdir/*.so* -type f | grep -E '^%buildroot%llvm_libdir/.*(%v_major)' | sort | tee %_tmppath/shared-objects \ > > + | sed 's)%llvm_libdir)%_libdir)' > %_tmppath/shared-object-links > > +paste %_tmppath/shared-objects %_tmppath/shared-object-links | while read object link; do > > + ln -srv "$object" "$link" > > +done > > + > > +# List all packaged binaries in this source package. > > +find %buildroot%_bindir/*-%v_major > %_tmppath/PATH-executables > > + > > +# For paranoic reasons library packaging policy covers peculiar directory paths. > > +# If there are $A.a and $A.so in %llvm_libdir/clang, they should not end up in the > > +# same package (but can be co-installed on a system). > > +# Let's list all the $A.so for which $A.a exists into a separate package. > > +# We also consider i386-symlinks for iN86. > > +find %buildroot%llvm_libdir/clang -type f,l -name '*.a' -or -name '*.so' | \ > > + sed -r -n 's/^(\/.+)\.a$/\1/p; s/^(.+)\.so$/\1/p' | sort | uniq -d > %_tmppath/libclang-support-dupes > > +sed < %_tmppath/libclang-support-dupes 's)^%buildroot)); s/$/.a/' > %_tmppath/libclang-support-static-runtimes > > +sed < %_tmppath/libclang-support-dupes 's)^%buildroot)); s/$/.so/' > %_tmppath/libclang-support-shared-runtimes > > +sed < %_tmppath/libclang-support-shared-runtimes 's/^/%%exclude /' > %_tmppath/dyn-files-libclang-support > > +echo "Expelling likely redundant Clang shared runtimes:" && cat %_tmppath/dyn-files-libclang-support > > + > > %check > > %if_enabled tests > > -LD_LIBRARY_PATH=%buildroot%_libdir:$LD_LIBRARY_PATH > > +LD_LIBRARY_PATH=%buildroot%llvm_libdir:$LD_LIBRARY_PATH > > export LD_LIBRARY_PATH > > ninja -C BUILD check-all || : > > %endif > > > > +# Do not generate dependencies for clang-{format,rename} plugins. > > +%add_findreq_skiplist %llvm_datadir/clang/* > > + > > +%files filesystem > > +%dir %llvm_prefix > > +%dir %llvm_bindir > > +%dir %llvm_libdir > > +%dir %llvm_includedir > > +%dir %llvm_libexecdir > > +%dir %llvm_datadir > > +%dir %llvm_datadir/clang > > +%dir %llvm_datadir/man > > +%dir %llvm_man1dir > > +%dir %llvm_docdir > > + > > %files > > %doc CREDITS.TXT LICENSE.TXT README.txt > > +%llvm_bindir/* > > %_bindir/* > > +%llvm_man1dir/* > > %_man1dir/* > %_man1dir/* - лишний man не смотрит в llvm_man1dir. Заморочиться и научить — вариант хуже, чем текущий, потому что программе man надо ещё ман от правильной версии достать. > > > +%exclude %llvm_bindir/llvm-config* > > %exclude %_bindir/llvm-config* > > +%exclude %llvm_bindir/*clang* > > %exclude %_bindir/*clang* > > -%exclude %_bindir/c-index-test > > +%exclude %llvm_bindir/*clangd* > > +%exclude %_bindir/*clangd* > > +%exclude %llvm_bindir/c-index-test > > +%exclude %_bindir/c-index-test-%v_major > > +%exclude %llvm_bindir/find-all-symbols > > +%exclude %_bindir/find-all-symbols-%v_major > > +%exclude %llvm_bindir/scan-* > > %exclude %_bindir/scan-* > > -%exclude %_man1dir/llvm-config.1.* > > -%exclude %_man1dir/clang.1* > > -%exclude %_man1dir/scan-build.1* > > +%exclude %llvm_man1dir/llvm-config.1.* > > +%exclude %_man1dir/llvm-config-%v_major.1.* > > +%exclude %llvm_man1dir/clang.1* > > +%exclude %_man1dir/clang-%v_major.1* > > +%exclude %llvm_man1dir/scan-build.1* > > +%exclude %_man1dir/scan-build-%v_major.1* > > +%exclude %llvm_bindir/lld* > > %exclude %_bindir/lld* > > -%exclude %_bindir/ld*.lld > > -%exclude %_bindir/wasm-ld > > +%exclude %llvm_bindir/ld*.lld > > +%exclude %_bindir/ld*.lld-%v_major > > +%exclude %llvm_bindir/wasm-ld > > +%exclude %_bindir/wasm-ld-%v_major > > <...> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-01-11 16:38 UTC|newest] Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-07 14:08 ` Arseny Maslennikov 2021-01-07 20:52 ` Konstantin Lepikhov 2021-01-07 21:18 ` Arseny Maslennikov 2021-01-11 9:13 ` Konstantin Lepikhov 2021-01-11 10:25 ` [devel] hazardous girar builder (was: Re: [#263468] EPERM (try 14) llvm-common.git=11.0.0-alt2 srpm=llvm11.0-11.0.0-alt2.src.rpm) Arseny Maslennikov 2021-01-11 10:44 ` [devel] hazardous girar builder Dmitry V. Levin 2021-01-11 10:49 ` Arseny Maslennikov 2021-01-11 10:56 ` Dmitry V. Levin 2021-01-11 11:08 ` Arseny Maslennikov 2021-01-11 11:22 ` Sergey V Turchin 2021-01-11 11:25 ` Anton Farygin 2021-01-11 11:32 ` Alexey Gladkov 2021-01-11 11:41 ` Yuri Sedunov 2021-01-11 12:00 ` Alexey Gladkov 2021-01-11 12:30 ` Arseny Maslennikov 2021-01-11 12:25 ` Sergey V Turchin 2021-01-12 7:44 ` Sergey V Turchin 2021-01-12 10:44 ` Alexey V. Vissarionov 2021-01-12 13:24 ` Sergey V Turchin 2021-01-11 12:30 ` Michael Shigorin 2021-01-11 13:21 ` Sergey V Turchin 2021-01-11 13:58 ` Arseny Maslennikov 2021-01-11 14:17 ` Sergey V Turchin 2021-01-12 7:55 ` Anton V. Boyarshinov 2021-01-12 8:13 ` Anton Farygin 2021-01-12 8:26 ` Anton V. Boyarshinov 2021-01-12 9:10 ` Anton Farygin 2021-01-12 10:10 ` Anton V. Boyarshinov 2021-01-12 11:10 ` Alexey V. Vissarionov 2021-01-12 12:53 ` Arseny Maslennikov 2021-01-12 13:18 ` Alexey V. Vissarionov 2021-01-12 14:10 ` Arseny Maslennikov 2021-01-12 19:06 ` Leonid Krivoshein 2021-01-12 20:54 ` [devel] html email in devel@ (was: Re: hazardous girar builder) Arseny Maslennikov 2021-01-13 8:45 ` Alexey V. Vissarionov 2021-01-13 8:54 ` Arseny Maslennikov 2021-01-13 8:59 ` Andrey Savchenko 2021-01-13 9:18 ` Arseny Maslennikov 2021-01-13 9:30 ` Vladimir D. Seleznev 2021-01-13 9:37 ` Alexey Gladkov 2021-01-13 9:48 ` Arseny Maslennikov 2021-01-13 9:21 ` Alexey Gladkov 2021-01-13 10:00 ` Andrey Savchenko 2021-01-13 10:10 ` Alexey Gladkov 2021-01-13 10:47 ` Andrey Savchenko 2021-01-13 11:48 ` Alexey Gladkov 2021-01-13 12:49 ` Dmitry V. Levin 2021-01-13 9:27 ` Vladimir D. Seleznev 2021-01-13 9:55 ` Andrey Savchenko 2021-01-13 10:14 ` Vladimir D. Seleznev 2021-01-13 10:49 ` Andrey Savchenko 2021-01-13 10:59 ` [devel] [JT] fortunes-ALT (was: html email in devel@) Michael Shigorin 2021-01-13 12:45 ` [devel] html email in devel@ (was: Re: hazardous girar builder) Dmitry V. Levin 2021-01-14 9:45 ` Alexey V. Vissarionov 2021-01-13 9:03 ` Alexey Gladkov 2021-01-12 18:10 ` [devel] hazardous girar builder Anton V. Boyarshinov 2021-01-12 18:40 ` Dmitry V. Levin 2021-01-12 18:48 ` Anton V. Boyarshinov 2021-01-12 14:12 ` Arseny Maslennikov 2021-01-11 16:09 ` [devel] [#263468] EPERM (try 14) llvm-common.git=11.0.0-alt2 srpm=llvm11.0-11.0.0-alt2.src.rpm Konstantin Lepikhov 2021-01-11 16:31 ` Michael Shigorin 2021-01-11 21:43 ` Konstantin Lepikhov 2021-01-11 16:38 ` Arseny Maslennikov [this message] 2021-01-11 21:41 ` Konstantin Lepikhov 2021-01-11 23:16 ` Dmitry V. Levin 2021-01-12 12:11 ` Arseny Maslennikov 2021-01-12 12:09 ` Arseny Maslennikov 2021-01-14 21:12 ` Konstantin Lepikhov 2021-01-15 8:50 ` Arseny Maslennikov 2021-01-12 21:39 ` Vitaly Lipatov 2021-01-14 20:55 ` Konstantin Lepikhov 2021-01-13 12:47 ` Alexey Sheplyakov 2021-01-14 20:46 ` Konstantin Lepikhov 2021-01-15 7:49 ` Ivan A. Melnikov 2021-01-15 8:50 ` Alexey Sheplyakov 2021-01-15 9:45 ` Konstantin Lepikhov 2021-01-15 12:38 ` [devel] И еще про кросс-компиляторы (Re: [#263468] EPERM (try 14) llvm-common.git=11.0.0-alt2 srpm=llvm11.0-11.0.0-alt2.src.rpm) Alexey Sheplyakov 2021-06-17 8:46 ` Konstantin Lepikhov 2021-01-15 13:46 ` [devel] [#263468] EPERM (try 14) llvm-common.git=11.0.0-alt2 srpm=llvm11.0-11.0.0-alt2.src.rpm Alexey V. Vissarionov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=X/x/Gydomqfpfga0@cello \ --to=arseny@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git