Bug 50138

Summary: /lib/cpp is broken for new installations
Product: Sisyphus Reporter: Ivan A. Melnikov <iv>
Component: gcc-commonAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: aen, arseny, asheplyakov, at, glebfm, ldv, placeholder, sbolshakov, sin
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 50121    

Description Ivan A. Melnikov 2024-04-24 10:00:30 MSK
В свежем хешере (сразу после hsh-init) поверх сегодняшнего Сизифа наблюдаю сломанную ссылку /lib/cpp:

[builder@localhost .in]$ ls -l /lib/cpp
lrwxrwxrwx 1 rooter rooter 14 Dec  7  2020 /lib/cpp -> ../usr/bin/cpp
[builder@localhost .in]$ ls -l /usr/lib/cpp
lrwxrwxrwx 1 rooter rooter 14 Dec  7  2020 /usr/lib/cpp -> ../usr/bin/cpp

Обе не работают. На живой, по-usermerg-енной системе, немного больше переходов вверх, и всё хорошо:

$ ls -l /lib/cpp
lrwxrwxrwx 1 root root 17 Apr 23 10:18 /lib/cpp -> ../../usr/bin/cpp
Comment 1 Ivan A. Melnikov 2024-04-24 10:47:35 MSK
Это ломает сборку пакетов.  Например, sphinx:

[...]
checking how to run the C++ preprocessor... /lib/cpp
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
error: Bad exit status from /usr/src/tmp/rpm-tmp.77100 (%build)
Comment 2 Ivan A. Melnikov 2024-04-24 10:50:50 MSK
asheplyakov@ предлагает исправление: https://git.altlinux.org/tasks/345735/
Comment 3 Arseny Maslennikov 2024-04-24 11:10:10 MSK
Мало на что повлияет, но исправить надо.

gcc-common	@core at sbolshakov

Я не стал лезть, потому что мы бы ещё пару месяцев одобряли моё задание. :)

Варианта исправления может быть два: починить битую ссылку или удалить её совсем.
Comment 4 Arseny Maslennikov 2024-04-24 11:15:47 MSK
(In reply to Ivan A. Melnikov from comment #2)
> asheplyakov@ предлагает исправление: https://git.altlinux.org/tasks/345735/

diff --git a/gcc-common.spec b/gcc-common.spec
index 584473f..7f4b321 100644 (file)
--- a/gcc-common.spec
+++ b/gcc-common.spec
@@ -10,6 +10,7 @@ Url: http://git.altlinux.org/gears/g/gcc-common.git
 Source: gcc_wrapper.c
 
 %define _libexecdir /usr/libexec
+%define _real_lib %(realpath /lib)
 
 %ifarch ppc
 # On powerpc, even though target is ppc32, compiler is inherently 64-bit,

Меня никто не спрашивал, но тем не менее: а можно лучше без %() по таким пустым поводам? А ещё лучше вообще не увеличивать количество использований %() в наших макросах и спеках.

diff --git a/gcc-common.spec b/gcc-common.spec
index 584473f..7f4b321 100644 (file)
--- a/gcc-common.spec
+++ b/gcc-common.spec
@@ -10,6 +10,7 @@ Url: http://git.altlinux.org/gears/g/gcc-common.git
 Source: gcc_wrapper.c
 
 %define _libexecdir /usr/libexec
+%define _real_lib /usr/lib
 
 %ifarch ppc
 # On powerpc, even though target is ppc32, compiler is inherently 64-bit,

Как-то странно рассчитывать на возможное отсутствие /usr, когда рядом define _libexecdir /usr/libexec.
Comment 5 Arseny Maslennikov 2024-04-24 11:21:27 MSK
(In reply to Arseny Maslennikov from comment #4)
> Меня никто не спрашивал, но тем не менее: а можно лучше без %() по таким
> пустым поводам? А ещё лучше вообще не увеличивать количество использований
> %() в наших макросах и спеках.

Сделать в пакете поддержку и unmerged-usr, и merged-usr это тоже не помогает. :(
Comment 6 Arseny Maslennikov 2024-05-22 19:44:51 MSK
(In reply to Arseny Maslennikov from comment #3)
> Мало на что повлияет, но исправить надо.
> 
> gcc-common	@core at sbolshakov
> 
> Я не стал лезть, потому что мы бы ещё пару месяцев одобряли моё задание. :)

Влез всё-таки:
https://packages.altlinux.org/en/tasks/348678/
 
> Варианта исправления может быть два: <...> удалить её совсем.
Comment 7 Arseny Maslennikov 2024-05-22 21:54:53 MSK
> 2024-May-22 18:50:28 :: task #348678 for sisyphus DONE

> gcc-common 1.4.27-alt1 -> 1.4.28-alt1
>  Wed May 22 2024 Arseny Maslennikov <arseny@altlinux> 1.4.28-alt1
>  - Removed the /lib/cpp legacy symlink.