Re: Review Request 112294: Implement multi-seat support in KDM

2014-05-24 Thread Oswald Buddenhagen

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/112294/#review58394
---


i didn't finish the review, because it seems that revision 6 is itself an 
interdiff to a previous attempt. maybe you forgot to squash?

please factor out the fixes into separate commits, for atomicity.

regarding debug statements in production code: it's ok to leave some in. but 
look at them from the admin perspective: does its presence help to debug 
config/runtime problems, or is it really only for the developer? the latter 
ones should be eliminated in the end.



kdm/backend/dm.h
https://git.reviewboard.kde.org/r/112294/#comment40621

i'd remove the Reserve suffix. it just adds verbosity.



kdm/backend/dm.h
https://git.reviewboard.kde.org/r/112294/#comment40622

this is an enum, not a bit field. you can make the value 6, then you don't 
need to change anything else.



kdm/config.def
https://git.reviewboard.kde.org/r/112294/#comment40620

this should come before the ReserveServers - as mentioned before, 
hypothetically, you could have reserve displays for dynamic servers, so they 
are least significant.



kdm/config.def
https://git.reviewboard.kde.org/r/112294/#comment40615

10 is an unwise offset, as it clashes with the ssh default. that's why i 
kept it below that in all my examples. i don't think there will be more than 10 
local displays in any realistic scenario (the machine would explode anyway).


regarding DynamicDisplays and your magic backwards compat handling ... i think 
the seat-encoded config stuff i insisted on makes that redundant, after all. 
suppose we do it like that:

  StaticServers=:0,@seat1_:4,@seat2_:7
  ReserveServers=:1,:2,@seat1_:5,@seat2_:8

local displays without a seat are implicitly on seat0. that's your special 
case, without much magic.
if kdm is started with systemd, *all* static local servers actually go straight 
into the dynamic state and need to be activated by systemd.
if kdm is compiled with systemd support but none is running, displays on seats 
!= 0 are simply eliminated (with a notice to the log).
if kdm is compiled without systemd support, seats != 0 are rejected (with an 
error to the log). if somebody feels like implementing actual support for that, 
they can.
as before, the ReserveServers are only meant for demo purposes. don't worry 
about them.

would that work?

- Oswald Buddenhagen


On May 18, 2014, 7:44 p.m., Stefan Brüns wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/112294/
 ---
 
 (Updated May 18, 2014, 7:44 p.m.)
 
 
 Review request for kde-workspace and Oswald Buddenhagen.
 
 
 Repository: kde-workspace
 
 
 Description
 ---
 
 This patch implements dynamic multiseat in KDM. It follows the description in:
 http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/
 
 In case systemd is no found at compile time, nothing changes. If logind is 
 not running, nothing changes. If no additional seats have been configured 
 (some Plugable USB-GPUs are automatically added as additional seats), nothing 
 changes.
 
 In case there are additional seats beyond seat0, a reserved display is 
 promoted to a local static one (and demoted if the seat is removed) and a new 
 X-Server/greeter is spawned.
 
 The code has been tested extensively, with a combination of [Radeon dedicated 
 GPU|Intel iGPU], [Intel iGPU|Displaylink USB GPU] and others. For history of 
 this patch, see https://bugzilla.redhat.com/show_bug.cgi?id=884271 and 
 https://bugzilla.redhat.com/show_bug.cgi?id=975079
 
 
 Diffs
 -
 
   kdm/backend/dm.h b2f8c61 
   kdm/backend/dm.c 77a2ef7 
   kdm/backend/dpylist.c b650c2f 
   kdm/backend/resource.c 38a8c70 
   kdm/config.def 751c0ed 
   kdm/kfrontend/kdm_config.c 368c8d1 
 
 Diff: https://git.reviewboard.kde.org/r/112294/diff/
 
 
 Testing
 ---
 
 Single seat system, several multiseat systems
 
 
 Thanks,
 
 Stefan Brüns
 




Re: Review Request 117044: Avoid unnecessary automounting in KDiskFreeSpaceInfo::freeSpaceInfo

2014-05-24 Thread Dawit Alemayehu


 On May 19, 2014, 12:05 p.m., Frank Reininghaus wrote:
  We are seeing quite a few bug reports about a severe regression between KDE 
  SC 4.13.0 and KDE SC 4.13.1:
  
  https://bugs.kde.org/show_bug.cgi?id=334776
  
  According to the reporter of https://bugs.kde.org/show_bug.cgi?id=334988 
  the regression has been caused by this commit.
  
  I'm surprised that this was committed to KDE/4.13 at all - the review 
  request was for 'master', and it does not really fix a serious bug. Please 
  make sure that such patches, which fix little annoyances but have the 
  potential to cause serious trouble, get a lot of testing in betas and RCs 
  before they are shipped. Testing on a single system is definitely not 
  enough!
  
  I propose to revert this patch - maybe a better solution which prevents 
  automounting can be found for master/frameworks, but IMHO we should not 
  take any further risks in KDE/4.13. Any objections?
 
 Thomas Lübking wrote:
 The patch does somehow not what it promises. 
 
 KMountPoint::Ptr mp = KMountPoint::currentMountPoints().findByPath( path 
 );
 
 KMountPoint::currentMountPoints() promises to return mtab, ie. already 
 used mountpoints, so if there's mp, it's mounted, iow. it looks like (i've 
 just looked at this for the first time) as if it only shortcuts for already 
 mounted autofs mounts, but will still statvfs on unmounted autofs mounts 
 (mounting them implicitly)
 
 Ie. what the patch probably should do was to:
 
 if (!mp) { // unmounted, avoid automounts
KMountPoint::Ptr pmp = 
 KMountPoint::possibleMountPoints().findByPath(path);
if (pmp  pmp-mountType() == QLatin1String(autofs))
   return info;
 }

I think the submitter took David's suggestion and changed the original 
implementation without understanding the consequences. Thomas' suggested patch 
would probably be a better starting point. 

David: I could not find a isDirectoryMounted() method in kfileitem.cpp to see 
what you meant by looking at that implementation. 

In the meantime I think this patch should be reverted because it caused a 
regression.


- Dawit


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117044/#review58143
---


On May 6, 2014, 8:01 p.m., Tomáš Trnka wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/117044/
 ---
 
 (Updated May 6, 2014, 8:01 p.m.)
 
 
 Review request for kdelibs.
 
 
 Repository: kdelibs
 
 
 Description
 ---
 
 Avoid unnecessary automounting in KDiskFreeSpaceInfo::freeSpaceInfo
 
 Previously, all unmounted autofs mountpoints were always mounted
 by krunner/plasma-desktop on startup, defeating the purpose of
 automounting. Let's ignore the unmounted filesystems instead when
 gathering free space stats, just like the df utility does.
 
 Everything still gets mounted properly on first real access.
 
 The change itself is pretty trivial and I would regard it as a bugfix
 (and thus eligible for 4.13), but I'm posting it for review to see
 what you kdelibs people think.
 
 
 Diffs
 -
 
   kio/kfile/kdiskfreespaceinfo.cpp f11eb0998f0e718e9b366f8c26da30586bfa44ef 
 
 Diff: https://git.reviewboard.kde.org/r/117044/diff/
 
 
 Testing
 ---
 
 I'm using this patch on kdelibs since 4.11 and I have noted no problems
 in connection with ~4 automounted filesystems.
 
 
 Thanks,
 
 Tomáš Trnka
 




Re: Review Request 112294: Implement multi-seat support in KDM

2014-05-24 Thread Stefan Brüns


On May 24, 2014, 11:46 a.m., Stefan Brüns wrote:
  regarding DynamicDisplays and your magic backwards compat handling ... i 
  think the seat-encoded config stuff i insisted on makes that redundant, 
  after all. suppose we do it like that:
  
StaticServers=:0,@seat1_:4,@seat2_:7
ReserveServers=:1,:2,@seat1_:5,@seat2_:8
  
  local displays without a seat are implicitly on seat0. that's your special 
  case, without much magic.
  if kdm is started with systemd, *all* static local servers actually go 
  straight into the dynamic state and need to be activated by systemd.
  if kdm is compiled with systemd support but none is running, displays on 
  seats != 0 are simply eliminated (with a notice to the log).
  if kdm is compiled without systemd support, seats != 0 are rejected (with 
  an error to the log). if somebody feels like implementing actual support 
  for that, they can.
  as before, the ReserveServers are only meant for demo purposes. don't worry 
  about them.
  
  would that work?

Hm, not exactly sure if I understand your proposal correctly - do you mean get 
rid of DynamicServers and use the StaticServers for either legacy static 
servers or for seats provided by systemd-logind, dependent on logind 
availability?

If yes, I am generally for it. But this would also require that the 
StaticServers list does not require (but allow) any special syntax for seats. 
Seats may be totally dynamic, added by e.g. plugging a DisplayLink USB adapter, 
with a name dependent on the used USB port.

So given the following partial config:
---
StaticServers=:0,:1,:2_@seat-foo
ReserveServers=:3,:4,:5_@seat-foo
[X-:*_@seat-foo-Core]
ServerArgsLocal=-layout Seat-Foo
---
and these seats: 'seat0', 'seat-some-machine-generated-specifier', 'seat-foo' --

In case of compiled in support for systemd-logind all StaticServers would be 
flagged with status dynamic instead of notRunning.
[a: logind running]seat-foo will use DISPLAY=:2, whereas the 
other two will use one of :0 and :1, which one is unspecified. :2 will use 
-layout Seat-Foo as args, the other two will use the default args (or section 
[X-:*-Core])
[b: logind not running]print a warning/error in kdm.log. Change the 
status from dynamic to notRunning for all seats without a seat specifier, this 
will spawn displays/greeters for :0 and :1, and if there where [X-:{0,1}-Core] 
config sections, these would be used.

[c: No logind support compiled in] print a warning for each display in 
StaticServers/ReserveServers matching :\d+_@seat.* and remove from the 
Static|ReserveServers list, i.e. :0 and :1 will be started.

In case ReserveServers support is added later, seat-foo would use :5 and the 
same [X-:*_@seat-foo-Core] config section as display :2.


- Stefan


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/112294/#review58394
---


On May 18, 2014, 7:44 p.m., Stefan Brüns wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/112294/
 ---
 
 (Updated May 18, 2014, 7:44 p.m.)
 
 
 Review request for kde-workspace and Oswald Buddenhagen.
 
 
 Repository: kde-workspace
 
 
 Description
 ---
 
 This patch implements dynamic multiseat in KDM. It follows the description in:
 http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/
 
 In case systemd is no found at compile time, nothing changes. If logind is 
 not running, nothing changes. If no additional seats have been configured 
 (some Plugable USB-GPUs are automatically added as additional seats), nothing 
 changes.
 
 In case there are additional seats beyond seat0, a reserved display is 
 promoted to a local static one (and demoted if the seat is removed) and a new 
 X-Server/greeter is spawned.
 
 The code has been tested extensively, with a combination of [Radeon dedicated 
 GPU|Intel iGPU], [Intel iGPU|Displaylink USB GPU] and others. For history of 
 this patch, see https://bugzilla.redhat.com/show_bug.cgi?id=884271 and 
 https://bugzilla.redhat.com/show_bug.cgi?id=975079
 
 
 Diffs
 -
 
   kdm/backend/dm.h b2f8c61 
   kdm/backend/dm.c 77a2ef7 
   kdm/backend/dpylist.c b650c2f 
   kdm/backend/resource.c 38a8c70 
   kdm/config.def 751c0ed 
   kdm/kfrontend/kdm_config.c 368c8d1 
 
 Diff: https://git.reviewboard.kde.org/r/112294/diff/
 
 
 Testing
 ---
 
 Single seat system, several multiseat systems
 
 
 Thanks,
 
 Stefan Brüns
 




Re: Review Request 118270: [doc] explicitly load external entities (after CVE-2014-0191)

2014-05-24 Thread Luc Menut

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118270/#review58411
---


Thanks for the fix, it seems to work fine.
I built KDE SC 4.13.1 (Mageia Cauldron) with it with both original and patched 
libxml2; in the 2 cases, results are the same, and the same as original 
meinproc4 with unpatched libxml2.

Do we need ressources from network? If all the resources are supposed to be on 
the local machine, perhaps we should use XML_PARSE_NONET (Forbid network 
access) option? It is often suggested/recommended to use this option with 
DTDLOAD and NOENT when it's possible.
https://bugzilla.redhat.com/show_bug.cgi?id=863166#c3

- Luc Menut


On May 23, 2014, 8:24 p.m., Luigi Toscano wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/118270/
 ---
 
 (Updated May 23, 2014, 8:24 p.m.)
 
 
 Review request for Documentation, KDE Frameworks, kdelibs, Rohan Garg, 
 Jonathan Riddell, and Rex Dieter.
 
 
 Bugs: 335001
 http://bugs.kde.org/show_bug.cgi?id=335001
 
 
 Repository: kdelibs
 
 
 Description
 ---
 
 Use the more modern API function for XML loading and enable the flags which 
 load the external entities, so that meinproc4 can work
 again after the security changes implemented for CVE-2014-0191.
 Without this change meinproc4 complains (see the referenced bug)
 
 The fix (half of the patch, the other half is on code which was removed) 
 applies to KF5 too, hence the group.
 
 My tests shows that the documentation cache is properly generated as before, 
 and the patch should work even on the old 
 
 Packagers (Ubuntu packagers in CC, as Ubuntu is one of the few distributions 
 where libxml2 has been already patched) could you please test it with a fixed 
 libxml and without, and if possible with KF5 as well?
 
 
 Diffs
 -
 
   kdoctools/meinproc.cpp 0894d63 
   kdoctools/xslt.cpp a7265ca 
 
 Diff: https://git.reviewboard.kde.org/r/118270/diff/
 
 
 Testing
 ---
 
 meinproc4 works again
 
 
 Thanks,
 
 Luigi Toscano