plasma-desktop в kde 4.10 падает при добавлении плазмоида systray

Обновился до 4.10 и сразу упал, потом разобрался, что падает именно этот плазмоид, попытался трейс стека вызовов сделать, а он даже при сборке Qt с дебагом выдает что-то такое. Как бороться я не представляю. Qt собирал без сильно злых флагов оптимизации и с ними, ошибка осталась. При этом такой трейс и в багтрекер не отправишь, он бесполезный. Пересборка с debug не помогает.
http://pastebin.kde.org/666284/
Кто-нибудь еще сталкивался?

У меня тоже падает. Решения

У меня тоже падает. Решения не нашел.

Сначала не стартовало вообще, из-за Icon-Task.

Возможно, это оно:

Возможно, это оно: https://bugs.gentoo.org/show_bug.cgi?id=450818
UPD: На домашней машине у меня тоже падало. Тогда еще патча не было, и я плюнул, и откатил на 4.9. На рабочей машине не падает. Может быть имеет значение, какой версией gcc собрано: дома тогда был 4.5, а на работе 4.7.

Похоже на то.

У меня тоже падало. Накатил патч на qt-core из багзиллы вручную (ebuild .. unpack; patch; ebuild .. merge) - стало нормально.
Думаю, проблема будет достаточно глобальная, и не сегодня-завтра патч этот для qt-core попадёт в portage.

.

WiseLord написал(а):
У меня тоже падало. Накатил патч на qt-core из багзиллы вручную (ebuild .. unpack; patch; ebuild .. merge) - стало нормально.

Ну ты силён. И неленив ;)
Почто не задействовал механизм user-patch? Он же как раз для такого случая и придуман...

:wq
--
Live free or die

Потому как через пару дней

Потому как через пару дней этот патч и так появится (моё мнение), и тогда механизм user-patch будет давать сбой на src_unpack.
А так я эту фичу давно использую — у меня все версии ядер и xf86-input-synaptics патчатся на предмет поддержки отключения/включения тачпада по двойному тапу в верхнем левом углу (на моём HP Probook 4720 для этого даже светодиод есть в этом углу тачпада, загорающийся при отключении оного).

патч появится для новой

патч появится для новой версии, а юзерпатчу можно указать «диапазон влияния». Так что операция вполне может быть одноразовой и безопасной.

Присоединяюсь к просьбе

Присоединяюсь к просьбе описать поподробнее, скилл в таких вещах невелик :-( А без трея сидеть действительно задница полная, простите.

upd: Сейчас попробую сделать по аналогии с:
http://klaig.blogspot.ru/2011/07/how-to-apply-user-patches-in-portage.html
отпишусь, что получится по результату.

Bitte, lasst die linux leben!

Да собственно все просто

Да собственно все просто очень: кладем патч в /etc/portage/patches/category/package (можно указать версию и т.д) и пересобираем.
Некоторые «старые» ебилды могут не поддерживать «юзерпатчение», но на практике не попадалось. «Подхват» патча будет виден как минимум в выводе emerge.

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

не получилось ничерта, я так и сделала. Создала
/etc/portage/patches/x11-libs/qt-core-4.8.4-r1/

сделала

wget -O /etc/portage/patches/x11-libs/qt-core/fix1.patch https://bugs.gentoo.org/attachment.cgi?id=335314

вот его содержимое:

--- /dev/null
+++ qt-core/files/qpropertyanimation-setProperty.patch
@@ -0,0 +1,17 @@
+--- src/corelib/animation/qpropertyanimation.cpp
++++ src/corelib/animation/qpropertyanimation.cpp
+@@ -133,13 +133,7 @@
+         return;
+     }
+ 
+-    if (newValue.userType() == propertyType) {
+-        //no conversion is needed, we directly call the QMetaObject::metacall
+-        void *data = const_cast<void*>(newValue.constData());
+-        QMetaObject::metacall(targetValue, QMetaObject::WriteProperty, propertyIndex, &data);
+-    } else {
+-        targetValue->setProperty(propertyName.constData(), newValue);
+-    }
++    targetValue->setProperty(propertyName.constData(), newValue);
+ }
+ 
+ /*!
Index: qt-core/qt-core-4.8.4-r2.ebuild
===================================================================
--- /dev/null
+++ qt-core/qt-core-4.8.4-r2.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/qt-core/qt-core-4.8.4-r1.ebuild,v 1.1 2013/01/03 15:30:58 kensington Exp $
+
+EAPI=5
+
+inherit qt4-build
+
+DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework"
+SLOT="4"
+if [[ ${QT4_BUILD_TYPE} == live ]]; then
+	KEYWORDS=""
+else
+	KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+fi
+IUSE="+glib iconv icu qt3support ssl"
+
+DEPEND="
+	sys-libs/zlib
+	glib? ( dev-libs/glib:2 )
+	icu? ( >=dev-libs/icu-49:= )
+	ssl? ( dev-libs/openssl )
+	!<x11-libs/cairo-1.10.2-r2
+	!x11-libs/qt:4
+"
+RDEPEND="${DEPEND}"
+PDEPEND="
+	qt3support? ( ~x11-libs/qt-gui-${PV}[aqua=,debug=,glib=,qt3support] )
+"
+
+PATCHES=(
+	"${FILESDIR}/moc-workaround-for-boost-1.48.patch"
+	"${FILESDIR}/qpropertyanimation-setProperty.patch"
+)
+
+pkg_setup() {
+	QT4_TARGET_DIRECTORIES="
+		src/tools/bootstrap
+		src/tools/moc
+		src/tools/rcc
+		src/tools/uic
+		src/corelib
+		src/xml
+		src/network
+		src/plugins/codecs
+		tools/linguist/lconvert
+		tools/linguist/lrelease
+		tools/linguist/lupdate"
+
+	QT4_EXTRACT_DIRECTORIES="${QT4_TARGET_DIRECTORIES}
+		include/Qt
+		include/QtCore
+		include/QtDeclarative
+		include/QtGui
+		include/QtNetwork
+		include/QtScript
+		include/QtXml
+		src/plugins/plugins.pro
+		src/plugins/qpluginbase.pri
+		src/src.pro
+		src/3rdparty/des
+		src/3rdparty/harfbuzz
+		src/3rdparty/md4
+		src/3rdparty/md5
+		src/3rdparty/sha1
+		src/3rdparty/easing
+		src/3rdparty/zlib_dependency.pri
+		src/declarative
+		src/gui
+		src/script
+		tools/shared
+		tools/linguist/shared
+		translations"
+
+	qt4-build_pkg_setup
+}
+
+src_prepare() {
+	# Don't pre-strip, bug 235026
+	for i in kr jp cn tw; do
+		echo "CONFIG+=nostrip" >> "${S}"/src/plugins/codecs/${i}/${i}.pro
+	done
+
+	qt4-build_src_prepare
+
+	# bug 172219
+	sed -i -e "s:CXXFLAGS.*=:CXXFLAGS=${CXXFLAGS} :" \
+		"${S}/qmake/Makefile.unix" || die "sed qmake/Makefile.unix CXXFLAGS failed"
+	sed -i -e "s:LFLAGS.*=:LFLAGS=${LDFLAGS} :" \
+		"${S}/qmake/Makefile.unix" || die "sed qmake/Makefile.unix LDFLAGS failed"
+
+	# bug 427782
+	sed -i -e "/^CPPFLAGS/s/-g//" \
+		"${S}/qmake/Makefile.unix" || die "sed qmake/Makefile.unix CPPFLAGS failed"
+	sed -i -e "s/setBootstrapVariable QMAKE_CFLAGS_RELEASE/QMakeVar set QMAKE_CFLAGS_RELEASE/" \
+		-e "s/setBootstrapVariable QMAKE_CXXFLAGS_RELEASE/QMakeVar set QMAKE_CXXFLAGS_RELEASE/" \
+		"${S}/configure" || die "sed configure setBootstrapVariable failed"
+}
+
+src_configure() {
+	myconf+="
+		-no-accessibility -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon
+		-no-phonon-backend -no-svg -no-webkit -no-script -no-scripttools -no-declarative
+		-system-zlib -no-gif -no-libtiff -no-libpng -no-libmng -no-libjpeg
+		-no-cups -no-dbus -no-gtkstyle -no-nas-sound -no-opengl -no-openvg
+		-no-sm -no-xshape -no-xvideo -no-xsync -no-xinerama -no-xcursor -no-xfixes
+		-no-xrandr -no-xrender -no-mitshm -no-fontconfig -no-freetype -no-xinput -no-xkb
+		$(qt_use glib)
+		$(qt_use iconv)
+		$(qt_use icu)
+		$(use ssl && echo -openssl-linked || echo -no-openssl)
+		$(qt_use qt3support)"
+
+	qt4-build_src_configure
+}
+
+src_install() {
+	dobin bin/{qmake,moc,rcc,uic,lconvert,lrelease,lupdate}
+
+	install_directories src/{corelib,xml,network,plugins/codecs}
+
+	emake INSTALL_ROOT="${D}" install_mkspecs
+
+	# install private headers
+	insinto "${QTHEADERDIR#${EPREFIX}}"/QtCore/private
+	find "${S}"/src/corelib -type f -name "*_p.h" -exec doins {} +
+
+	# use freshly built libraries
+	local DYLD_FPATH=
+	[[ -d "${S}"/lib/QtCore.framework ]] \
+		&& DYLD_FPATH=$(for x in "${S}"/lib/*.framework; do echo -n ":$x"; done)
+	DYLD_LIBRARY_PATH="${S}/lib${DYLD_FPATH}" \
+		LD_LIBRARY_PATH="${S}/lib" \
+		"${S}"/bin/lrelease translations/*.ts \
+		|| die "generating translations failed"
+	insinto "${QTTRANSDIR#${EPREFIX}}"
+	doins translations/*.qm
+
+	setqtenv
+	fix_library_files
+
+	# List all the multilib libdirs
+	local libdirs=
+	for libdir in $(get_all_libdirs); do
+		libdirs+=":${EPREFIX}/usr/${libdir}/qt4"
+	done
+
+	cat <<-EOF > "${T}"/44qt4
+	LDPATH="${libdirs:1}"
+	EOF
+	doenvd "${T}"/44qt4
+
+	dodir "${QTDATADIR#${EPREFIX}}"/mkspecs/gentoo
+	mv "${D}/${QTDATADIR}"/mkspecs/qconfig.pri "${D}${QTDATADIR}"/mkspecs/gentoo \
+		|| die "failed to move qconfig.pri"
+
+	# Framework hacking
+	if use aqua && [[ ${CHOST#*-darwin} -ge 9 ]]; then
+		# TODO: do this better
+		sed -i -e '2a#include <QtCore/Gentoo/gentoo-qconfig.h>\n' \
+				"${D}${QTLIBDIR}"/QtCore.framework/Headers/qconfig.h \
+			|| die "sed for qconfig.h failed."
+		dosym "${QTHEADERDIR#${EPREFIX}}"/Gentoo "${QTLIBDIR#${EPREFIX}}"/QtCore.framework/Headers/Gentoo
+	else
+		sed -i -e '2a#include <Gentoo/gentoo-qconfig.h>\n' \
+				"${D}${QTHEADERDIR}"/QtCore/qconfig.h \
+				"${D}${QTHEADERDIR}"/Qt/qconfig.h \
+			|| die "sed for qconfig.h failed"
+	fi
+
+	QCONFIG_DEFINE="QT_ZLIB"
+	install_qconfigs
+
+	# remove .la files
+	prune_libtool_files
+
+	keepdir "${QTSYSCONFDIR#${EPREFIX}}"
+
+	# Framework magic
+	fix_includes
+}

далее

#emerge -l qt-core

в процессе было:
Applying user patches from /etc/portage/patches//x11-libs/qt-core-4.8.4-r1 ...
fix1.patch ... [ok]
Done with patching
>>> Source prepared

то есть как я поняла - патч успешно применился на исходник.
И тем не менее после установки и перезагрузки все по старому :-( Плазма орет:

Процесс: kdeinit4 PID: 8014 Сигнал завершения: Segmentation fault (11)

Bitte, lasst die linux leben!

Простыню, конечно, можно было

Простыню, конечно, можно было бы и не развешивать тут.

Если патч «применился», но не помогло — значит не тот патч? Кед у меня нет, так что мое намерение было лишь прояснить ситуацию с юзерпатчами, коль скоро о них заговорили.

Этот патч не применился,

Этот патч не применился, видимо, из-за того, что это - не патч для qt-core, а патч для создания ebuild-а и patch-а qt-core-r2.
Сделайте patch -p0 < этот.patch в пустом каталоге, и уже результат — файл qpropertyanimation-setProperty.patch — используйте как user patch.

Можно по подробней как

Можно по подробней как патчили? А то без трея сидеть совсем не в кайф.

А какой именно накатили

А какой именно накатили патчик? Тот что выше указан? А то мне он не помог.

Bitte, lasst die linux leben!

Для тех, кто не следит за

Для тех, кто не следит за багом на b.g.o
Попробуйте просто пересобрать qt-core c -Os (ничего патчить не надо)

CFLAGS="-march=native -pipe -Os" CXXFLAGS="-march=native -pipe -Os" emerge -av1 qt-core

Как ни странно, но мне

Как ни странно, но мне помогло.

Аналогично - пересбор с этим

Аналогично - пересбор с этим флагом помог. А что это за флаг такой?

Bitte, lasst die linux leben!

/

Eva написал(а):
Аналогично - пересбор с этим флагом помог. А что это за флаг такой?

Цитата:
-Os
Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size. It also performs further optimizations designed to reduce code size.

-Os disables the following optimization flags:

              -falign-functions  -falign-jumps  -falign-loops 
              -falign-labels  -freorder-blocks  -freorder-blocks-and-partition 
              -fprefetch-loop-arrays  -ftree-vect-loop-version

http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

:wq
--
Live free or die

.

eegorov написал(а):
пересобрать qt-core c -Os (ничего патчить не надо)

Ничего не патчил, всё и так хорошо с моими общими флагами CXXFLAGS="-O2 -pipe -g0 -march=core-avx-i -mtune=native -fno-align-labels -fno-align-loops -fomit-frame-pointer -fpredictive-commoning -ftree-vectorize -s" (разве что не собирается с -fgraphite-identity и -flto,- пришлось занести данный пакет в package.env)

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Поставил

Поставил plasma-workspace-4.10.0-r1 из оверлея. Помогло.

mony написал(а): Поставил

mony написал(а):
Поставил plasma-workspace-4.10.0-r1 из оверлея. Помогло.

Аналогично (забросил ебилд в локальный оверлей).

В 4.10 наконец нативно живет appmenu, а то надоело по оверлеям собирать.

Да пребудет с тобой великий Linux.

Собрал на домашней машине

Собрал на домашней машине qt-core с помощью gcc-4.7.2. Не падает :) Флаги обычные:

CFLAGS="-O2 -pipe -march=native"

Баг исправили в апстриме и в

Баг исправили в апстриме и в портаже, обновляйте qt-core. Я пока не проверял - для этого надо кеды перезапустить.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".