Trinity Desktop Environment на Gentoo (Сборка окружения TDE под gentoo)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

gamper785 писал:
26.06.2024 08:03
gcc из тильдовой ветки 14.1.1.20240622
Это на данный момент нестабильная версия компилятора. Вы пример который я привёл пробовали запускать? Тут нужно узнать какой вывод этой тестовой программы. А то гадать это не по мне, мне нужно знать точно куда копать. Но лучше попробовать этот main.c собрать компилятором g++(не gcc):
Spoiler

Код: Выделить всё

#include <stdio.h>

int main( int argv, char **argc )
{
        #ifdef __USE_GNU
                printf("__USE_GNU: Yes\n");
        #else
                printf("__USE_GNU: No\n");
        #endif
}
Какой будет вывод узнать важно.
Добавлено (10:05):
Так же файл /usr/include/pthread.h в студию.

Shell

$ tar -czf pthread.tar.gz /usr/include/pthread.h
И выложить тут. Я то соберу sys-devel/gcc-14.1.1_p20240622, но тут может завязка и с glibc. Так как на системе с musl вывод собранного примера будет отличаться, но оно включается совершенно другим макросом, который объявлен для tdm.
Добавлено (11:00):
Хм, пересмотрел заглоловочные файлы, похоже что дело может быть либо в компиляторе, либо кто то правил в ручную заголовочные файлы glibc. Макрос __USE_GNU в данном случае включается по любому если объявлен макрос _GNU_SOURCE , это прописано в /usr/include/features.h glibc, а он в tdm в данном случае объявляется, иначе этой ошибки небыло, так как он включается тем же макросом что и данная функция.
Пока причина, либо в компиляторе что то поменяли, либо кто то влез ручками не туда. Иначе просто невозможно, что бы появилась эта ошибка, так как судя по ошибке компилятор не находит прототип функции pthread_setname_np. Пока жду сборки gcc-14.1.1_p20240622, а там посмотрю.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

Проверил, действительно дело в компиляторе. Должен сказать что теперь он работает не надёжно. В данном случает он каким то образом оставил макрос _FEATURES_H, и в каком то из заголовочников был выключен макрос __USE_GNU, как результат хоть макрос _GNU_SOURCE был объявлен но проверка этого макроса не выполнялась в /usr/include/features.h. Этот патч решает проблему сборки tdm:
Spoiler

Код: Выделить всё

--- a/tdm/backend/dm.c  2024-06-26 14:08:23.861549490 +0300
+++ b/tdm/backend/dm.c  2024-06-26 14:09:50.021545886 +0300
@@ -54,6 +54,7 @@
 #endif

 #ifdef HAVE_PTHREAD_SETNAME_NP
+#undef _FEATURES_H
 #define _GNU_SOURCE
 #define __BSD_VISIBLE 1
 #include <pthread.h>
Пока этот патч можно добавить для данного пакета в /etc/portage/patches.
Видно та же самая проблема и со сборкой www-misc/htdig, так как не были доступны прототипы функций. Этот компилятор очень нестабильный...
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

Хм, смотрю gcc-14 нестабилен даже для сборки ядра:

Shell

misc-utils/kill.c:397:20: error: implicit declaration of function 'pidfd_open'; did you mean 'fdopen'? [-Wimplicit-function-declaration]
397 | if ((pfd = pidfd_open(ctl->pid, 0)) < 0)
Точнее для сборки initramfs:

Shell

* >> Appending util-linux cpio data ...
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 359

Re: Trinity Desktop Environment на Gentoo

Сообщение sunjob »

привет! не в курсе, для накой каталог (у меня есть такой, специально не создавал, видимо сама TDE его создает)

Код: Выделить всё

~/.tde/shutdown
пробовал в него скидывать *.desktop - не отрабатывают
как у тебя с этим?!
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

sunjob писал(а):
10.07.2024 16:55
привет! не в курсе, для накой каталог (у меня есть такой, специально не создавал, видимо сама TDE его создает)
Код: Выделить всё

~/.tde/shutdown
Понятия не имею, у меня такого каталога нет, по этому сомневаюсь что дело в TDE. Пробовал запускать kshutdown, не создаётся этот каталог, по этому не знаю с чем это связанно.
Добавлено (17:55):
Хм пересмотрел, ответ смотреть в скрипте starttde. Вот только этот каталог не создаётся автоматом. Возможно когда то вы сами его создавали.
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 359

Re: Trinity Desktop Environment на Gentoo

Сообщение sunjob »

возможно (и сам создал) но это было очень давно, т.к. всю свою сознательную жисть работаю в тринити :о)
ладно, гляну, что там да чего! (в starttde)

+

странная фигня, выдрал для отладки необходимый кусок кода, в отладке все работает, а на деле - нет :crazy:

Код: Выделить всё

#!/bin/sh
#
# tde/bin/starttde
#
# Run scripts found in shutdown directories. Those locations are:
# * $TDEHOME/shutdown
# * $PREFIX/shutdown
# * $TDEDIRS/shutdown ($TDEDIRS, not $TDEDIR)
# Presumed is $TDEDIRS/bin exists. Create $TDEDIRS/bin even when
# only using the shutdown directory or this snippet will fail to find
# that shutdown directory.
#
exepath=`tde-config --path exe | tr : '\n'`
#-->
#/home/sun/.tde/bin/
#/opt/tde/bin/

for prefix in `echo "$exepath" | sed -n -e 's,/bin[^/]*/,/shutdown/,p'`; do
for file   in `ls "$prefix" 2> /dev/null | egrep -v '(~|\.bak)$'`; do
if [ -x "${prefix}${file}" ]; then
  echo "[starttde] Running ${prefix}${file}" 1>&2
  #sh ${prefix}${file}
fi;done;done
beep
-->
book$ ./tde_shutdown_log.sh
[starttde] Running /home/sun/.tde/shutdown/tde_shutdown_log.sh
ладушки, отложим в ближайший резиновый ящик, посмотрим как будет время :yes3:

+

поймал за-яца этого засрантца
- если перегружаемся через стандартный диалог tde-logout -> все окей, срабатывает
- если перегружаемся через стандартный... reboot -> фигушки нам по всей морде :cray:

короче, тринитя стартует на

Код: Выделить всё

$TDEDIR/bin/tdeinit_phase1
ну а reboot, естественно, рубит в капусту все подряд ... и далее код не отрабатывает

как думаешь, "они" могли бы в бинаре сделать подобную обработку/вызов перед выходом?!
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

sunjob писал(а):
10.07.2024 17:58
прям беда с этой тринитей могли бы и в бинаре сделать подобную обработку/вызов?!
Всё по идее со времен kde3, по этому так уж работает. Там просто при выключении скрипт продолжает работу до конца, а до этого висит на определённом цикле. Само собою при выполнении reboot это не будет работать, так как тогда скрипт просто тупо убьёт.
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 359

Re: Trinity Desktop Environment на Gentoo

Сообщение sunjob »

ну я поэтому и предположил, что "было-бы" неплохо выполнять "цикл окончания" в бинарнике а не скрипте
- получил сигнал на выход
- запустил цикл "shutdown"
- выходим с чистой совсестью
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
sunjob
Сообщения: 359

Re: Trinity Desktop Environment на Gentoo

Сообщение sunjob »

ну... вообщем, выкрутился костылями
- на reboot - сделал баш-обертку и запихал в него вызов shutdown-скрипта
- на tde - отрабатывает сам shutdown-скрипт (сслыка на который помещена в ~/.tde/shutdown)

осталась одна лозейка - вызов reboot от имени root-a (не стал пока разгребаться, да и не дело это системным вызовам заниматься пользовательскими рутинами)
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

sunjob писал(а):
11.07.2024 19:33
ну... вообщем, выкрутился костылями
Ну так всё в стиле Unix Way.
Спасибо сказали:
gamper785
Сообщения: 28

Re: Trinity Desktop Environment на Gentoo

Сообщение gamper785 »

ormorph писал(а):
08.07.2024 15:58
Хм, смотрю gcc-14 нестабилен даже для сборки ядра:

Shell

misc-utils/kill.c:397:20: error: implicit declaration of function 'pidfd_open'; did you mean 'fdopen'? [-Wimplicit-function-declaration]
397 | if ((pfd = pidfd_open(ctl->pid, 0)) < 0)
Точнее для сборки initramfs:

Shell

* >> Appending util-linux cpio data ...
по-хорошему, чтоб не костылять - лучше дождаться стабильной версии gcc?
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2761
ОС: Gentoo

Re: Trinity Desktop Environment на Gentoo

Сообщение ormorph »

gamper785 писал:
16.07.2024 02:07
по-хорошему, чтоб не костылять - лучше дождаться стабильной версии gcc?
Так стабильной она становится только после того, как все исходники станут поддерживать её. Тут больше вопрос в поддержке нового gcc. Для живой версии tdm, я уже добавил исправление. Думаю к тому моменту как gcc-14 будет переведён в стабильные, новая версия TDE уже выйдет. Для пакета htdig на данный момент смотрю висит запрос на удаление, хотя исправляется это довольно просто. Правильнее было сказать - дождаться когда новый gcc будет переведён в стабильные.
Спасибо сказали: