All,
Working the systemd issue, I ran across a question. Where do you look in the
code TDE or system to find out what is calling/using the files located in
/etc/pam.d? I say that because the only trinity related pam.d file I install is:
/etc/pam.d/trinity
#%PAM-1.0
#auth required pam_securetty.so
auth requisite pam_nologin.so
auth include system-local-login
account include system-local-login
session include system-local-login
Files already existing in pam.d relevant to the trinity file are:
/etc/pam.d/system-local-login
#%PAM-1.0
auth include system-login
account include system-login
password include system-login
session include system-login
/etc/pam.d/system-login
#%PAM-1.0
auth required pam_tally.so onerr=succeed file=/var/log/faillog
auth required pam_shells.so
auth requisite pam_nologin.so
auth include system-auth
account required pam_access.so
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_loginuid.so
session include system-auth
session optional pam_motd.so motd=/etc/motd
session optional pam_mail.so dir=/var/spool/mail standard quiet
-session optional pam_systemd.so
session required pam_env.so
However, even after the logind-multiseat-patch, the loginctl show-session
$XDG_SESSION_ID output is still:
NAutoVTs=6
KillExcludeUsers=root
KillUserProcesses=no
IdleHint=yes
IdleSinceHint=0
IdleSinceHintMonotonic=0
InhibitDelayMaxUSec=5s
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend
IdleAction=ignore
IdleActionUSec=30min
PreparingForShutdown=no
PreparingForSleep=no
This suggests to me, that my pam.d setup is not sufficient to enable the
needed user session tracking. Francios pam config is different in several areas
and he has several more pam.d files related to kde/TDE than I do. How do you
tell you setup to use additional files in /etc/pam.d/? Where is the code that
asks to see a file named '/etc/pam.d/whatever' in TDE and how is the name of the
file in /etc/pam.d/foo established? Where is the link between the code and
'foo'? I think that is another area that could be giving all of us without
consolekit issue. Because you are required to register you login and session
with the 'pam stack' and that is where I'm stumbling.
One of the requirements in the freedesktop.org docs is that you register the
greeter with pam. I don't see that explicitly happening anywhere in
tdm/backend/client.c. The best I can come up with is it should be done with
something like this at about line 1325 in the multiseat patched file:
if ((pretc = pam_misc_setenv( pamh, XDG_SESSION_CLASS, "greeter", 0 )) !=
PAM_SUCCESS) {
ReInitErrorLog();
LogError( "pam_misc_setenv() for %s failed: %s\n",
curuser, pam_strerror( pamh, pretc ) );
return 0;
}
This is similar to an example given by freedesktop for registering the greeter
with pam.
Can someone with more smarts regarding pam give me a little insight into
(1) where the code -> /etc/pam.d/foo file connection is made; and
(2) do you find the greeter being previously registered with pam anywhere else
outside of the consolekit preprocessor directives?
--
David C. Rankin, J.D.,P.E.
All,
I just tried to supply a patch to 1902, and upon sending the attachment, I
received:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to
complete your request.
Please contact the server administrator, [no address given] and inform them of
the time the error occurred, and anything you might have done that may have
caused the error.
More information about this error may be available in the server error log.
--
David C. Rankin, J.D.,P.E.
Francios, Slavek,
I have ported the kde-workspace-4.11.0-kdm-logind-multiseat.patch to tdebase.
The code fit like a glove showing that there had been very little change to kdm
in kde4. I was able to find the exact context for each hunk and I manually
applied the hunks to the relevant tdebase files. I need you to look over the
patch and make sure it looks sane. Let me know if you see anything out of place.
I will attempt a tdebase build, test if successful and will report back. Patch
attached.
--
David C. Rankin, J.D.,P.E.
Darrell,
I have completed conversion of the katesort-1.0 source to TQt3/TDE and it
builds fine. Download the converted source here:
http://www.3111skyline.com/dl/dt/trinity/cfg/applications-katesort-plugin.t…
The source installs properly in /opt/trinity/share/apps/kate/plugins like all
the rest of the plugins, but for some reason isn't automatically read and
included by kate when kate is started. I'll look at the kate code. I suspect it
is due to all plugins beginning with kate..... and this just being 'sort'
instead of 'katesort'
The package contents and the plugin_sort.rc are:
tde-katesort-plugin-R14preRC1-1-i686.pkg.tar.xz
/opt/
/opt/trinity/
/opt/trinity/lib/
/opt/trinity/lib/trinity/
/opt/trinity/lib/trinity/libsortplugin.la
/opt/trinity/lib/trinity/libsortplugin.so
/opt/trinity/share/
/opt/trinity/share/apps/
/opt/trinity/share/apps/kate/
/opt/trinity/share/apps/kate/plugins/
/opt/trinity/share/apps/kate/plugins/sort/
/opt/trinity/share/apps/kate/plugins/sort/plugin_sort.rc
/opt/trinity/share/doc/
/opt/trinity/share/doc/tde/
/opt/trinity/share/doc/tde/HTML/
/opt/trinity/share/doc/tde/HTML/cs/
/opt/trinity/share/doc/tde/HTML/cs/katesort/
/opt/trinity/share/doc/tde/HTML/cs/katesort/common
/opt/trinity/share/doc/tde/HTML/cs/katesort/index.cache.bz2
/opt/trinity/share/doc/tde/HTML/cs/katesort/index.docbook
/opt/trinity/share/doc/tde/HTML/cs/katesort/sort_plugin_cs.png
/opt/trinity/share/doc/tde/HTML/en/
/opt/trinity/share/doc/tde/HTML/en/katesort/
/opt/trinity/share/doc/tde/HTML/en/katesort/common
/opt/trinity/share/doc/tde/HTML/en/katesort/index.cache.bz2
/opt/trinity/share/doc/tde/HTML/en/katesort/index.docbook
/opt/trinity/share/doc/tde/HTML/en/katesort/sort_plugin_en.png
/opt/trinity/share/icons/
/opt/trinity/share/icons/hicolor/
/opt/trinity/share/icons/hicolor/16x16/
/opt/trinity/share/icons/hicolor/16x16/actions/
/opt/trinity/share/icons/hicolor/16x16/actions/katesort.png
/opt/trinity/share/icons/hicolor/32x32/
/opt/trinity/share/icons/hicolor/32x32/actions/
/opt/trinity/share/icons/hicolor/32x32/actions/katesort.png
/opt/trinity/share/services/
/opt/trinity/share/services/katesort.desktop
/opt/trinity/share/apps/kate/plugins/sort/plugin_sort.rc
<!DOCTYPE kpartgui>
<kpartplugin name="sort" library="libsortplugin" version="1">
<MenuBar>
<Menu name="tools"><Text>&Tools</Text>
<Action name="edit_insert_sort"/>
</Menu>
</MenuBar>
<ToolBar name="extraToolBar">
<Action name="edit_insert_sort"/>
</ToolBar>
<ActionProperties>
<Action icon="katesort" name="edit_insert_sort" />
</ActionProperties>
</kpartplugin>
This is done, the only thing left is to get the hook working so kate autoloads
the plugin on start.
--
David C. Rankin, J.D.,P.E.
Darrell,
It just snapped to me as I was following the conversation through a nicely
threaded discussion - Darrell has a new mailer! I see it is kmail and it is
working great. Thanks for the switch. I'm sure you are viewing the messages
threaded, if not look under the 'Folder' menu and there is an option for Message
Threading that will show all messages threaded by conversation on your end.
Looks good, thanks!
--
David C. Rankin, J.D.,P.E.
Hello,
I've just found out some changes in the "starttde" script, see commit
77aed4a4
http://www.trinitydesktop.org/patches/1393268197:77aed4a4eba63e760c40cc5b3d…
I do not agree with what that patch for 2 reasons:
1) The principe: on my computer, I'm using TDE both on local session and
in remote session at the same time, using the same user account.
So when I login remotely, this patch will probably kill my
locally-opened session ...
2) The way it is written: there are several piped commands (why not
using a single awk or simply use bash ?) and the code is not robust at
all. What is my user is called "greppy" for example ? (ok this is
unlikely, but not impossible). The "grep -v grep" will eliminate this
line ...
Please avoid using a full-featured "ps" output then trying to parse the
output!
The "ps" command can already filter on user (ps -u $USER) and select
output format (ps -o field1,field2 ...)
So, at very least, the command could look like :
ps -u ${USER} -o pid,cmd h | while read pid command args; do
case "${command##*/}" in "dcopserver"|"gam_server")
kill $pid ;;
esac
done
Another approach would be to parse the /proc/[0-9]*/ folders, to avoid
using any "ps" command at all...
Francois
All,
I have always been frustrated by not knowing what variables were available to
cmake so that I could intelligently adjust include_directories or
target_link_libraries without pulling my hair out. I have stumbled on two very
different and very useful ways of showing all cmake variables available to your
build. They literally pull back the cmake veil of secrecy... Both are simple:
(1) simply include the following code snippet in any CMakeLists.txt to dump all
variables (both in-use & available) to stdout during the build (then just save
the list to a text file):
# dump all variable names
get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
(2) simply call cmake with 'cmake -LAH' and it will do something similar, but
not quite as complete.
The outputs are this:
(1) (from an old kde3 install)
-- Could NOT find Threads (missing: Threads_FOUND)
-- Found KDE3 include dir: /opt/kde3/include
-- Found KDE3 library dir: /opt/kde3/lib64
-- Found KDE3 dcopidl preprocessor: /opt/kde3/bin/dcopidl
-- Found KDE3 dcopidl2cpp preprocessor: /opt/kde3/bin/dcopidl2cpp
-- Found KDE3 kconfig_compiler preprocessor: /opt/kde3/bin/kconfig_compiler
-- CMAKE_AR=/usr/bin/ar
-- CMAKE_BASE_NAME=g++
<snip>
-- KDE3PREFIX=/opt/kde3
-- KDE3_BUILD_TESTS=OFF
-- KDE3_DCOPIDL2CPP_EXECUTABLE=/opt/kde3/bin/dcopidl2cpp
-- KDE3_DCOPIDL_EXECUTABLE=/opt/kde3/bin/dcopidl
--
KDE3_DEFINITIONS=-DQT_CLEAN_NAMESPACE;-D_GNU_SOURCE;-D_XOPEN_SOURCE=500;-D_BSD_SOURCE
-- KDE3_FOUND=TRUE
-- KDE3_INCLUDE_DIR=/opt/kde3/include
-- KDE3_INCLUDE_DIRS=/usr/lib/qt3/include;/opt/kde3/include
-- KDE3_KCFGC_EXECUTABLE=/opt/kde3/bin/kconfig_compiler
-- KDE3_KDECORE_LIBRARY=/opt/kde3/lib64/libkdecore.so
-- KDE3_LIBTOOL_DIR=/lib64/kde3
-- KDE3_LIB_DIR=/opt/kde3/lib64
-- KDE3_MODULE_DIR=/usr/share/cmake/Modules
-- KDECONFIG_EXECUTABLE=/opt/kde3/bin/kde-config
-- PROJECT_BINARY_DIR=/home/david/dev/kde3/tutorial/p1bld
-- PROJECT_NAME=p1
-- PROJECT_SOURCE_DIR=/home/david/dev/kde3/tutorial/p1
-- QGLOBAL_H=#define QT_VERSION_STR "3.3.8c"
-- QT3_FOUND=TRUE
-- QTVERSION_MOC=
-- QTVERSION_UIC=
--
QT_AND_KDECORE_LIBS=/usr/lib/qt3/lib64/libqassistantclient.a;/usr/lib/qt3/lib64/libqt-mt.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so;dl;/opt/kde3/lib64/libkdecore.so
-- QT_DEFINITIONS=-DQT_SHARED;-DQT_NO_DEBUG;-DQT_THREAD_SUPPORT;-D_REENTRANT
-- QT_FOUND=TRUE
-- QT_INCLUDE_DIR=/usr/lib/qt3/include
--
QT_LIBRARIES=/usr/lib/qt3/lib64/libqassistantclient.a;/usr/lib/qt3/lib64/libqt-mt.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so;dl
-- QT_MOC_EXE=/usr/lib/qt3/bin/moc
-- QT_MOC_EXECUTABLE=/usr/lib/qt3/bin/moc
-- QT_MT_REQUIRED=TRUE
-- QT_QASSISTANTCLIENT_LIBRARY=/usr/lib/qt3/lib64/libqassistantclient.a
-- QT_QTMAIN_LIBRARY=
-- QT_QT_LIBRARY=/usr/lib/qt3/lib64/libqt-mt.so
-- QT_UIC_EXE=/usr/lib/qt3/bin/uic
-- QT_UIC_EXECUTABLE=/usr/lib/qt3/bin/uic
-- QT_VERSION_STRING=3.3.8c
-- QT_WRAP_CPP=FALSE
-- QT_WRAP_UI=FALSE
(2) # cmake -LAH
// Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
// Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS
used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=
// Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
// CXX compiler.
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
// Flags used by the compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
// Flags used by the compiler during debug builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
// Flags used by the compiler during release minsize builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
// Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs
will produce slightly less optimized but smaller files).
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
// Flags used by the compiler during Release with Debug Info builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g
// Flags used by the linker.
CMAKE_EXE_LINKER_FLAGS:STRING=
// Flags used by the linker during debug builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
// Flags used by the linker during release minsize builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
// Flags used by the linker during release builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
// Flags used by the linker during Release with Debug Info builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
// Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
// Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
<snip>
--
David C. Rankin, J.D.,P.E.
Darrell,
I have a note to commit 77aed4a4. I'm afraid that used grep is dangerous. For
example, my colleague has a login name 's' (yes, only one letter). Such grep
would return unwanted results. I propose a change roughly as follows. This
will make it possible to omit some grep and also condition.
ps -u $USER -o pid= -o comm= | grep -w kdesktop_lock | awk '{print $1}' | xargs -r kill -9
The second note is that this killing can be dangerous. If the machine is
configured for multi-user login (multi-seat, xdmcp), the user could have
multiple active sessions. Alternatively, user could have running some
applications remotely - dcopserver would be active for remote session.
--
Slavek
Darrell, Slavek, All,
On your R14 install, open a 'top' or 'htop' window and tell me what your
'tdepowersave' use is.
By far -- tdepowersave is the top CPU user on my build continually taking more
than any other process. This is not right. It is using 2x-3x more CPU than X or
kded and is continually at the top of the list. It never stops.
What do you see?
--
David C. Rankin, J.D.,P.E.