ldm-2.2.13/0000755000175000017500000000000012302300756012237 5ustar vagrantvagrantldm-2.2.13/ChangeLog0000644000175000017500000057127412302300756014031 0ustar vagrantvagrant 1544 Vagrant Cascadian 2014-02-22 {ldm-2.2.13} version 2.2.13 1543 Vagrant Cascadian 2014-02-22 Use libexec dir for LDM plugins. 1542 Alkis Georgopoulos 2014-02-20 Don't hardcode XDG_VTNR to 7. 1541 Alkis Georgopoulos 2014-02-20 Support logind for fat clients (LP: #1274267). 1540 Launchpad Translations on behalf of ltsp-upstream 2013-11-26 Launchpad automatic translations update. 1539 Launchpad Translations on behalf of ltsp-upstream 2013-11-25 Launchpad automatic translations update. 1538 Vagrant Cascadian 2013-11-24 {ldm-2.2.12} version 2.2.12 1537 Vagrant Cascadian 2013-11-24 Remove autogenerated files: config.guess, config.sub, config.rpath. 1536 Vagrant Cascadian 2013-11-24 Fix typo: --add-mising -> --add-missing 1535 Vagrant Cascadian 2013-11-24 autogen.sh: use longhand options for automake. 1534 Vagrant Cascadian 2013-11-24 Run automake with -f so that it updates config.guess/config.sub. Patch from Colin Watson: http://launchpadlibrarian.net/153276165/ldm_2:2.2.11-2ubuntu1_2:2.2.11-2ubuntu2.diff.gz 1533 Alkis Georgopoulos 2013-11-24 Revert r1530. 1532 Launchpad Translations on behalf of ltsp-upstream 2013-11-24 Launchpad automatic translations update. 1531 Launchpad Translations on behalf of ltsp-upstream 2013-11-23 Launchpad automatic translations update. 1530 Alkis Georgopoulos 2013-11-22 Test if removing ldm.pot prevents launchpad from doing daily translation commits (LP: #1112122). 1529 Launchpad Translations on behalf of ltsp-upstream 2013-11-22 Launchpad automatic translations update. 1528 Launchpad Translations on behalf of ltsp-upstream 2013-11-21 Launchpad automatic translations update. 1527 Launchpad Translations on behalf of ltsp-upstream 2013-11-20 Launchpad automatic translations update. 1526 Launchpad Translations on behalf of ltsp-upstream 2013-11-19 Launchpad automatic translations update. 1525 Launchpad Translations on behalf of ltsp-upstream 2013-11-18 Launchpad automatic translations update. 1524 Launchpad Translations on behalf of ltsp-upstream 2013-11-17 Launchpad automatic translations update. 1523 Launchpad Translations on behalf of ltsp-upstream 2013-11-16 Launchpad automatic translations update. 1522 Launchpad Translations on behalf of ltsp-upstream 2013-11-15 Launchpad automatic translations update. 1521 Launchpad Translations on behalf of ltsp-upstream 2013-11-14 Launchpad automatic translations update. 1520 Launchpad Translations on behalf of ltsp-upstream 2013-11-13 Launchpad automatic translations update. 1519 Launchpad Translations on behalf of ltsp-upstream 2013-11-12 Launchpad automatic translations update. 1518 Launchpad Translations on behalf of ltsp-upstream 2013-11-11 Launchpad automatic translations update. 1517 Launchpad Translations on behalf of ltsp-upstream 2013-11-10 Launchpad automatic translations update. 1516 Launchpad Translations on behalf of ltsp-upstream 2013-11-08 Launchpad automatic translations update. 1515 Launchpad Translations on behalf of ltsp-upstream 2013-11-07 Launchpad automatic translations update. 1514 Launchpad Translations on behalf of ltsp-upstream 2013-11-06 Launchpad automatic translations update. 1513 Launchpad Translations on behalf of ltsp-upstream 2013-11-05 Launchpad automatic translations update. 1512 Launchpad Translations on behalf of ltsp-upstream 2013-11-04 Launchpad automatic translations update. 1511 Launchpad Translations on behalf of ltsp-upstream 2013-11-03 Launchpad automatic translations update. 1510 Launchpad Translations on behalf of ltsp-upstream 2013-11-02 Launchpad automatic translations update. 1509 Launchpad Translations on behalf of ltsp-upstream 2013-11-01 Launchpad automatic translations update. 1508 Launchpad Translations on behalf of ltsp-upstream 2013-10-31 Launchpad automatic translations update. 1507 Launchpad Translations on behalf of ltsp-upstream 2013-10-30 Launchpad automatic translations update. 1506 Launchpad Translations on behalf of ltsp-upstream 2013-10-29 Launchpad automatic translations update. 1505 Launchpad Translations on behalf of ltsp-upstream 2013-10-28 Launchpad automatic translations update. 1504 Launchpad Translations on behalf of ltsp-upstream 2013-10-27 Launchpad automatic translations update. 1503 Launchpad Translations on behalf of ltsp-upstream 2013-10-26 Launchpad automatic translations update. 1502 Launchpad Translations on behalf of ltsp-upstream 2013-10-25 Launchpad automatic translations update. 1501 Launchpad Translations on behalf of ltsp-upstream 2013-10-24 Launchpad automatic translations update. 1500 Launchpad Translations on behalf of ltsp-upstream 2013-10-23 Launchpad automatic translations update. 1499 Launchpad Translations on behalf of ltsp-upstream 2013-10-22 Launchpad automatic translations update. 1498 Launchpad Translations on behalf of ltsp-upstream 2013-10-21 Launchpad automatic translations update. 1497 Launchpad Translations on behalf of ltsp-upstream 2013-10-20 Launchpad automatic translations update. 1496 Launchpad Translations on behalf of ltsp-upstream 2013-10-19 Launchpad automatic translations update. 1495 Launchpad Translations on behalf of ltsp-upstream 2013-10-18 Launchpad automatic translations update. 1494 Launchpad Translations on behalf of ltsp-upstream 2013-10-17 Launchpad automatic translations update. 1493 Launchpad Translations on behalf of ltsp-upstream 2013-10-16 Launchpad automatic translations update. 1492 Launchpad Translations on behalf of ltsp-upstream 2013-10-15 Launchpad automatic translations update. 1491 Launchpad Translations on behalf of ltsp-upstream 2013-10-14 Launchpad automatic translations update. 1490 Launchpad Translations on behalf of ltsp-upstream 2013-10-13 Launchpad automatic translations update. 1489 Launchpad Translations on behalf of ltsp-upstream 2013-10-12 Launchpad automatic translations update. 1488 Launchpad Translations on behalf of ltsp-upstream 2013-10-11 Launchpad automatic translations update. 1487 Launchpad Translations on behalf of ltsp-upstream 2013-10-10 Launchpad automatic translations update. 1486 Launchpad Translations on behalf of ltsp-upstream 2013-10-09 Launchpad automatic translations update. 1485 Launchpad Translations on behalf of ltsp-upstream 2013-10-08 Launchpad automatic translations update. 1484 Launchpad Translations on behalf of ltsp-upstream 2013-10-07 Launchpad automatic translations update. 1483 Launchpad Translations on behalf of ltsp-upstream 2013-10-05 Launchpad automatic translations update. 1482 Alkis Georgopoulos 2013-02-27 Undo any changes related to LP: #1093144. Revert related files to r1453, more or less. The plan to run LDM outside of X was aborted and instead a simple script that kills user proceses on logout will be committed in ltsp-trunk. So distros affected by LP: #1093144 do not need to backport anything from ldm-trunk, only from ltsp-trunk. 1481 Scott Balneaves 2013-02-22 Call stop scripts explicitly 1480 Scott Balneaves 2013-02-22 Don't close ssh session 1479 Alkis Georgopoulos 2013-02-05 Move r1453 to init-ltsp.d so that it is applied before X is loaded. 1478 Launchpad Translations on behalf of ltsp-upstream 2013-02-01 Launchpad automatic translations update. 1477 Launchpad Translations on behalf of ltsp-upstream 2013-01-31 Launchpad automatic translations update. 1476 Launchpad Translations on behalf of ltsp-upstream 2013-01-30 Launchpad automatic translations update. 1475 Launchpad Translations on behalf of ltsp-upstream 2013-01-29 Launchpad automatic translations update. 1474 Launchpad Translations on behalf of ltsp-upstream 2013-01-28 Launchpad automatic translations update. 1473 Launchpad Translations on behalf of ltsp-upstream 2013-01-27 Launchpad automatic translations update. 1472 Launchpad Translations on behalf of ltsp-upstream 2013-01-26 Launchpad automatic translations update. 1471 Launchpad Translations on behalf of ltsp-upstream 2013-01-25 Launchpad automatic translations update. 1470 Launchpad Translations on behalf of ltsp-upstream 2013-01-24 Launchpad automatic translations update. 1469 Launchpad Translations on behalf of ltsp-upstream 2013-01-23 Launchpad automatic translations update. 1468 Launchpad Translations on behalf of ltsp-upstream 2013-01-22 Launchpad automatic translations update. 1467 Launchpad Translations on behalf of ltsp-upstream 2013-01-21 Launchpad automatic translations update. 1466 Launchpad Translations on behalf of ltsp-upstream 2013-01-20 Launchpad automatic translations update. 1465 Launchpad Translations on behalf of ltsp-upstream 2013-01-19 Launchpad automatic translations update. 1464 Launchpad Translations on behalf of ltsp-upstream 2013-01-18 Launchpad automatic translations update. 1463 Launchpad Translations on behalf of ltsp-upstream 2013-01-17 Launchpad automatic translations update. 1462 Launchpad Translations on behalf of ltsp-upstream 2013-01-16 Launchpad automatic translations update. 1461 Launchpad Translations on behalf of ltsp-upstream 2013-01-15 Launchpad automatic translations update. 1460 Launchpad Translations on behalf of ltsp-upstream 2013-01-14 Launchpad automatic translations update. 1459 Wim Muskee 2013-01-11 Look for distinct server ip (LP: 1098349). Thanks to Phil Sharfstein. 1458 Alkis Georgopoulos 2013-01-08 Move the rc.d/K* stop event after X terminates (LP: #1093144). 1457 Alkis Georgopoulos 2013-01-08 LDM_LOGOUT_ACTION has been implemented in LTSP as LTSP_LOGOUT_ACTION. 1456 Alkis Georgopoulos 2013-01-08 ldm-script.in: comment the ACTIONs a bit. 1455 Alkis Georgopoulos 2013-01-08 Revert r1454. The proper way to handle LP bug #1093144 would be for LDM to run outside the X session. But with the planned move to LightDM, that's unlikely to get implemented. A temporary workaround will be to have a shell script save the LDM environment, and another that restores it and does the cleanup after X dies. 1454 Scott Balneaves 2013-01-03 First steps to address Bug #1093144: don't terminate ssh on exit 1453 Alkis Georgopoulos 2012-12-04 Avoid Xorg crashes caused by nouveau dri (LP: #1072711). 1452 Marc Gariepy 2012-11-26 fixing server variable since it has been changed un ltsp trunk. 1451 Stéphane Graber 2012-08-21 Fix all build warnings 1450 Stéphane Graber 2012-08-21 Add missing includes, thanks to cyberorg. 1449 Vagrant Cascadian 2012-06-27 {ldm-2.2.11} version 2.2.11 1448 Alkis Georgopoulos 2012-06-17 Implement LDM_MENU_ITEM_[0-9], LDM_MENU_COMMAND_[0-9]. 1447 Alkis Georgopoulos 2012-06-17 greeter.c: merge halt() and reboot() into spawn_command(). 1446 Alkis Georgopoulos 2012-06-17 greeter.c: avoid possible memory leaks. 1445 Vagrant Cascadian 2012-06-04 {ldm-2.2.10} version 2.2.10 1444 Vagrant Cascadian 2012-06-04 Touch ChangeLog in autogen.sh, rather than leaving an empty ChangeLog file. 1443 Floris Bos / Maxnet 2012-06-04 ldm-plugin.patch: the routines that searches for plugins calls readdir() and looks at the entries' d_type expecting it to be DT_REG, but on some (file) systems it returns DT_UNKNOWN instead. 1442 Floris Bos / Maxnet 2012-06-04 ldm-close-greeter-on-login-failure.patch: greeter should be closed on login failure, or you will have two greeters running after ldm restarts. 1441 Floris Bos / Maxnet 2012-06-04 ldm-segfault.patch: the pointer timeoutbox is used before there is anything assigned to it. 1440 Vagrant Cascadian 2012-06-04 Implement LDM_FORCE_LANGUAGE, which overrides user defined language setting in ~/.dmrc, and hides the Language selection menu in the greeter. (LP#282884). 1439 Vagrant Cascadian 2012-06-04 Do not display Session menu if LDM_FORCE_SESSION is set. 1438 Vagrant Cascadian 2012-06-04 Allow LDM_SESSION to be defined as either a command in path(for backwards compatibility), or as a .desktop filename, and sets the default session to run if not configured in ~/.dmrc or selected at login time. Implement LDM_FORCE_SESSION which may only be specified as a .desktop filename, and overrides and ~/.dmrc or sessions selected at login time. LDM itself now exports LDM_SELECTED_SESSION instead of LDM_SESSION, so we can distinguish when we need to write to ~/.dmrc. LDM_SELECTED_SESSION should *only* be set from within LDM, *not* from lts.conf. An existing ~/.dmrc should take priority over LDM_SESSION. Forget about all that LDM_*DESKTOP stuff, it was a brief experiment. 1437 Vagrant Cascadian 2012-06-03 Renamed/Repurposed LDM_*DESKTOP and LDM_*SESSION variables, in order of precedence: LDM_FORCE_DESKTOP forces the session defined in specified .desktop file. LDM_FORCE_SESSION forces the session. LDM_SESSION default session, but can also be set as the selected session. LDM_DESKTOP default session defined in specified .desktop file. 1436 Alkis Georgopoulos 2012-06-01 Check LDM_DESKTOP before LDM_SESSION. 1435 Alkis Georgopoulos 2012-06-01 Implement LDM_DEFAULT_SESSION, LDM_DESKTOP, LDM_DEFAULT_DESKTOP (LP: #981049). 1434 Stéphane Graber 2012-04-30 ldminfod: If Hidden=true or TryExec points to an invalid target, hide the entry. 1433 Alkis Georgopoulos 2012-04-22 Use hostnames in LDM_SERVER, remove ssh-hostchecker. 1432 Vagrant Cascadian 2012-04-13 {ldm-2.2.9} version 2.2.9 1431 Alkis Georgopoulos 2012-04-12 Don't set LIBGL_ALWAYS_INDIRECT for fat clients. 1430 Alkis Georgopoulos 2012-04-12 X51-opengl: fix broken client environment (LP: #979472). 1429 Stéphane Graber 2012-04-03 Move xcompmgr from running when DISABLE_XCOMPMGR isn't set to when LDM_XCOMPMGR is set. That's motivated by the fact that metacity now supports compositing and it should be done there when possible. 1428 Vagrant Cascadian 2012-04-02 fall back to ltsp-common-functions to avoid issues with backwards compatibility. 1427 Alkis Georgopoulos 2012-03-31 ldm-script.in: source ltsp-client-functions instead of ltsp-common-functions. 1426 Vagrant Cascadian 2012-03-30 {ldm-2.2.8} version 2.2.8 1425 Vagrant Cascadian 2012-03-30 Update rc.d/Makefile.am with new and removed hooks. 1424 Stéphane Graber 2012-03-29 Don't ignore @ in login/password 1423 Stéphane Graber 2012-03-28 Turn on compositing if xcompmgr is present 1422 Stéphane Graber 2012-03-28 Fix opengl 1421 Stéphane Graber 2012-03-21 Drop mouse events in wwm too. 1420 Stéphane Graber 2012-03-12 {ldm-2.2.7} version 2.2.7 1419 Stéphane Graber 2012-03-12 wwm: Remove all key bindings 1418 Vagrant Cascadian 2012-02-24 {ldm-2.2.6} version 2.2.6 1417 Vagrant Cascadian 2012-02-24 Ensure that the Exec lines match exactly. Thanks to Alkis! 1416 Alkis Georgopoulos 2012-02-21 Missed a do_ssh call in dmrc processing. 1415 Jonathan Carter 2012-02-20 Replace default LDM theme background 1414 Alkis Georgopoulos 2012-02-21 Rewrite X50-dmrc-processing (LP: #820417). 1413 Alkis Georgopoulos 2012-02-16 Don't use -fp on poweroff/reboot, for clean shutdown. 1412 Alkis Georgopoulos 2012-02-10 Export LTSP_FATCLIENT and LTSP_CLIENT_MAC to client env if they're set. 1411 Vagrant Cascadian 2012-02-08 check for ldminfod in /usr/share/ldm/ for fat clients. 1410 Vagrant Cascadian 2012-02-03 {ldm-2.2.5} version 2.2.5 1409 Vagrant Cascadian 2012-02-03 fall back to english language and territory names if translation fails. 1408 Vagrant Cascadian 2012-01-30 pass GlobalKnownHostsFile=/var/run/ldm/ssh_known_hosts as a single argument to the ssh -o option, otherwise it treats the ssh_known_hosts file as another argument to ssh itself. 1407 Stéphane Graber 2012-01-30 At alkisg suggestion, use exec /bin/sh rather than spawning a sub-process 1406 Stéphane Graber 2012-01-30 Configure the automagic to install ltsp-cluster-info into bin/ 1405 Marc Gariepy 2011-11-02 fix LP#872473 1404 Stéphane Graber 2011-10-29 Also update configure for ssh-hostchecker 1403 Stéphane Graber 2011-10-29 Port I01-nbd-checkupdate to consistent variable names 1402 Stéphane Graber 2011-10-29 Make ssh-hostchecker executable, update ldm to use it 1401 Stéphane Graber 2011-10-29 Add ssh-hostchecker, tool to match SSH host keys without checking the host part 1400 Stéphane Graber 2011-09-26 Hardcode the pointer at the middle of the screen on startup 1399 Warren Togami 2011-07-28 {ldm-2.2.4} version 2.2.4 1398 Stéphane Graber 2011-07-26 Revert to a version of the script that works with any version of python and skip invalid entries from locale -a 1397 Warren Togami 2011-07-26 Revert stgraber@ubuntu.com-20110618160934-lhkp7de8qljnmz2i since it broke python2 python3 is basically a different language. Please use entirely different scripts if you want to use python3. 1396 Stéphane Graber 2011-07-22 Launchpad: no change commit to trigger a test rebuild 1395 Vagrant Cascadian 2011-07-13 Added Danish (da) translation by Dennis Duggen. 1394 Vagrant Cascadian 2011-07-12 Updated ldm.pot, add Dutch (nl) to LINGUAS, update .po files. 1393 Vagrant Cascadian 2011-07-12 Added Dutch (nl) translation by Jan Middelkoop. 1392 Stéphane Graber 2011-07-08 Add support for named nbd devices 1391 Stéphane Graber 2011-07-06 Ignore LDM_LIMIT_ONE_SESSION if USER = root as all sshd processes are owned by root and so we'd kill all the existing sessions (LP: #716456) 1390 Stéphane Graber 2011-06-18 Fix python3 support in generate_locale_list.py 1389 Warren Togami 2011-06-16 {ldm-2.2.3} version 2.2.3 1388 Stéphane Graber 2011-06-08 Convert generate_locale_list.py to work with python3 (tested to work with >=2.5) 1387 Warren Togami 2011-06-01 Detect nc version for nc -q capability 1386 Stéphane Graber 2011-05-30 {ldm-2.2.2} version 2.2.2 1385 Stéphane Graber 2011-05-27 Fix indent 1384 Stéphane Graber 2011-05-27 Fix default ldm language 1383 Stéphane Graber 2011-05-27 Try to fix LDM_SESSION for good this time 1382 Stéphane Graber 2011-05-27 Add some debug 1381 Stéphane Graber 2011-05-26 Add some debug to LDM_SESSION handling 1380 Warren Togami 2011-05-19 Hardcoding libdir breaks multilib, this fixes installing in /usr/lib64 on 64bit EL6 1379 Stéphane Graber 2011-04-25 If LDM_SESSION is already in the environment and the user doesn't choose a specific session, use it instead of overriding with 'default' 1378 Vagrant Cascadian 2011-03-29 gtkgreeter: consistantly check for .png before .jpg theme files 1377 Vagrant Cascadian 2011-03-28 Change logo for ltsp theme to use the "new" LTSP logo, which is licensed under: Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0) http://creativecommons.org/licenses/by-sa/3.0/legalcode 1376 Vagrant Cascadian 2011-03-25 Updated Basque (eu) translation by Iñaki Larrañaga Murgoitio. http://bugs.debian.org/619382 1375 Vagrant Cascadian 2011-03-18 Updated Portuguese (pt) translation by Pedro Ribeiro. http://bugs.debian.org/618605 1374 Vagrant Cascadian 2011-03-18 Updated Russian (ru) translation by Yuri Kozlov. http://bugs.debian.org/618585 1373 Vagrant Cascadian 2011-03-18 Updated Spanish (es) translation by José L. Redrejo Rodríguez. http://bugs.debian.org/618448 1372 Vagrant Cascadian 2011-03-18 Updated Greek (el) translation by Alkis Georgopoulos. 1371 Vagrant Cascadian 2011-03-18 Updated Polish (pl) translation by Piotr Drąg. 1370 Vagrant Cascadian 2011-03-18 Updated Finnish (fi) translation by Ville-Pekka Vainio. 1369 Vagrant Cascadian 2011-03-18 Updated Norwegian Bokmål (nb) translation by Klaus Ade Johnstad. http://bugs.debian.org/618383 1368 Vagrant Cascadian 2011-03-14 Updated Slovak (sk) translations by Slavko. http://bugs.debian.org/618408 1367 Vagrant Cascadian 2011-03-14 Updated German (de) translation by Wolfgang Schweer. http://bugs.debian.org/618400 1366 Stéphane Graber 2011-03-14 Update french translation 1365 Vagrant Cascadian 2011-03-14 update translation files. 1364 Vagrant Cascadian 2011-03-14 force bash, otherwise sourcing release.conf may not work. 1363 Stéphane Graber 2011-01-31 {ldm-2.2.1} version 2.2.1 1362 Stéphane Graber 2011-01-31 Xsession doesn't allow multiple parameters. In the case of a complex session (binary with parameters), it needs to be quoted 1361 Stéphane Graber 2011-01-31 ldminfod: Do not return TryExec value instead of Exec. TryExec is meant to do filtering depending on binary availability, not to be the session itself. (Fixes breakage on Natty with complex Exec lines) 1360 Stéphane Graber 2010-12-05 {ldm-2.2} version 2.2 1359 Jonathan Carter 2010-11-15 Add backend.png to the ltsp theme 1358 Stéphane Graber 2010-11-15 Virtual desktops are cool but not really useful for a display manager 1357 Stéphane Graber 2010-11-10 Change fallback theme from default to ltsp as default is usually a symlink to the distro's default and not a symlink to ltsp 1356 Stéphane Graber 2010-11-10 Add ltsp/preferences.png to Makefile.am 1355 Stéphane Graber 2010-11-10 Update translation templates 1354 Stéphane Graber 2010-11-10 Fix last compilation warning 1353 Stéphane Graber 2010-11-10 Fix one compilation warning by including libintl.h in plugin.c 1352 Stéphane Graber 2010-11-10 Include stdlib.h in logging.c as we call exit() from there 1351 Stéphane Graber 2010-11-10 Change optionbutton type from GtkButton to GtkWidget and case it to GtkButton when necessary 1350 Stéphane Graber 2010-11-10 [merge] Add preferences.png 1349 Stéphane Graber 2010-11-10 Don't put as part of the translated message (Verifying password. Please wait.) 1348 Stéphane Graber 2010-11-10 Fix deprecation warning in generate_locale_list.py. 'set' has been in python since 2.4 and current release is 2.7. It's highly unlikely that someone with python < 2.4 is going to run current ldm as some other dependencies are going to be missing (like a recent gtk) 1347 Stéphane Graber 2010-11-10 Add a fallback mechanism in ldm_theme_file. If a file can't be found in the current theme, fallback to using the one in the default theme 1346 Stéphane Graber 2010-11-10 Replace stock gtk-preferences button with custom button so we can theme the icon 1345 Stéphane Graber 2010-11-08 Fix some missing define for distro < maverick 1344 Stéphane Graber 2010-11-08 Fix stat() for distro < maverick 1343 Stéphane Graber 2010-11-08 When running autologin, we don't have a greeter, so don't try asking it anything 1342 Stéphane Graber 2010-11-02 Revert to g_strstrip as removing last char wasn't working as it should. g_strstrip will cause issue if password ends with a space but will work in all other cases 1341 Stéphane Graber 2010-11-02 Define loglevel to 6, add ldm_getenv_int to ldmutils and use it to initialize logging 1340 Stéphane Graber 2010-11-02 Replace strip with just removing last char (newline) 1339 Stéphane Graber 2010-11-02 Switch logging back to info as the hackfest is over and loglevel = 7 now logs the password (as part of the protocol logging). Once loglevel is configurable without code change, we should make sure to document that loglevel == DEBUG means passwords will appear in the trace 1338 Stéphane Graber 2010-11-02 Apparently stripping the answer from the greeter twice isn't a good idea :) 1337 Stéphane Graber 2010-11-02 Strip the command buffer in ldmgreetercomm.c as well 1336 Stéphane Graber 2010-11-02 Add logging for commands coming from the greeter to the backend 1335 Stéphane Graber 2010-10-31 Update get_guest() in ssh plugin to get the hostname, language and session from the greeter 1334 Stéphane Graber 2010-10-31 Strip the command in the backend -> frontend protocol so it appears correctly in the log and possibly avoids some mistakes 1333 Stéphane Graber 2010-10-31 Move hostname request for guest login, should call 'hostname' and make the greeter happy 1332 Stéphane Graber 2010-10-31 Fix str logging in the greeter 1331 Stéphane Graber 2010-10-31 Bump log level to debug (we are at the hackfest) and add greeter logging 1330 Scott Balneaves 2010-10-31 Fix header 1329 Scott Balneaves 2010-10-31 Remove nice cleanup for handle_signal 1328 Scott Balneaves 2010-10-31 Handle X IO errors by exiting cleanly. 1327 Stéphane Graber 2010-10-14 Apparently the date doesn't fit in 15 chars as it's supposed to, let's give it 20 for now 1326 Stéphane Graber 2010-10-14 Fix function/variable name clash 1325 Stéphane Graber 2010-10-14 Apparently date.h doesn't exist, try with time.h instead :) 1324 Stéphane Graber 2010-10-14 Try to fix the date in log output 1323 Marc Gariepy 2010-10-14 fix makefile 1322 Marc Gariepy 2010-10-14 moving file to make sure we have the language set before applying it. 1321 Marc Gariepy 2010-10-14 cleanup, there is no need to specify the username since we use the socket 1320 Stéphane Graber 2010-10-13 Add time to logfile and update a bit log messages 1319 Stéphane Graber 2010-10-13 Set loglevel to 6 for now 1318 Stéphane Graber 2010-10-13 Make clearer log messages and remove duplicate 1317 Stéphane Graber 2010-10-13 Update log string format and make level uppercase 1316 Stéphane Graber 2010-10-13 Convert everything to new logging function 1315 Stéphane Graber 2010-10-13 Define a new logging function 1314 Stéphane Graber 2010-10-10 Includes cleanup 1313 Stéphane Graber 2010-10-10 Fix Session and Language preference dialog 1312 Stéphane Graber 2010-10-10 It seems like a better idea to populate ldm_host_info before putting it in the hash table. 1311 Stéphane Graber 2010-10-10 Exit when log file can't be created (instead of segfault), add license to logger.c and includes cleanup 1310 Stéphane Graber 2010-10-10 Try splitting logging out of ldmutils.c 1309 Stéphane Graber 2010-10-08 Better to include ldmutils.h if we want to use loginfo 1308 Stéphane Graber 2010-10-08 Update translations and add an empty ChangeLog (so autogen.sh is happy) 1307 Stéphane Graber 2010-10-08 Add some debug to ldminfo 1306 Marc Gariepy 2010-10-08 cleanup, there is no need to specify the username since we use the socket 1305 Marc Gariepy 2010-10-08 adding missing script 1304 Marc Gariepy 2010-10-08 splitting X95-run-x-session, needed to fix remoteapps launching 1303 Stéphane Graber 2010-10-07 Scripted removal of tabs (wwm will need a bit of re-indentation) 1302 Stéphane Graber 2010-10-07 Remove unused changelogs 1301 Stéphane Graber 2010-10-07 Script removal of trailing spaces 1300 Stéphane Graber 2010-10-07 Try a workaround for wwm not responding the "always center" flag 1299 Stéphane Graber 2010-10-07 Set proper menu entries for Backend and Domain 1298 Stéphane Graber 2010-10-07 Fix list of choices (now at position 5 instead of 3) 1297 Marc Gariepy 2010-10-07 removing logging with echo since the new ldm take care of this. 1296 Stéphane Graber 2010-10-07 Fix merge issue in greeter.c (pref is already defined) 1295 Stéphane Graber 2010-10-07 Update pref structure (drop prompt and add menu and icon) + update the relevant calls 1294 Stéphane Graber 2010-10-07 Fix a few 'die()' calls 1293 Stéphane Graber 2010-10-07 Improve logging and remove some trailing spaces 1292 Stéphane Graber 2010-10-07 Update rdesktop's logging to be cleaner 1291 Stéphane Graber 2010-10-06 Revert to ugly but working menu for now 1290 Stéphane Graber 2010-10-06 Only append RDP_OPTIONS if it's set 1289 Stéphane Graber 2010-10-06 Update the preference menu to be more readable, update the gtk preference dialog too and minor code cleanup 1288 Stéphane Graber 2010-10-06 According to documentation g_strcmp0 returns 0 if string matches 1287 Stéphane Graber 2010-10-06 Try to fix cases where no domain are set, minor code cleanup 1286 Stéphane Graber 2010-10-06 {current} If RDP_DOMAIN isn't set, do not add '-d ' to rdesktop's command line 1285 Stéphane Graber 2010-10-06 Fix unintialize err_msg variable + some loginfo cleanup 1284 Stéphane Graber 2010-10-05 Update list of translated files 1283 Simon Poirier 2010-10-05 Merge work from Simon Poirier and David Goulet: - greeter now hides Guest login button when unsupported by the current backend - fixed regression on guest login and autologin - lot of cleanup to plugin code - extraction of common plugin functions - no more global structure - simple API for conversing with greeter - more verbose log errors - ensure window manager gets killed before session starts 1282 Simon Poirier 2010-10-05 Add modular backends and rdesktop backend 1281 Simon Poirier 2010-10-05 Merge local branch 1280 Vincent Vinet 2010-10-05 Merge in work from David Goulet, Simon Poirier and Vincent Vinet - Add a window manager made by Scott Balneaves, wwm - Add a plugin mechanism using libtool - Add a ssh plugin - Add a rdesktop plugin - Change the greeter to add functionality 1279 Alkis Georgopoulos 2010-09-23 fatclients: use local ldminfod, if present 1278 Stéphane Graber 2010-08-08 {ldm-2.1.3} version 2.1.3 1277 Vagrant Cascadian 2010-07-12 simplify check for LDM_LIMIT_ONE_SESSION_PROMPT by removing nested if statement. 1276 Vagrant Cascadian 2010-07-12 use boolean_is_true to check for LDM_LIMIT_ONE_SESSION_PROMPT. 1275 Vagrant Cascadian 2010-04-26 Updated Swedish (sv) translation by Martin Bagge. http://bugs.debian.org/579299 1274 Vagrant Cascadian 2010-04-19 {ldm-2.1.2} version 2.1.2 1273 Vagrant Cascadian 2010-04-19 generate LDM ChangeLog with mkdst. 1272 Vagrant Cascadian 2010-04-15 unfuzzy string in Norwegian Bokmål translation. 1271 Vagrant Cascadian 2010-04-14 free the results of using g_strconcat. thanks Ryan! 1270 Vagrant Cascadian 2010-04-14 fix unnecessary markup in .po files. 1269 Vagrant Cascadian 2010-04-14 updated ldm.pot. 1268 Vagrant Cascadian 2010-04-14 split markup out of translateable strings in Verifying password dialog. 1267 Vagrant Cascadian 2010-04-14 Updated Norwegian Bokmål (nb) translations by Klaus Ade Johnstad. 1266 Vagrant Cascadian 2010-04-14 remove autogenerated files. 1265 Vagrant Cascadian 2010-04-13 New Slovak (sk) translations by Slavko. http://bugs.debian.org/577705 1264 Vagrant Cascadian 2010-04-12 New Italian (it) translation by Vincenzo Campanella. http://bugs.debian.org/577543 1263 Vagrant Cascadian 2010-04-08 Updated Portuguese (pt) translation by Pedro Ribeiro. http://bugs.debian.org/576999 1262 Vagrant Cascadian 2010-04-08 Updated Basque (eu) translation by Iñaki Larrañaga Murgoitio. http://bugs.debian.org/576951 1261 Vagrant Cascadian 2010-04-08 Updated German (de) translation by Wolfgang Schweer. http://bugs.debian.org/576783 1260 Vagrant Cascadian 2010-04-07 Updated German (de) translation by Wolfgang Schweer. http://bugs.debian.org/576783 1259 Vagrant Cascadian 2010-04-06 Updated Japanese (ja) translation by Noriko Mizumoto. 1258 Vagrant Cascadian 2010-04-05 Updated Polish (pl) translation by Piotr Drąg. 1257 Vagrant Cascadian 2010-04-05 Updated Russian (ru) translation by Yuri Kozlov. http://bugs.debian.org/576562 1256 Vagrant Cascadian 2010-04-05 Updated Finnish (fi) translation by Ville-Pekka Vainio. 1255 Vagrant Cascadian 2010-04-05 Updated Spanish (es) translation by José L. Redrejo Rodríguez. 1254 Vagrant Cascadian 2010-04-05 Updated Greek (el) translation by Alkis Georgopoulos. 1253 Stéphane Graber 2010-03-23 No change commit to fix previous tag 1252 Stéphane Graber 2010-03-23 {ldm-2.1.1} version 2.1.1 1251 Alkis Georgopoulos 2010-03-12 fatclients: unmount removable devices at logoff 1250 Alkis Georgopoulos 2010-03-11 fatclients: properly mark X sessions as active for ConsoleKit/PolicyKit 1249 Alkis Georgopoulos 2010-02-25 ltsp-cluster-info: check that getltscfg-cluster.conf exists before including it 1248 Vagrant Cascadian 2010-02-19 check for NBD_ROOT_PORT instead of NBD_PORT, which was ambiguously used for both NBD root and NBD swap. 1247 Stéphane Graber 2010-02-17 {ldm-2.1} version 2.1 1246 Vagrant Cascadian 2010-02-15 make sure ldm-script doesn't inherrit an existing value for the SCRIPTS environment variable. 1245 Gideon Romm 2010-02-15 find should only return filenames to begin with 1244 Gideon Romm 2010-02-15 Reduce to a single for loop 1243 Gideon Romm 2010-02-15 Fix syntax error in egrep line 1242 Vagrant Cascadian 2010-02-12 optimize by calling egrep only once for the whole loop, and using shell parameter expansion instead of basename. 1241 Vagrant Cascadian 2010-02-10 rename ALSA_DEFAULT_* environment variables to LTSP_ALSA_DEFAULT, to avoid potential namespace collisions with alsa environment variables. 1240 Vagrant Cascadian 2010-02-08 if using pulseaudio daemon, set ALSA_DEFAULT_PCM and ALSA_DEFAULT_CTL to pulse, to simplify alsa compatibility configuration. 1239 Stéphane Graber 2010-01-27 Chinese translation: Fix type translation 1238 Stéphane Graber 2010-01-27 Update language list 1237 Stéphane Graber 2010-01-27 Add Chinese translation for ldm from Zhao Xiaoqi 1236 Stéphane Graber 2010-01-27 Add Chinese translation for ldm from Zhao Xiaoqi 1235 Stéphane Graber 2010-01-26 Reimplement I01-nbd-checkupdate in a less hackish way 1234 Stéphane Graber 2010-01-25 {ldm-2.0.54} version 2.0.54 1233 Stéphane Graber 2010-01-25 Fix one more nc call 1232 Stéphane Graber 2010-01-25 openbsd-netcat doesn't behave the same as netcat-traditional, so force listening forever (-q-1) for everyone 1231 Alkis Georgopoulos 2010-01-24 Properly save/restore IFS. Explanations in http://sourceforge.net/mailarchive/forum.php?thread_name=1264356715.1699.69.camel%40alkis&forum_name=ltsp-developer 1230 Stéphane Graber 2010-01-14 rc.d: Kill nbd-client if still running after update check 1229 Stéphane Graber 2010-01-14 rc.d: Update nbd check to use newly introduced cache 1228 Stéphane Graber 2010-01-14 rc.d: Update nbd update script to work with nbd-proxy 1227 Vagrant Cascadian 2010-01-13 trivial update for regenerating pot file. 1226 Stéphane Graber 2010-01-04 {ldm-2.0.53} version 2.0.53 1225 Stéphane Graber 2010-01-04 Compiz: Do not run dry run mode if regular compiz is installed (and not compiz-wrapper) 1224 Stéphane Graber 2009-12-11 {ldm-2.0.52} version 2.0.52 1223 Alkis Georgopoulos 2009-12-08 Provide a way to reboot/halt from within the session 1222 Stéphane Graber 2009-11-30 Fix cases where we don't force shutdown/reboot 1221 Stéphane Graber 2009-11-25 Fix ltsp-cluster-info 1220 Stéphane Graber 2009-11-24 {ldm-2.0.51} version 2.0.51 1219 Stéphane Graber 2009-11-24 Fix french translation 1218 Stéphane Graber 2009-11-20 ltsp-cluster-info: Update for previous changes 1217 Stéphane Graber 2009-11-20 ldm-dialog: Add an url handler, not set set_selectable as it tends to always select the text 1216 Stéphane Graber 2009-11-19 {ldm-2.0.50} version 2.0.50 1215 Stéphane Graber 2009-11-19 Add ldm.pot again (was removed by mistake) 1214 Gideon Romm 2009-11-18 Force poweroff and reboot instead of going through init. 1213 Stéphane Graber 2009-10-30 ltsp-cluster-info: Update translation template and french translation 1212 Stéphane Graber 2009-10-30 Make ldm-dialog not appear in taskbar 1211 Stéphane Graber 2009-10-30 Improve ltsp-cluster-info a bit, make ldm-dialog label selectable 1210 Stéphane Graber 2009-10-26 {ldm-2.0.49} version 2.0.49 1209 Stéphane Graber 2009-10-26 ltsp-cluster: Add a final newline to ssh known_hosts 1208 Stéphane Graber 2009-10-26 ltsp-cluster-info: Add fixed path as /sbin/ is not in the user path by default 1207 Stéphane Graber 2009-10-26 ldm-dialog: Set an empty title by default, don't make the window resizable, map destroy event to no 1206 Stéphane Graber 2009-10-24 ltsp-cluster-info: Enable translation support 1205 Stéphane Graber 2009-10-24 Add ltsp-cluster-info translation 1204 Stéphane Graber 2009-10-24 Update rc.d translation 1203 Stéphane Graber 2009-10-24 ltsp-cluster-info: Fix translation path 1202 Stéphane Graber 2009-10-24 ltsp-cluster: Split ltsp-cluster-info to a separate script 1201 Stéphane Graber 2009-10-23 Set root cursor when loading ldm-dialog 1200 Stéphane Graber 2009-10-22 LTSP-Cluster: Add support for login time balancing 1199 Vagrant Cascadian 2009-10-02 {ldm-2.0.48} version 2.0.48 1198 Stéphane Graber 2009-09-27 rc.d: Allow the server to connect to saned 1197 Stéphane Graber 2009-09-26 Make the logout script the last X script to be called instead of the first I script. 1196 Vagrant Cascadian 2009-09-26 updated Vietnamese (vi) translation by Clytie Siddall. http://bugs.debian.org/548200 1195 Stéphane Graber 2009-09-26 Update translation templates and .po, update french translations 1194 Stéphane Graber 2009-09-26 Export SANE_NET_HOSTS when SCANNER is enabled 1193 Stéphane Graber 2009-09-26 Reorder rc.d I* scripts, add logout action 1192 Vagrant Cascadian 2009-09-24 updated Vietnamese (vi) translation by Clytie Siddall. http://bugs.debian.org/548200 1191 Scott Balneaves 2009-09-24 Added handling of LDM_SSHOPTIONS 1190 Stéphane Graber 2009-09-23 fatclient: Fix locale (so it uses LDM_LANGUAGE) 1189 Stéphane Graber 2009-09-21 {ldm-2.0.47} version 2.0.47 1188 Stéphane Graber 2009-09-15 Implement ldm autologin 1187 Stéphane Graber 2009-09-06 {ldm-2.0.46} version 2.0.46 1186 Vagrant Cascadian 2009-09-06 updated translation template for rc.d dirs 1185 Vagrant Cascadian 2009-09-06 updated translation template 1184 Stéphane Graber 2009-08-30 Fix ICEauthority with fat client 1183 Stéphane Graber 2009-08-30 Minimal implementation of LTSP fat client 1182 Stéphane Graber 2009-08-25 Add I00-halt-check to Makefile.am 1181 Stéphane Graber 2009-08-25 {ldm-2.0.45} version 2.0.45 1180 Stéphane Graber 2009-08-25 Strip ldm.username from spaces at both start and end (avoid big issues with scripts) 1179 Stéphane Graber 2009-08-22 Implement pre-ssh hooks so one could run an action to be executed before the SSH connection 1178 Stéphane Graber 2009-08-21 Also set PRINTER_LIST if LDM_PRINTER_LIST is defined but empty, add a LTSP_CLIENT_HOSTNAME variable to the environment containing the hostname (will be useful for iTalc) 1177 Stéphane Graber 2009-08-18 {ldm-2.0.44} version 2.0.44 1176 Stéphane Graber 2009-08-18 Add a / after ldm_theme_dir to fix cases where the path doesn't already contain one 1175 Stéphane Graber 2009-08-18 Fix ldm theme path containing memory junk (missing NULL) 1174 Stéphane Graber 2009-08-17 {ldm-2.0.43} version 2.0.43 1173 Julien Desfossez 2009-08-17 Fix ldm hanging on logout 1172 Vagrant Cascadian 2009-08-04 update ldm-dialog manpage to use properly quoted minus signs, otherwise groff turns them into hyphens. 1171 Marc Gariepy 2009-07-25 Implement SHUTDOWN_TIME for ldm 1170 Stéphane Graber 2009-06-17 screen.d: No need to use mktemp when nothing is random in the name 1169 Stéphane Graber 2009-06-04 Add support for both png and jpg theme files 1168 Stéphane Graber 2009-06-03 {ldm-2.0.42} version 2.0.42 1167 Scott Balneaves 2009-06-03 Added -pthread to ldm_LDFLAGS 1166 Scott Balneaves 2009-06-03 Missing function pointer 1165 Vagrant Cascadian 2009-06-03 revert nomad session selection revision-id:ryanryan52@gmail.com-20090408065805-ajstqglnp1hvri42 1164 Stéphane Graber 2009-06-03 {ldm-2.0.41} version 2.0.41 1163 Scott Balneaves 2009-06-03 Added patch for hanging logout bug 1162 Stéphane Graber 2009-06-03 Implement per session Xauthority directory 1161 Stéphane Graber 2009-05-28 ldm-rc.d: Drop the symlink hack as that part of the launcher is fixed upstream now 1160 Stéphane Graber 2009-05-28 ldm-rc.d: Add compiz support detection 1159 Vagrant Cascadian 2009-05-18 {ldm-2.0.40} version 2.0.40 1158 Vagrant Cascadian 2009-05-15 ldm-dialog: add descriptions for the message, question, progress and auto-close options. 1157 Vagrant Cascadian 2009-05-15 add rudimentary man page for ldm-dialog. 1156 Vagrant Cascadian 2009-05-15 minor corrections and updates to the ldminfod man page. 1155 Ryan Niebur 2009-04-07 support session selection for nomad 1154 Vagrant Cascadian 2009-04-03 updated Basque (eu) translation by Piarres Beobide and Iñaki Larrañaga Murgoitio http://bugs.debian.org/522393 1153 Vagrant Cascadian 2009-04-01 {ldm-2.0.39} version 2.0.39 1152 Vagrant Cascadian 2009-03-31 updated German translation (again), by Wolfgang Schweer http://bugs.debian.org/519067 1151 Vagrant Cascadian 2009-03-30 nomad: don't add Xsession, as xrdp handles Xsession itself. 1150 Vagrant Cascadian 2009-03-30 updated German translation by Wolfgang Schweer http://bugs.debian.org/519067 1149 Vagrant Cascadian 2009-03-30 updated Polish (pl) translation by Piotr Drąg 1148 Vagrant Cascadian 2009-03-29 updated Polish (pl) translation by Piotr Drąg 1147 Vagrant Cascadian 2009-03-29 Updated Russian (ru) translation by Yuri Kozlov http://bugs.debian.org/521647 1146 Vagrant Cascadian 2009-03-29 Updated Portuguese translation by Pedro Ribeiro http://bugs.debian.org/519335 1145 Stéphane Graber 2009-03-28 Update fr.po 1144 Vagrant Cascadian 2009-03-28 updated Swedish translation by Daniel Nylander http://bugs.debian.org/519018 1143 Vagrant Cascadian 2009-03-28 updated Spanish translation by José L. Redrejo http://bugs.debian.org/519093 1142 Ryan Niebur 2009-03-27 updated Greek translation from Alkis Georgopoulos 1141 Vagrant Cascadian 2009-03-11 Updated Portuguese translation by Pedro Ribeiro http://bugs.debian.org/519335 1140 Vagrant Cascadian 2009-03-11 updated pot 1139 Vagrant Cascadian 2009-03-11 script to regenerate ldm.pot while keeping appropriate values for package name, description and version. 1138 Vagrant Cascadian 2009-03-11 use same string for multiple permutations gtkgreet failed errors 1137 Vagrant Cascadian 2009-03-11 don't request translations for strings that have no translateable content 1136 Stéphane Graber 2009-03-11 Update ldm Greek translation (Thanks to Alkis Georgopoulos) 1135 Vagrant Cascadian 2009-03-10 updated spanish translation by José L. Redrejo http://bugs.debian.org/519093 1134 Vagrant Cascadian 2009-03-10 updated German translation by Wolfgang Schweer http://bugs.debian.org/519067 1133 Vagrant Cascadian 2009-03-09 updated Japanese translation by Noriko Mizumoto 1132 Vagrant Cascadian 2009-03-09 updated Basque translation by Piarres Beobide http://bugs.debian.org/519033 1131 Vagrant Cascadian 2009-03-09 updated Swedish translation by Daniel Nylander http://bugs.debian.org/519018 1130 Vagrant Cascadian 2009-03-09 apply Nomad patch from Jigish Gohil , with a few modifications: - call session as an argument to Xsession script - drop handling of ~/.ltspvars 1129 Stéphane Graber 2009-02-27 {ldm-2.0.38} version 2.0.38 1128 Stéphane Graber 2009-02-25 greeter: Do not change the cursor when X11VNC is connected (or it'll kill X) 1127 Stéphane Graber 2009-02-25 Non-change commit to fix tagging 1126 Vagrant Cascadian 2009-02-25 {ldm-2.0.37, 2.0.37} version 2.0.37 1125 Ryan Niebur 2009-02-23 if the Name/Exec line has an additional = in it, don't error ... handle it nicely 1124 Ryan Niebur 2009-02-22 update 1123 Ryan Niebur 2009-02-19 fix indentation and trailing whitespace 1122 Stéphane Graber 2009-02-18 {ldm-2.0.36} version 2.0.36 1121 Stéphane Graber 2009-02-18 Fix typo 1120 Stéphane Graber 2009-02-18 {ldm-2.0.35} version 2.0.35 1119 Stéphane Graber 2009-02-18 Add first boot script for ltsp-cluster 1118 Ryan Niebur 2009-02-18 fix warnings 1117 Ryan Niebur 2009-02-18 markup 1116 Ryan Niebur 2009-02-17 fix alignment 1115 Ryan Niebur 2009-02-17 more 1114 Ryan Niebur 2009-02-17 make the button translation work better 1113 Ryan Niebur 2009-02-17 declare encoding so that everything doesn't blow up 1112 Vagrant Cascadian 2009-02-16 updated copyright notice with current copy of GPL v2 http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt 1111 Vagrant Cascadian 2009-02-16 add copyright/license header for ldm-getenv-bool.c (originally part of ldm.c) 1110 Vagrant Cascadian 2009-02-16 added copyright and license header for ldm-dialog 1109 Vagrant Cascadian 2009-02-16 added copyright and license header 1108 Vagrant Cascadian 2009-02-16 updated copyright/license headers for most src/*.c 1107 Vagrant Cascadian 2009-02-16 updated copyright and license info for gtk greeter 1106 Vagrant Cascadian 2009-02-16 added copyright and license header for ldminfod 1105 Stéphane Graber 2009-02-12 {ldm-2.0.34} version 2.0.34 1104 Ryan Niebur 2009-02-09 #defines for window/button width/height 1103 Ryan Niebur 2009-02-09 make ldm-dialog translatable 1102 Ryan Niebur 2009-02-09 fix build breakage from revision 1101 1101 Vagrant Cascadian 2009-02-03 move X99-run-xsession earlier to X95, to make room for cleanup code we want to run immediately afterwards. 1100 Vagrant Cascadian 2009-02-02 ldminfod: add whitelist mechanism to limit locales returned 1099 Vagrant Cascadian 2009-02-01 write to standard error which locales were ignored due to unicode errors 1098 Vagrant Cascadian 2009-02-01 more one-liners broken into two 1097 Vagrant Cascadian 2009-02-01 break up block of if/else one-liners into more lines 1096 Ryan Niebur 2009-01-31 add required targets to make it build with Debian's dh7 rules 1095 Ryan Niebur 2009-01-31 {ldm-2.0.33} version 2.0.33 1094 Ryan Niebur 2009-01-31 rename it to po/rc.d/Makefile.in.in, so that it doesn't get ignored by mkdst 1093 Vagrant Cascadian 2009-01-31 remove #!/bin/sh line from rc.d/I00-nbd-checkupdate, as rc.d scripts are sourced. 1092 Stéphane Graber 2009-01-31 {ldm-2.0.32} version 2.0.32 1091 Stéphane Graber 2009-01-31 Update S20-restrictedUser to be parsed by xgettext, update ldmrc.pot and the french translation 1090 Stéphane Graber 2009-01-31 Remove locale.getdefaultlocale() from generate_locale_list.py as we don't use it 1089 Stéphane Graber 2009-01-31 Revert part of last change to generate_locale_list.py and add one more except to. Make po/rc.d/ part of the build process. 1088 Stéphane Graber 2009-01-31 Pushed last change from the wrong directory, here's the real fix 1087 Stéphane Graber 2009-01-31 generate_locale_list.py: Fix encoding problem 1086 Stéphane Graber 2009-01-31 Add po/rc.d to configure 1085 Stéphane Graber 2009-01-31 Initial code for ldm rc.d translation 1084 Ryan Niebur 2009-01-31 {ldm-2.0.31} version 2.0.31 1083 Ryan Niebur 2009-01-31 makefile dependancies 1082 Ryan Niebur 2009-01-31 rename generate.py to generate_locale_list.py 1081 Ryan Niebur 2009-01-31 if there's nothing interesting to print, then don't add it to the file, to save a bit of space (ldm will fall back to the locale code anyway) 1080 Ryan Niebur 2009-01-31 still work if there is no territory 1079 Ryan Niebur 2009-01-31 [merge] build a file with all of the locales and their display names on build, and just use that 1078 Stéphane Graber 2009-01-30 Update french translations (again) 1077 Ryan Niebur 2009-01-28 [merge] translate it on the ldminfod side instead of the ldm side 1076 Stéphane Graber 2009-01-28 rc.d: use eval_gettext everywhere, fix indent, replace exit by return 1075 Ryan Niebur 2009-01-28 make an eval_gettext function if gettext is not installed (based on stgraber's test script) 1074 Ryan Niebur 2009-01-26 show the language's human readable name in both the current locale and the language itself PACKAGERS: these set of changes require that the package which provides /usr/share/xml/iso-codes/iso_639.xml and it's translations be installed on servers with ldminfod and in the chroot to be useful. It will still work without them, but it won't display languages nicely to the user. if the translations are not installed in the chroot, then it will just be shown in enlish. (not the set locale or the language itself) if /usr/share/xml/iso-codes/iso_639.xml is not installed with ldminfod, then it will still be displayed the old way. (by just showing the user the locale code, not human readable) 1073 Ryan Niebur 2009-01-26 don't do territory stuff 1072 Ryan Niebur 2009-01-26 typo 1071 Ryan Niebur 2009-01-26 ldm changes to support languages with user friendly names 1070 Ryan Niebur 2009-01-26 ldminfod changes to support languages with more user friendly names (based on patch from Juhaz) 1069 Vagrant Cascadian 2009-01-25 updated Greek translation by Alkis Georgopoulos 1068 Vagrant Cascadian 2009-01-24 updated comments and mention project name and version in headers 1067 Ryan Niebur 2009-01-23 [merge] that code is not used anymore 1066 Stéphane Graber 2009-01-24 Update translations 1065 Ryan Niebur 2009-01-23 those aren't translatable 1064 Ryan Niebur 2009-01-23 do it in less lines, and use curly braces for ogra :) 1063 Ryan Niebur 2009-01-23 fix alkisg's race condition better (removing old, incorrect error message, only breaking if the error is ECHILD) 1062 Ryan Niebur 2009-01-23 [merge] revert r1058 1061 Stéphane Graber 2009-01-23 Update translations, first try at making rc.d/ translated (doesn't work yet) 1060 Stéphane Graber 2009-01-23 Update translations 1059 Warren Togami 2009-01-23 s/file/sha1sum/ works just fine to detect that the NBD image on the server changed. file wasn't in the Fedora chroot. 1058 Scott Balneaves 2009-01-22 Patch per alkisg: hanging logouts on some slow clients 1057 Stéphane Graber 2009-01-21 {ldm-2.0.30} version 2.0.30 1056 Stéphane Graber 2009-01-21 Add the three missing rc.d scripts to the Makefile 1055 Warren Togami 2009-01-21 Remove unnecessary grep, give it a beter name. 1054 Stéphane Graber 2009-01-21 Add squashfs update checker, rc.d script 1053 Stéphane Graber 2009-01-19 {ldm-2.0.29} version 2.0.29 1052 Stéphane Graber 2009-01-19 Add X50-printers to set the user's default printer (LDM_PRINTER_DEFAULT) and printer list (LDM_PRINTER_LIST) (the second needs a patched cups for now ...) 1051 Stéphane Graber 2009-01-15 ltsp-cluster: Fix session killing 1050 Stéphane Graber 2009-01-15 ltsp-cluster: Add ldm registration rc.d script 1049 Vagrant Cascadian 2009-01-09 {ldm-2.0.28} version 2.0.28 1048 Vagrant Cascadian 2009-01-08 only allow rc.d filenames that consist only of numbers, letters, underscores and hypens. keeps consistant with the ltsp code that uses the run_parts_list function. 1047 Stéphane Graber 2009-01-07 ltsp-cluster: Add session cleaning 1046 Vagrant Cascadian 2008-12-31 whitespace cleanup 1045 Vagrant Cascadian 2008-12-31 gut most of the cruft from the default ltsp theme and use gtk defaults 1044 Vagrant Cascadian 2008-12-31 ltsp theme: - buttons show light blue when hovered over - selected menu items a little lighter blue 1043 Vagrant Cascadian 2008-12-31 select a more blue-ish color for login box outline and selected menu items, which is more consistant with the rest of the theme. 1042 Warren Togami 2008-12-24 {ldm-2.0.27} version 2.0.27 1041 Ryan Niebur 2008-12-21 keep the password there while it's logging in 1040 Stéphane Graber 2008-12-19 {ldm-2.0.26} version 2.0.26 1039 Stéphane Graber 2008-12-19 rc.d: Let other rc.d scripts add environment variables to CLIENT_ENV 1038 Warren Togami 2008-12-18 {ldm-2.0.25} version 2.0.25 1037 Ryan Niebur 2008-12-18 leave in the // if it's not using the k12linux layout 1036 Ryan Niebur 2008-12-18 add the K12LINUX patch with #ifdefs 1035 Warren Togami 2008-12-18 Bold the timestring and hostname, but not the IP address 1034 Ryan Niebur 2008-12-18 don't show the ok button if auto-close is on 1033 Ryan Niebur 2008-12-18 ldm-dialog: implement --auto-close for --progress 1032 Ryan Niebur 2008-12-18 remove debug statement 1031 Ryan Niebur 2008-12-17 oops, remove debug 1030 Ryan Niebur 2008-12-17 use the LDM_THEME variable in ldm-dialog too 1029 Ryan Niebur 2008-12-17 make the LDM_THEME stuff use glib, getting rid of a buffer overflow bug in the process.. 1028 Ryan Niebur 2008-12-17 rearrange code and add comments 1027 Ryan Niebur 2008-12-17 make the code look a little bit more sane 1026 Ryan Niebur 2008-12-17 use getopt_long 1025 Ryan Niebur 2008-12-17 reindent with my normal emacs configuration.. 1024 Ryan Niebur 2008-12-17 support --progress (because Gadi asked for it..) 1023 Ryan Niebur 2008-12-17 disable the entry box instead of hiding it 1022 Vagrant Cascadian 2008-12-16 switch engine for the "ltsp" theme to clearlooks 1021 Vagrant Cascadian 2008-12-16 {ldm-2.0.24} version 2.0.24 1020 Warren Togami 2008-12-15 Do not ask if the user wants to save their selection of session/language. Matches GDM behavior of hiding this long and confusing dialog from the user. Also means we don't have to translate this very long string. 1019 Ryan Niebur 2008-12-13 make the guest button actually look like a button. too much copy and pasting... 1018 Ryan Niebur 2008-12-13 send the greeter the quit command, like was (apparently) originally intended. 1017 Warren Togami 2008-12-12 {ldm-2.0.23} version 2.0.23 1016 Gideon Romm 2008-12-12 Fix broken LDM_DIRECTX 1015 Warren Togami 2008-12-11 {ldm-2.0.22} version 2.0.22 1014 Warren Togami 2008-12-11 Rename LDM_SYSTEMWIDE_DMRC to LDM_GLOBAL_DMRC. 1013 Ryan Niebur 2008-12-09 make the other rc.d scripts that use zenity/xmessage use ldm-dialog 1012 Ryan Niebur 2008-12-09 rename ldm-question to ldm-dialog, and implement --message 1011 Warren Togami 2008-12-09 {ldm-2.0.21} version 2.0.21 1010 Ryan Niebur 2008-12-08 fix compiler warnings 1009 Ryan Niebur 2008-12-08 add ldm-question, a program like zenity, but without the insane dependancies, and only implementing a yes/no question 1008 Ryan Niebur 2008-12-08 use a different variable name for the localdev command line arguements 1007 Ryan Niebur 2008-12-08 if there's no xmessage, just assume they want it saved. 1006 Ryan Niebur 2008-12-08 install the new rc.d files 1005 Ryan Niebur 2008-12-08 remove the 3rd temp file, too 1004 Ryan Niebur 2008-12-08 fix bugs, now it works completely afaict 1003 Ryan Niebur 2008-12-08 set -e in autogen.sh 1002 Ryan Niebur 2008-12-08 add a LDM_SYSTEMWIDE_DMRC variable 1001 Ryan Niebur 2008-12-08 no need to look for the file, it will be empty locally if it doesn't exist remotely 1000 Ryan Niebur 2008-12-08 move code 999 Ryan Niebur 2008-12-08 eliminate all of the redundant scp calls 998 Ryan Niebur 2008-12-08 don't depend on the new ldminfo to have nice session names 997 Ryan Niebur 2008-12-08 reorder stuff 996 Ryan Niebur 2008-12-08 don't add another Desktop section if one already exists 995 Ryan Niebur 2008-12-08 add another todo 994 Ryan Niebur 2008-12-07 support languages too 993 Ryan Niebur 2008-12-07 remove my list of environment variables, I've got all that I need now 992 Ryan Niebur 2008-12-07 remove a todo, did that already 991 Ryan Niebur 2008-12-07 support Xdialog, since it actually knows how to center itself... 990 Ryan Niebur 2008-12-07 add a todo 989 Ryan Niebur 2008-12-07 don't ask if they choose failsafe xterm 988 Ryan Niebur 2008-12-07 implement actually changing their .dmrc 987 Ryan Niebur 2008-12-07 add initial dmrc processing, lotsa todos 986 Ryan Niebur 2008-12-07 fix the emacs mode thing 985 Ryan Niebur 2008-12-07 reimplement ldm's x_session in shell and make it an rc.d file 984 Warren Togami 2008-12-08 Improve .bzrignore, mkdst-trunk now removes anything from the tarball listed in .bzrignore 983 Vagrant Cascadian 2008-12-08 ldminfo.c was moved from gtkgreet/ to src/ 982 Warren Togami 2008-12-08 Ignore *.patch files in the bzr dir. 981 Vagrant Cascadian 2008-12-08 re-add code to find appropriate Xsession for the server 980 Ryan Niebur 2008-12-07 {ldm-2.0.20} version 2.0.20 979 Ryan Niebur 2008-12-07 [merge] show good names (from the .desktop file) in the session chooser 978 Stéphane Graber 2008-11-23 rc.d are sourced so no need of the /bin/sh header 977 Stéphane Graber 2008-11-23 {ldm-2.0.19} version 2.0.19 976 Stéphane Graber 2008-11-23 Update rcd_DATA in ldm rc.d Makefile 975 Stéphane Graber 2008-11-21 Move the x-keyboard-settings script to ltsp xinitrc.d, drop I10-numlock as already implemented as xinitrc.d 974 Stéphane Graber 2008-11-20 Minor fix on cluster rc.d scripts 973 Stéphane Graber 2008-11-20 Add ltsp-cluster rc.d scripts 972 Vagrant Cascadian 2008-11-19 reset IFS back if it was previously set 971 Gideon Romm 2008-11-18 IFS should be unset after use, not set to empty. 970 Scott Balneaves 2008-11-15 Fix a minor segfault. 969 Ryan Niebur 2008-11-14 allow setting of the greeter without using the full path (so that people can set LDM_GREETER=qtgreet instead of LDM_GREETER=/usr/lib/ldm/qtgreet). This also makes setting the greeter not dependant on where ldm's libexec dir is, so the setting is no longer distro specific. 968 Warren Togami 2008-11-13 Replace bg.png with k12linux version. 100KB down to 2.5KB size, but does not look much different. Warren thinks it looks more attractive than the old one... 967 Vagrant Cascadian 2008-11-13 fall back to setting DISPLAY from DISP variable for backwards compatibility 966 Scott Balneaves 2008-11-13 Added trap handler to screen script for nice cleanup of temp files 965 Stéphane Graber 2008-11-13 {ldm-2.0.18} version 2.0.17 964 Scott Balneaves 2008-11-13 [merge] Merged from Scott's tree: Faster timeouts for failed passwords. 963 Vagrant Cascadian 2008-11-12 call xinitrc script only if present 962 Scott Balneaves 2008-11-12 [merge] Merged from Scott's tree: Fixed one more logout bug. Wasn't specifying host for -O exit 961 Ryan Niebur 2008-11-12 removed unused variable 960 Scott Balneaves 2008-11-12 Fixed up unneeded usage() in ldm.h, move out-of-place comment block 959 Scott Balneaves 2008-11-12 Cleaned up the list free, close logging properly, wait for the terminated ssh session 958 Ryan Niebur 2008-11-12 add the ability to have multiple guest login servers 957 Ryan Niebur 2008-11-12 free the lists and hash properly 956 Ryan Niebur 2008-11-12 gtk_entry_set_editable is deprecated 955 Gideon Romm 2008-11-12 Run through xinitrc.d scripts before launching ldm 954 Warren Togami 2008-11-12 Silence X server, the important stuff is written to Xorg's log. 953 Stéphane Graber 2008-11-12 {ldm-2.0.17} version 2.0.17 952 Scott Balneaves 2008-11-11 [merge] Merged from Scott's tree: More work on Child handling. Not using unexpected_child as yet. 951 Scott Balneaves 2008-11-11 [merge] Merged from Scott's tree: Logging either to file, or if LDM_SYSLOG=True, to syslog, and on to the server. 950 Warren Togami 2008-11-10 Fix double free() problems 949 Stéphane Graber 2008-11-10 Drop LDM_RUNONCE as we don't have a loop anymore 948 Gideon Romm 2008-11-10 Moved while loop into screen_session and run screen scripts with openvt. openvt should be a dependency, packagers 947 Gideon Romm 2008-11-10 Make the whole screen script a loop - we will pull the loop into screen_session eventually 946 Gideon Romm 2008-11-10 Cleaned up xauth calls in ldm screen script 945 Warren Togami 2008-11-10 Update Makefile.am 944 Warren Togami 2008-11-10 Ugly hack no longer needed after xinit ldm fix from sbalneaves. 943 Warren Togami 2008-11-10 Silence "xauth: creating new authority file ..." message 942 Stéphane Graber 2008-11-08 ldm: Don't force reboot and poweroff (in case we have some init scripts that need to be run) 941 Stéphane Graber 2008-11-08 ldm: Hide the entry field and the prompt after we get a username and a password 940 Scott Balneaves 2008-11-08 [merge] Merged from Scott's tree 939 Scott Balneaves 2008-11-08 [merge] Merged from Scott's tree 938 Scott Balneaves 2008-11-07 [merge] Merged cleanups from Scott's tree 937 Scott Balneaves 2008-11-07 [merge] Merged from Scott's tree 936 Scott Balneaves 2008-11-07 [merge] Merged from Scott's branch 935 Stéphane Graber 2008-11-07 Include gdk/gdkkeyssyms.h in greeter.c to make the tab fix to work 934 Stéphane Graber 2008-11-07 [merge] Merge francis fix for support 933 Stéphane Graber 2008-11-07 ldm screen.d script: Set blackroot by default 932 Scott Balneaves 2008-11-07 [merge] Merged void header work 931 Scott Balneaves 2008-11-07 [merge] Merged syslog fixes from LTSP BTS 2008 hackfest 930 Scott Balneaves 2008-11-07 [merge] Merging fixes from BTS hackfest 929 Warren Togami 2008-10-31 {ldm-2.0.16} version 2.0.16 928 Warren Togami 2008-10-31 UGLY HACK: We need to properly detect that X is done launching before running init and launching the greeter. ldm needs to detect the SIGUSR1 from the child X process. See rhgb for simple example code to implement that. 927 Warren Togami 2008-10-31 {ldm-2.0.15} version 2.0.15 926 Warren Togami 2008-10-31 Remove g_free() that causes segfault during shutdown. Ryan will clean this up later. 925 Warren Togami 2008-10-30 Move ldminfod from ltsp-trunk into ldm-trunk. Your distribution should package ldminfod into a sub-binary package. 924 Vagrant Cascadian 2008-10-24 [merge] merge patches from Ryan Niebur to handle Xsession passed via ldminfod 923 Vagrant Cascadian 2008-10-19 include numlock script in makefile 922 Vagrant Cascadian 2008-10-19 add ldm initialization script to enable/disable the numlock key (based on ideas from Leo Eraly and Gideon Romm) 921 Vagrant Cascadian 2008-10-19 fix typo in comments: relation -> related 920 Vagrant Cascadian 2008-10-19 split setxkbmap code out into ldm initialization script 919 Vagrant Cascadian 2008-10-17 implement backwards compatibility with old timeout setting options 918 Vagrant Cascadian 2008-10-17 implement LDM_LOGIN_TIMEOUT (replaces LDM_TIMEOUT_ENABLED and LDM_TIMEOUT_TIME) 917 Vagrant Cascadian 2008-10-17 fix typo. 916 Oliver Grawert 2008-10-15 {ldm-2.0.14} version 2.0.14 915 Oliver Grawert 2008-10-14 revert the breakage from commit 913, please, pretty please *test* before you break the standard themeing with a patch to make a nonstandard theme for one distro work while breaking the world for everyone else who follows the standard 914 Stéphane graber 2008-10-04 {ldm-2.0.13} version 2.0.13 913 Ryan Niebur 2008-10-02 fix login field location with wide logos (based on CyberOrg's ldm-fix-input-field-location.patch) 912 Stéphane Graber 2008-10-01 exit screen script if LDM_RUNONCE is true 911 Vagrant Cascadian 2008-09-23 use Xsession script when session is selected, defaulting to "default" if no session is selected. 910 Gideon Romm 2008-09-22 Removed sourcing of ltsp_config and setting of LDM_USERNAME, since both are now handled already by the time the script is invoked 909 Gideon Romm 2008-09-22 Added lts.conf variable: LDM_USER_ALLOW This variable allows one to restrict access to a particular machine by username. Syntax is: LDM_USER_ALLOW = A comma-separated list of usernames can also be supplied, like: LDM_USER_ALLOW = user1,user2,user3 A dialog will pop up if a user other than ones indicated tries to log in, indicating that they are not allowed access to the workstation. 908 Vagrant Cascadian 2008-09-17 [merge] merge patch from gadi to implement rc.d scripts before greeter, post X 907 Warren Togami 2008-08-24 {ldm-2.0.12} version 2.0.12 906 Warren Togami 2008-08-21 Move file close to later to prevent a segfault if X fails. (patch from sbalneav) X will still fail, but at least ldm wont segfault. 905 John Ellson 2008-08-16 Fedora: fix crash on x86_64 by fixing the causes of the gcc warnings about "incompatible pointer". 904 Vagrant Cascadian 2008-08-11 {ldm-2.0.11} version 2.0.11 903 Vagrant Cascadian 2008-08-10 relocated rc.d localapp hook to ltsp-trunk for now 902 Vagrant Cascadian 2008-08-10 use more exact regex to distinguish between users with similar names 901 Vagrant Cascadian 2008-08-10 re-write usermod patch to use multiple lines and be more similar to previous code 900 Gideon Romm 2008-08-10 Use usermod instead of adduser 899 Vagrant Cascadian 2008-08-08 add x-terminal-emulator to debug-terminals 898 Warren Togami 2008-08-07 {ldm-2.0.10} version 2.0.10 897 Warren Togami 2008-08-07 Run the shell version of xrexecd until the C version is fixed. 896 Warren Togami 2008-08-07 Use randomized xauth filename in /var/run. 895 Warren Togami 2008-08-07 Add S15-userLoginCheck S99-debug-terminal to Makefile.am so they actually install. 894 Warren Togami 2008-08-06 Add -o allow_other so sshfs mount is actually accessible to the user. root does the sshfs mount, but by default fuse will disallow other users from accessing the fuse mount even if they appear to have the permissions to access it. 893 Oliver Grawert 2008-08-01 [merge] merge first set of S01-localapps fixes to actually make it work 892 Warren Togami 2008-07-30 LDM_DEBUG_TERMINAL disabled by default. If you enable it in lts.conf, it runs a terminal as the local client after ldm login. Useful only in debugging local apps. 891 Vagrant Cascadian 2008-07-27 {ldm-2.0.9} version 2.0.9 890 Vagrant Cascadian 2008-07-27 use full path to ltspfsmounter to fix umount of ltspfs devices on logout 889 Warren Togami 2008-07-27 {ldm-2.0.8} version 2.0.8 888 Warren Togami 2008-07-27 REVERT: "-O exit handling and eliminate the kill" caused a serious problem in logging out. XFCE4 and IceWM (possibly more) get stuck during logout. Needs more work. 887 Gideon Romm 2008-07-27 [merge] Added rc.d script to check for old sessions 886 RyanRyan52@gmail.com 2008-07-27 [merge] make it so that the box stops jumping when the text under it changes. 885 Warren Togami 2008-07-27 Rename to S01-localapps and make it actually install from the Makefile. 884 sbalneav 2008-07-27 [merge] Added proper -O exit handling and eliminate the kill -1 5835, fix per Emmanuel Garette. 883 RyanRyan52@gmail.com 2008-07-27 [merge] Merge devel branch. 882 Gideon Romm 2008-07-27 Added LOCAL_APPS rc.d script 881 Gideon Romm 2008-07-27 [merge] merging Ryan's changes 880 Gideon Romm 2008-07-27 Move sourcing of ltsp-common-functions out of individual rc.d scripts and into ldm-script, so it is available to all rc.d scripts 879 sbalneav 2008-07-27 [merge] Fixed race condition with g_spawn_* by going back to standard fork/execvp behavior. 878 RyanRyan52@gmail.com 2008-07-26 fixed the guest login code 877 Warren Togami 2008-07-25 Create empty /var/cache/ldm directory for local apps. 876 sbalneav 2008-07-25 Added a LDM_USERNAME environment variable for rc.d scripting 875 Warren Togami 2008-07-25 [merge] Merge Scott Balneaves's major cleanup. * Major cleanups, code simplification. * SSH message direct to UI. (LDM2 or LDM3?) Old ldm uses LANG=C and screen scraping to login. ldm did not use ssh-askpass because dealing with password expiry is impossible with the current ssh. Rewrite: launch SSH with no LANG=, pump strings to message area. * ldm rewrite has ONE way to do fork+exec. ldm_spawn() is async. Use ldm_wait() if you want sync. * Proper glib string handling. * Rewrite drops 250 lines of code. 874 Warren Togami 2008-07-01 {ldm-2.0.7} version 2.0.7 873 Warren Togami 2008-07-01 ldm itself sets keyboard layout from lts.conf XKB* options before the login greeter appears. This should be functionally equivalent as the XKB* options processed by configure-x.sh. 872 Vagrant Cascadian 2008-05-30 {ldm-2.0.6} version 2.0.6 871 Vagrant Cascadian 2008-05-21 new Greek translation by Άλκης Γεωργόπουλος 870 Vagrant Cascadian 2008-05-04 {ldm-2.0.5} version 2.0.5 869 Vagrant Cascadian 2008-05-03 typo: add Portuguese (pt) to list of supported languages 868 Warren Togami 2008-04-27 {ldm-2.0.4} version 2.0.4 867 Vagrant Cascadian 2008-04-26 - added Russion translation by Yuri Kozlov http://bugs.debian.org/477987 - put languages in alphabetical order 866 Vagrant Cascadian 2008-04-22 {ldm-2.0.3} release version 2.0.3 865 Vagrant Cascadian 2008-04-22 new Vietnamese translation by Clytie Siddall http://bugs.debian.org/477330 864 Vagrant Cascadian 2008-04-22 French translation update by Jean-Baka Domelevo-Entfellner http://bugs.debian.org/477285 863 Vagrant Cascadian 2008-04-19 typo: add missing } when looking for debian/ubuntu Xsessions 862 Vagrant Cascadian 2008-04-19 add Xsession fallbacks for Gentoo and openSUSE 861 Vagrant Cascadian 2008-04-15 Portuguese translation by Pedro Ribeiro http://bugs.debian.org/476166 860 Warren Togami 2008-04-07 Polish translation from Piotr Drąg 859 Warren Togami 2008-04-06 {ldm-2.0.2} release 2.0.2 858 Warren Togami 2008-04-06 Add Finnish translation from Ville-Pekka Vainio 857 Warren Togami 2008-04-06 Add Japanese translation from Noriko Mizumoto 856 Vagrant Cascadian 2008-04-06 {ldm-2.0.1} release 2.0.1 855 Vagrant Cascadian 2008-04-05 corrected translation of Norwegian Bokmål by Klaus Ade Johnstad 854 Vagrant Cascadian 2008-04-05 added translation of Norwegian Bokmål by Klaus Ade Johnstad 853 Vagrant Cascadian 2008-04-03 added Swedish translation by Daniel Nylander http://bugs.debian.org/474005 852 Vagrant Cascadian 2008-04-02 - update release.conf to get correct version from new configure.ac - grab NAME from configure.ac 851 Vagrant Cascadian 2008-04-02 add basque translation from Piarres Beobide http://bugs.debian.org/473921 850 Vagrant Cascadian 2008-04-02 added hungarian translation by SZERVÁC Attila http://bugs.debian.org/473821 849 Vagrant Cascadian 2008-04-01 add spanish translation by José L. Redrejo Rodríguez http://bugs.debian.org/473674 848 Vagrant Cascadian 2008-04-01 [merge] merge i18n patches from cyberorg 847 Vagrant Cascadian 2008-04-01 updated german translation by Wolfgang Schweer http://bugs.debian.org/473674 846 Vagrant Cascadian 2008-04-01 updated ldm po template 845 Vagrant Cascadian 2008-04-01 apply patches from Wolfgang Schweer to fix i18n http://bugs.debian.org/473674 844 Warren Togami 2008-03-26 {ldm-2.0.0} Version 2.0.0 843 Warren Togami 2008-03-25 Increase buffer size so all ldminfod lines fit when you have many languages. 842 Vagrant Cascadian 2008-03-25 typo: /var/log/ldm.log 841 Vagrant Cascadian 2008-03-24 output debugging code to /var/log/ldm instead of /tmp/foople 840 Vagrant Cascadian 2008-03-24 should be no need to run getltscfg- variables should be exported to the environment.. 839 Vagrant Cascadian 2008-03-23 [merge] adapt to use common X code for ltsp screen scripts 838 Warren Togami 2008-03-23 Turns out this isn't true, because a different concurrent LTSP client would have a different IP:display number combination. 837 Warren Togami 2008-03-23 Use xauth with LDM_DIRECTX=true. This works, however it needs cleanup in a few ways. See the FIXME's. 836 Warren Togami 2008-03-23 ssh -Y is better than -X 835 Warren Togami 2008-03-22 Cosmetic: make /etc/hosts entries line up 834 Vagrant Cascadian 2008-03-20 always set -br and -noreset to xserver args, and -ac when using LDM_DIRECTX 833 Vagrant Cascadian 2008-03-20 fix typo causing X_COLOR_DEPTH to overwrite all XSERVER_CMD options 832 Vagrant Cascadian 2008-03-20 call launch_x with arguments - missed from ldm-arbitrary-xserver-opts merge 831 Vagrant Cascadian 2008-03-20 add back glib-object.h (for TRUE/FALSE) 830 Vagrant Cascadian 2008-03-18 use ltsp-common-functions for boolean_is_true function 829 Vagrant Cascadian 2008-03-18 [merge] merge branch to support arbitrary xserver options - except: keep authfile in ldm.c (is mucked with in other code in ldm) 828 Vagrant Cascadian 2008-03-18 remove un-used includes (thanks scotty!) 827 Warren Togami 2008-03-13 .bzrignore mkdst related stuff 826 Warren Togami 2008-03-13 Remove ldm.spec and mkdst wrapper 825 Warren Togami 2008-03-09 Tempory hack: disable -ac in the default case, while turning it back on in the LDM_DIRECTX case -ac disable access control restrictions This was a really bad idea because it makes it possible for anybody on the network to screw with your session. It turns out that due to -ac the xauth stuff in ldm really wasn't doing anything. It turns out that the way ldm has been doing xauth is broken anyway. With this patch ldm will work for existing users even though LDM_DIRECTX is still insecure. We must fix this the right way by using xauth properly. 824 Warren Togami 2008-03-09 Use ssh -Y instead of ssh -X. Functionally equivalent on all distros and necessary. 823 Vagrant Cascadian 2008-03-08 - tweak /etc/hosts for all servers (where $SRV is actually defined) - test for sucess with grep directly, rather than a separate test on return status 822 Warren Togami 2008-03-04 Fedora: ldm requires openssh-clients 821 Warren Togami 2008-03-04 Conditionalize default session, /etc/X11/xinit/Xsession on Fedora, /etc/X11/Xsession on Debian 820 Vagrant Cascadian 2008-03-01 change variable name: LDM_ALLOW_GUEST -> LDM_GUESTLOGIN - more consistant with AUTOLOGIN variable names 819 Vagrant Cascadian 2008-02-28 - updated README for /usr/libexec -> /usr/share where appropriate - dropped mention of editing screen script as it is no longer relevent 818 Warren Togami 2008-02-28 Complete conversion to /usr/share/ltsp instead of /usr/lib/ltsp 817 Warren Togami 2008-02-28 Fix typo in src/Makefile.am so it will build. 816 Vagrant Cascadian 2008-02-27 switch default ldm rc.d directory back to /usr/share/ldm/rc.d - keep support for LIBEXEC/ldm/rc.d 815 Vagrant Cascadian 2008-02-20 implement LDM_12HOURCLOCK boolean to determine if clock should display 12 or 24 hour format (based on patches from Gideon Romm). 814 Vagrant Cascadian 2008-02-20 [merge] merge patch from Ryan Niebur to make ldm_getenv_bool includeable in other programs (i.e. the greeter) 813 Warren Togami 2008-02-20 Fedora: symlink default to ltsp theme, package /var/run/ldm directory 812 Warren Togami 2008-02-20 Fedora: ldm requires nc 811 Vagrant Cascadian 2008-02-18 - pass ip address as LDMINFO_IPADDR environment variable to the greeter - drop get_ip function in greeter 810 Vagrant Cascadian 2008-02-17 make entry fields not editable when displaying status message - patch from Gideon Romm 809 Vagrant Cascadian 2008-02-17 do not display month or date on login screen. idea from Gideon Romm. 808 Vagrant Cascadian 2008-02-17 patch from ogra to only ask password once and issue warning message. 807 Vagrant Cascadian 2008-02-12 merge patch from Ryan Niebur to fix build-time warnings 806 Vagrant Cascadian 2008-02-12 [merge] merge patches from Ryan Niebur: - gtkgreeter: determine theme dir theme dir once 805 Vagrant Cascadian 2008-02-11 [merge] merge guest login button patches from Ryan Niebur: - added LDM_ALLOW_GUEST which enables the button - added LDM_GUEST_SERVER which is used as the server for guest logins - otherwise, guest logins behave like autologin 804 Vagrant Cascadian 2008-02-11 set timeout to 5 seconds when connecting to ldminfod (patch from Gideon Romm) 803 Vagrant Cascadian 2008-02-10 [merge] merge patches to support rc.d dirs in /etc/ldm/, @libexec@ and /usr/share/ldm 802 Vagrant Cascadian 2008-02-09 [merge] merge patches from Ryan Niebur to set ldm theme using LDM_THEME environment variable. 801 Vagrant Cascadian 2008-02-01 implemented LDM_AUTOLOGIN_SERVER, which allows autologin use a different server 800 Vagrant Cascadian 2008-02-01 add boolean environment variable LDM_AUTOLOGIN to enable autologin support. - if LDM_USERNAME is not set, set to the client's hostname - if LDM_PASSWORD is not set, set to the username (thanks to Ryan Niebur for your help) 799 Vagrant Cascadian 2008-01-30 [merge] merge patch from SZABO Zsolt to fix login using ssh keys: http://bugs.debian.org/462764 798 Vagrant Cascadian 2008-01-29 remove unused prefix and exec_prefix 797 Vagrant Cascadian 2008-01-29 look for hooks in @libexecdir@/ldm/rc.d 796 Vagrant Cascadian 2008-01-29 apply slightly modified patch by Francis Giraldeau to fix autologin: http://launchpadlibrarian.net/10690096/fix-autologin-lp161794.dpatch 795 Warren Togami 2008-01-28 define ldmlibexecdir so ldm can find ldmgtkgreet 794 Warren Togami 2008-01-23 No need to list all files 793 Warren Togami 2008-01-22 Make comment match filename 792 Toshio Kuratomi 2008-01-17 * Fix most gcc warnings. Checking the return value of write() is not included in this as someone needs to decide which failures are fatal and which can be recovered from. 791 Toshio Kuratomi 2008-01-17 Don't need to explicitly specify libexecdir in the README with the latest libexecdir changes. 790 Warren Togami 2008-01-16 Example spec: libexecdir/ldm 789 Warren Togami 2008-01-16 Cleanup: src/Makefile.in not needed, generated by autogen.sh 788 Warren Togami 2008-01-16 Install ldm-script and rc.d into libexecdir/ldm instead of just libexecdir 787 Warren Togami 2008-01-16 s/ldm2/ldm/ and simplify description to not confuse users. 786 Eric Harrison 2008-01-15 fix paths in %files section of ldm.spec 785 Toshio Kuratomi 2008-01-15 * Add a Makefile.am i=to install the screen.d startup script. 784 Toshio Kuratomi 2008-01-15 * Move the ldmgtkgreet, rc.d, and ldm-script files to libexecdir. Override with ./configure --libexecdir= to the proper directory for your distro. 783 Toshio Kuratomi 2008-01-15 * Add a screen script to startup ldm. 782 Warren Togami 2008-01-14 ldm build requires gtk2-devel 781 Warren Togami 2008-01-13 release.conf reads VERSION from configure.ac 780 Warren Togami 2008-01-13 Add example ldm.spec for mkdst --testrpm 779 Warren Togami 2008-01-13 add blank config.rpath, without it configure.ac fails 778 Warren Togami 2008-01-13 release.conf needed by mkdst TODO: release.conf is sourced by mkdst, so shell script could be added here to read the NAME and VERSION from configure.ac instead of hardcoded. 777 Vagrant Cascadian 2008-01-09 [merge] merge otavio's removal-ldm-hooks branch (ltspfs specific ldm hooks now maintained in ltspfs) 776 Vagrant Cascadian 2007-12-17 updated FSF address 775 Vagrant Cascadian 2007-12-17 updated FSF address 774 Vagrant Cascadian 2007-12-17 add french translation by Jean-Baka Domelevo-Entfellner (debian bug #454571) 773 Vagrant Cascadian 2007-12-14 use "ssh -X" in delayed-mounter script needed for newer ltspfs 772 Vagrant Cascadian 2007-12-02 use new mkdst wrapper, drop old mkdist 771 Vagrant Cascadian 2007-11-27 drop Debian and ubuntu themes from Makefile.am 770 Vagrant Cascadian 2007-11-27 removed Debian and ubuntu themes (should be maintained elsewhere) 769 Oliver Grawert 2007-11-27 remove debian dir, replace Makefile with mkdist script from ltsp trunk tree, move code up to toplevel dir again 768 Vagrant Cascadian 2007-11-07 kind of builds a package 767 Vagrant Cascadian 2007-11-07 remove some ltsp cruft from debian/rules 766 Vagrant Cascadian 2007-11-07 drop ltsp stuff from control file 765 Vagrant Cascadian 2007-11-07 removed more ltsp cruft 764 Vagrant Cascadian 2007-11-07 remove cruft from ltsp packaging 763 Vagrant Cascadian 2007-11-07 [merge] merged ldm split 762 Vagrant Cascadian 2007-11-07 pre-emptively remove cruft 761 Vagrant Cascadian 2007-11-07 [merge] merged the easy stuff 760 Vagrant Cascadian 2007-10-26 exclude additional packages from debootstrap installation (tasksel, tasksel-data, dhcp3-client, dhcp3-common, aptitude) 759 Vagrant Cascadian 2007-10-26 preparing 5.0.39debian1 release 758 Vagrant Cascadian 2007-10-25 Dutch po-debconf translation update by cobaco (aka Bart Cornelis) (debian bug #448010) 757 Vagrant Cascadian 2007-10-25 configure tzdata after installing /etc/timezone (debian bug #440856) 756 Vagrant Cascadian 2007-10-24 German translation updates by Wolfgang Schweer (debian bug #447504) 755 Vagrant Cascadian 2007-10-23 [merge] merge patches to use /var/run/ldm instead of /tmp/ldm 754 Vagrant Cascadian 2007-10-23 [merge] sync with ubuntu 5.0.39 753 Vagrant Cascadian 2007-10-23 updated translation for Brazilian Portuguese by Felipe Augusto van de Wiel (debian bug #447839) 752 Vagrant Cascadian 2007-10-23 updated Brazilian Portuguese debconf templates translation by Felipe Augusto van de Wiel (faw) (debian bug #447838) 751 Vagrant Cascadian 2007-10-23 updated French debconf templates translation by Jean-Baka Domelevo-Entfellner (debian bug #447761) 750 Vagrant Cascadian 2007-10-23 Updated Portuguese translation for debconf messages by Ricardo Silva (debian bug #447643) 749 Vagrant Cascadian 2007-10-23 German debconf translation updates by Wolfgang Schweer (debian bug #447504) 748 Vagrant Cascadian 2007-10-23 Updated Czech translation of debconf messages by Miroslav Kure (debian bug #447438) 747 Vagrant Cascadian 2007-10-21 fix typo in debian/rules: cleint -> client 746 Vagrant Cascadian 2007-10-19 updated Basque debconf template translation by Piarres Beobide (debian bug #447127) 745 Vagrant Cascadian 2007-10-19 new Finnish debconf translation by Esko Arajärvi (debian bug #447179) 744 Vagrant Cascadian 2007-10-19 new Finnish translation by Esko Arajärvi (debian bug #447179) 743 Vagrant Cascadian 2007-10-19 Russian translation update by Yuri Kozlov (debian bug #447181) 742 Vagrant Cascadian 2007-10-19 Russian debconf templates translation update by Yuri Kozlov (debian bug #447181) 741 Vagrant Cascadian 2007-10-19 Vietnamese debconf templates translation update by Clytie Siddall (debian bug #447258) 740 Vagrant Cascadian 2007-10-19 Galician debconf template translation for ltsp by Jacobo Tarrio (debian bug #447195) 739 Vagrant Cascadian 2007-10-19 Catalan translation update by Jordà Polo (debian bug #446401) 738 Vagrant Cascadian 2007-10-19 Catalan debconf templates translation update by Jordà Polo (debian bug #446401) 737 Vagrant Cascadian 2007-10-19 Swedish debconf templates translation update by Daniel Nylander (debian bug #447125) 736 Vagrant Cascadian 2007-10-17 updated templates.pot to current 735 Vagrant Cascadian 2007-10-17 updates to debconf templates reviewed by Justin B Rye 734 Vagrant Cascadian 2007-10-07 French debconf templates translation update by Christian Perrier (debian bug #445479) 733 Vagrant Cascadian 2007-10-07 French translation update by Jean-Baka Domelevo-Entfellner (debian bugs #445596, #445598) 732 Vagrant Cascadian 2007-10-04 plugin to copy server's Packages files into chroot 731 Vagrant Cascadian 2007-10-04 fix typo in test for Makefile 730 Vagrant Cascadian 2007-10-04 add XS-X-Vcs-Bzr entry for debian 729 Vagrant Cascadian 2007-10-03 prepare 5.0.31debian2 release 728 Vagrant Cascadian 2007-10-03 French debconf templates translation by Jean-Baka Domelevo-Entfellner (debian bug #444844) 727 Vagrant Cascadian 2007-10-03 Galician debconf template translation for ltsp by Jacobo Tarrio (debian bug #444753) 726 Vagrant Cascadian 2007-10-02 fix lintian warning: debian-rules-ignores-make-clean-error 725 Vagrant Cascadian 2007-10-02 round out the edges on the debian logo 724 Vagrant Cascadian 2007-09-25 remove temporary scratch file for sparc generation 723 Vagrant Cascadian 2007-09-25 bugfix: always generate sparc files in $BOOT 722 Vagrant Cascadian 2007-09-24 remove the ltsp theme (drop Debian-Edu, which is no longer shipped) 721 Vagrant Cascadian 2007-09-24 symlink common files for debian and ltsp themes 720 Vagrant Cascadian 2007-09-24 install ltsp theme 719 Vagrant Cascadian 2007-09-23 added ldm theme for ltsp.org 718 Vagrant Cascadian 2007-09-23 use blueish background 717 Vagrant Cascadian 2007-09-23 make debian logo transparent 716 Vagrant Cascadian 2007-09-23 few more (hopefully last) changes for 5.0.31debian1 715 Vagrant Cascadian 2007-09-23 add back support for mkelf-linux, but only when mkelfimage is not present 714 Vagrant Cascadian 2007-09-23 ltsp-client-core: depend on mkelfimage 713 Vagrant Cascadian 2007-09-23 quiet read-write filesystem detection 712 Vagrant Cascadian 2007-09-23 add example alternative x configuration script, largely based on the old debconf-based x configuration code from ltsp 5.0.8debian3 711 Vagrant Cascadian 2007-09-23 added CONFIGURE_X_COMMAND to allow for custom X configuration. 710 Vagrant Cascadian 2007-09-22 prepare 5.0.31debian1 release 709 Vagrant Cascadian 2007-09-21 [merge] merge with ubuntu (5.0.31) 708 Vagrant Cascadian 2007-09-21 added README describing a few steps to get sound support to work (thanks to Bryan Sutula, debian bug #425057) 707 Vagrant Cascadian 2007-09-21 tighten sound dependencies: - lower ltsp-server-stanadlone sound dependencies to ltsp-server suggestions - ltsp-client depends on pulseaudio-esound-compat, suggest pulseaudio, esound and nas 706 Vagrant Cascadian 2007-09-19 enable encrypted swap if cryptsetup is available 705 Vagrant Cascadian 2007-09-17 add example script to run ldm from init (debian bug #401357) 704 Vagrant Cascadian 2007-09-17 continue to run init script even if not using nbd 703 Vagrant Cascadian 2007-09-16 remove old themes directories 702 Vagrant Cascadian 2007-09-16 ltsp-client: versioned dependency on ltspfsd >= 0.5 701 Vagrant Cascadian 2007-09-16 [merge] merge with ubuntu (5.0.30) 700 Vagrant Cascadian 2007-09-16 don't error out if debian-installer/keymap is not present 699 Vagrant Cascadian 2007-09-16 minor doc update: use --kernel-packages instead of --late-packages for unknown architectures 698 Vagrant Cascadian 2007-09-13 add #!/bin/sh header and mark as executable 697 Vagrant Cascadian 2007-09-13 include french gettext translation by Jean-Baka Domelevo-Entfellner (debian bug #442164) 696 Vagrant Cascadian 2007-09-13 updated gettext po template 695 Vagrant Cascadian 2007-09-12 use lowercase for "thin client" as suggested by Christian Perrier (debian bug #441953) 694 Vagrant Cascadian 2007-09-11 [merge] merged pkg-ltsp main branch (5.0.27debian1) 693 Vagrant Cascadian 2007-09-05 fix typo for remote syslogging 692 Vagrant Cascadian 2007-09-04 added instructions to enable keepalive timeouts for swap (debian bug #422962) 691 Vagrant Cascadian 2007-09-04 fix attempt to grab debian-installer/keymap. 690 Vagrant Cascadian 2007-09-02 use cp -p so -u is meaningful 689 Vagrant Cascadian 2007-09-02 add missing ;; in copy-package-cache 688 Vagrant Cascadian 2007-09-02 added plugin for copying cached packages 687 Vagrant Cascadian 2007-09-01 hostname is zero'ed from ltsp-build-client plugin, so no need to set from the initramfs. 686 Vagrant Cascadian 2007-09-01 handle hostname defaults in initramfs (debian bugs #406366 and #418142) 685 Vagrant Cascadian 2007-08-24 [merge] merge 5.0.8debian3 684 Vagrant Cascadian 2007-08-24 remove -s from LDFLAGS: don't strip getltscfg (debian bug #437540) 683 Vagrant Cascadian 2007-08-12 do not suggest xorg in ltsp-client-core package 682 Vagrant Cascadian 2007-08-12 updated in preparation for release 681 Vagrant Cascadian 2007-08-11 include final patch for debconf templates and debian/control review (debian bug #434048) 680 Vagrant Cascadian 2007-08-07 added notes for modifying boot prompt options (debian bug #428446) 679 Vagrant Cascadian 2007-08-07 move suggestion for joystick from ltsp-client to ltsp-client-core 678 Vagrant Cascadian 2007-08-06 Updated Czech translation of debconf messages by Miroslav Kure (debian bug #436283) 677 Vagrant Cascadian 2007-08-06 updated German debconf translation by Wolfgang Schweer (debian bug #435821) 676 Vagrant Cascadian 2007-08-01 updated debconf templates 675 Vagrant Cascadian 2007-08-01 updated gettext messages 674 Vagrant Cascadian 2007-08-01 revert fr.po gettext translation to previous version (accidentally copied the debconf templates over it) 673 Vagrant Cascadian 2007-08-01 updates to debian/control.in, based on suggestions from debian-l10n-english (debian bug #434048) 672 Vagrant Cascadian 2007-08-01 Basque debconf tranlation update by Piarres Beobide (debian bug #434612) 671 Vagrant Cascadian 2007-08-01 French debconf templates translation update by Christian Perrier (debian bug #434600) 670 Vagrant Cascadian 2007-08-01 Swedish debconf templates translation by Daniel Nylander (debian bug #434611) 669 Vagrant Cascadian 2007-08-01 Updated Portuguese translation for debconf messages by Ricardo Silva (debian bug #434683) 668 Vagrant Cascadian 2007-08-01 Catalan debconf templates translation update by Jordà Polo (debian bug #434810) 667 Vagrant Cascadian 2007-08-01 Vietnamese debconf templates translation update by Clytie Siddall (debian bug #434834) 666 Vagrant Cascadian 2007-08-01 Galician debconf template translation by Jacobo Tarrio (debian bug #434849) 665 Vagrant Cascadian 2007-08-01 Updated Bulgarian debconf translations by Damyan Ivanov (debian bug #433619) 664 Vagrant Cascadian 2007-08-01 Russian debconf templates translation update by Yuri Kozlov (debian bug #435570) 663 Vagrant Cascadian 2007-08-01 apply patch to templates reviewed by debian-l10-english (debian bug #434048) 662 Vagrant Cascadian 2007-08-01 added Russian gettext translation by Yuri Kozlov (debian bug #435571) 661 Vagrant Cascadian 2007-07-08 new Russian debconf translation by Yuri Kozlov (debian bug #432226) 660 Vagrant Cascadian 2007-07-08 Updated Czech debconf translation by Miroslav Kure (debian bug #432211) 659 Vagrant Cascadian 2007-07-06 new Bulgarian debconf translation by Damyan Ivanov (debian bug #431955) 658 Vagrant Cascadian 2007-07-06 French debconf translation update by Jean-Marc Chaton (debian bug #431978) 657 Vagrant Cascadian 2007-07-05 apply patch by Teddy Hogeborn for the gtk greeter to display more locales (debian bug #430074) 656 Vagrant Cascadian 2007-07-04 new Vietnamese debconf translation by Clytie Siddall (debian bug #431654) 655 Vagrant Cascadian 2007-07-04 new Portuguese debconf translation by Traduz - Portuguese Translation Team (debian bug #431790) 654 Vagrant Cascadian 2007-07-04 new Galician debconf translation by Jacobo Tarrio (debian bug #431744) 653 Vagrant Cascadian 2007-07-04 new Basque debconf translation by Piarres Beobide (debian bug #431669) 652 Vagrant Cascadian 2007-07-04 German debconf translation update by Wolfgang Schweer (debian bug #431668) 651 Vagrant Cascadian 2007-07-03 Catalan debconf templates update, by Jordà Polo (debian bug #430853) 650 Vagrant Cascadian 2007-06-20 make cryptsetup an ltsp-client dependency 649 Vagrant Cascadian 2007-06-16 add suggests for ltsp-client-core on all packages depended on by ltsp-client 648 Vagrant Cascadian 2007-06-15 prepare changelog for 5.0.8debian2 647 Vagrant Cascadian 2007-06-15 [merge] merge changelog for 5.0.8debian1 646 Vagrant Cascadian 2007-06-15 add alsa-utils to ltsp-client dependencies (Debian) 645 Vagrant Cascadian 2007-06-15 [merge] merge mainline: drop bind mounting of /etc/X11/XF86Config-4 644 Vagrant Cascadian 2007-06-15 use lsb-release to determine which ldm theme should get the highest priority. 643 Vagrant Cascadian 2007-06-15 drop ldm theme for Debian-Edu (now maintained in debian-edu-artwork) 642 Vagrant Cascadian 2007-06-14 whitelist ltsp-client-core (Debian) 641 Vagrant Cascadian 2007-06-14 move /tmp/.ltspfs-socket to /var/run/ldm_socket 640 Vagrant Cascadian 2007-06-01 merge patches to handle keymap: - Add code in the ltsp-client-builder udeb and add a ltsp-client-builder plugin to pass the d-i keyboard setting to LTSP and X.org. (Closes: #421762) 639 Vagrant Cascadian 2007-06-01 [merge] merge mainline: http://bazaar.launchpad.net/~ltsp-drivers/ltsp/mainline/ - sync with ubuntu - support unencrypted LDM logins (LDM_DIRECTX) - generate debian/control to reduce debian/ubuntu conflicts - split ltsp-client into ltsp-client-core and ltsp-client + all features (sound/localdev) are enabled by default - local printer support (jetpipe) - meaningful dependencies for ltsp-server-standalone 638 Vagrant Cascadian 2007-05-19 drop support for initrd-netboot-tools (removed in etch) 637 Vagrant Cascadian 2007-05-19 drop locale configuration for sarge 636 Vagrant Cascadian 2007-05-19 drop support for selecting kernels on sarge 635 Vagrant Cascadian 2007-05-19 drop support for additional packages for sarge 634 Vagrant Cascadian 2007-05-17 use get_config_bool for NETWORK_COMPRESSION, as reported by Tim Day in debian bug #421324. 633 Vagrant Cascadian 2007-04-16 changelog: more updates 632 Vagrant Cascadian 2007-04-16 early /var/lock and /var/run handling from gustavo franco/sacix (debian bug #416673) 631 Vagrant Cascadian 2007-04-16 add dutch debconf translation from cobaco (debian bug #418395) 630 Vagrant Cascadian 2007-04-16 changelog updates 629 Vagrant Cascadian 2007-04-16 install FAQ and Upgrading_4.2 to docs 628 Vagrant Cascadian 2007-04-16 added document for upgrading from 4.2 627 Vagrant Cascadian 2007-04-16 added FAQ 626 Vagrant Cascadian 2007-04-16 add dependency on nbd-server to ltsp-server-standalone 625 Vagrant Cascadian 2007-04-16 add dependency on ltspfs for ltsp-server-standalone 624 Vagrant Cascadian 2007-04-16 call ltspfsmounter with full path (debian bug #416684) 623 Vagrant Cascadian 2007-04-16 multiply menu item by 100 (debian bug #418612) 622 Vagrant Cascadian 2007-04-16 conflict with ltsp-utils (debian bug #413316) 621 Vagrant Cascadian 2007-04-16 add klogd and sysklogd to the list of whitelisted services 620 Vagrant Cascadian 2007-04-16 make it possible to disable tweaking of syslog.conf 619 Vagrant Cascadian 2007-04-16 automatically include lts.conf in bug reports 618 Vagrant Cascadian 2007-04-16 add next-server to dhcpd.conf (debian bug #416868, thanks to martin chase) 617 Vagrant Cascadian 2007-01-19 changelog: released 0.99debian11 616 Vagrant Cascadian 2007-01-11 changelog: preparing 0.99debian11 615 Vagrant Cascadian 2007-01-10 revert addition of xserver-xorg-input-all and xserver-xorg-video-all as it is now fixed in xserver-xorg. 614 Vagrant Cascadian 2007-01-10 fixes to boolean handling (debian bug #405772) 613 Vagrant Cascadian 2007-01-10 drop dependency on initrd-netboot-tools (initramfs-tools is preferred anyways). 612 Vagrant Cascadian 2007-01-10 install appropriate linux-image kernel for amd64 (debian bug #406357) 611 Vagrant Cascadian 2007-01-07 changelog: new version in preparation 610 Vagrant Cascadian 2007-01-05 updated location of pkg-ltsp bzr repository 609 Vagrant Cascadian 2007-01-05 add xserver-xorg-video-all and xserver-xorg-input-all to list of packages to install. 608 Vagrant Cascadian 2007-01-02 changelog: released 0.99debian10 607 Vagrant Cascadian 2006-12-24 updated changelog: new version. mention new spanish gettext translation. 606 Vagrant Cascadian 2006-12-24 added updated and reviewed spanish gettext translation. 605 Vagrant Cascadian 2006-12-22 remove unreviewed spanish translation. 604 Vagrant Cascadian 2006-12-22 mention ltspfs/localdev changes. 603 Vagrant Cascadian 2006-12-22 [merge] merged ltspfs/localdev code updates. 602 Vagrant Cascadian 2006-12-22 updated changelog (preparing for 0.99debian9) 601 Vagrant Cascadian 2006-12-21 added catalan translation by Jordà Polo. (debian bug #404064) 600 Vagrant Cascadian 2006-12-19 updated ltsp gettext translation for Brazilian Portuguese by André Luís Lopes (debian bug #403815) 599 Vagrant Cascadian 2006-12-19 updated boilerplate comments for ltsp. 598 Vagrant Cascadian 2006-12-19 updated boilerplate comments to be more specific. 597 Vagrant Cascadian 2006-12-18 install "xorg" instead of "x-window-system-core". patch from Steffen Joeris (debian bug #403234) 596 Vagrant Cascadian 2006-12-18 update french translation for gettext messages by Cyril Brulebois. (trivial one-message update) 595 Vagrant Cascadian 2006-12-18 include updated spanish debconf translation by Felipe Caminos, reviewed by debian-l10-spanish (debian bug #403604) 594 Vagrant Cascadian 2006-12-18 added german debconf translation by Wolfgang Schweer (debian bug #403597) 593 Vagrant Cascadian 2006-12-18 updated german gettext messages by Wolfgang Schweer. 592 Vagrant Cascadian 2006-12-17 updated with new question. 591 Vagrant Cascadian 2006-12-17 added german gettext translation by Wolfgang Schweer (debian bug #403568) 590 Vagrant Cascadian 2006-12-17 updated changelog in preparation for release. 589 Vagrant Cascadian 2006-12-17 typo: use "=" instead of "==" in get_config_bool (patch from Miro Zhorelicky, debian bug #403471) 588 Vagrant Cascadian 2006-12-15 updated plugins documentation, to make it easier for other distros to use. 587 Vagrant Cascadian 2006-12-14 add /etc/network/run to list of directories to be mounted. needed for ifupdown to work properly. 586 Vagrant Cascadian 2006-12-14 typo: exec proper location for screen scripts in /etc/ltsp/screen.d 585 Vagrant Cascadian 2006-11-19 fix some obvious mistakes. 584 Vagrant Cascadian 2006-11-19 [merge] added spanish translations. 583 Vagrant Cascadian 2006-11-17 minor po updates. 582 Vagrant Cascadian 2006-11-17 updated debconf templates.pot 581 Vagrant Cascadian 2006-11-14 mention simplified --arch handling 580 Vagrant Cascadian 2006-11-14 mention updates to --arch handling. 579 Vagrant Cascadian 2006-11-14 simplified --arch handling for debian. fixes breakage on architectures other than i386, powerpc, and amd64. 578 Vagrant Cascadian 2006-11-14 updated changelog 577 Vagrant Cascadian 2006-11-14 set ltsp-client/abort-installation question to priority critical 576 Vagrant Cascadian 2006-11-14 change ltsp-client/abort-installation to type "error" 575 Vagrant Cascadian 2006-11-14 do not run if /etc/ltsp_chroot is not present. 574 Vagrant Cascadian 2006-11-08 move joystick to "suggests", as dexconf now supports preseeding devices properly. 573 Vagrant Cascadian 2006-11-08 do not recommend inputattach 572 Vagrant Cascadian 2006-11-08 improvements to inputattach handling: - check for X_MOUSE_DEVICE and X_MOUSE_PROTOCOL first (faster) - do not restrict to i386 - coding consistancy: use [ -n "$FOO" ] 571 Vagrant Cascadian 2006-10-31 update changelog for 0.99debian7 release 570 Vagrant Cascadian 2006-10-31 no longer need joystick plugin 569 Vagrant Cascadian 2006-10-31 make joystick a dependency on arches for which it exists. 568 Vagrant Cascadian 2006-10-30 updated changelog: joystick updates, network boot dependencies 567 Vagrant Cascadian 2006-10-30 split joystick handling into separate plugin 566 Vagrant Cascadian 2006-10-29 reorganize network boot dependencies 565 Vagrant Cascadian 2006-10-29 only install joystick package on architectures for which it exists. 564 Vagrant Cascadian 2006-10-29 only recommend joystick on architectures where joystick exists. 563 Vagrant Cascadian 2006-10-28 mention changes to ltsp-update-kernels 562 Vagrant Cascadian 2006-10-28 [merge] merge http://llama.freegeek.org/~vagrant/bzr/ltsp/features/vagrant-update-kernels: - allow using a different tftp directory - possible to configure tftp directory to /opt/ltsp to make kernel changes available without running ltsp-update-kernels 561 Vagrant Cascadian 2006-10-28 updated changelog 560 Vagrant Cascadian 2006-10-28 install joystick package by default (for serial mouse handling) 559 Vagrant Cascadian 2006-10-28 ltsp-client: recommend inputattach | joystick 558 Vagrant Cascadian 2006-10-28 improve inputattach handling (used for mouse configuration) 557 Vagrant Cascadian 2006-10-27 added NEWS file which documents the changes to NBD swapping 556 Vagrant Cascadian 2006-10-27 also depend on update-inetd to avoid lintian warning 555 Vagrant Cascadian 2006-10-27 updated inetd dependencies: - drop dependency on netbase - add dependency on openbsd-inetd | inet-superserver - depend on tcpd 554 Vagrant Cascadian 2006-10-23 install nbdswapd and ldminfod manpages 553 Vagrant Cascadian 2006-10-23 minor change for POSIX-freindliness 552 Vagrant Cascadian 2006-10-23 man page for ldminfod 551 Vagrant Cascadian 2006-10-23 use same port we use in the documentation. 550 Vagrant Cascadian 2006-10-23 added manpage for nbdswapd 549 Vagrant Cascadian 2006-10-20 credit translators for their work 548 Vagrant Cascadian 2006-10-20 include recent changes 547 Vagrant Cascadian 2006-10-17 add cryptsetup to suggests (for encrypted swap support) 546 Vagrant Cascadian 2006-10-17 merge dhcpd.conf support for etherboot from ogra's edgy branch: 405 Oliver Grawert 2006-09-19 add necessary lines to dhcpd.conf for etherboot handling 545 Vagrant Cascadian 2006-10-17 updated swap documentation 544 Vagrant Cascadian 2006-10-17 [merge] merge http://llama.freegeek.org/~vagrant/bzr/ltsp/features/vagrant-ltsp-swap: - support encrypted swap - start nbd swapping earlier 543 Vagrant Cascadian 2006-10-17 populate /etc/hostname with "ltsp" instead of "ltsp-chroot" as it's not really a chroot when booted. 542 Vagrant Cascadian 2006-10-16 added catalan translation 541 Vagrant Cascadian 2006-10-16 make location of tftp directory configurable: - use /etc/ltsp/ltsp-update-kernels.conf if it exists - only set variables if not defined 540 Vagrant Cascadian 2006-10-15 allow comma-separated list for late-packages 539 Vagrant Cascadian 2006-10-15 allow comma-separated list for early-packages 538 Vagrant Cascadian 2006-10-15 allow comma-separated list for kernel-packages 537 Vagrant Cascadian 2006-10-15 allow comma-separated list for debconf-seeds 536 Vagrant Cascadian 2006-10-15 allow comma-separated list for apt-keys 535 Vagrant Cascadian 2006-10-13 include french translation for ltsp-build-client 534 Vagrant Cascadian 2006-10-09 updated for 0.99debian5 release 533 Vagrant Cascadian 2006-10-09 touch resolv.conf to workaround bug in debootstrap 532 Vagrant Cascadian 2006-10-09 allow --components to be a comma-separated (for debconf preseeding) 531 Vagrant Cascadian 2006-10-09 add debian-archive-keyring to EARLY_PACKAGES 530 Vagrant Cascadian 2006-10-07 add urgency medium, preparing to release 0.99debian4 529 Vagrant Cascadian 2006-10-07 changelog: debconf preseeding for ltsp-client-builder 528 Vagrant Cascadian 2006-10-07 update the description for ltsp-client-builder/build-client-opts so lintian doesn't complain. 527 Vagrant Cascadian 2006-10-07 do not build or install lp_server 526 Vagrant Cascadian 2006-10-07 make options to pass to ltsp-build-client preseedable. based on patch by Ronny Aasen. 525 Vagrant Cascadian 2006-10-06 update to GPL v2 524 Vagrant Cascadian 2006-10-06 nother copyright fix from upstream: 359 Scott Balneaves 2006-10-06 Fixed copyright in screen_session 523 Vagrant Cascadian 2006-10-06 changelog about ltsp-client-builder fixes 522 Vagrant Cascadian 2006-10-06 copyright clarifications from upstream: 358 Scott Balneaves 2006-10-06 More licensing 357 Scott Balneaves 2006-10-06 Minor licensing tweak 356 Scott Balneaves 2006-10-05 Added Canonical copyright to ldm 521 Vagrant Cascadian 2006-10-06 ltsp-client-builder (fixes for debian bug #390722): - change priority to 70 - depend on pkgsel - drop dependency on base-installer 520 Vagrant Cascadian 2006-10-06 updated changelog 519 Vagrant Cascadian 2006-10-06 updated copyright 518 Vagrant Cascadian 2006-10-06 copyright updates: - included download URLs - reorganized LBE portions - removed # commants 517 Vagrant Cascadian 2006-10-05 include updated copyright notices in debian/copyright 516 Vagrant Cascadian 2006-10-05 removed lp_server: - unclear licensing - should be separate package anyways 515 Vagrant Cascadian 2006-10-05 more copyright clarifications from upstream: 355 Scott Balneaves 2006-10-05 More copyright fixups 514 Vagrant Cascadian 2006-10-05 merge copyright headers from upstream: 353 Scott Balneaves 2006-10-05 Added copyright changes 513 Vagrant Cascadian 2006-10-05 updated copyright notice for sdm screen script 512 Vagrant Cascadian 2006-10-05 added copyright header for nbdswapd 511 Vagrant Cascadian 2006-10-04 add dependency on gettext-base (reported by Ronny Aasen) 510 Vagrant Cascadian 2006-09-29 updated changelog in preparation for 0.99debian3 release 509 Vagrant Cascadian 2006-09-28 [merge] merged translation updates 508 Vagrant Cascadian 2006-09-28 call ltsp-build-client with "--security-mirror" none in ltsp-client-builder postinst (patch by Petter Reinholdtsen, should close debian bug #389276) 507 Vagrant Cascadian 2006-09-28 make mknbi a dependency for i386 506 Vagrant Cascadian 2006-09-28 consistantly use BASE for variables that default to /opt/ltsp 505 Vagrant Cascadian 2006-09-24 add mknbi to EARLY_PACKAGES when ARCH is i386 (for etherboot support) 504 Vagrant Cascadian 2006-09-20 only display advanced help options if called with --extra-help 503 Vagrant Cascadian 2006-09-20 - allow custom screen scripts in /etc/ltsp/screen.d - prefer screen scripts in /etc over default screen scripts 502 Vagrant Cascadian 2006-09-20 add dependencies for "network audio system" for remote sound as alternatives for esound. 501 Vagrant Cascadian 2006-09-18 mention nbdswapd SWAPDIR, closes debian bug #387991 500 Vagrant Cascadian 2006-09-18 implement SWAPDIR in favor of SWAP 499 Vagrant Cascadian 2006-09-17 new version with fixed ldm booleans 498 Vagrant Cascadian 2006-09-17 fixed ldm boolean handling 497 Vagrant Cascadian 2006-09-17 another bugfix in ldm boolean handling 496 Vagrant Cascadian 2006-09-17 fix ldm boolean handling 495 Vagrant Cascadian 2006-09-17 updated in preparation for release 494 Vagrant Cascadian 2006-09-17 handle more cases of booleans 493 Vagrant Cascadian 2006-09-16 set X_VIDEORAM for ltsp 4.x compatibility 492 Vagrant Cascadian 2006-09-16 added X_VIDEO_RAM variable 491 Vagrant Cascadian 2006-09-15 split mtab and daemon handling into separate plugins 490 Vagrant Cascadian 2006-09-15 split init whitelisting into separate plugin 489 Vagrant Cascadian 2006-09-15 add plugin directory for custom plugins (such as CDDs) 488 Vagrant Cascadian 2006-09-15 [merge] merge note about plugins (thanks gideon) 487 Vagrant Cascadian 2006-09-15 update to include program name in the plugins dir 486 Vagrant Cascadian 2006-09-15 - implement very crude hackish help command - change -h option be help output 485 Vagrant Cascadian 2006-09-15 no longer need stupid SCREEN_10 hack 484 Vagrant Cascadian 2006-09-12 force symlink creation 483 Vagrant Cascadian 2006-09-12 updated changelog 482 Vagrant Cascadian 2006-09-10 add --chroot option to name the chroot something other than ARCH 481 Vagrant Cascadian 2006-09-09 skip chroots without /bin/true, report which we are updating 480 Vagrant Cascadian 2006-09-09 put LTSP_CHROOT variable for the installation path into /etc/ltsp_client 479 Vagrant Cascadian 2006-09-09 ensure /etc/nbd-client exists in the chroot, so it can be mounted 478 Vagrant Cascadian 2006-09-09 move root password handling later 477 Vagrant Cascadian 2006-09-09 move handling of /etc/exports later and to the finalization phase 476 Vagrant Cascadian 2006-09-09 fix typo: pxeclient.0 -> pxelinux.0 475 Vagrant Cascadian 2006-09-09 document need to touch /etc/nbd-client 474 Vagrant Cascadian 2006-09-09 NBD_SERVER_OPTS variable to define other nbd server options 473 Vagrant Cascadian 2006-09-09 properly unset SECURITY_MIRROR if set to none 472 Vagrant Cascadian 2006-09-09 changelog: nbdswapd, disabling of security mirror, close man page bug 471 Vagrant Cascadian 2006-09-08 - added RUN_MKSWAP to call mkswap - renamed $tmp to $SWAP - simplify setting default values by placing before the configuration file 470 Vagrant Cascadian 2006-09-08 install nbdswapd 469 Vagrant Cascadian 2006-09-08 documented using nbdswapd 468 Vagrant Cascadian 2006-09-08 added wrapper for nbd-server to create and remove swap files as needed 467 Vagrant Cascadian 2006-09-08 allow disabling security mirror by passing --security-mirror none 466 Vagrant Cascadian 2006-09-07 update changelog 465 Vagrant Cascadian 2006-09-07 if daemon is installed, use it to start sdm (password prompting may not work without it) 464 Vagrant Cascadian 2006-09-07 divert /etc/mtab and point /etc/mtab to /proc/mounts 463 Vagrant Cascadian 2006-09-07 apt-get update now runs after locales have been generated 462 Vagrant Cascadian 2006-09-07 install locales as part of debootstrap and generate locales immediately after debootstrap. 461 Vagrant Cascadian 2006-09-07 add variable to include files in initial debootstrap run 460 Vagrant Cascadian 2006-09-07 let dependency resolution install ldm. 459 Vagrant Cascadian 2006-09-07 do not output messages when called from kernel postinst/postrm 458 Vagrant Cascadian 2006-09-07 only call chrooted /bin/true if it is present 457 Vagrant Cascadian 2006-09-07 plugin to clean the package cache when install is finished. 456 Vagrant Cascadian 2006-09-07 fix typo in dpkg-divert for policy-rc.d script 455 Vagrant Cascadian 2006-09-07 make mkelf-linux options a variable 454 Vagrant Cascadian 2006-09-07 whitespace consistancy 453 Vagrant Cascadian 2006-09-07 handle how gdm strangely uses /etc/X11/default-display-manager 452 Vagrant Cascadian 2006-09-07 when hostname is "(none)", also reset hostname variable. 451 Vagrant Cascadian 2006-09-06 commandline option to select kernel package instead of autodetecting 450 Vagrant Cascadian 2006-09-06 updated and reorganized changelog 449 Vagrant Cascadian 2006-09-06 add dependency on netbase (ldminfod uses inetd) 448 Vagrant Cascadian 2006-09-06 [merge] merge support for locales 447 Vagrant Cascadian 2006-09-06 add python dependency for ldminfod 446 Vagrant Cascadian 2006-09-06 [merge] merge language and session selection support: - ldm and greeter/gtk: include code to select language and session - added ldminfod (displays locales, x sessions and window managers) other fixes: - move 010-etc-hosts plugin to common - fix usplash breakage with ldm 445 Vagrant Cascadian 2006-09-06 [merge] merge plugin modularization: - split load_plugins function into /usr/share/ltsp/plugins/functions - ltsp-build-client gets it's own plugin dir 444 Vagrant Cascadian 2006-09-06 use true as a no-op. 443 Vagrant Cascadian 2006-09-06 example to use dnsmasq as a dhcp server 442 Vagrant Cascadian 2006-09-06 added server/doc/examples dir, move qemu-ltsp to examples 441 Vagrant Cascadian 2006-09-06 if a viable x-display-manager is installed, don't default to ldm/sdm/startx 440 Vagrant Cascadian 2006-09-05 versioned dependency on python >= 2.4 instead of python2.4 439 Vagrant Cascadian 2006-09-05 switch back to default python instead of python2.4 438 Vagrant Cascadian 2006-09-05 added readme to explain how to build a client chroot, and what support is available for varous hardware architectures. 437 Vagrant Cascadian 2006-09-05 run sdm on the appropriate terminal 436 Vagrant Cascadian 2006-09-04 mention recent changes 435 Vagrant Cascadian 2006-09-04 mention --help to list all available options 434 Vagrant Cascadian 2006-09-04 update ltsp-build-client man page: - remove ubuntu-centrism - re-worded text for description and most options - removed obsolete and distro-specific options 433 Vagrant Cascadian 2006-08-31 get rid of lintian warning with postinst script that sources confmodule 432 Vagrant Cascadian 2006-08-31 removed unprintable character that was causing lintian warnings 431 Vagrant Cascadian 2006-08-31 install manpage for ldm 430 Vagrant Cascadian 2006-08-31 manpage for ldm 429 Vagrant Cascadian 2006-08-31 tweak rules to insall manpages for ltsp-client, too. 428 Vagrant Cascadian 2006-08-30 inlude plugins documentation ltsp-server package 427 Vagrant Cascadian 2006-08-30 document the plugins system 426 Vagrant Cascadian 2006-08-30 add documentation about swap and workstation-style installs 425 Vagrant Cascadian 2006-08-30 install bug helpers 424 Vagrant Cascadian 2006-08-30 bug reporting script to probe for installed packages in chroot(s) 423 Vagrant Cascadian 2006-08-30 drop recommends on nbd-client, it's already a dependency. 422 Vagrant Cascadian 2006-08-29 install getltscfg manpage 421 Vagrant Cascadian 2006-08-29 manpage for getltscfg 420 Vagrant Cascadian 2006-08-28 bugfix for whitelisting 419 Vagrant Cascadian 2006-08-28 only add localdev ssh options if configured for localdev 418 Vagrant Cascadian 2006-08-28 [merge] merge with mainline: localdev and language support in ldm, whitespace fixes 417 Vagrant Cascadian 2006-08-28 whitespace correction 416 Vagrant Cascadian 2006-08-28 only run the rc whitelisting code if there is something whitelisted 415 Vagrant Cascadian 2006-08-28 only set "ips" variable once, using the "ip" command. 414 Vagrant Cascadian 2006-08-28 only update ssh keys in chroots with an /etc/ssh directory 413 Vagrant Cascadian 2006-08-28 overwrite /etc/hosts on boot, not just append to it 412 Vagrant Cascadian 2006-08-27 prefer tftpd-hpa over atftpd, as it's cofigured properly for ltsp out of the box 411 Vagrant Cascadian 2006-08-24 bugfix: tweak /etc/hostname instead of /etc/hosts 410 Vagrant Cascadian 2006-08-23 mention recent changes 409 Vagrant Cascadian 2006-08-23 build-depend on po-debconf 408 Vagrant Cascadian 2006-08-23 only install udhdpc on sarge 407 Vagrant Cascadian 2006-08-22 recommend esound for ltsp-client 406 Vagrant Cascadian 2006-08-22 recommend nbd-server and nbd-client 405 Vagrant Cascadian 2006-08-22 add qemu-ltsp script to examples 404 Vagrant Cascadian 2006-08-22 added wrapper script to test with qemu 403 Vagrant Cascadian 2006-08-21 mention dropping inetd/netbase dependencies 402 Vagrant Cascadian 2006-08-21 remove dependency on netbase, as both atftpd and tftpd-hpa depend on it. 401 Vagrant Cascadian 2006-08-21 check for initrd-netboot-tools in the chroot 400 Vagrant Cascadian 2006-08-20 increment version and mention recent changes 399 Vagrant Cascadian 2006-08-20 versioned dependency on netbase, insead of openbsd-inetd | netkit-inetd 398 Vagrant Cascadian 2006-08-20 change all packages to priority "extra" to satisfy debian policy 3.7.2.1, section 2.5 397 Vagrant Cascadian 2006-08-20 use lsb_release to set default dist 396 Vagrant Cascadian 2006-08-19 depend on initramfs-tools 0.73e, which implements conf.d handling correctly 395 Vagrant Cascadian 2006-08-19 move initramfs-tools hook from /etc/initramfs-tools/conf.d/ to /usr/share/initramfs-tools/conf.d (so it's removed on package removal). 394 Vagrant Cascadian 2006-08-19 no need to set NFSOPTS anymore, default for initramfs-tools works 393 Vagrant Cascadian 2006-08-17 set background color to white for debian theme 392 Vagrant Cascadian 2006-08-17 [merge] merge with ubuntu: - include changelog entries from 0.93 - re-insert missing changelog entry from 0.87debian2 - do not merge priority change for ldm theme 391 Vagrant Cascadian 2006-08-17 mention change to update-kernels running on kernel install 390 Vagrant Cascadian 2006-08-17 create relative symlink for nbi images 389 Vagrant Cascadian 2006-08-17 versioned nbi does not include .old when linking nbi.img.old, so hard-code "nbi.img-$version" 388 Vagrant Cascadian 2006-08-17 check for existing nbi image in $BOOT 387 Vagrant Cascadian 2006-08-17 only make nbi symlink if real nbi file exists 386 Vagrant Cascadian 2006-08-17 call update-client from kernel postinst/postrm hooks 385 Vagrant Cascadian 2006-08-17 support updating a specific kernel 384 Vagrant Cascadian 2006-08-15 mention openbsd-inetd preference and close debian bug #382681 383 Vagrant Cascadian 2006-08-15 prefer openbsd-inetd over netkit-inetd 382 Vagrant Cascadian 2006-08-13 ldm really depends on python2.4 now 381 Vagrant Cascadian 2006-08-10 fix typo 380 Vagrant Cascadian 2006-08-10 [merge] merge sparc fixes to update-kernels 379 Vagrant Cascadian 2006-08-10 mention python2.4 dependency 378 Vagrant Cascadian 2006-08-10 depend on python2.4 377 Vagrant Cascadian 2006-08-10 switch back to python2.4 376 Vagrant Cascadian 2006-08-09 use the lsb_release short form to set VENDOR (instead of extra call to awk) 375 Vagrant Cascadian 2006-08-09 use the lsb_release short for to set VENDOR (instead of extra call to sed) 374 Vagrant Cascadian 2006-08-09 mention dhcpd.conf example and close bug 373 Vagrant Cascadian 2006-08-09 include example dhcpd.conf 372 Vagrant Cascadian 2006-08-09 debian theme changes 371 Vagrant Cascadian 2006-08-09 give debian theme highest priority 370 Vagrant Cascadian 2006-08-09 improved background for debian theme 369 Vagrant Cascadian 2006-08-08 depend on python >= 2.4 (since we removed subprocess.py) 368 Vagrant Cascadian 2006-08-08 mention subprocess.py removal and close debian bug #380859 367 Vagrant Cascadian 2006-08-08 remove subprocess.py (included for sarge backport) to comply with python policy 366 Vagrant Cascadian 2006-08-08 updated debian/changelog 365 Vagrant Cascadian 2006-08-08 check for vmlinux* and vmlinuz* for symlink versioning 364 Vagrant Cascadian 2006-08-08 mark update-kernels as executable 363 Vagrant Cascadian 2006-08-08 move 035-update-kernels back to common (works with new plugin ordering) 362 Vagrant Cascadian 2006-08-08 [merge] merge vagrant-update-kernels: - separate directory for each ltsp client install - moved network boot dependencies into ltsp-client - use same boot prompt arguments for different architectures - boot prompt arguments are configurable - combined nbi image generation code for multiple architectures/tools - symlink nbi images if kernel is a symlink 361 Vagrant Cascadian 2006-08-07 - move rootpass so it prompts for the password (if enabled) at the very end. 360 Vagrant Cascadian 2006-08-07 [merge] merge new plugin ordering from vagrant-new-plugins 359 Vagrant Cascadian 2006-08-06 only copy file if it exists 358 Vagrant Cascadian 2006-08-06 prompt for root password in the finalization phase. 357 Vagrant Cascadian 2006-08-06 fix typo: promt -> prompt 356 Vagrant Cascadian 2006-08-05 update-kernels needs to be run after the kernel gets installed (Debian/030-late-packages) 355 Vagrant Cascadian 2006-08-05 simplify handling of vmlinuz and vmlinux copying 354 Vagrant Cascadian 2006-08-04 [merge] merge mount-proc into common plugins 353 Vagrant Cascadian 2006-08-04 bugfix: put quotes around clients 352 Vagrant Cascadian 2006-08-04 plugin to update the ssh keys 351 Vagrant Cascadian 2006-08-04 added plugin to update the kernels 350 Vagrant Cascadian 2006-08-04 only set PXELINUX_CMDLINE if not already set 349 Vagrant Cascadian 2006-08-04 define PXELINUX_CMDLINE variable, and set for ubuntu 348 Vagrant Cascadian 2006-08-03 - install initramfs-tools/conf.d/ltsp into /etc/initramfs-tools/conf.d as a workaround for debian bug #381315 347 Vagrant Cascadian 2006-08-03 [merge] merge with pkg-ltsp main 346 Vagrant Cascadian 2006-08-03 [merge] merge changes from mainline, except changes 020-init-image (already included better fix) 345 Vagrant Cascadian 2006-08-03 install initramfs-tools/conf.d/ltsp hooks 344 Vagrant Cascadian 2006-08-03 remove hacks to initramfs-tools and use initramfs-tools/conf.d plugin 343 Vagrant Cascadian 2006-08-01 bugfix: set MODULES=netboot 342 Vagrant Cascadian 2006-08-01 use initramfs-tools/conf.d if available 341 Vagrant Cascadian 2006-08-01 bugfix: only configure for initrd-netboot-tools when initrd-netboot-tools is installed 340 Vagrant Cascadian 2006-07-30 bugfix: actually test that the package is installed 339 Vagrant Cascadian 2006-07-27 only set values if not already set 338 Vagrant Cascadian 2006-07-27 update with enable-popcon text 337 Vagrant Cascadian 2006-07-27 handle another combination of binary and configuration file for initramfs-tools 336 Vagrant Cascadian 2006-07-26 [merge] merge fixes to debian/control after merge with ubuntu 335 Vagrant Cascadian 2006-07-26 [merge] add /etc/hosts.ltsp to /etc/hosts on boot if present 334 Vagrant Cascadian 2006-07-26 [merge] merge code to ltsp-update-keys to add a static file of ssh_known_hosts entries 333 Vagrant Cascadian 2006-07-26 mention dropping of recommends on ubuntu-thin-client 332 Vagrant Cascadian 2006-07-26 drop recommends on ubuntu-thin-client (closes: #376898) 331 Vagrant Cascadian 2006-07-26 document USE_LOCAL_SWAP 330 Vagrant Cascadian 2006-07-26 USE_LOCAL_SWAP for swap on local disks (from patch by Petter Reinholdtsen) 329 Vagrant Cascadian 2006-07-24 mention gtk2-engines and popularity-contest option 328 Vagrant Cascadian 2006-07-24 add versioned dependency on gtk2-engines in preference to gtk2-engines-clearlooks 327 Otavio Salvador 2006-07-22 Move changelog to 0.92debian1. 326 Otavio Salvador 2006-07-22 [merge] Sync with Ubuntu Edgy branch. 325 Oliver Grawert 2006-07-21 [merge] merge vagrants popcon support for thin clients and whitespace fixes 324 Oliver Grawert 2006-07-20 make ltsp-keys executable 323 Oliver Grawert 2006-07-20 add a /etc/network/if-up.d/ltsp-keys script to copy the sshkeys on every interface start, make ltsp-update-sshkeys use logger for output and log to syslog and add descriptive error messages, this avoids breakage if the server IP was changed 322 Oliver Grawert 2006-07-18 add linewrap to udeb postinst and fix a syntax error 321 Oliver Grawert 2006-07-18 update the udeb to the latest installer code without weird "env" calls 320 Oliver Grawert 2006-07-18 make sure linux is set as terminal type so the udeb doesnt fail in the installer 319 Oliver Grawert 2006-07-14 fix wrong kernel selection on ubuntu 318 Oliver Grawert 2006-07-03 [merge] mrege otavios changes 317 Oliver Grawert 2006-07-03 [merge] merge debian changes modulo debian/control changes 316 Oliver Grawert 2006-06-29 moved 010-chroot-tagging from Debian plugins to common 315 Oliver Grawert 2006-06-29 remove the hack to 020-rootpath (touching /etc/ltsp_chroot 314 Oliver Grawert 2006-06-27 changelog 313 Oliver Grawert 2006-06-27 quiten down update-rc.d in rc_cleanup 312 Oliver Grawert 2006-06-26 fixed broken RC*_WHITELIST variables 311 Oliver Grawert 2006-06-26 made the source work again to have a usable package: fixed broken eval_gettext quoting of all strings, added a line that sources gettext.sh to ltsp-build-client to make it work at all. added a touch $ROOT/etc/ltsp_chroot to the 020-rootpath plugin to make ltsp-client installable again. changed default distro to edgy. 310 Oliver Grawert 2006-06-22 changelog 309 Oliver Grawert 2006-06-22 [merge] merge debian modularization changes and fixes in the upstream branch 308 Oliver Grawert 2006-05-26 [merge] merge the dapper tree 307 Oliver Grawert 2006-05-26 changelog 306 Oliver Grawert 2006-05-15 [merge] merged changes from dapper package 305 Oliver Grawert 2006-04-25 added -o Acquire::gpgv::Options::=--ignore-time-conflict to apt-get update to handle broken BIOS clock settings 304 Oliver Grawert 2006-04-24 fixed changelog 303 Oliver Grawert 2006-04-02 [merge] merge with petters ubuntufixes branch 302 Oliver Grawert 2006-03-09 changelog 301 Oliver Grawert 2006-03-09 fixed ssh_known_hosts creation to not depend on ssh-keyscan 300 Oliver Grawert 2006-03-09 [merge] merged petters recent cleanup changes to debian/rules 299 Oliver Grawert 2006-03-09 submitted the patch from David Ellingsworth to split the ROOT variable into ROOT=$BASE/$ARCH, removes the --root option adds a --base option instead, thanks David 298 Oliver Grawert 2006-03-09 [merge] merged with peres ltsp-ubuntufixes branch 297 Oliver Grawert 2006-03-09 changelog 296 Oliver Grawert 2006-03-05 fix typo in ltsp-server description 295 Oliver Grawert 2006-03-04 fix indentation in ltsp-client.init harder :P 294 Oliver Grawert 2006-03-04 fix indentation in ltsp-client.init 293 Oliver Grawert 2006-03-04 fix indentation error in X_MODE code of ltsp-client-setup 292 Oliver Grawert 2006-03-04 remove the unused configure_sound call in the ltsp-client-setup init script, thats haldled in ltsp-client since some time 291 Oliver Grawert 2006-03-04 changelog 290 Oliver Grawert 2006-03-04 move rc_cleanup function to the set of other functions at the top of ltsp-build-client, make it use update-rc.d and be less noisy 289 Oliver Grawert 2006-03-04 merge rev. 243-245 from http://developer.skolelinux.no/~pere/bzr-archives/ltsp-ubuntufixes/, bugfix to handle init.d scripts which are substrings of other scripts, like udev and udev-mtab. rewrite of init.d cleaning to avoid code duplication. 288 Oliver Grawert 2006-03-04 merge http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ubuntufixes/ rev. 238, fix sdm dependency of ltsp-client 287 Oliver Grawert 2006-02-24 changelog 286 Oliver Grawert 2006-02-24 clean up duplicated esd startup, slipped through in a merge 285 Oliver Grawert 2006-02-23 changelog 284 Oliver Grawert 2006-02-23 add proper python tempfile handling to the xauth code 283 Oliver Grawert 2006-02-23 merge -r234..235 from http://developer.skolelinux.no/~pere/bzr-archives/ltsp-ubuntufixes/, xauth handling 282 Oliver Grawert 2006-02-23 changelog 281 Oliver Grawert 2006-02-23 add shutdown function to ldm to easily shut down the clients 280 Oliver Grawert 2006-02-23 add shutdown icons to the themes 279 Oliver Grawert 2006-02-23 changelog 278 Oliver Grawert 2006-02-23 merge -r228..229 http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ubuntufixes/, option for ltsp-build-client to add additional keys to the apt keyring in the chroot 277 Oliver Grawert 2006-02-23 merge -r229..230 http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ubuntufixes/, adds option to load debconf pre-seeding files in the chroot to ltsp-build-client 276 Oliver Grawert 2006-02-23 merge -r230..231 http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ubuntufixes/, RCFILE handling 275 Oliver Grawert 2006-02-23 changelog 274 Oliver Grawert 2006-02-23 added alternative handling to ldm for easier theme selection 273 Oliver Grawert 2006-02-22 merged revision 225-228 from http://developer.skolelinux.no/~pere/bzr-archives/pere-sound/, adds nasd support and several code improvements, removed the syslog code from the initfunction 272 Oliver Grawert 2006-02-22 merge http://developer.skolelinux.no/~pere/bzr-archives/ltsp-ubuntufixes/ rev 237 from petter (Fall pack to mouse preseeding if inputattach is missing.) 271 Oliver Grawert 2006-02-22 merged http://developer.skolelinux.no/~pere/bzr-archives/ltsp-ubuntufixes/ 233 (handling of older gnomecanvas version for ld, 270 Oliver Grawert 2006-02-22 changelog 269 Oliver Grawert 2006-02-22 fix ltsp-client -> ldm relationship, add ldm to EARLY_PACKAGES, add x-display-manager back to ltsp-client dependencys 268 Oliver Grawert 2006-02-17 revert the x-display-manager dependency in ltsp-client, it breaks CD rom installs and the systme ends up with gdm being installed, needs further sorting if we want to keep x-display-manager there 267 Oliver Grawert 2006-02-17 changelog 266 Oliver Grawert 2006-02-17 add powerpc support to ltsp-update-kernels, make it handle vmlinux images, yaboot copying and create yaboot.conf 265 Oliver Grawert 2006-02-17 changelog 264 Oliver Grawert 2006-02-17 KERNEL_ARCH for amd64 must be amd64-generic *sigh* 263 Oliver Grawert 2006-02-16 changelog 262 Oliver Grawert 2006-02-15 cleaning up of startup links in rcS.d and rc2.d based on whitelist variables (RC2_WHITELIST RCS_WHITELIST) 261 Oliver Grawert 2006-02-12 merged patch 236 from http://developer.skolelinux.no/~pere/bzr-archives/ltsp-ubuntufixes/ (fix bashism in client/ltsp_functions) 260 Oliver Grawert 2006-02-08 changelog 259 Oliver Grawert 2006-02-08 fix typos in EARLY_PACKAGES 258 Oliver Grawert 2006-02-08 fix the kernel handling for different architectures, only install linux-image-$(architecture), not the restricted modules (low memory spec) 257 Oliver Grawert 2006-02-08 changelog 256 Oliver Grawert 2006-02-08 fixed typo (usplash instead of usplas) 255 Oliver Grawert 2006-02-08 remove esound, inputattach, usplash as hard dependencys for ltsp-client and move them to EARLY_PACKAGES in ltsp-build-client to make debian more happy 254 Oliver Grawert 2006-02-08 merge with vagrant cascadian, add x-display-manager as optional dependency to ltsp-client, make ltsp-client fall back to sdm and then to startx if ldm isnt installed 253 Oliver Grawert 2006-02-08 tweak the code of initramfs-tools instead of initrd-netboot-tools for netbooting 252 Oliver Grawert 2006-02-07 changelog 251 Oliver Grawert 2006-02-07 indeed actually add the mirrors the the newly generated sources.list 250 Oliver Grawert 2006-02-07 changelog 249 Oliver Grawert 2006-02-07 merged revision 231-233 from http://pkg-ltsp.alioth.debian.org/bzr/main/ (remove debootstrap generated sources.list, but keep option for extra and security mirrors, since debian needs that) 248 Oliver Grawert 2006-02-06 changelog 247 Oliver Grawert 2006-02-06 latest inputattach is available on all arches, fixing debian/control accordingly to use it as a dependency for ltsp-client everywhere 246 Oliver Grawert 2006-02-03 changelog 245 Oliver Grawert 2006-02-03 finally add usplash to ltsp-client 244 Oliver Grawert 2006-02-03 make dependency on inputattach arch specific, it exists only on i386 243 Oliver Grawert 2006-02-03 merge rev 226-228 from http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ubuntufixes/ (simplifies ARCH and ROOT handling) 242 Oliver Grawert 2006-02-03 cleanly wrap the xkb options to not run debconf communicate for empty values 241 Oliver Grawert 2006-02-03 re-add preseeding option for 3 button mouse emulation and wrap it properly to not be executed if not set, added comments 240 Oliver Grawert 2006-02-03 only run preseeding of defaul color depth if there is really a value set in lts.conf 239 Oliver Grawert 2006-02-03 add sane defaults for usplash to the ltsp-client-setup initscript 238 Oliver Grawert 2006-02-03 typo in changelog 237 Oliver Grawert 2006-02-02 changelog 236 Oliver Grawert 2006-02-02 use inputattach for serial mice in ltsp-client.ltsp-client-setup.init, add inputattach to the ltsp-client dependencys 235 Oliver Grawert 2006-02-02 fix typo in the X_MODE line of ltsp-client-setup.init 234 Oliver Grawert 2006-02-01 changelog 233 Oliver Grawert 2006-02-01 drop the adding of mousedev to /etc/modules in ltsp-build-client, its built into the kernel now 232 Oliver Grawert 2006-02-01 changed the default mirror to archive.ubuntu.com in ltsp-build-client 231 Oliver Grawert 2006-02-01 changed the MODULES= line in ltsp-build-client from none to netboot to make use of the new initramfs feature 230 Oliver Grawert 2006-02-01 [merge] merged fix (drop esddsp from ldm) from http://people.ubuntu.com/~ogra/bzr-archive/ltsp/sound/ 229 Oliver Grawert 2006-01-28 changelog 228 Oliver Grawert 2006-01-13 [merge] merged fix to replace sources.lits in the chroot instead of appending to it 227 Oliver Grawert 2006-01-10 changelog 226 Oliver Grawert 2006-01-10 [merge] merge sound support from http://people.ubuntu.com/~ogra/bzr-archive/ltsp/sound/ 225 Matt Zimmerman 2005-12-12 changelog 224 Matt Zimmerman 2005-12-12 [merge] Merge http://people.ubuntu.com/~ogra/bzr-archive/ltsp/fixes/ 223 Matt Zimmerman 2005-12-12 changelog 222 Matt Zimmerman 2005-12-12 [merge] Merge Oliver's new ldm 221 Matt Zimmerman 2005-12-05 Update changelog 220 Matt Zimmerman 2005-12-05 Use find rather than ls for arch enumeration 219 Matt Zimmerman 2005-12-05 [merge] Merge http://people.ubuntu.com/~ogra/bzr-archive/ltsp/multiarch/ 218 Matt Zimmerman 2005-12-05 Restore TODO 217 Matt Zimmerman 2005-11-23 [merge] Merge http://llama.freegeek.org/~vagrant/bzr-archives/ltsp/ 216 Matt Zimmerman 2005-11-23 [merge] Merge http://projetos.ossystems.com.br/~otavio/bzr/ltsp/oss-ubuntu 215 Matt Zimmerman 2005-11-18 changelog 214 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-77 Patches applied: * pere@hungry.com--2005/ltsp--debianfixes--0--patch-42 Use same rule sets for sarge, etch and sid. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-68 Use same rule sets for sarge, etch and sid. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-69 Add dependency on debconf-utils, as ltsp-build-client uses debconf-get-selections * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-70 Add dependency on openssh-client (or ssh), as ltsp-update-sshkeys uses ssh-keyscan. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-71 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-204. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-72 Generate simple fstab on the client, to quiet down fsck during boot. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-73 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-205. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-74 Add french debconf translation by Jean-Marc Chaton. Closes debian bug #337044. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-75 Update Standards-Version from 3.6.1 to 3.6.2. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-76 Add Czech debconf translation by Miroslav Kure. Closes debian bug #338842. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-77 Enable fontserver preseeding, as dexconf in experimental support it and we want to test it when it start working. * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-36 add dependency on openssh-client (or ssh), as ltsp-update-sshkeys uses ssh-keyscan * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-37 add dependency on debconf-utils, as ltsp-build-client uses debconf-get-selections 213 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-67 Patches applied: * pere@hungry.com--2005/ltsp--debian--0--patch-90 Correct path to initramfs files, incorrectly changed by previous merges. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-67 Merge from vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 to patch-61. * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-9 support network booting on alpha with netabootwrap * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-10 correct typo: mkvmlinuz -> netabootwrap * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-11 add priority critical to X configuration * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-42 merge pere@hungry.com--2005/ltsp--debian--0: split out ldm, drop suggests on lessdisks, implement mouse configuration options * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-43 merge matt.zimmerman@canonical.com/ltsp--main--0: bindmount fixes and features * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-44 merge matt.zimmerman@canonical.com/ltsp--main--0 to patch-192 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-45 merge matt.zimmerman@canonical.com/ltsp--main--0 to patch-194 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-46 merge matt.zimmerman@canonical.com/ltsp--main--0 to patch-195 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-47 merge vagrant@freegeek.org--2005/ltsp--debianfixes--0: support for netboot on alpha * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-48 merge vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-11: add priority critical to x configuration * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-50 merge matt.zimmerman@canonical.com/ltsp--main--0--patch-196 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-51 apply pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-38: LSB init.d dependency info * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-52 apply pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-37 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-53 drop special handling of mkvmlinuz- it is already handled in kernel post-install scripts * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-54 apply ltsp--debianfixes--0--patch-20: ldm arch-independent * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-55 merge matt.zimmerman@canonical.com/ltsp--main--0 to patch-198 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-56 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 to patch-60 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-57 replay pere@hungry.com--2005/ltsp--debian--0--patch-90: fix initramfs file location * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-58 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 to patch-63 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-59 remove duplicate entry for boottime.kmap handling * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-60 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 to patch-66 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-61 drop /var/cache/debconf from rw_dirs, it is now in temp_copy_dirs 212 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-66 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-64 Merge already included ldm patch from vagrant. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-65 Undu changes to install patch for initramfs scripts. Not sure why these changes happened. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-66 Typo. * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-49 ldm depedency on xservers 211 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-63 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-63 Merge a few patches from vagrant, to update ldm dependencies and architacture. * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-17 ldm should depend on an x server * vagrant@freegeek.org--2005/ltsp--debianfixes--0--patch-20 make ldm architecture-independent 210 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-62 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-62 Preseed X keyboard settings based on the servers settings. 209 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-61 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-58 Set umask to 022 before copying files into tftpboot/, to make sure the files are readable for the client. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-59 Make sure to umount when the build fail. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-60 Try to avoid starting daemons in the chroot during creation. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-61 Merge matt.zimmerman@canonical.com/ltsp--main--0 up to patch-198. 208 Matt Zimmerman 2005-11-18 [merge] merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-57 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-54 Improve the error message when /var/lib/tftpboot/ltsp is missing. Closes debian bug #331229. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-55 Make sure to exit if /var/lib/tftpboot/ltsp is missing. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-56 Udeb uses debconf, and should depend on ${misc:Depends}. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-57 Make sure ltsp-server-standalone installs properly even when dhcp3-server init.d script fail to restart. 207 Matt Zimmerman 2005-11-18 [merge] Merge up to pere@hungry.com--2005/patch-log/patch-53 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-51 Update /etc/exports when the client environment is built, not when the ltsp-server package is installed. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-53 Let ltsp-server depend on iproute, to find the 'ip' command used by ltsp-update-sshkeys. 206 Matt Zimmerman 2005-10-23 [merge] Merge pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-52 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-52 Make sure the ltsp-build-client script do not hang when installing packages reading from stdin. 205 Matt Zimmerman 2005-10-23 [merge] Merge with pere Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-49 Merge ltsp-client-builder udeb into LTSP build tree. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-50 Add norwegian bokm�l translation. 204 Matt Zimmerman 2005-10-23 [merge] Merge with pere Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-24 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-41. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-26 Remove redundant space. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-27 Implement the mouse options currently supported by dexconf, X_MOUSE_DEVICE, X_MOUSE_PROTOCOL and X_MOUSE_EMULATE3BTN. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-28 Drop suggest on lessdisks. It make more sense to mention it in the documentation. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-29 Need to bind more files and directories on debian. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-30 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-191. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-31 Unto previous fixes. Matt seem to prefer updating the config file instead. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-32 Mention temp_copy_dirs block initializing variables. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-33 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-191. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-35 Merge matt.zimmerman@canonical.com/ltsp--main--0 (up to patch-195). * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-36 Symlink /etc/mtab to /proc/mounts to save memory. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-37 Option TELNET_HOST is actually supported (but not tested) when the telnet screen type is used. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-38 Add LSB init.d dependency info to init.d scripts. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-39 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-196. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-40 Rename function log() to logmsg(), to avoid name conflict with the function in . * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-41 Initialize struct member to avoid compile warning. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-42 Avoid comparing signed and unsigned values by casting the signed value to unsigned. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-43 The ldm package work on all archs. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-44 Improve ldm package description. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-45 Typo. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-46 Merge with matt.zimmerman@canonical.com/ltsp--main--0 (up to patch-197). * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-47 Extend ltsp-client package descripton to make it clear that this package should only be installed in the ltsp client chroot. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-48 Update the address of FSF in the copyright file. 203 Matt Zimmerman 2005-10-23 [merge] Merge with pere Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-21 New option LDM_REMOTECMD to control command executed on remote host when ldm login is performed. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-22 Document dependency of the sdm option. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-23 Move ldm into separate package, as it is useful on its own. 202 Matt Zimmerman 2005-10-23 [merge] Merge with pere Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-20 Implement support for the X_COLOR_DEPTH option. Untested. 201 Matt Zimmerman 2005-10-23 [merge] Merge with pere Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-19 Merge matt.zimmerman@canonical.com/ltsp--main--0 (up to patch-181). 200 Matt Zimmerman 2005-10-20 Remove dependency on ltsp-utils; violates the principle of least surprise 199 Matt Zimmerman 2005-10-17 [merge] Merge breezy to mainline Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-34 Don't install mdetect in ltsp-build-client; it's no longer used by X.org * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-35 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-36 Copy the server keymap as the client default * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-37 Merge ogra@ubuntu.com/ltsp--breezy--0--patch-4 * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-38 changelog * ogra@ubuntu.com/ltsp--breezy--0--patch-3 tag of matt.zimmerman@canonical.com/ltsp--breezy--0--patch-36 * ogra@ubuntu.com/ltsp--breezy--0--patch-4 made ltsp-server-standalone.postinst not break on install if IP range for dhcpd is wrong 198 Matt Zimmerman 2005-09-09 [merge] Merge with breezy Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-26 Remove duplicate listing of /var/cache/debconf from copy_dirs * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-27 Merge patch-196 * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-28 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-29 Use /etc/X11/Xsession rather than x-session-manager * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-30 Restart stuff so that changes take effect immediately * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-31 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-32 Add debian/ltsp-server-standalone.postinst * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-33 changelog 197 Matt Zimmerman 2005-08-25 Add dependency on netkit-inetd 196 Matt Zimmerman 2005-08-20 [merge] Remove duplicate listing of /var/cache/debconf from copy_dirs Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-34 Avoid listing /var/cache/debconf both in copy_dirs and temp_copy_dirs. Only needed in temp_copy_dirs. 195 Matt Zimmerman 2005-08-20 [merge] merge ltsp--breezy--0 Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-22 Create root_write_method to replace use_bind_mounts * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-23 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-24 Enable unionfs_cow conditionally * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-25 Explanatory comment 194 Matt Zimmerman 2005-08-20 [merge] Use os.environ.get() also in get_config(), to avoid crashing when XFS_SERVER is unset Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-25 Use os.environ.get() also in get_config(), to avoid crashing when XFS_SERVER is unset. 193 Matt Zimmerman 2005-08-19 [merge] merge ltsp--breezy--0 Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-14 Merge mkvmlinuz support * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-15 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-16 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-17 Set hostname to "ltsp" * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-18 ensure that /etc/hosts exists * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-19 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-20 Add /etc/hotplug/.run to rw_dirs * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-21 changelog 192 Matt Zimmerman 2005-08-19 [merge] Merge ltsp--breezy--0 Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-12 Implement temp_copy_dirs * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-13 changelog 191 Matt Zimmerman 2005-08-19 [merge] Merge ltsp--breezy--0 Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-6 Merge bindmount fixes * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-7 Make default bind mounts more liberal; didn't work for me with only these * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-8 Don't allow failures within config steps to cause an overall failure * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-9 Use copy_dirs rather than rw_dirs for /etc/X11, /var/lib/xfree86, /var/cache/debconf * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-10 Use loadkeys rather than install-keymap, to avoid involving debconf * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-11 changelog 190 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-41 Patches applied: * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-40 support mkvmlinuz for building netboot images on powerpc * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-41 drop "support" for yaboot 189 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-39 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-17 Merge matt.zimmerman@canonical.com/ltsp--main--0 (up to patch-180). * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-18 Merge with vagrant@freegeek.org--2005/ltsp--ubuntufixes--0, fixing typo, sdm permissions and the bind_mount path. * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-38 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-39 merge matt.zimmerman@canonical.com/ltsp--main--0: improved netboot handling 188 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-37 Patches applied: * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-36 merge matt.zimmerman@canonical.com/ltsp--main--0 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-37 fix check for xserver-xorg in startx 187 Matt Zimmerman 2005-08-19 Remove suggests for lessdisks lessdisks is an alternative to ltsp, not a companion 186 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-35 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-15 Add a suggests to lessdisks for ltsp-server, to allow users looking at ltsp to know about the alternative. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-16 Merge with matt.zimmerman@canonical.com/ltsp--main--0. * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-35 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 185 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-34 Patches applied: * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-34 merge pere@hungry.com--2005/ltsp--ubuntufixes--0 184 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-33 Patches applied: * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-32 use /var/lib/ltsp-client-setup for tmpfs+bind mounts * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-33 mark sdm as executable 183 Matt Zimmerman 2005-08-19 [merge] merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0 up to patch-31 Patches applied: * pere@hungry.com--2005/ltsp--debianfixes--0--base-0 tag of vagrant@freegeek.org--2005/ltsp--debian--0--patch-23 * vagrant@freegeek.org--2005/ltsp--debian--0--patch-24 merge changes from pere@hungry.com--2005/ltsp--debianfixes--0: support for excluding packages (dropped changelog modifications) * vagrant@freegeek.org--2005/ltsp--debian--0--patch-25 merge pere@hungry.com--2005/ltsp--ubuntufixes--0: support additional X keyboard options * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-24 sync with matt.zimmerman@canonical.com/ltsp--main--0 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-25 option to exclude packages from base system * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-26 support additional X keyboard options * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-27 sync with matt.zimmerman@canonical.com/ltsp--main--0: gtk greeter improvements * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-28 sync with matt.zimmerman@canonical.com/ltsp--main--0--patch-165 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-29 sync with matt.zimmerman@canonical.com/ltsp--main--0--patch-168 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-30 sync with matt.zimmerman@canonical.com/ltsp--main--0--patch-170 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-31 sync with matt.zimmerman@canonical.com/ltsp--main--0--patch-175 182 Matt Zimmerman 2005-08-18 [merge] Merge ltsp--breezy--0 Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-4 Only require one of syslinux, mknbi or yaboot * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-5 changelog 181 Matt Zimmerman 2005-08-18 [merge] Merge with breezy Patches applied: * matt.zimmerman@canonical.com/ltsp--breezy--0--base-0 tag of matt.zimmerman@canonical.com/ltsp--main--0--patch-161 * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-1 merge patch-178 from mainline, * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-2 changelog * matt.zimmerman@canonical.com/ltsp--breezy--0--patch-3 Add mknbi support 180 Matt Zimmerman 2005-08-17 Fix get_config_bool 179 Matt Zimmerman 2005-08-16 Fix test for xserver-xorg 178 Matt Zimmerman 2005-08-16 Fix USE_XFS handling 177 Matt Zimmerman 2005-08-16 [merge] Merge pere@hungry.com--2005/ltsp--ubuntufixes--0 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-11 Merge with matt.zimmerman@canonical.com/ltsp--main--0 up to patch-175. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-12 Get screen.d/startx working in debian/sarge by using xfree86 if it is installed. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-13 Avoid packages cron and logrotate on sarge. No need to rotate logs. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-14 Fix ldm startup script to not fail when USE_XFS is unset. 176 Matt Zimmerman 2005-08-15 Initialize use_xfs to False in ldm 175 Matt Zimmerman 2005-08-15 Update changelog 174 Matt Zimmerman 2005-08-15 Use X rather than Xorg 173 Matt Zimmerman 2005-08-15 Update changelog 172 Matt Zimmerman 2005-08-15 [merge] merge to pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-10 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-9 Make sure /tmp/info/ is created before trying to use it on the client. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-10 Changelog for previous patch. 171 Matt Zimmerman 2005-08-15 Fix up xfs support 170 Matt Zimmerman 2005-08-15 [merge] Merge to pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-8 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-7 Add support for USE_XFS and XFS_SERVER. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-8 Changelog entry for the last patch. 169 Matt Zimmerman 2005-08-15 [merge] Merge to pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-6 Patches applied: * pere@hungry.com--2005/ltsp--debianfixes--0--patch-1 * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-5 Changelog for the previous patch. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-6 Merge vagrant@freegeek.org--2005/ltsp--debian--0--patch-26, fixing typo in exclude support. * vagrant@freegeek.org--2005/ltsp--debian--0--patch-26 fix typo for --exclude option, display --exclude in help output 168 Matt Zimmerman 2005-08-15 Update changelog 167 Matt Zimmerman 2005-08-15 [merge] Merge up to pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-4 Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-3 Add changelog entries for the last two changes. * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-4 Add support for excluding packages, and avoid lots on debian/sarge. 166 Matt Zimmerman 2005-08-15 Fix grammar 165 Matt Zimmerman 2005-08-15 [merge] Give warning if root directory already exist Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-2 Give warning if root directory already exist. 164 Matt Zimmerman 2005-08-15 Update changelog 163 Matt Zimmerman 2005-08-15 [merge] Add support for remaining X keyboard options Patches applied: * pere@hungry.com--2005/ltsp--ubuntufixes--0--base-0 tag of matt.zimmerman@canonical.com/ltsp--main--0--patch-159 * pere@hungry.com--2005/ltsp--ubuntufixes--0--patch-1 Add support for remaining X keyboard options. 162 Matt Zimmerman 2005-08-15 ltsp-client Depends: gtk2-engines-clearlooks for the gtk greeter 161 Matt Zimmerman 2005-08-15 Further improvements to the gtk ldm greeter from Oliver Grawert 160 Matt Zimmerman 2005-08-14 Update changelog 159 Matt Zimmerman 2005-08-14 [merge] Merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-23 Patches applied: * pere@hungry.com--2005/ltsp--fixes--0--base-0 tag of matt.zimmerman@canonical.com/ltsp--main--0--patch-131 * pere@hungry.com--2005/ltsp--fixes--0--patch-1 Get ldm start script working for both 2.4 and 2.6 kernels. * pere@hungry.com--2005/ltsp--fixes--0--patch-2 * pere@hungry.com--2005/ltsp--fixes--0--patch-3 Avoid hardcoding i386 in the ssh key generating script. * vagrant@freegeek.org--2005/ltsp--debian--0--patch-18 option to enable serial console * vagrant@freegeek.org--2005/ltsp--debian--0--patch-21 add security mirror option * vagrant@freegeek.org--2005/ltsp--debian--0--patch-23 correct help for security mirror * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-14 do dist-upgrade after update * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-15 rudimentary flexibility: allow over-riding of ROOT, DIST and MIRROR variables, set defaults for breezy and sarge DISTs, new variables: COMPONENTS, EARLY_PACKAGES and LATE_PACKAGES * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-16 add commandline options * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-19 add EXTRA_MIRROR option * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-20 support file:/// urls * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-21 mount /proc before installing packages * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-27 dist-upgrade after setting debconf to noninteractive mode * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-28 add /proc to umounts * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-29 add DIST and COMPONENTS to EXTRA_MIRROR if not already present. * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-30 mount /proc before dist-upgrade * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-31 comment for dist-upgrade * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-37 exit when --help is specified * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-38 attempt to handle both xserver-xorg and xserver-xfree86 * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-40 bugfix: look for xserver-xorg dir, not empty variable * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-50 bugfix: umount /proc in the chroot * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-51 bugfix: properly handle when EXTRA_MIRROR is not set * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-52 bugfix: fix broken handling of file:/// mirrors * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-53 source configuration file if present * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-5 merge improved check for initrd-netboot-tools/initramfs-tools from vagrant@freegeek.org--2005/ltsp--fixes--0 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-6 merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-21 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-7 avoid hard-coded i386 in client directory * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-8 merged from pere@hungry.com--2005/ltsp--fixes--0: support udev/devfs for ldm * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-9 merege from vagrant@freegeek.org--2005/ltsp--fixes--0: support both xserver-xorg and xserver-xfree86 for sarge compatibility * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-10 merege from vagrant@freegeek.org--2005/ltsp--fixes--0: change defaults if DIST is sarge * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-11 merege from vagrant@freegeek.org--2005/ltsp--fixes--0: add commandline options * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-12 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: add variable and commandline to add extra mirror * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-13 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: dist-upgrade before installing additional packages * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-14 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: mount /proc before dist-upgrade * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-15 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: support file:/// urls * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-16 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: add /proc to umounts * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-17 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: add DIST and COMPONENTS to EXTRA_MIRROR if not present * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-18 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: bugfixes: properly handle emtpy EXTRA_MIRROR and file urls * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-19 merge from vagrant@freegeek.org--2005/ltsp--fixes--0: source configuration file * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-20 merge changes from vagrant@freegeek.org--2005/ltsp--debian--0: add security mirror option * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-21 merge changes from vagrant@freegeek.org--2005/ltsp--debian--0: correct help for security mirror * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-22 merge changes from vagrant@freegeek.org--2005/ltsp--debian--0: option to enable serial console * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-23 remove debian-specific TODO file 158 Matt Zimmerman 2005-08-14 [merge] Merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-4 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-32 improve check for initrd-netboot-tools/initramfs-tools, issue warning if neither is found * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-33 bugfix: check for initrd-netboot-tools/initramfs-tools in the chroot * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-4 merge improved check for initrd-netboot-tools/initramfs-tools from vagrant@freegeek.org--2005/ltsp--fixes--0 157 Matt Zimmerman 2005-08-14 [merge] Merge vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-3 Patches applied: * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--base-0 tag of matt.zimmerman@canonical.com/ltsp--main--0--patch-155 * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-1 only set default for ROOT, DIST and MIRROR if not already set * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-2 turn archive components into COMPONENTS variable * vagrant@freegeek.org--2005/ltsp--ubuntufixes--0--patch-3 add EARLY_PACKAGES and LATE_PACKAGES variables 156 Matt Zimmerman 2005-08-09 Mount tmpfs early 155 Matt Zimmerman 2005-08-09 Use echo rather than a here document to write fstab * Use echo rather than a here document to write fstab, to work around a unionfs bug where here documents in bash are currently broken 154 Matt Zimmerman 2005-08-09 Be smarter about guessing the server IP when it isn't specified 153 Matt Zimmerman 2005-08-09 Oliver's ldm glade file 152 Matt Zimmerman 2005-08-09 Update TODO 151 Matt Zimmerman 2005-08-09 default to use_bind_mounts=false 150 Matt Zimmerman 2005-08-09 Update changelog 149 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-13 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-13 added sdm session type, suggest sdm/sdm-teminal 148 Matt Zimmerman 2005-08-09 Update changelog 147 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-12 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-12 added todo file for debian 146 Matt Zimmerman 2005-08-09 Update changelog 145 Matt Zimmerman 2005-08-09 FHS compliance: Use /var/run/ltsp rather than /var/state/ltsp 144 Matt Zimmerman 2005-08-09 Let debhelper install /etc/default file 143 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-11 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-11 use /etc/default/ltsp-client-setup to get defaults for init script 142 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-10 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-10 support initrd-netboot-tools as alternative to initramfs-tools 141 Matt Zimmerman 2005-08-09 Update changelog 140 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-9 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-9 add python dependency suggested by lintian 139 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-8 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-8 mention additional authors and location of copyright on Debian systems 138 Matt Zimmerman 2005-08-09 Update changelog 137 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-5 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-5 allow ssh as alternative to openssh-server and openssh-client for sarge compatibility 136 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-4 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-4 LAST COMMIT WRONG: really added long descriptions provided by Petter Reinholdtsen 135 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-3 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-3 debian TODO file 134 Matt Zimmerman 2005-08-09 Update changelog 133 Matt Zimmerman 2005-08-09 [merge] Merge vagrant@freegeek.org--2005/ltsp--fixes--0--patch-2 Patches applied: * vagrant@freegeek.org--2005/ltsp--fixes--0--patch-2 support for tmpfs+bind mount alternative to unionfs 132 Matt Zimmerman 2005-07-06 Kill the sshd child process after x-session-manager exits 131 Matt Zimmerman 2005-07-05 Install /etc/ltsp/dhcpd.conf in ltsp-server-standalone 130 Matt Zimmerman 2005-07-05 Run apt-get clean after building the chroot 129 Matt Zimmerman 2005-07-05 Start the X server with -br 128 Matt Zimmerman 2005-07-05 Update TODO 127 Matt Zimmerman 2005-07-05 Associate ssh keys with all interface addresses 126 Matt Zimmerman 2005-07-05 Set permissions on ssh_known_hosts 125 Matt Zimmerman 2005-07-04 Remove confusing, unnecessary -o SendEnv from ssh command line 124 Matt Zimmerman 2005-07-04 Use distclean for lp_server 123 Matt Zimmerman 2005-07-04 Don't use lp_server's install target; just install the lp_server binary 122 Matt Zimmerman 2005-07-04 Don't pass an nfsroot= option via pxelinux 121 Matt Zimmerman 2005-07-04 Merge in lp_server 120 Matt Zimmerman 2005-07-04 Update lts-parameters.txt 119 Matt Zimmerman 2005-07-04 Don't create /etc/network/interfaces in ltsp-build-client 118 Matt Zimmerman 2005-07-04 Get monitor refresh/sync overrides working 117 Matt Zimmerman 2005-07-04 Tested XSERVER 116 Matt Zimmerman 2005-07-04 Set the debconf 'seen' flag to true when preseeding from ltsp-client-setup 115 Matt Zimmerman 2005-07-02 Update TODO 114 Matt Zimmerman 2005-07-02 Update TODO 113 Matt Zimmerman 2005-06-21 Implement XKBMODEL 112 Matt Zimmerman 2005-06-21 Implement X_HORZSYNC and X_VERTREFRESH parameters 111 Matt Zimmerman 2005-06-20 Update TODO 110 Matt Zimmerman 2005-06-20 Update TODO 109 Matt Zimmerman 2005-06-20 Implement ssh compression 108 Matt Zimmerman 2005-06-20 Update TODO 107 Matt Zimmerman 2005-06-20 Reorder ltsp-build-client for clarity, and add comments 106 Matt Zimmerman 2005-06-20 XKBLAYOUT is tested 105 Matt Zimmerman 2005-06-19 Call ltsp-update-sshkeys from ltsp-build-client 104 Matt Zimmerman 2005-06-19 Fix ltsp-update-sshkeys to exclude localhost properly 103 Matt Zimmerman 2005-06-19 Pass the LTSP_CLIENT environment variable via the ssh command 102 Matt Zimmerman 2005-06-18 Add dhcpd.conf example 101 Matt Zimmerman 2005-06-18 Simplify dependencies 100 Matt Zimmerman 2005-06-18 Ship an example /etc/lts.conf 99 Matt Zimmerman 2005-06-18 Change lts.conf path back to /etc/lts.conf 98 Matt Zimmerman 2005-06-18 Fix 97 Matt Zimmerman 2005-06-18 Remove universe from sources.list again 96 Matt Zimmerman 2005-06-18 Fix ltsp-update-kernels * Stop hardcoding stuff in ltsp-update-kernels * Adjust ltsp-update-kernels for the initrd.img naming scheme 95 Matt Zimmerman 2005-06-18 Simplify ltsp-build-client and remove bashisms 94 Matt Zimmerman 2005-06-17 Update for initramfs-tools 0.11 93 Matt Zimmerman 2005-06-17 Make XF86CONFIG_FILE more likely to succeed 92 Matt Zimmerman 2005-06-17 If no SCREEN_* parameters are specified, start ldm on tty7 Cope with all the fallout. 91 Matt Zimmerman 2005-06-17 Have ldm inherit the configuration from its environment 90 Matt Zimmerman 2005-06-16 Refactor lts.conf handling into ltsp_config 89 Matt Zimmerman 2005-06-16 Update lts-parameters 88 Matt Zimmerman 2005-06-16 Don't unlink /etc/X11/xorg.conf before reconfiguring 87 Matt Zimmerman 2005-06-16 Add lts-parameters.txt 86 Matt Zimmerman 2005-06-16 Honor MODULE_* in lts.conf 85 Matt Zimmerman 2005-06-16 Honor SEARCH_DOMAIN and DNS_SERVER 84 Matt Zimmerman 2005-06-16 If no SERVER parameter is specified, infer it from nfsroot= 83 Matt Zimmerman 2005-06-14 Enhance ltsp-server to automagically manage the NFS export of /opt/ltsp 82 Matt Zimmerman 2005-06-14 initramfs integration * Integrate with the new initramfs-tools hook system, thanks to Jeff Bailey - Install /usr/share/initramfs-tools/modules.d/unionfs-cow - Install /usr/share/initramfs-tools/scripts/init-bottom/unionfs-cow - Depend on initramfs-tools (>= 0.7) - Remove some of the initramfs hackery from ltsp-build-client - Update ltsp-build-client for initramfs-tools 0.7 syntax - Set ramdisk=/usr/sbin/mkinitramfs in ltsp-build-client * Update ltsp-update-kernels to explicitly request a read-only NFS mount (unionfs whiteout doesn't seem to work properly on a rw NFS mount which is actually read-only on the server, which is what we get otherwise) - Depends on initramfs-tools (>= 0.8) in order for the above to have an effect 81 Matt Zimmerman 2005-06-10 Suppress xserver-xorg.config warning by deleting xorg.conf 80 Matt Zimmerman 2005-06-10 0.23 79 Matt Zimmerman 2005-06-10 ltsp-client Depends: openssh-client, python-gtk2, python-glade2 78 Matt Zimmerman 2005-06-10 Fixes to ltsp-client-setup * Handle null XSERVER correctly in ltsp-client-setup * Suppress xserver-xorg.config warning by deleting xorg.conf before reconfiguring 77 Matt Zimmerman 2005-06-10 Have ltsp-build-client automate more hacks * Have ltsp-build-client automate more of the ad-hoc stuff that's necessary to set up the client root right now (should go away later) 76 Matt Zimmerman 2005-06-09 Install ltsp-client in the client root 75 Matt Zimmerman 2005-06-09 Fix changelog 74 Matt Zimmerman 2005-06-09 Fix changelog 73 Matt Zimmerman 2005-06-09 Create /opt/ltsp 72 Matt Zimmerman 2005-06-09 Install ltsp initramfs script 71 Matt Zimmerman 2005-06-09 Add suggests to ltsp-server 70 Matt Zimmerman 2005-06-09 ltsp-server Depends: debootstrap, Recommends: openssh-server 69 Matt Zimmerman 2005-06-09 Install ltsp-update-kernels 68 Matt Zimmerman 2005-06-09 Send LTSP_CLIENT environment variable over ssh * Pass an LTSP_CLIENT environment variable to the server when using ldm, so that programs running in the session can behave differently on LTSP logins 67 Matt Zimmerman 2005-06-09 Make ldm a well-behaved screen.d client 66 Matt Zimmerman 2005-06-09 Update TODO 65 Matt Zimmerman 2005-06-08 Update TODO 64 Matt Zimmerman 2005-06-08 Add TODO 63 Matt Zimmerman 2005-06-08 Fix console number calculation in screen_session 62 Matt Zimmerman 2005-06-08 Add mousedev to /etc/modules in the client root 61 Matt Zimmerman 2005-06-08 Redirect stdin, stdout and stderr in ldm 60 Matt Zimmerman 2005-06-08 Lock the root account in the client root 59 Matt Zimmerman 2005-06-08 Whitespace 58 Matt Zimmerman 2005-06-08 Add new screen.d/ldm script * Add new screen.d/ldm script, so SCREEN_xx = ldm now works - Move X configuration into init.d/ltsp-client-setup, so that it only happens once 57 Matt Zimmerman 2005-06-08 Move screen.d to /usr/lib/ltsp 56 Matt Zimmerman 2005-06-08 Add ltsp-update-sshkeys 55 Matt Zimmerman 2005-06-08 Fix the arguments to the os.kill call in ldm 54 Matt Zimmerman 2005-06-08 Add ldm * Implement a simple display manager for the client (ldm) and a simple login dialog for use with non-XDMCP configurations 53 Matt Zimmerman 2005-06-08 fix typo 52 Matt Zimmerman 2005-06-08 Create /etc/network/interfaces and /etc/fstab 51 Matt Zimmerman 2005-06-08 Add localhost to /etc/hosts 50 Matt Zimmerman 2005-06-03 Format init script output properly 49 Matt Zimmerman 2005-06-03 Respect a custom X configuration in lts.conf (XF86CONFIG_FILE) 48 Matt Zimmerman 2005-06-03 Continue gracefully if no swap server is specified 47 Matt Zimmerman 2005-06-03 Don't enable swap in ltsp-client-setup; leave it for nbd-client 46 Matt Zimmerman 2005-06-03 Fix startx to run on the appropriate terminal 45 Matt Zimmerman 2005-06-03 Version bump 44 Matt Zimmerman 2005-06-03 Split init script - ltsp-client-setup runs in runlevel S and performs configuration - ltsp-client runs late in runlevel 2 and actually starts up the client 43 Matt Zimmerman 2005-06-03 Move init script to runlevel S 42 Matt Zimmerman 2005-06-03 Finalize 41 Matt Zimmerman 2005-06-03 Fix 40 Matt Zimmerman 2005-06-03 Default SYSLOG_HOST to the value of SERVER 39 Matt Zimmerman 2005-06-03 Update changelog 38 Matt Zimmerman 2005-06-03 use SERVER, not DEFAULT_SERVER 37 Matt Zimmerman 2005-06-03 Preseed XSERVER and XKBLAYOUT 36 Matt Zimmerman 2005-06-03 Strip TTY variable properly in startx 35 Matt Zimmerman 2005-06-03 Change lts.conf path to /etc/ltsp/lts.conf in getltscfg 34 Matt Zimmerman 2005-06-03 Fix hardcoded path, bashisms in ltsp_functions 33 Matt Zimmerman 2005-06-03 Better arch-build rule 32 Matt Zimmerman 2005-06-03 Update changelog 31 Matt Zimmerman 2005-06-03 Fix path to ltsp_functions in screen_session 30 Matt Zimmerman 2005-06-03 Really use --no-start 29 Matt Zimmerman 2005-06-03 Move X configuration into startx script 28 Matt Zimmerman 2005-06-01 Fix permissions on ltsp-update-kernels 27 Matt Zimmerman 2005-06-01 Add new stuff * Add /var/lib/tftpboot/ltsp to ltsp-server * Add ltsp-update-kernels script to ltsp-server 26 Matt Zimmerman 2005-06-01 Fix dist 25 Matt Zimmerman 2005-06-01 Do more stuff 24 Matt Zimmerman 2005-05-05 Add arch-build target to debian/rules 23 Matt Zimmerman 2005-05-05 Build-Depends: debhelper 22 Matt Zimmerman 2005-05-04 Configure networking more reasonably 21 Matt Zimmerman 2005-05-04 Reorder init 20 Matt Zimmerman 2005-05-04 Naming consistency 19 Matt Zimmerman 2005-05-04 Default syslog host to DEFAULT_SERVER 18 Matt Zimmerman 2005-05-04 Configure syslogd 17 Matt Zimmerman 2005-05-04 Create /etc/hosts 16 Matt Zimmerman 2005-05-04 Sketch out how nbd swap will work 15 Matt Zimmerman 2005-05-04 Remove /etc/hostname in chroot 14 Matt Zimmerman 2005-05-04 rules cleanup 13 Matt Zimmerman 2005-05-04 Add getltscfg 12 Matt Zimmerman 2005-05-04 Add skeleton init script for ltsp-client 11 Matt Zimmerman 2005-05-04 Add ltsp_functions 10 Matt Zimmerman 2005-05-04 Make ltsp-build-client actually work 9 Matt Zimmerman 2005-05-04 Disable binary-arch target 8 Matt Zimmerman 2005-05-04 Comment out binary-arch for now 7 Matt Zimmerman 2005-05-04 Import client bits from ltsptree 6 Matt Zimmerman 2005-05-04 Create client and server subdirs 5 Matt Zimmerman 2005-05-03 Add initial ltsp-build-client script 4 Matt Zimmerman 2005-05-03 pass -a to dh_* in binary-arch 3 Matt Zimmerman 2005-05-03 ltsp-server-standalone depends on ltsp-utils 2 Matt Zimmerman 2005-05-03 Import 1 Matt Zimmerman 2005-05-03 initial import (automatically generated log message) Use --include-merged or -n0 to see merged revisions. ldm-2.2.13/autogen.sh0000755000175000017500000000035012302300754014234 0ustar vagrantvagrant#!/bin/sh -v set -e touch ChangeLog aclocal autoheader touch stamp-h autoconf libtoolize --copy --force --automake automake --add-missing --copy --force-missing glib-gettextize --copy --force intltoolize --automake --copy --force ldm-2.2.13/Makefile.am0000644000175000017500000000076412302300754014300 0ustar vagrantvagrantSUBDIRS = po po/rc.d po/ltsp-cluster-info src man share gtkgreet themes screen.d rc.d misc wwm ltsp-cluster-info EXTRA_DIST = config.rpath autogen.sh \ intltool-extract.in \ intltool-merge.in \ intltool-update.in ACLOCAL_AMFLAGS = -I m4 ldmdir = $(pkgdatadir) ldm_DATA = locales locales: generate_locale_list.py ./generate_locale_list.py locales install-data-hook: if test ! -f $(DESTDIR)$(localstatedir)/cache/ldm ; then \ $(mkinstalldirs) $(DESTDIR)$(localstatedir)/cache/ldm; \ fi ldm-2.2.13/generate_locale_list.py0000755000175000017500000001103012302300754016751 0ustar vagrantvagrant#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2009 Ryan Niebur # # Author: Ryan Niebur # # 2009, Ryan Niebur # Vagrant Cascadian # Stéphane Graber # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, you can find it on the World Wide # Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301, USA. from subprocess import * from xml.etree import cElementTree as etree import locale import gettext import re import os import sys def build_language_map(): map = {} for element in etree.parse('/usr/share/xml/iso-codes/iso_639.xml').findall('.//iso_639_entry'): if 'iso_639_1_code' in element.attrib: map[element.attrib['iso_639_1_code']] = element.attrib['name'] elif 'iso_639_2B_code' in element.attrib: map[element.attrib['iso_639_2B_code']] = element.attrib['name'] elif 'iso_639_2T_code' in element.attrib: map[element.attrib['iso_639_2T_code']] = element.attrib['name'] return map def build_territory_map(): map = {} for element in etree.parse('/usr/share/xml/iso-codes/iso_3166.xml').findall('.//iso_3166_entry'): if 'alpha_2_code' in element.attrib: map[element.attrib['alpha_2_code']] = element.attrib['name'] return map def get_things(): myarr = [] if os.path.exists("/etc/debian_version"): cmd = ["cat", "/usr/share/i18n/SUPPORTED"] else: cmd = ["locale", "-a"] for thing in Popen(cmd, stdout=PIPE).stdout.readlines(): try: thing=str(thing.decode("utf-8").strip()) myarr.append(thing.split(".")[0].split(" ")[0]) except UnicodeDecodeError: pass return myarr def nice_name(my_locale): if my_locale == "": return "" if not re.search("_", my_locale) and len(my_locale) != 2: return "" my_locale = my_locale.split("@")[0] os.environ["LANGUAGE"] = my_locale locale.setlocale(locale.LC_ALL, '') split = my_locale.split("_") english_name = split[0] if len(split) > 1: english_territory = split[1] else: english_territory = "" if english_name in langmap: english_name = langmap[english_name] if english_territory in terrmap: english_territory = terrmap[english_territory] if len(english_name) > 0: try: translated_name = gettext.dgettext("iso_639", english_name) except: sys.stderr.write('error translating language, falling back to english: ' + my_locale + ' ' + english_name + '\n') translated_name = english_name else: translated_name = english_name if len(english_territory) > 0: try: translated_territory = gettext.dgettext("iso_3166", english_territory) except: sys.stderr.write('error translating territory, falling back to english: ' + my_locale + ' ' + english_territory + '\n') translated_territory = english_territory else: translated_territory = english_territory if len(translated_territory) > 0: return (translated_name + " (" + translated_territory + ")") else: return (translated_name) if __name__ == "__main__": if len(sys.argv) > 1: sys.stdout = open(sys.argv[1], "w") langmap = build_language_map() terrmap = build_territory_map() my_locales = get_things() for my_locale in list(set(my_locales)): try: this_nice_name = nice_name(my_locale) if len(this_nice_name) > 0 and this_nice_name != my_locale: print(my_locale + " " + this_nice_name) except UnicodeEncodeError: sys.stderr.write('unicode error encountered, skipping locale: ' + my_locale + '\n') except UnicodeDecodeError: sys.stderr.write('unicode error encountered, skipping locale: ' + my_locale + '\n') ldm-2.2.13/configure.ac0000644000175000017500000000244412302300754014527 0ustar vagrantvagrantAC_INIT([src/ldm.c],[gtkgreet/ldmgtkgreeter.c]) AC_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([m4]) PACKAGE=ldm VERSION=2.2.13 AUTHOR=sbalneav@ltsp.org AM_INIT_AUTOMAKE([$PACKAGE],[$VERSION],[$AUTHOR]) AM_MAINTAINER_MODE([enable]) AC_PROG_CC AM_PROG_CC_C_O() AC_PROG_INSTALL AC_STDC_HEADERS AC_HEADER_STDC AC_CHECK_HEADERS([syslog.h sys/wait.h fcntl.h],,AC_MSG_ERROR(Required header missing)) AC_CHECK_LIB([util],[main],[],AC_MSG_ERROR(ldm requires libutil)) PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6.0) PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= 2.6.0) PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.2) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GOBJECT_CFLAGS) AC_SUBST(GOBJECT_LIBS) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) AM_PROG_LIBTOOL IT_PROG_INTLTOOL([0.35.0]) AC_SUBST(ALL_LINGUAS) AM_GLIB_GNU_GETTEXT GETTEXT_PACKAGE=$PACKAGE AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) AC_SUBST(GETTEXT_PACKAGE) AC_OUTPUT([ Makefile src/Makefile src/plugins/ssh/Makefile src/plugins/rdesktop/Makefile share/Makefile man/Makefile po/Makefile.in gtkgreet/Makefile wwm/Makefile misc/Makefile themes/Makefile screen.d/Makefile rc.d/Makefile share/ldm-script ltsp-cluster-info/Makefile po/rc.d/Makefile.in po/rc.d/Makefile po/ltsp-cluster-info/Makefile.in po/ltsp-cluster-info/Makefile ]) ldm-2.2.13/release.conf0000644000175000017500000000020312302300754014517 0ustar vagrantvagrantNAME=$(awk -F = '/^PACKAGE=/{print $2}' configure.ac) VERSION=$(awk -F = '/^VERSION=/{print $2}' configure.ac) EXPORTCHANGELOG=yes ldm-2.2.13/README-DEVELOPMENT-POLICY0000644000175000017500000000217612302300754015700 0ustar vagrantvagrantAfter a quick discussion on coding styles, here's what we've currently got for consensus: For shell scripts: - Shell scripts should be fully posix compliant. - We will favour the use of if [ ]; then else fi, over && and ||, for clarity - When using a multi check if, exception will be using the if [ .. ] && [ .. ] || [ .. ] form, as opposed to [ .. -a .. -o .. ] form. - If a single line test is used, use test &&/|| result, and only for tests that fit on a single line. - We'll use spaces instead of tabs, and the indentation level will be 4 spaces, the same as python. For C programs: - Programs should be passed through the "indent" program periodically to clean them up. - The following indent command line should be used: indent -kr -i4 -nut -c50 -psl - K&R style (Scott's a greybeard) - 4 character tab width, and spaces instead of tabs - Align inline comments on column 50 - A newline after function definitions - All if() else blocks will have {}'s, even if only 1 line long, or Ollie will break your thumbs. - Comments will be /* */ or Scott will break the rest of your fingers. ldm-2.2.13/README0000644000175000017500000000337412302300754013124 0ustar vagrantvagrantldm is the LTSP Display Manager which handles authentication for remote desktop clients. Currently, it doesn't interface with a greeter, as this design will require a conversation with the greeter, rather than a simple "get name and password" of the existing greeter. Work on the greeter will also be done. For now, We're using a simple GTK greeter that Ollie designed. We'll make it more pretty. If you'd like to play with ldm, here's the steps. 1) Get the branch (you've obviously done this already) 2) Build ldm (standard ./configure --prefix=usr && make) 3) Copy ldm to $CHROOT/usr/sbin 4) Copy share/ldm-script to $CHROOT/usr/share/ldm 5) Copy scripts/* to $CHROOT/usr/share/ldm/rc.d 6) Install ldmgtkgreet to $CHROOT/usr/libexec/ldm Currently, most things work. Sound and Localdev seems to setup ok. The command socket for ldm now lives in /var/run/ldm_socket, snd the udev scripts have been patched up in my ltspfs-upstream branch. LDM_DIRECTX works! We've got a new scripting mechanism for startup and shutdown scripts. Right after the ssh connections been completed, "/usr/share/ldm/ldm-script start" is called, which exectutes everything called S* in the rc.d dir in the ldm share. Two environment variables are passed down: LDM_SERVER points to the server LDM is talking to, and LDM_SOCKET points to the command socket the ssh connection has set up. A three line script now replaces all the functionality of the delayed-mounter daemon. to exectute something on the server, you can simply do: ssh -M $LDM_SOCKET $LDM_SERVER "your server command here" After the X session's ended, ldm-script stop is called which looks for K* scripts. Note that the scripts are .'d so, exits in your rc scripts will be bad mojo. Have Fun! -- The LTSP Team http://www.ltsp.org ldm-2.2.13/NEWS0000644000175000017500000000011012302300754012724 0ustar vagrantvagrant2007/06/11: First cut. 2007/06/14: autoconf cleanups, added get_ipaddr ldm-2.2.13/LTSP_LOGO_COPYRIGHT0000644000175000017500000000177312302300754015222 0ustar vagrantvagrantthe file themes/ltsp/LTSP_final_300.png was downloaded from: http://www.disklessworkstations.com/ltsp-logo-license.html is licensed as follows: License Type: Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0) License Description: This license lets others remix, tweak, and build upon your work even for commercial purposes, as long as they credit DisklessWorkstations.com, LLC and license their new creations under the identical terms. This license is often compared to “copyleft” free and open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use. This is the license used by Wikipedia, and is recommended for materials that would benefit from incorporating content from Wikipedia and similarly licensed projects. a description of the license can be found here: http://creativecommons.org/licenses/by-sa/3.0/ as well as the full legal code of the license: http://creativecommons.org/licenses/by-sa/3.0/legalcode ldm-2.2.13/INSTALL0000644000175000017500000000001712302300754013264 0ustar vagrantvagrantSee the README ldm-2.2.13/COPYING0000644000175000017500000004310312302300754013271 0ustar vagrantvagrant GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ldm-2.2.13/AUTHORS0000644000175000017500000000012012302300754013276 0ustar vagrantvagrantScott Balneaves Vagrant Cascadian Warren Togami Gideon Romm ldm-2.2.13/ABOUT-NLS0000644000175000017500000023334012302300754013471 0ustar vagrantvagrant1 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of October 2006. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ GNUnet | [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] [] [] | batchelor | [] | bfd | | bibshelf | [] | binutils | [] | bison | [] [] | bison-runtime | | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | [] [] | coreutils | [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | darkstat | [] () [] | dialog | [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] | findutils | [] [] [] | flex | [] [] [] | fslint | [] | gas | | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] | gip | [] | gliv | [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | () () [] | gnucash-glossary | [] () | gnuedu | | gnulib | [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () | gramadoir | [] [] | grep | [] [] [] [] [] [] | gretl | | gsasl | | gss | | gst-plugins | [] [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | id-utils | [] [] | impost | | indent | [] [] [] | iso_3166 | [] [] | iso_3166_2 | | iso_4217 | [] | iso_639 | [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | | keytouch-editor | | keytouch-keyboa... | | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] | make | [] [] | man-db | [] () [] [] | minicom | [] [] [] | mysecretdiary | [] [] | nano | [] [] [] | nano_1_0 | [] () [] [] | opcodes | [] | parted | | pilot-qof | [] | psmisc | [] | pwdutils | | python | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | silky | | skencil | [] () | sketch | [] () | solfege | | soundtracker | [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] | texinfo | [] [] [] | textutils | [] [] [] | tin | () () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] | xchat | [] [] [] [] [] [] | xkeyboard-config | | xpad | [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ GNUnet | | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] [] [] | batchelor | [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | darkstat | [] () [] [] [] | dialog | [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | error | [] [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gip | [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnucash-glossary | [] [] | gnuedu | [] | gnulib | [] [] [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | () () [] () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] [] | gsasl | [] [] | gss | [] | gst-plugins | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] [] | impost | [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] [] | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] | libidn | [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] [] | lynx | [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | () | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | | silky | [] | skencil | [] [] | sketch | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] | textutils | [] [] [] [] [] | tin | [] () | tp-robot | [] [] [] [] | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | vorbis-tools | [] [] | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no +-------------------------------------------------+ GNUnet | | a2ps | () [] [] () | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | | cpplib | [] | cryptonit | [] | darkstat | [] [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | error | [] | fetchmail | [] [] | fileutils | [] [] | findutils | [] | flex | [] [] | fslint | [] [] | gas | | gawk | [] [] | gbiff | [] | gcal | | gcc | | gettext-examples | [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gimp-print | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] | gnubiff | | gnucash | () () | gnucash-glossary | [] | gnuedu | | gnulib | [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | | gpsdrive | () () () | gramadoir | () | grep | [] [] [] [] | gretl | | gsasl | [] | gss | | gst-plugins | [] | gst-plugins-base | | gst-plugins-good | [] | gstreamer | [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | | hello | [] [] [] [] [] [] | id-utils | [] | impost | | indent | [] [] | iso_3166 | [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] | jpilot | () () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | | libidn | [] [] | lifelines | [] | lilypond | | lingoteach | [] | lynx | [] [] | m4 | [] [] | mailutils | | make | [] [] [] | man-db | () | minicom | [] | mysecretdiary | [] | nano | [] [] [] | nano_1_0 | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] | shishi | | silky | [] | skencil | | sketch | | solfege | | soundtracker | | sp | () | stardict | [] [] | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] [] | textutils | [] [] [] | tin | | tp-robot | [] | tuxpaint | [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | vorbis-tools | [] | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +-------------------------------------------------+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +------------------------------------------------------+ GNUnet | | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] | bash | [] [] [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | darkstat | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] [] [] [] | gas | | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gimp-print | [] [] | gip | [] [] [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () | gnucash | () [] | gnucash-glossary | [] [] [] | gnuedu | | gnulib | [] [] [] [] [] | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] | gretl | [] | gsasl | [] [] [] | gss | [] [] [] | gst-plugins | [] [] [] [] | gst-plugins-base | [] | gst-plugins-good | [] [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | impost | [] | indent | [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] [] | make | [] [] [] [] | man-db | [] [] | minicom | [] [] [] [] [] | mysecretdiary | [] [] [] [] | nano | [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | [] | psmisc | [] [] | pwdutils | [] [] | python | | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | silky | [] | skencil | [] [] [] | sketch | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | stardict | [] [] [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] | tin | () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] | xpad | [] [] [] | +------------------------------------------------------+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ GNUnet | [] | 2 a2ps | [] [] [] | 19 aegis | | 0 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 15 bash | [] | 11 batchelor | [] [] | 9 bfd | | 1 bibshelf | [] | 7 binutils | [] [] [] | 9 bison | [] [] [] | 19 bison-runtime | [] [] [] | 15 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 6 console-tools | [] [] | 5 coreutils | [] [] | 16 cpio | [] [] [] | 9 cpplib | [] [] [] [] | 11 cryptonit | | 5 darkstat | [] () () | 15 dialog | [] [] [] [] [] | 30 diffutils | [] [] [] [] | 28 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 error | [] [] [] [] | 18 fetchmail | [] [] | 12 fileutils | [] [] [] | 18 findutils | [] [] [] | 17 flex | [] [] | 15 fslint | [] | 9 gas | [] | 3 gawk | [] [] | 15 gbiff | [] | 5 gcal | [] | 5 gcc | [] [] [] | 6 gettext-examples | [] [] [] [] [] [] | 27 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 19 gimp-print | [] [] | 12 gip | [] [] | 12 gliv | [] [] | 8 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 15 gnubiff | [] | 1 gnucash | () | 2 gnucash-glossary | [] [] | 9 gnuedu | [] | 2 gnulib | [] [] [] [] [] | 28 gnunet-gtk | | 1 gnutls | | 2 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] | 3 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] | 14 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] | 20 gpe-filemanager | [] | 6 gpe-go | [] [] | 15 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] | 20 gpe-taskmanager | [] [] [] | 20 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] | 7 gphoto2 | [] [] [] [] | 20 gprof | [] [] | 11 gpsdrive | | 4 gramadoir | [] | 7 grep | [] [] [] [] | 34 gretl | | 4 gsasl | [] [] | 8 gss | [] | 5 gst-plugins | [] [] [] | 15 gst-plugins-base | [] [] [] | 9 gst-plugins-good | [] [] [] [] [] | 20 gstreamer | [] [] [] | 17 gtick | [] | 3 gtkam | [] | 13 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 26 gutenprint | | 3 hello | [] [] [] [] [] | 37 id-utils | [] [] | 14 impost | [] | 4 indent | [] [] [] [] | 25 iso_3166 | [] [] [] [] | 16 iso_3166_2 | | 2 iso_4217 | [] [] | 14 iso_639 | [] | 14 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] | 12 keytouch | [] | 4 keytouch-editor | | 2 keytouch-keyboa... | [] | 3 latrine | [] [] | 8 ld | [] [] [] [] | 8 leafpad | [] [] [] [] | 23 libc | [] [] [] | 23 libexif | [] | 4 libextractor | [] | 5 libgpewidget | [] [] [] | 19 libgpg-error | [] | 4 libgphoto2 | [] | 8 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] | 7 libidn | [] [] | 10 lifelines | | 4 lilypond | | 2 lingoteach | [] | 6 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailutils | [] | 8 make | [] [] [] | 20 man-db | [] | 6 minicom | [] | 14 mysecretdiary | [] [] | 12 nano | [] [] | 17 nano_1_0 | [] [] [] | 18 opcodes | [] [] | 10 parted | [] [] [] | 10 pilot-qof | [] | 3 psmisc | [] | 10 pwdutils | [] | 3 python | | 0 qof | [] | 4 radius | [] | 6 recode | [] [] [] | 25 rpm | [] [] [] [] | 14 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] | 22 sh-utils | [] | 15 shared-mime-info | [] [] [] [] | 24 sharutils | [] [] [] | 23 shishi | | 1 silky | [] | 4 skencil | [] | 7 sketch | | 6 solfege | | 2 soundtracker | [] [] | 9 sp | [] | 3 stardict | [] [] [] [] | 11 system-tools-ba... | [] [] [] [] [] [] [] | 37 tar | [] [] [] [] | 20 texinfo | [] [] [] | 15 textutils | [] [] [] | 17 tin | | 1 tp-robot | [] [] [] | 10 tuxpaint | [] [] [] | 16 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 vorbis-tools | [] [] | 11 wastesedge | | 1 wdiff | [] [] | 22 wget | [] [] [] | 19 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] [] | 11 xpad | [] [] [] | 14 +---------------------------------------------------+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If October 2006 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. ldm-2.2.13/wwm/0000755000175000017500000000000012302300754013047 5ustar vagrantvagrantldm-2.2.13/wwm/main.c0000644000175000017500000001374012302300754014144 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include #include #include #include "wwm.h" void handle_shape_event(XShapeEvent *e); /* * Globals definitions */ Client *head_client = NULL; /* First client */ Client *current = NULL; /* "current" client */ Display *display; /* Our display */ Atom xa_wm_state; /* atoms for window manager functions */ Atom xa_wm_change_state; Atom xa_wm_protos; Atom xa_wm_delete; XColor fg, bg, fc; /* Forground, Background, and locked colours */ int nomousefocus = 0; /* focus follows mouse status */ int passthrough = 0; /* current passthrough state */ char *term = NULL; /* terminal to launch */ int have_shape = 0; /* Do we support shaped windows? */ int ignore_xerror = 0; /* Ignore X errors */ struct wmkeys keytab[] = { {0, dummy_func} }; int main(int argc, char *argv[]) { struct sigaction act; static char *dpy; XEvent ev; int shape_event; dpy = getenv("DISPLAY"); /* manage the display in $DISPLAY */ if (!dpy) dpy = strdup(DEF_DISPLAY); act.sa_handler = handle_signal; sigemptyset(&act.sa_mask); #ifdef SA_NOCLDSTOP act.sa_flags = SA_NOCLDSTOP; /* don't care about STOP, CONT */ #else act.sa_flags = 0; #endif sigaction(SIGTERM, &act, NULL); sigaction(SIGINT, &act, NULL); sigaction(SIGHUP, &act, NULL); sigaction(SIGCHLD, &act, NULL); setup_display(dpy); term = strdup(DEF_TERM); if (!DEF_DL) scan_windows(); /* * Scan for the shape extention if it exists. */ { int e_dummy; have_shape = XShapeQueryExtension(display, &shape_event, &e_dummy); } int x = xmax() / 2; int y = ymax() / 2; XWarpPointer(display, None, ROOTWINDOW, 0, 0, 0, 0, x, y); /* * main event loop here */ for (;;) { XNextEvent(display, &ev); switch (ev.type) { case KeyPress: handle_key_event(&ev.xkey); break; case ButtonPress: handle_button_event(&ev.xbutton); break; case ConfigureRequest: handle_configure_request(&ev.xconfigurerequest); break; case MapRequest: handle_map_request(&ev.xmaprequest); break; case ClientMessage: handle_client_message(&ev.xclient); break; case EnterNotify: handle_enter_event(&ev.xcrossing); break; case PropertyNotify: handle_property_change(&ev.xproperty); break; case UnmapNotify: handle_unmap_event(&ev.xunmap); break; default: if (have_shape && ev.type == shape_event) { handle_shape_event((XShapeEvent *)&ev); } } } return(1); /* ?!? shouldn't get here */ } void setup_display(char *dpy) { XSetWindowAttributes attr; XColor dummy; XModifierKeymap *modmap; int i, j, screen; Window root; Colormap colormap; unsigned int numlockmask = 0; /* * Set some of the defaults */ /* * Open the display */ display = XOpenDisplay(dpy); if (!display) /* couldn't open display */ exit(1); XSetErrorHandler(handle_xerror); XSetIOErrorHandler(handle_xexit); screen = DefaultScreen(display); root = RootWindow(display, screen); colormap = DefaultColormap(display, screen); /* * Set up our window management atoms. */ xa_wm_state = XInternAtom(display, "WM_STATE", False); xa_wm_change_state = XInternAtom(display, "WM_CHANGE_STATE", False); xa_wm_protos = XInternAtom(display, "WM_PROTOCOLS", False); xa_wm_delete = XInternAtom(display, "WM_DELETE_WINDOW", False); XAllocNamedColor(display, colormap, DEF_FG, &fg, &dummy); XAllocNamedColor(display, colormap, DEF_BG, &bg, &dummy); XAllocNamedColor(display, colormap, DEF_FC, &fc, &dummy); /* * find out which modifier is NumLock - we'll use this when grabbing * every combination of modifiers we can think ofi */ modmap = XGetModifierMapping(display); for (i = 0; i < 8; i++) for (j = 0; j < modmap->max_keypermod; j++) if (modmap->modifiermap[i * modmap->max_keypermod + j] == XKeysymToKeycode(display, XK_Num_Lock)) numlockmask = (1 << i); XFreeModifiermap(modmap); attr.event_mask = KeyPressMask | ChildMask | PropertyChangeMask | EnterWindowMask | ButtonMask; XChangeWindowAttributes(display, root, CWEventMask, &attr); for (i = 0; keytab[i].key != 0; i++) { my_grab_key(keytab[i].key, WMMODMASK); my_grab_key(keytab[i].key, LockMask | WMMODMASK); if (numlockmask) { my_grab_key(keytab[i].key, numlockmask | WMMODMASK); my_grab_key(keytab[i].key, numlockmask | LockMask | WMMODMASK); } } } void my_grab_key(int keycode, unsigned int modifiers) { Window root = RootWindow(display, DefaultScreen(display)); XGrabKey(display, XKeysymToKeycode(display, keycode), modifiers, root, True, GrabModeAsync, GrabModeAsync); } void scan_windows(void) { unsigned int i, nwins; Window dw1, dw2, *wins; XWindowAttributes attr; Window root = RootWindow(display, DefaultScreen(display)); XQueryTree(display, root, &dw1, &dw2, &wins, &nwins); for (i = 0; i < nwins; i++) { XGetWindowAttributes(display, wins[i], &attr); if (!attr.override_redirect && attr.map_state == IsViewable) make_new_client(wins[i]); } XFree(wins); } ldm-2.2.13/wwm/events.c0000644000175000017500000001074312302300754014524 0ustar vagrantvagrant#include #include #include #include #include #include #include #include "wwm.h" void handle_key_event(XKeyEvent *e) { int i; Client *c = find_client(e->window); KeySym key = XkbKeycodeToKeysym(display, e->keycode, 0, 0); if (!c) c = current; /* * If we're currently in passthrough mode, just pass through whatever * key is typed and return. */ if (passthrough) { send_key_event(key); return; } /* * Search through our keytab for the right key */ for (i = 0; keytab[i].key != 0; i++) if (keytab[i].key == key) { keytab[i].f(c); /* dispatch the function */ break; } } void handle_button_event(XButtonEvent *e) { // We want a minimal WM, so no mouse actions return; Window root = ROOTWINDOW; Client *c = find_client(e->window); if (e->window == root) { return; switch (e->button) { case Button4: /* Scrolly wheel up in root */ prev_vdesk((Client *) NULL); return; case Button5: /* Scrolly wheel down in root */ next_vdesk((Client *) NULL); return; } } else if (c) { switch (e->button) { case Button1: /* Left mouse = move */ move(c, 0); return; case Button3: /* Right mouse = resize */ resize(c, 0); return; } } } void handle_shape_event(XShapeEvent *e) { Client *c = find_client(e->window); if (c) set_shape(c); } void handle_configure_request(XConfigureRequestEvent *e) { Client *c = find_client(e->window); XWindowChanges wc; wc.sibling = e->above; wc.stack_mode = e->detail; if (c) { change_gravity(c, UNGRAVITATE); if (e->value_mask & CWX) c->x = e->x; if (e->value_mask & CWY) c->y = e->y; if (e->value_mask & CWWidth) c->width = e->width; if (e->value_mask & CWHeight) c->height = e->height; if (c->x == 0 && c->width >= xmax()) c->x -= c->border; if (c->y == 0 && c->height >= ymax()) c->y -= c->border; change_gravity(c, GRAVITATE); wc.x = c->x - c->border; wc.y = c->y - c->border; wc.width = c->width + (c->border * 2); wc.height = c->height + (c->border * 2); wc.border_width = 0; XConfigureWindow(display, c->parent, e->value_mask, &wc); send_config(c); } wc.x = c ? c->border : e->x; wc.y = c ? c->border : e->y; wc.width = e->width; wc.height = e->height; XConfigureWindow(display, e->window, e->value_mask, &wc); } void handle_map_request(XMapRequestEvent *e) { Client *c = find_client(e->window); if (c) { if (c->vdesk != vdesk_get()) switch_vdesk(c->vdesk); unhide(c, RAISE); } else make_new_client(e->window); } void handle_unmap_event(XUnmapEvent *e) { Client *c = find_client(e->window); Client *focus_to; if (!c) return; if (c->ignore_unmap) c->ignore_unmap--; else { /* * Switch focus to next window on the screen, if there. */ focus_to = next_client_on_vdesk(c); remove_client(c, NOT_QUITTING); if (focus_to) focus_client(focus_to, NO_RAISE); } } void handle_client_message(XClientMessageEvent *e) { Client *c = find_client(e->window); if (c && /* Client exists */ e->message_type == xa_wm_change_state && /* Changing state */ e->format == sz_xInternAtomReply && /* Data is long */ e->data.l[0] == IconicState) /* We're now iconic */ hide(c); } void handle_property_change(XPropertyEvent *e) { Client *c = find_client(e->window); long dummy; if (c) if (e->atom == XA_WM_NORMAL_HINTS) XGetWMNormalHints(display, c->window, c->size, &dummy); } void handle_enter_event(XCrossingEvent *e) { Client *c = find_client(e->window); if (nomousefocus || !c) /* Ignore focus follows mouse */ return; if (c->vdesk != vdesk_get() && c->vdesk != LOCKED) return; if (c != current) focus_client(c, NO_RAISE); } ldm-2.2.13/wwm/wwm-defaults.h0000644000175000017500000000337312302300754015645 0ustar vagrantvagrant#define DEF_DISPLAY "" #define DEF_FG "cyan4" #define DEF_BG "grey50" #define DEF_FC "Blue" #define DEF_TERM "xterm" #define DEF_BW 0 #define DEF_DL 1 #define MOUSERAISE 1 #define DEF_KEY_NEXT_CLIENT XK_Tab #define DEF_KEY_NEW_TERM XK_Return #define DEF_KEY_KILL_CLIENT XK_Escape #define DEF_KEY_RAISE_CLIENT XK_f #define DEF_KEY_LOWER_CLIENT XK_b #define DEF_KEY_START_PASSTHROUGH XK_v #define DEF_KEY_MOVE_WIN_UP XK_k #define DEF_KEY_MOVE_WIN_DOWN XK_j #define DEF_KEY_MOVE_WIN_LEFT XK_h #define DEF_KEY_MOVE_WIN_RIGHT XK_l #define DEF_KEY_EXPAND_WIN_Y XK_i #define DEF_KEY_CONTRACT_WIN_Y XK_o #define DEF_KEY_EXPAND_WIN_X XK_p #define DEF_KEY_CONTRACT_WIN_X XK_u #define DEF_KEY_HORIZONTAL_TOGGLE XK_x #define DEF_KEY_VERTICAL_TOGGLE XK_y #define DEF_KEY_MAXIMIZE_TOGGLE XK_m #define DEF_KEY_LOCK_WINDOW XK_equal #define DEF_KEY_GOTO_VDESK_0 XK_1 #define DEF_KEY_GOTO_VDESK_1 XK_2 #define DEF_KEY_GOTO_VDESK_2 XK_3 #define DEF_KEY_GOTO_VDESK_3 XK_4 #define DEF_KEY_GOTO_VDESK_4 XK_5 #define DEF_KEY_GOTO_VDESK_5 XK_6 #define DEF_KEY_GOTO_VDESK_6 XK_7 #define DEF_KEY_GOTO_VDESK_7 XK_8 #define DEF_KEY_NEXT_VDESK XK_Right #define DEF_KEY_PREV_VDESK XK_Left #define DEF_KEY_TOP_LEFT XK_bracketleft #define DEF_KEY_TOP_RIGHT XK_bracketright #define DEF_KEY_BOTTOM_LEFT XK_semicolon #define DEF_KEY_BOTTOM_RIGHT XK_apostrophe #define DEF_KEY_TOGGLE_FOCUS XK_z #define DEF_KEY_QUIT_WM XK_End ldm-2.2.13/wwm/wwm.h0000644000175000017500000001357512302300754014045 0ustar vagrantvagrant/* default settings */ #include "wwm-defaults.h" /* * readability stuff */ #define WMMODMASK Mod1Mask #define MINSIZE 15 #define SPACE 3 #define NOT_QUITTING 0 #define QUITTING 1 /* for remove_client */ #define RAISE 1 #define NO_RAISE 0 /* for unhide() */ #define VDESK_MAX 8 #define WMDELTA 16 #define GRAVITATE 0 #define UNGRAVITATE 1 #define TRUE 1 #define FALSE 0 #define VDESK_GET 0 #define VDESK_SET 1 #define VDESK_NEXT 2 #define VDESK_PREV 3 #define VDESK_NULL 0 #define LOCKED -1 /* Locked Window */ #define ChildMask (SubstructureRedirectMask|SubstructureNotifyMask) #define ButtonMask (ButtonPressMask|ButtonReleaseMask) #define MouseMask (ButtonMask|PointerMotionMask) #define ROOTWINDOW (RootWindow(display, DefaultScreen(display))) #define COLORMAP (DefaultColormap(display, DefaultScreen(display))) /* * #defined functions */ #define vdesk_get() vdesk(VDESK_GET, VDESK_NULL) #define grab(w, mask, curs) \ (XGrabPointer(display, w, False, mask, GrabModeAsync, GrabModeAsync, \ None, curs, CurrentTime) == GrabSuccess) #define xmax() DisplayWidth (display, DefaultScreen(display)) #define ymax() DisplayHeight (display, DefaultScreen(display)) /* * Structure definitions */ typedef struct Client Client; struct Client { Client *next; /* Next client in the linked list */ Window window; /* Window we're managing */ Window parent; /* Parent window (the border) */ XSizeHints *size; /* Size hints for the window */ int ignore_unmap; /* Are we ignoring unmaps */ int x, y, width, height; /* size */ int oldx, oldy, oldw, oldh; /* used when maximising */ int border; /* border size */ int vdesk; /* Which vdesk we're on */ int focus; /* Do we think we have focus */ }; struct wmkeys { KeySym key; /* The keysym */ void (*f) (Client *c); /* The function that's mapped to key */ }; /* * Globals */ extern Display *display; /* Our display */ extern Atom xa_wm_state; /* Atoms for window management */ extern Atom xa_wm_change_state; extern Atom xa_wm_protos; extern Atom xa_wm_delete; extern int nomousefocus; /* No mouse focus flag */ extern XColor fg, bg, fc; /* colours for fore, back, and locked */ extern int passthrough; /* Are we in passthrough mode */ extern Client *current; /* The "current" client */ extern Client *head_client; /* The start of client linked list */ extern struct wmkeys keytab[]; /* Keymap table */ extern char *term; /* Terminal to launch */ extern int have_shape; /* Shaped windows? */ extern int ignore_xerror; /* Ignore X errors */ /* * Function decls */ /* mapfunctions.c */ void my_grab_key(int keysym, unsigned int modifier); void move_win_up(Client *c); void move_win_down(Client *c); void move_win_left(Client *c); void move_win_right(Client *c); void expand_win_y(Client *c); void contract_win_y(Client *c); void expand_win_x(Client *c); void contract_win_x(Client *c); void kill_client(Client *c); void raise_client(Client *c); void lower_client(Client *c); void horizontal_toggle(Client *c); void vertical_toggle(Client *c); void maximize_toggle(Client *c); void lock_window(Client *c); void new_term(Client *c); void next_client(Client *c); void quit_wm(Client *c); void start_passthrough(Client *c); void goto_vdesk_0(Client *c); void goto_vdesk_1(Client *c); void goto_vdesk_2(Client *c); void goto_vdesk_3(Client *c); void goto_vdesk_4(Client *c); void goto_vdesk_5(Client *c); void goto_vdesk_6(Client *c); void goto_vdesk_7(Client *c); void prev_vdesk(Client *c); void next_vdesk(Client *c); void top_left(Client *c); void top_right(Client *c); void bottom_left(Client *c); void bottom_right(Client *c); void toggle_focus(Client *c); void dummy_func(Client *c); /* client.c */ Client *find_client(Window w); Client *next_client_on_vdesk(Client *c); void change_gravity(Client *c, int invert); void remove_client(Client *c, int from_cleanup); void send_config(Client *c); void send_wm_delete(Client *c); void set_wm_state(Client *c, int state); void send_key_event(KeySym key); int send_xmessage(Window w, Atom a, long x); void set_shape(Client *c); /* events.c */ void handle_key_event (XKeyEvent *e); void handle_button_event (XButtonEvent *e); void handle_client_message (XClientMessageEvent *e); void handle_configure_request (XConfigureRequestEvent *e); void handle_enter_event (XCrossingEvent *e); void handle_map_request (XMapRequestEvent *e); void handle_property_change (XPropertyEvent *e); void handle_unmap_event (XUnmapEvent *e); /* main.c */ int main(int argc, char *argv[]); void scan_windows(void); void setup_display(char *dpy); void load_defaults(void); /* misc.c */ void handle_signal(int signo); int handle_xerror(Display *dpy, XErrorEvent *e); int handle_xexit(Display *dpy); void spawn(char *cmd); int vdesk(int vdesk_command, int vdesk_option); /* new.c */ void init_position(Client *c); void make_new_client(Window w); void reparent(Client *c); /* screen.c */ void drag(Client *c); void draw_outline(Client *c); void get_mouse_position(int *x, int *y); void move(Client *c, int set); void recalculate_sweep(Client *c, int x1, int y1, int x2, int y2); void resize(Client *c, int set); void maximise_vert(Client *c); void maximise_horiz(Client *c); void sweep(Client *c); void unhide(Client *c, int raiseit); void next(Client *c); void hide(Client *c); void focus_client(Client *c, int raiseit); void unfocus_client(Client *c); void switch_vdesk(int v); ldm-2.2.13/wwm/sendkey.c0000644000175000017500000000243212302300754014656 0ustar vagrantvagrant#include #include #include #include #include #include "wwm.h" /* * key_to_event: * * Turns a keysym into an event structure. */ void key_to_event(KeySym key, XEvent *event, Window w, int type) { event->xkey.type = type; event->xkey.display = display; event->xkey.root = RootWindow(display, DefaultScreen(display)); event->xkey.time = CurrentTime; event->xkey.x = event->xkey.y = 0; event->xkey.x_root = event->xkey.y_root = 0; event->xkey.state = WMMODMASK; event->xkey.window = w; event->xkey.keycode = XKeysymToKeycode(display, key); } /* * send_key_event: * * Sends a keypress event to the current client window. */ void send_key_event(KeySym key) { Window w; XEvent event; int revert; /* * Grab keyboard focus */ XGetInputFocus(display, &w, &revert); /* * Simulate a keypress event by passing a keydown and keyup event to the * application. */ key_to_event(key, &event, w, KeyPress); XSendEvent(display, w, True, KeyPressMask, &event); key_to_event(key, &event, w, KeyRelease); XSendEvent(display, w, True, KeyReleaseMask, &event); /* * Reset passthrough. */ passthrough = 0; } ldm-2.2.13/wwm/screen.c0000644000175000017500000001704512302300754014501 0ustar vagrantvagrant#include #include #include #include #include #include #include "wwm.h" void draw_outline(Client *c) { Window root = ROOTWINDOW; static int gc_initialized = 0; static GC invert_gc; if (!gc_initialized) { XGCValues gv; gc_initialized++; gv.function = GXinvert; gv.subwindow_mode = IncludeInferiors; gv.line_width = DEF_BW; /* opt_bw */ invert_gc = XCreateGC(display, root, GCFunction | GCSubwindowMode | GCLineWidth, &gv); } XDrawRectangle(display, root, invert_gc, c->x - c->border, c->y - c->border, c->width + c->border, c->height + c->border); } void get_mouse_position(int *x, int *y) { Window root = ROOTWINDOW; Window dw1, dw2; int t1, t2; unsigned int t3; XQueryPointer(display, root, &dw1, &dw2, x, y, &t1, &t2, &t3); } void recalculate_sweep(Client *c, int x1, int y1, int x2, int y2) { int basex, basey; c->width = (int) abs(x1 - x2); c->height = (int) abs(y1 - y2); if (c->size->flags & PResizeInc) { basex = (c->size->flags & PBaseSize) ? c->size->base_width : (c->size->flags & PMinSize) ? c->size->min_width : 0; basey = (c->size->flags & PBaseSize) ? c->size->base_height : (c->size->flags & PMinSize) ? c->size->min_height : 0; c->width -= (c->width - basex) % c->size->width_inc; c->height -= (c->height - basey) % c->size->height_inc; } if (c->size->flags & PMinSize) { if (c->width < c->size->min_width) c->width = c->size->min_width; if (c->height < c->size->min_height) c->height = c->size->min_height; } if (c->size->flags & PMaxSize) { if (c->width > c->size->max_width) c->width = c->size->max_width; if (c->height > c->size->max_height) c->height = c->size->max_height; } c->x = (x1 <= x2) ? x1 : x1 - c->width; c->y = (y1 <= y2) ? y1 : y1 - c->height; } void sweep(Client *c) { Window root = ROOTWINDOW; static int resize_cursor_initialized = 0; static Cursor resize_curs; XEvent ev; int old_cx = c->x; int old_cy = c->y; if (!resize_cursor_initialized) { resize_cursor_initialized++; resize_curs = XCreateFontCursor(display, XC_plus); } if (!grab(root, MouseMask, resize_curs)) return; XGrabServer(display); draw_outline(c); XWarpPointer(display, None, c->window, 0, 0, 0, 0, c->width, c->height); for (;;) { XMaskEvent(display, MouseMask, &ev); switch (ev.type) { case MotionNotify: draw_outline(c); /* clear */ XUngrabServer(display); recalculate_sweep(c, old_cx, old_cy, ev.xmotion.x, ev.xmotion.y); XSync(display, False); XGrabServer(display); draw_outline(c); break; case ButtonRelease: draw_outline(c); /* clear */ XUngrabServer(display); XUngrabPointer(display, CurrentTime); return; } } } void drag(Client *c) { Window root = ROOTWINDOW; static int drag_cursor_initialized = 0; static Cursor drag_curs; XEvent ev; int x1, y1; int old_cx = c->x; int old_cy = c->y; if (!drag_cursor_initialized) { drag_cursor_initialized++; drag_curs = XCreateFontCursor(display, XC_fleur); } if (!grab(root, MouseMask, drag_curs)) return; get_mouse_position(&x1, &y1); XGrabServer(display); draw_outline(c); for (;;) { XMaskEvent(display, MouseMask, &ev); switch (ev.type) { case MotionNotify: draw_outline(c); /* clear */ XUngrabServer(display); c->x = old_cx + (ev.xmotion.x - x1); c->y = old_cy + (ev.xmotion.y - y1); XSync(display, False); XGrabServer(display); draw_outline(c); break; case ButtonRelease: draw_outline(c); /* clear */ XUngrabServer(display); XUngrabPointer(display, CurrentTime); return; default: break; } } } void move(Client *c, int set) { if (!set) drag(c); XMoveWindow(display, c->parent, c->x - c->border, c->y - c->border); send_config(c); XRaiseWindow(display, c->parent); } void resize(Client *c, int set) { if (!set) sweep(c); XMoveResizeWindow(display, c->parent, c->x - c->border, c->y - c->border, c->width + (c->border * 2), c->height + (c->border * 2)); XMoveResizeWindow(display, c->window, c->border, c->border, c->width, c->height); send_config(c); XRaiseWindow(display, c->parent); } void maximise_horiz(Client *c) { if (c->oldw) { c->x = c->oldx; c->width = c->oldw; c->oldw = 0; } else { c->oldx = c->x; c->oldw = c->width; recalculate_sweep(c, c->border, c->y, (xmax() - c->border), c->y + c->height); } } void maximise_vert(Client *c) { if (c->oldh) { c->y = c->oldy; c->height = c->oldh; c->oldh = 0; } else { c->oldy = c->y; c->oldh = c->height; recalculate_sweep(c, c->x, c->border, c->x + c->width, (ymax() - c->border)); } } void hide(Client *c) { c->ignore_unmap = 2; XUnmapWindow(display, c->parent); XUnmapWindow(display, c->window); set_wm_state(c, IconicState); } void unhide(Client *c, int raiseit) { c->ignore_unmap = 0; XMapWindow(display, c->window); raiseit ? XMapRaised(display, c->parent) : XMapWindow(display, c->parent); set_wm_state(c, NormalState); } /* * Next focuses the next client on this vdesk */ void next(Client *c) { Client *newc; newc = next_client_on_vdesk(( c ? c : head_client)); if (!newc) return; /* couldn't find a next on this screen */ focus_client(newc, RAISE); } /* * switch_vdesk changes to a different vdesk */ void switch_vdesk(int v) { Client *c; int vcurr = vdesk_get(); if (v == vcurr) return; for (c = head_client; c; c = c->next) { if (c->vdesk == vcurr) { hide(c); } else if (c->vdesk == v) { unhide(c, NO_RAISE); if (c->focus) focus_client(c, RAISE); } } vdesk(VDESK_SET, v); } void focus_client(Client *c, int raiseit) { Client *cp; for (cp = head_client; cp; cp = cp->next) if ((cp->vdesk == vdesk_get() || cp->vdesk == LOCKED) && cp->focus) unfocus_client(cp); unhide(c, raiseit); XSetInputFocus(display, c->window, RevertToPointerRoot, CurrentTime); XSetWindowBackground(display, c->parent, (c->vdesk == LOCKED) ? fc.pixel : fg.pixel); XClearWindow(display, c->parent); XGrabButton(display, AnyButton, WMMODMASK, c->parent, False, ButtonMask, GrabModeAsync, GrabModeSync, None, None); c->focus = 1; current = c; } void unfocus_client(Client *c) { XSetInputFocus(display, PointerRoot, RevertToPointerRoot, CurrentTime); XSetWindowBackground(display, c->parent, bg.pixel); XClearWindow(display, c->parent); c->focus = 0; current = NULL; } ldm-2.2.13/wwm/README0000644000175000017500000001143312302300754013731 0ustar vagrantvagrantwwm 1.1.6 - mods by Scott Balneaves Based on evilwm 0.3 by Ciaran Anscomb wwm is a minimalist window manager for the X Window System, which is pretty close to evilwm. I first bumped into evilwm 6 or so years ago, and was thrilled. It was pretty much exactly what I wanted. But not quite. It started out fairly simply: I just wanted to change the border colours. However, as time went on, I just sort of kept adding things here and there. I kept an eye on evilwm's development, and as Ciaran fixed things, or added things, I moved them into my tree. I used wwm basically unchanged for about 4 years, but recently, I went back and re-looked at evilwm again. I liked the Makefile, and some of the bug fixes, (i.e. the numlock fix) and so, I hacked around a bit, and here I am. wwm stands for "Wicked Window Manager", which is sort of a play on words, as, since I've refined evilwm to my liking, wickedness is simply refined evil. Or something like that. wwm has a few features added, and a few taken away that I didn't use. FEATURES ADDED: * Different keymaping method to make it easier to change keymaps. * "passthrough" keystrokes. For example, alt-f is "bring forward" in wwm, but if you press alt-v, alt-f, the alt-f keystroke is passed through to the application. * If you've got a scrolly-wheel mouse, scrolling on the root window changes vdesks. * You can resize a window horizontally (in 16 pixel increments) with alt-u and alt-p and vertically with alt-i and alt-o. * alt-m maximizes both horizontally and vertically. * No window decorations apart from a simple 2 pixel border. * No icons. * Good keyboard control * Box window drags * Virtual desktops * Small binary size (~16k!) * Scrolly wheel mouse desktop changes * passthrough keyboard grabs. INSTALLATION Compile and copy the wwm executable to wherever you'd like CONTROLS You can use the mouse to manipulate windows either by click/dragging the 2 pixel border, or by holding down Meta1 (The "ALT" key) and doing so anywhere in the client window. The controls are: Button 1 Move window Button 3 Resize window All keyboard controls are used by holding down Meta1 ("ALT" key), then pressing a key. Available functions are: Return Spawn new xterm Escape Delete current window b Lower current window (fore) f raise current window (back) x Maximize window horizontally y Maximize window vertically m Maximize window fully v Passthrough = Fix or unfix current window 1 - 8 Switch virtual desktop Tab Rotate windows on the screen Left Rotate virtual desktop LEFT Right Rotate virtual desktop RIGHT h,j,k,l Move window 16 pixels u,i,o,p Resize window 16 pixels [,],;,' Position window top left, right, bottom left, right End key Exit wm ACKNOWLEDGEMENTS The original code base for this project was that of aewm by Decklin Foster. His code is very clean and, in later versions, very well commented. I'd recommend it if you want to learn more about window manager theory (or indeed want title bars, etc ;). http://www.red-bean.com/~decklin/aewm/ - aewm homepage LICENCE Since it's based on evilwm, here's the license for that. evilwm-0.3 Copyright (C) 1999-2001 Ciaran Anscomb This is free software. You can do what you want to it, but if it breaks something, you get to pay for the counselling. The code was originally based on aewm, so this is distributed under the same terms, which follow. AEWM LICENCE Copyright (c) 1998-2000 Decklin Foster. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND. IN NO EVENT SHALL THE AUTHOR BE HELD LIABLE FOR ANY DAMAGES CONNECTED WITH THE USE OF THIS PROGRAM. You are granted permission to copy, publish, distribute, and/or sell copies of this program and any modified versions or derived works, provided that this copyright and notice are not removed or altered. Portions of the code were based on 9wm, which contains this license: > 9wm is free software, and is Copyright (c) 1994 by David Hogan. > Permission is granted to all sentient beings to use this software, > to make copies of it, and to distribute those copies, provided > that: > > (1) the copyright and licence notices are left intact > (2) the recipients are aware that it is free software > (3) any unapproved changes in functionality are either > (i) only distributed as patches > or (ii) distributed as a new program which is not called 9wm > and whose documentation gives credit where it is due > (4) the author is not held responsible for any defects > or shortcomings in the software, or damages caused by it. > > There is no warranty for this software. Have a nice day. ldm-2.2.13/wwm/new.c0000644000175000017500000001046012302300754014005 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include "wwm.h" void make_new_client(Window w) { Client *c; XWindowAttributes attr; long dummy; XWMHints *hints; volatile Window initializing; char *name; /* * Allocate a new client structure */ if (!(c = malloc(sizeof(Client)))) return; /* * Exclusive access to the xserver */ XGrabServer(display); initializing = w; XFetchName(display, initializing, &name); XSync(display, False); if (initializing == None) { /* * Window disappeared of it's own accord */ free(c); XSync(display, False); XUngrabServer(display); return; } if (name) XFree(name); /* * Insert client into linked list */ c->next = head_client; head_client = c; c->window = w; /* * Release the server as soon as we can. */ XSync(display, False); XUngrabServer(display); /* * Allocate the sizing hints. Windows like xterm want certain increments. * If the client doesnt have them, set 1 pixel limits. */ c->size = XAllocSizeHints(); XGetWMNormalHints(display, c->window, c->size, &dummy); if (!c->size->width_inc) c->size->width_inc = 1; if (!c->size->height_inc) c->size->height_inc = 1; /* * Get the window attribues, and poulate the client structure. */ XGetWindowAttributes(display, c->window, &attr); c->x = attr.x; c->y = attr.y; c->width = attr.width; c->height = attr.height; c->border = DEF_BW; c->oldw = c->oldh = 0; c->vdesk = vdesk_get(); /* * Check to make sure that windows are sized properly on map. */ hints = XGetWMHints(display, w); if (attr.map_state == IsViewable) c->ignore_unmap++; else { init_position(c); if (hints && hints->flags & StateHint) set_wm_state(c, hints->initial_state); } /* * Free the hints structure */ if (hints) XFree(hints); /* * client is initialised */ change_gravity(c, GRAVITATE); reparent(c); /* * shape the window if needed. */ if (have_shape) { XShapeSelectInput(display, c->window, ShapeNotifyMask); set_shape(c); } focus_client(c, RAISE); /* new windows get focus */ } void init_position(Client *c) { int x, y; int xmax = xmax(); int ymax = ymax(); int spacing = c->border * 2; if (c->width < MINSIZE) c->width = MINSIZE; if (c->height < MINSIZE) c->height = MINSIZE; if (c->width > (xmax - spacing)) c->width = (xmax - spacing); if (c->height > (ymax - spacing)) c->height = (ymax - spacing); if (c->size->flags & USPosition) { c->x = c->size->x; c->y = c->size->y; } else { // get_mouse_position(&x, &y); x = xmax / 2; y = ymax / 2; c->x = (x * (xmax - c->border - c->width)) / xmax; c->y = (y * (ymax - c->border - c->height)) / ymax; } /* * Final sanity check. */ if (c->x < 0 || c->y < 0 || c->x > xmax || c->y > ymax) c->x = c->y = c->border; } void reparent(Client *c) { XSetWindowAttributes p_attr; int screen = DefaultScreen(display); Window root = RootWindow(display, screen); XSelectInput(display, c->window, EnterWindowMask | PropertyChangeMask); p_attr.override_redirect = True; p_attr.background_pixel = bg.pixel; p_attr.event_mask = ChildMask | ButtonPressMask | ExposureMask | EnterWindowMask; c->parent = XCreateWindow(display, root, c->x - c->border, c->y - c->border, c->width + (2 * c->border), c->height + (2 * c->border), 0, DefaultDepth(display, screen), CopyFromParent, DefaultVisual(display, screen), CWOverrideRedirect | CWBackPixel | CWEventMask, &p_attr); XAddToSaveSet(display, c->window); XSetWindowBorderWidth(display, c->window, 0); XReparentWindow(display, c->window, c->parent, c->border, c->border); send_config(c); } ldm-2.2.13/wwm/misc.c0000644000175000017500000000323112302300754014145 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include #include "wwm.h" void spawn(char *cmd) { pid_t pid; if (!(pid = fork())) { setsid(); if (!fork()) execlp(cmd, cmd, NULL); else exit(0); } if (pid > 0) wait(NULL); } void handle_signal(int signo) { if (signo == SIGCHLD) { wait(NULL); return; } /* * Quit Nicely */ #if 0 while (head_client) remove_client(head_client, QUITTING); XSetInputFocus(display, PointerRoot, RevertToNone, CurrentTime); XInstallColormap(display, COLORMAP); XCloseDisplay(display); #endif exit(0); } int handle_xerror(Display *dpy, XErrorEvent *e) { Client *c = find_client(e->resourceid); if (ignore_xerror) return(0); if (e->error_code == BadAccess && e->request_code == X_ChangeWindowAttributes) exit(1); if (c) remove_client(c, NOT_QUITTING); return(0); } int handle_xexit(Display *dpy) { exit(0); } int vdesk(int vdesk_command, int vdesk_option) { static int my_vdesk = 0; switch (vdesk_command) { case VDESK_GET: return(my_vdesk); case VDESK_SET: my_vdesk = vdesk_option; return(my_vdesk); case VDESK_NEXT: return((my_vdesk + 1) % VDESK_MAX); case VDESK_PREV: return((my_vdesk ? my_vdesk - 1 : ( VDESK_MAX - 1)) % VDESK_MAX); default: return(my_vdesk); } } ldm-2.2.13/wwm/mapfunctions.c0000644000175000017500000000740712302300754015731 0ustar vagrantvagrant#include #include #include #include #include "wwm.h" /* * Start of the keyboard set functions. */ /* * move_win_up: move a window up WMDELTA pixels */ void move_win_up(Client *c) { if (!c) return; c->y -= WMDELTA; move(c, 1); } /* * move_win_down: move a window down WMDELTA pixels */ void move_win_down(Client *c) { if (!c) return; c->y += WMDELTA; move(c, 1); } /* * move_win_left: move a window left WMDELTA pixels */ void move_win_left(Client *c) { if (!c) return; c->x -= WMDELTA; move(c, 1); } /* * move_win_right: move a window right WMDELTA pixels */ void move_win_right(Client *c) { if (!c) return; c->x += WMDELTA; move(c, 1); } /* * expand_win_y: make window larger horzontaly */ void expand_win_y(Client *c) { if (!c) return; c->height += WMDELTA; resize(c, 1); } /* * contract_win_y: make window smaller horzontaly */ void contract_win_y(Client *c) { if (!c || c->height <= WMDELTA) return; c->height -= WMDELTA; resize(c, 1); } void expand_win_x(Client *c) { if (!c) return; c->width += WMDELTA; resize(c, 1); } void contract_win_x(Client *c) { if (!c || c->width <= WMDELTA) return; c->width -= WMDELTA; resize(c, 1); } void kill_client(Client *c) { if (!c) return; send_wm_delete(c); } void raise_client(Client *c) { if (!c) return; XRaiseWindow(display, c->parent); } void lower_client(Client *c) { if (!c) return; XLowerWindow(display, c->parent); } void horizontal_toggle(Client *c) { if (!c) return; maximise_horiz(c); resize(c, 1); } void vertical_toggle(Client *c) { if (!c) return; maximise_vert(c); resize(c, 1); } void maximize_toggle(Client *c) { if (!c) return; maximise_horiz(c); maximise_vert(c); resize(c, 1); } void lock_window(Client *c) { if (!c) return; XSetWindowBackground(display, c->parent, c->vdesk == LOCKED ? fg.pixel : fc.pixel); XClearWindow(display, c->parent); c->vdesk = c->vdesk == LOCKED ? vdesk_get() : LOCKED; } void new_term(Client *c) { spawn(term); } void next_client(Client *c) { next(current); } void quit_wm(Client *c) { handle_signal(SIGHUP); } void start_passthrough(Client *c) { passthrough++; } void goto_vdesk_0(Client *c) { switch_vdesk(0); } void goto_vdesk_1(Client *c) { switch_vdesk(1); } void goto_vdesk_2(Client *c) { switch_vdesk(2); } void goto_vdesk_3(Client *c) { switch_vdesk(3); } void goto_vdesk_4(Client *c) { switch_vdesk(4); } void goto_vdesk_5(Client *c) { switch_vdesk(5); } void goto_vdesk_6(Client *c) { switch_vdesk(6); } void goto_vdesk_7(Client *c) { switch_vdesk(7); } void prev_vdesk(Client *c) { int v = vdesk(VDESK_PREV, VDESK_NULL); switch_vdesk(v); vdesk(VDESK_SET, v); } void next_vdesk(Client *c) { int v = vdesk(VDESK_NEXT, VDESK_NULL); switch_vdesk(v); vdesk(VDESK_SET, v); } void top_left(Client *c) { if (!c) return; c->x = c->border; c->y = c->border; move(c, 1); } void top_right(Client *c) { if (!c) return; c->x = xmax() - (c->width + c->border); c->y = c->border; move(c, 1); } void bottom_left(Client *c) { if (!c) return; c->x = c->border; c->y = ymax() - (c->height + c->border); move(c, 1); } void bottom_right(Client *c) { if (!c) return; c->x = xmax() - (c->width + c->border); c->y = ymax() - (c->height + c->border); move(c, 1); } void toggle_focus(Client *c) { nomousefocus = (nomousefocus + 1) % 2; } void dummy_func(Client *c) { return; } ldm-2.2.13/wwm/Makefile.am0000644000175000017500000000063712302300754015111 0ustar vagrantvagrant ldmwwmdir = $(libexecdir)/ldm ldmwwm_PROGRAMS = wwm wwm_SOURCES = wwm.h \ wwm-defaults.h \ client.c \ events.c \ main.c \ mapfunctions.c \ misc.c \ new.c \ screen.c \ sendkey.c wwm_LDADD = -L/usr/X11R6/lib \ -lX11 -lXext wwm_CFLAGS = -Wstrict-prototypes -Wpointer-arith \ -Wcast-align -Wcast-qual -Wshadow \ -Waggregate-return -Wnested-externs \ -Winline -Wwrite-strings -Wundef ldm-2.2.13/wwm/client.c0000644000175000017500000001153312302300754014474 0ustar vagrantvagrant#include #include #include #include #include #include #include #include "wwm.h" /* * used all over the place. return the client that has specified window as * either window or parent */ Client * find_client(Window w) { Client *c; for (c = head_client; c; c = c->next) if (w == c->parent || w == c->window) return(c); return(NULL); } Client * next_client_on_vdesk(Client *c) { Client *newc = c, *marker = c; int v = vdesk_get(); if (!c) return NULL; do newc = (newc->next ? newc->next : head_client); while (newc != marker && newc->vdesk != v); return((newc == marker) ? NULL : newc); } void set_wm_state(Client *c, int state) { long data[2]; data[0] = (long) state; data[1] = None; /* icon window */ XChangeProperty(display, c->window, xa_wm_state, xa_wm_state, sz_xInternAtomReply, PropModeReplace, (unsigned char *) data, 2); } void send_config(Client *c) { XConfigureEvent ce; ce.type = ConfigureNotify; ce.event = c->window; ce.window = c->window; ce.x = c->x; ce.y = c->y; ce.width = c->width; ce.height = c->height; ce.border_width = c->border; ce.above = None; ce.override_redirect = False; XSendEvent(display, c->window, False, StructureNotifyMask, (XEvent *) &ce); XSync(display, False); } void remove_client(Client *c, int from_cleanup) { Window root = ROOTWINDOW; Client *p; XGrabServer(display); ignore_xerror = True; if (!from_cleanup) { set_wm_state(c, WithdrawnState); XRemoveFromSaveSet(display, c->window); } change_gravity(c, UNGRAVITATE); XSetWindowBorderWidth(display, c->window, 1); XReparentWindow(display, c->window, root, c->x, c->y); if (c->parent) XDestroyWindow(display, c->parent); if (head_client == c) head_client = c->next; else for (p = head_client; p && p->next; p = p->next) if (p->next == c) p->next = c->next; if (c->size) XFree(c->size); if (current == c) current = NULL; /* an enter event should set this up again */ free(c); XSync(display, False); ignore_xerror = False; XUngrabServer(display); } void change_gravity(Client *c, int invert) { int dx = 0, dy = 0; int gravity = (c->size->flags & PWinGravity) ? c->size->win_gravity : NorthWestGravity; switch (gravity) { case CenterGravity: case StaticGravity: case NorthWestGravity: case NorthGravity: case WestGravity: dx = c->border; dy = c->border; break; case NorthEastGravity: case EastGravity: dx = -(c->border); dy = c->border; break; case SouthEastGravity: dx = -(c->border); dy = -(c->border); break; case SouthGravity: case SouthWestGravity: dx = c->border; dy = -(c->border); break; } if (invert) { dx = -dx; dy = -dy; } c->x += dx; c->y += dy; } void send_wm_delete(Client *c) { int i, n, found = 0; Atom *protocols; if (!c) return; if (XGetWMProtocols(display, c->window, &protocols, &n)) { for (i = 0; i < n; i++) if (protocols[i] == xa_wm_delete) found++; XFree(protocols); } if (found) send_xmessage(c->window, xa_wm_protos, xa_wm_delete); else XKillClient(display, c->window); } int send_xmessage(Window w, Atom a, long x) { XEvent ev; ev.type = ClientMessage; ev.xclient.window = w; ev.xclient.message_type = a; ev.xclient.format = 32; ev.xclient.data.l[0] = x; ev.xclient.data.l[1] = CurrentTime; return(XSendEvent(display, w, False, NoEventMask, &ev)); } void set_shape(Client *c) { int i, b; unsigned int u; /* dummies */ int bounding_shaped; Status retval; if (!have_shape || !c) return; if (c->window == None || c->parent == None) return; /* * Logic to decide if we have a shaped window cribbed from fvwm-2.5.10. * Previous method (more than one rectangle returned from * XShapeGetRectangles) worked _most_ of the time. */ retval = XShapeQueryExtents(display, c->window, &bounding_shaped, &i, &i, &u, &u, &b, &i, &i, &u, &u); if (retval && bounding_shaped) XShapeCombineShape(display, c->parent, ShapeBounding, c->border, c->border, c->window, ShapeBounding, ShapeSet); } ldm-2.2.13/themes/0000755000175000017500000000000012302300754013522 5ustar vagrantvagrantldm-2.2.13/themes/Makefile.am0000644000175000017500000000036112302300754015556 0ustar vagrantvagrantltspdir = $(datadir)/ldm/themes/ltsp ltsp_DATA = ltsp/preferences.png ltsp/bg.png ltsp/language.png ltsp/logo.png ltsp/reboot.png ltsp/session.png ltsp/shutdown.png ltsp/host.png ltsp/greeter-gtkrc ltsp/backend.png EXTRA_DIST = $(ltsp_DATA) ldm-2.2.13/themes/ltsp/0000755000175000017500000000000012302300754014504 5ustar vagrantvagrantldm-2.2.13/themes/ltsp/bg.png0000644000175000017500000001052212302300754015602 0ustar vagrantvagrantPNG  IHDRd?sRGBPLTErssttuuvwwxyyyz{{||}}~~‼‽⁽⁽ソゾヾㄾㄿㅿㆿㆿbKGDH pHYs  tIME ;D IDATxfU#(*؍bw+ݢ؁]حb(vw ljwyb^뻆ԉCo.0zKv]N @M&38i12VN&.;~S '_W@aS  @VNs8J,@M&S#@:SSɣ$W"L@5  25Avnd 2"@ rC(3/BpM`^ÙaD`z;g{0M& @d rS $`h+{pS!L@}Rg cpS*)peƨ9ܚm0 [3`sI 9}5ڙR(S  ,!@{7e8/6 f _" * 8ব(\-(6 0B3L( j FH.R1k:ঌ.TA  b4I%(A dlB.M)"L 9L!8$ 2{U# 7En@00=ۛG7e: eea_drt@# +W`Bo]"L@\-ȸ)+fϢ04S+eeZM)H Jan HUk 8ঌrTa +W{#k3ySkr׬!|S kS)06Sݔ=0>n 2כw"@]npVlm"@p#2} 7X"P)É#`D,An0 o$`rpn\)@r aS[}MYqnQMQ7eLp:( P  ݊-Rn@0"pZbb  (k0fTSe"|S $a|96 2wYQ2`Df( D.0c ;}&,N1K 9X׃@arܓl*%|S {A@"lwܔ1p&[C#7E ʸVix2 Ldxv3 iE /?"@yË dڛ"L@8Gԛ2AƖT7E )C@t)i2&a@M&<}^A2E 939*z}M x53tPM& @d^6 Ax-y 2k_"p6<  y7%#P2%`7l 2T'hx M`+7S`ƍ$=ޔP!ܔZ ) H:+!80i5j ;"PM.TG x  ^TL 9f6\_lH{($!@[7ex/L 1bx?K0@M& @d>5 7e|pI&ڵt0[)"*C煠|ZKWU>R?; #i!P@r> [D@|֘Zl*d) J3UPM& @d $9 7|jfVz)s +'lt| F& @d_w>qx@|f`UdsӰ2tB@  L*)p䲼!/r#pS& L@|> n$&)_.(h/(LF'L@Xj>_e\*Ao563UD)5d} +`L TLsSo3Fo@0"A),b1K072k=P! ,[%@ <}H1pdTX2Y~4 ޔ,d $'%8A`|Sq`W$ݔ?ЬYK&         /җ/j`IENDB`ldm-2.2.13/themes/ltsp/shutdown.png0000644000175000017500000000345312302300754017072 0ustar vagrantvagrantPNG  IHDRw=IDATxb`1b$ .¤fn$Φ,o^u܏g'.e'yH;3 3 `ÃzlNJ>4?t´I?R[\SE^+?a`?3Ív{y˷e }E6B_\8D^PJo ,00~'/_2 , _pn300B@+tL 91?3<9ϟ0000(10(80[JȊsdfb`gfexݻӯf&[Ĩ8MUqշXd8zghfN))]@ONF={*bY`i))bO.^ ~~ϴf:7\\2a=_:{_0X Yz4A @4qY&/آDt(ADbqH'W =<$Hs v1WFBa%U/B{s(`$ 0E& D Q@^>22tC:Lo@2)ɓrE#Zz}c,ѱ0Wg5`Ғڴupdkmp鞜jO9BoȜ(?|?$l;3<ӻ 0 ыA!al`ޥ7Ln݉cI12 Λ!_欥w.DA EZ"DK&Q;8cU[Qk -ŜV& 8!U6+CDͱ @1h7$qcE{vsj\ɘ"cXCSk @6H41@@@?CרN*DEG*p7~t9ہ|Yҹ co FD-`+IWŶ?@0<41@0/hv0lb"=4PR"iMTO[aھ*|_dsYsTy @]u'Ȋ#&&&,,00 ӢttҸ%$ԙ]y99Xxx\de5so<% qr^cae5 B.82ע?<<II:ͽיYXtt|Țo $s{ Kݍoߦ0@ <T; 0DIx d3Op]*}0~26 >\b PyOStfu PtZcLiK>f);{n6f` jo1#Smyy'003+e;{rמ?21Ą0?f׹Ie`dfW'201)򳲚i00( 59 g``ա  PX;zӿ@W@0>9/YUWIENDB`ldm-2.2.13/themes/ltsp/session.png0000644000175000017500000000142012302300754016672 0ustar vagrantvagrantPNG  IHDRw=bKGD pHYs  tIME#z<IDATHKTQ?68Z""EHB+(EkSmZ"A hgTh?(UQ̙fyQgUЁpy=s/&ι^8B?1%#2xt̉3\S~.sHި4"[ddɐQXlq}x2dc#F3+ _^"eQ$@jE ]t# [T;>MlƆmSϭPzkG/+=4 hjX04|':؈m\pii!4-B`YW_;#o&v!uضeY$IDT*mۤi\<|G) ̨嵭$,H)FD"0pP(`0i>T2BiM;v>mG8y8JBMՅ\|-399R sK[AcI'#X@ƭEӲuau癃yC*"R{M=[[L|)A)е~X]Śݧ`QsDr.xԭ^mO9SNrc /Snכ@jK X 9 Nf#dIENDB`ldm-2.2.13/themes/ltsp/reboot.png0000644000175000017500000000334012302300754016504 0ustar vagrantvagrantPNG  IHDRw=IDATxb`1b$K!Xӄ_H/ϫgi^zÙsW̒a`dz.W3?b@\/6ªPC? ++ +W 3000 1| 10\:{DžSR`3000°@ .c eN~?׏ݽ}x= 30?.NvM3@F/3[%/kQ$oF&f~08r#y{0```e```o&F1H)K{cT ^|bY+奩?s_݇$2/^tо~a``bb`ecaTT6 X*"& **.]=^]wddacc```8!񅭍ny7oq1p ˲2000ba````bcbaf  a$?]_L Ԡ 1 ]]8L?bb````w^?|W />fd5Wce```3Saf;3;'#33+5߽y{2rp2Kɛ&(6 dl~+zpr202130003oo2000bb```ׯ/33 #Qub&ߘ&_̢L Ll `ܮ_>~f```oolf#&6V6i-{`#_۾dR,'b?ßg'o~||z\[;_!$%!/33+_ ؅$E5r󲲲110ßnn0Mbb@_^\Xg``Db``F* j|,L LL ?_] B)M9TyxXY9`Ҍ 217'W>~d;L[,fYtOO'?ظ3p/?|y}CbDc *3if~|tǿ|0]"X&3oB9P5ȫ?IENDB`ldm-2.2.13/themes/ltsp/preferences.png0000644000175000017500000000303412302300754017513 0ustar vagrantvagrantPNG  IHDRש pHYs oy vpAgxLPLTEU339.]KK<LM$IcjchnhOOO6bWWR}ylli&&#hkeLOJF~>>;sso2^#M#M]_[_c]cea#M6d*Klni8dhkfdfcxzusuo6a$O8fYZW(P8d)SWZV|~yvxt}nokuwr?ojlhvxr)Luwr}4"ѫ7?~JvɝwԕGtB]0|c'v30Gם|f58ן>`38޴/p):mߑ> 4a3{1!.SqisAճ^}x;*Դ|\ =|EX\"q¡+}o\;wMH%|M[@w7WO} ⸷ٸgέI R@ݛOO`eegg̺ȏA$aY L_HH߼fxlxŬb8A²J@N8VL%tEXtdate:create2009-11-23T15:57:19+01:005%tEXtdate:modify2009-11-23T15:57:19+01:00h:tEXtSoftwarewww.inkscape.org<IENDB`ldm-2.2.13/themes/ltsp/LTSP_final_300.png0000644000175000017500000003412412302300754017533 0ustar vagrantvagrantPNG  IHDR,s"?sRGBbKGD pHYs B(xtIME3󶂱 IDATxwUչkSfibcBlD&\oӓMr5\S1 FA"0H~yX9sL|>3skog=B %PB %PB %PB %PB %PB %PB %PB %PB %PB %PB %PB e dpY@3D]vjQyJ=@1 (vq (P H 9pV ,#%Ҥf]Ga@q)0v 4J(dXF@!f>hAX <5Z .?D{QPb p>XF5 E>Ef(?=!|ˆ։QV")5 ѹ(Q(p4Q@)p\ dPGq 3ԲphJKg"LB4ٿ~+ -',Z4!huAҋ(r'5(NF1W)pFQxV҃QGq3}\ڳB S%K8G1meThyVO!,VW=x(Fq8 8ru!ģ" M¾4dP X%!J(!w>ĈfXǁ;/"4kI+lGq1I(ʕC`XE0on٭z*dZ_ 5j6/'Q(C^rp  R=rI^cJ po_}Ȝ9s̙{@Rj08  XEiWvv`<}N'>gΜn㼎"gfނ R F.y'z>EU SyU4UzJ4 FrX傮۳D0@}`m`.sK;e89 8_)uL*gf4I{/𖈼 6&HΝ;CDF뮻l@sv d.L@ ׮ }"d(bӀ'Ф6%D8ŇYHAEH-Q0:n|Dq.2_ˀu=XӁ$ٳD]JEx`X-aG}p`*peafy X>{5 #tu> }e`$"/Ϟ={3#2P|.S].q Gx7w^+>>pB1XF=$bp߲jB:w}y$fR"rv#"n/͒!82MD䏖 gǭ< 87ZD͚5G}4!`K G6p_,AeRD:p;zzOG3 D@JQHkؓ`fk`ɵ^ZRjz/U1)4K3E/"^K`?cXeve ݪ+ظBD~ Fu>S5JEM QcТIS(^EYt R+$*"򫫯'x8_@6t `<_:y;Ea nD1܉ J́cN ҆ ,ZUr J%"QwEdt#G0=XPe'pܲX_"]uUw'|Ú?&S8ǭi;Z(~pr:Qp}k bUE` |-JX}9%:90o# I/+dY11$pϠXriٳ~O; 㿔O^6`̙Dvr xhTJeseAꪫuHDx`#/t(a4( )c0Fs-֌*4l9syI\b*\G!\msS)k\W&*R02":O?t#=+]e{ϟ/.S"r*hk) >%9 &5r̙3`\-ƈ%0TtJ'$ϟԉ6{fΜ0ED>Ր #upm2B׌˅ \ l/`5(P5@lU6 vRN@j31ZiKOjR?~e%7oNՔ2~/_("N`\ \4cƌ#/)V ,Zg5\b(i_`W5f!`ʫEbjR" j  4.%־`K/t.{XhFV7L!_av*H* ;o氬3o ;g}VDi5Gș:]e[Pe(bm;ɽmfJL"'g2Ь[_.p@ V!/`d}ZZyPk.r͸td e ^wEx+ b$eBsͳ |aGgF-+@k?; Dɶ/Xe&4ȞE Thl_^sѢEh_=<ߓ!>0 ԚjpJ}Is|VO{. ڴ-ΆdW|! ?tGMrqshW:5'N`uwi7t|':9dO`fYP#/x}M#=4Pi]L]ˉ=:ֺBk6mڠguֺ< HS.;m@SO-ikJkY'N4 ;P::JmEQ)"càS E$-"\PT2rvo?{Vu[Sg_~v̀mv;iȘhF!` kAP;\%"4}`d"V=-<2u W>?^ mqg}ڮD̡9|9RiH!1G*{xӐkcTbц]BƖA{P%ѶGmYO>C4Hem*Ӿp>f`*:Q> lU/D;GԾ.y~NAKDMi({EPׁbʱ*8vu0a<wrjl0@j: S(}{9+S(,u"KYp7U<ٽU}emю}uɫu 9`QpP뉜;~t(Q 쩕s0 EdHaow09S~("o0eɖyhLE}j xKd \@ef3m:/dIK4p/)&Yh!Yjh\DMky'hVu_+%y7&@TLޗBZue?%ĮgFE*W{LIc_ADndsˠ *TL>L8͛7Q?&M+e׏QONQ%.SJZ:`\>X8ݗ*kXMf{wkiXLKD_w]V!ۅݵa[>o_7n(I&݁)qWDN'Tetws1wVWW~d'NXQKn*;KrR{RW,9Ҫm5$N??u(w-9[ëbgU(AĴ?Jn9h9o+~ 5h+GZwtz kAf2 l;>"2?TUUcjeTÇ?EΟ^*<9juUUa4cЉ!MbtW|ˎL]!tj RșdztLΰ6_,[¦D)XH<1T NC&/! 8 `a[C RQQQ)EL) (-mAy\Tԉwˈ:Qe< CsksVH^P K`]q.2A<JS)dZÀ2;cou ;pfI I1> Den9'"&%fLxT1,lW rR}q]T$eeKH"y(O G9!`u4q#e=Y)%`YrXW.Gԉ.K%( MT 2Hf`D7 qPUU74@2a o6TPz1N4\`p1JcϋbBQ"Ƌ`%BW\iߪPT4Jdp2$H)dzd {1 +?tU)":X+w*չK+B(nE@E8*@Ws 0dDm~1 *4/>1_K"`ne%NEk*Lzq!R|8)]2=vBx"r0u|`R| Fydac!]xGo5?88IDATUȑh4{s|(Caѽ^) X4j3.]e;g"TF*.@JQ˰V UV;|xPUpqS  |St1 f[50LbQDQT;KQg*@L"Vxtq$€Ș46"$ >P)З(aR Vqqf L:ڲvti<̢cmt''Fel_V}ԹvP'Ĵ"ZLc<ÍFM$Z(ȑ;v&~U _ϴzeG|Cfo1|&4e #I_HTff2v'^K@{OkWRQDrxhߙSY 44 &w`a Vѻq$Bp 2a 6[ S~ٹX D> L)o#XG>RsaA4;AWu;C\iap} 'G5kg3W)ǀ khQN?OaV>-^Fr6J[<8>WTUeW˓c kuĢqbƻV{?`[8 UvD#U!' =Ȱ|iʤN!8J)՟J *kZ11ĉ!-t@M^ l;;uK`}Iv-26NOӚtK~Y-k/dLxL,3r$zN0g_L[C龤ہ?cz^\)z%M)+߁G1>Q jxF:]h}INGeј-R$)-UȘ\gO_ä~1a3GbCi+Т:9v<{Zz~JcLUF{99EQ(^xnO'Iw?kf>T1.cZ4 k/0j47 |GKRhUf+5{֞[dCRo5GҘ, ;`b9-ߴ ^7'vEƉ6+:\ƯE8CcP}m~mԥd'X$wo΄΅:EvR)2\v*+3kW4/\𭶌`Je  o ZMO0[2R=/mX=/>xFWIIׁ֒}PCf͵LizpeP>|eN`"{TKV̭$U/%ԥZhʤ:g V{6rxoVs5́34|#܌NbV5*lΘprHpR킽Z"Fܛlų`Е̥>-𷍿n,Bp{1VvOt2ٳAӥa!2K!ʡXOZJk$eK5Ql$Ij1EMh=H>OMU.!֚t"A?j;@1PB9dĽ$Ex 8A8Atu-6;B[)/ |@-BS&d#͙tk\`,ɒv9wOy+b_x6i*a@-hraRG)[34Yr#DZdI2gU8Z_Ӱs'*̶a2 j%뉻એ_̊=]`Ǔ 1wrXX!=RMԥIk5(Kkҙ^ܹ7U$mZ%}Pa9R8: Z2#  9]w,АnBw9~LJ(XOޅ\y+;M^*Pk-x2S `v勦1LmfkX/J0,ܼ߾cdHUҴ.Jsz #0BEٖ}q'D"(`2k0jjP"(ATʠ,@(Q G%I!݂/@T%do׬WoM4X`jQ3f $1!.ˀd%۾csnd8xA{ccm߻ӟ/Gv7Km+197cR k;f޲'嘜bgDŽlumUb6FdM/b5?b)L.&|hz`n{&WmjLŒ޻ll_L{0e+'w𘽧0IڶM-jv~Ԕſx.",_24Kb&%Me/M.;"hؗ-OW~̽;cδU=Zj`.XeW~ hҐx}+|3I.?D$K&5>z^HǾ/J`݌yqL? XIs0%v0^I<Sm4Zz˶(;)ڂN;/dp Ǝ7~^c% |S("jx#0'_mXp̚f',`q4L5]ޱwmZm#e'菱,Gi(> 9~7d~z~vβ7"}~F3m;'xiM;ηz5&R lx>y >&/i?ACz7q !DSw]W yGZYڪ@+rTL?d~ݰiv,  D:zAknO&$RVVJ?>[> Z`~yU@ c]m?e>p{h9P;+1/X7&9b'=vkA)2¶ih+8ٿ,`{lYc_./cbϵ7ҖR cO̳ MWaff(Kn> , Dʼgo.x{huI7e;oEK?_?*+DisiLC;B*5<^ڻzR!gտ x?X{4Pʇ`'a90kBijoi!RVFtPrT$҆vGP76֢cjF!enOf"訟Rv"$*x Hf^>X̪~[6tJ{?/g v|vk$,N˲_b6>dURdeQXvYk|mlg3&8޲-]mZ%'X*b }kPwOf ?u&9-{ܹŤ{0)x^a%/"}ob-D^@:O4ei4)|mlT]Ӝjd;<[ztS+*l*i'T:<6sE/pf.5C͎bx--T 7#2d!CP6nnƫQm+,h4ElWJu`'U3Uܤ yvϪ"G>U~k[u`v\o&;ɮ'ى Us>)u'+`OZVqe:o1Iu&t;5OO"RRF]mV%[hYm=fLVn?I⭎}9,Z o2;Sr?Y-_(i''i?/-J'Ӓjb]͛<9V~}X X*(ƶ͐~R"xe}2\6vGU $B76ۇZ= BV>=_AeWZ|,; aLq,keEy؜mg5"o ` NtƤa;dhYUzLf)4VdYe ?UkWzmYv˳!*WOl諁Uoh+H~gwힱTk'mw-;!y][b#nUQGX#Lw}1E!s, P<2U'>h V)dZmB*`sINg=,xC?i# o١I:6.bY|X[6ZpZ:m|S] k9.~~7>T $lT@*0p QߏlvEa\C ~==.U.D?sp_\)81&۟_?'~2n-8s䞗;誒mSiyӞ{praAߦvaaH"m)OmTXUɗ_YyX#@}FU(fi!`lO:foskjֱE {2V B@٥W,pDAb{w_`N(ؐm Cux˂U7'f)VN?p6K|y4$ؼo/W n!A{\'˱ W,i0J8<86@cru@fNV(tTa<Vax`1^ߜiiLR9=,.)dWe.xe,L{L=SaSXepO+6V(t B`N@T'rŠ(@t8gÑ'ajwMX H+s _b=Ti22`0삛rUܴ];T@Cc- U8< &HHȂW'Bt{t2ƠEaîB %nP`h$ΐ1DCOBxyW$D!r"T\Mo-fryJ(]T 8 ^.<\ߩT2h*^ذD]6PB`'^6~ L~pC_ y1c. PB %PB %PB %PB %PB %PB %PB %PB %PB %PB %PB %PB %L?\D=!IENDB`ldm-2.2.13/themes/ltsp/language.png0000644000175000017500000000215712302300754017002 0ustar vagrantvagrantPNG  IHDRw= pHYs B(xtIME.r)IDATHՖ[kE3{w7ILHx*~k?Tx)RJ^-ZAil7{zw=xm&j~<oևnc+_]W0W3U儐"qZs{XVk@v^3ye 1cԻ[z5AV:Խ>馯t0idY{8ժ$JpԹR{|e?*~bΝ$+ }6Z)=i煢"W;xZ:ӎF>ol+_s=S '/,X@A^وDHwC.LDnνjd6V21 #q\n]yߐw6վuz/M+R/js.ޙ/b*UޑW+dIENDB`ldm-2.2.13/themes/ltsp/host.png0000644000175000017500000000665412302300754016202 0ustar vagrantvagrantPNG  IHDRw= MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3bKGD pHYs  tIME0  IDATHMHTQa4RRtDF R ŏ B "EAE U-ZHpU"Hh'H˲̽-7&qOPWW7`K`OOOhkzH)#ÖFo׋iT\.>(H BdA(H H)>{hkm!!!ROP¼3#/8R޻[TNy B] ))IB0bᣇ/sL ?jUvXC2ՇըއG^{w-՘.CqmqdAmnEʩvR?P}:c5f8 TD&0dIHXόMf  "o%!RrqY//E0JLTTH􏅄iqI)T791%GJ]yo >RB٢S(8~.teъca/bgb2{ir~w.1j0b)ScM؁lL$l!5+_π0Qr $gx!yG}'+އDXMjbN:EҨ-Ux.$,YOlW_%lkF-N1vl}im~ ,!uLNNRQQ٪ѴR__:z6IENDB`ldm-2.2.13/themes/ltsp/greeter-gtkrc0000644000175000017500000000426712302300754017205 0ustar vagrantvagrant# LTSP theme for LDM # # based on, though significantly gutted: # # Ubuntu Human Colorscheme # # Authors: # Richard Stellingwerff # Daniel Borgmann # Billy Cantrell # # Feel free to modify and share! style "clearlooks-default" { font_name="Sans 10" GtkButton ::default_border = { 0, 0, 0, 0 } GtkRange ::trough_border = 0 GtkCheckButton ::indicator_size = 14 GtkExpander ::expander_size = 16 GtkButton ::child-displacement-x = 1 GtkButton ::child-displacement-y = 1 bg[PRELIGHT] = "#9baada" bg[SELECTED] = "#637a9a" engine "clearlooks" { menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient menuitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient), 2 = 3d-ish (button) listviewitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient) progressbarstyle = 0 # 0 = candy bar, 1 = fancy candy bar, 2 = flat animation = FALSE } } style "clearlooks-wide" = "clearlooks-default" { xthickness = 2 ythickness = 2 } style "clearlooks-wider" = "clearlooks-default" { xthickness = 3 ythickness = 3 font_name="Sans 9" } style "clearlooks-tasklist" = "clearlooks-default" { xthickness = 5 ythickness = 3 } style "clearlooks-menu" = "clearlooks-default" { xthickness = 2 ythickness = 1 } style "clearlooks-menu-item" = "clearlooks-default" { xthickness = 2 ythickness = 3 } style "clearlooks-tooltips" = "clearlooks-default" { xthickness = 4 ythickness = 4 bg[NORMAL] = { 1.0,1.0,0.75 } } # widget styles class "GtkWidget" style "clearlooks-default" class "GtkCombo" style "clearlooks-button" class "GtkRange" style "clearlooks-wide" class "GtkFrame" style "clearlooks-wide" class "GtkMenu" style "clearlooks-menu" class "GtkEntry" style "clearlooks-wider" class "GtkMenuItem" style "clearlooks-menu-item" widget_class "*MenuItem.*" style "clearlooks-menu-item" # tooltips stuff widget_class "*.tooltips.*.GtkToggleButton" style "clearlooks-tasklist" widget "gtk-tooltips" style "clearlooks-tooltips" ldm-2.2.13/themes/ltsp/backend.png0000644000175000017500000000215212302300754016601 0ustar vagrantvagrantPNG  IHDRw=bKGDC pHYs oy vpAgxLIDATHǵOLU?ofY*еXTiImb= `Ѓ5%XA?!Ach&&>K~VVV(//lp)-?8+o7_Lo+ۀ_At!T*,gP]lhQv %.9HumU#jRxD*`{"z4Uؾ `mX,cuݝqNW^=ƽyA`W.j/M: 00Oi;~00ME0?hJP}†tuv(pY\7XFXx r@ @(n׾CC,EhJ,ò,|:G:xGgd?D*|)yO38>H;*39+x^|dd(_E.S(yp02yӽ^/ d\qqIz3 Vv;}n EQ8y8AAUogfܶ#Ev=x<dMhj柙PRw* ճu=w6`KGS4=[ȝn}e~n;*jo[H)I$~ 4Էi)7x(-OʚsH),??Ν# 71MM?8 2!B!4M[ j[0HlM5MRnw22 cdld|ݬM*.;y$%tEXtcreate-date2009-06-23T17:02:02+00:00?d%tEXtmodify-date2009-06-23T17:02:02+00:00`Փ6IENDB`ldm-2.2.13/themes/ltsp/logo.png0000777000175000017500000000000012302300754021172 2LTSP_final_300.pngustar vagrantvagrantldm-2.2.13/src/0000755000175000017500000000000012302300754013024 5ustar vagrantvagrantldm-2.2.13/src/plugin.c0000644000175000017500000000747612302300754014504 0ustar vagrantvagrant#include #include #include #include #include #include "ldminfo.h" #include "ldmutils.h" #include "ldmgreetercomm.h" #include "logging.h" #include "plugin.h" /* * get_userid * Ask the greeter to check autologin or get username */ void get_userid(gchar **username) { gchar *cmd; cmd = g_strconcat("prompt ", _("Username"), "\nuserid\n", NULL); *username = ask_value_greeter(cmd); g_free(cmd); } /* * get_passwd */ void get_passwd(gchar **password) { gchar *cmd; cmd = g_strconcat("prompts ", _("Password"), "\npasswd\n", NULL); *password = (gchar*) ask_value_greeter(cmd); set_message(g_strconcat("", _("Verifying password. Please wait."), "", NULL)); g_free(cmd); } /* * get_host */ void get_host(gchar **server) { gchar *cmd = "hostname\n"; gchar *host; host = (gchar*) ask_value_greeter(cmd); if(g_ascii_strncasecmp(host, "None", 4)) { if(*server) g_free(*server); *server = host; } } /* * get_language */ void get_language(gchar **language) { gchar *cmd = "language\n"; gchar *lang; lang = (gchar*) ask_value_greeter(cmd); if(g_ascii_strncasecmp(lang, "None", 4)) { if(*language) g_free(*language); *language = lang; setenv("LDM_LANGUAGE", lang, 1); } } /* * get_session */ void get_session(gchar **session) { gchar *cmd = "session\n"; gchar *sess; sess = (gchar*) ask_value_greeter(cmd); if (g_ascii_strncasecmp(sess, "None", 4)) { if (*session) g_free(*session); *session = sess; } } /* * get_Xsession * * Return to variable xsession the LDM_XSESSION info */ void __attribute__ ((visibility("default"))) get_Xsession(gchar **xsession, gconstpointer server) { ldminfo *curr_host = NULL; gchar *tmp_xsess = NULL; tmp_xsess = g_strdup(getenv("LDM_XSESSION")); if (!tmp_xsess || strlen(tmp_xsess) == 0) { curr_host = ldminfo_lookup(server); if(curr_host) { tmp_xsess = curr_host->xsession; if (!tmp_xsess || strlen(tmp_xsess) == 0) { tmp_xsess = g_strdup(getenv("LDM_DEFAULT_XSESSION")); if (!tmp_xsess || strlen(tmp_xsess) == 0) die("ldm","no Xsession"); } } } *xsession = tmp_xsess; } /* * set_session_env * * Set LDM_SESSION and LDM_XSESSION env variable with param * Then run xsession script */ void __attribute__ ((visibility("default"))) set_session_env(gchar *xsession, gchar *session) { if (g_strcmp0(session,"default") != 0 || getenv("LDM_SESSION") == NULL) { log_entry("ldm",7,"Export LDM_SELECTED_SESSION to environment: \"%s\"", session); setenv("LDM_SELECTED_SESSION", session, 1); } else { log_entry("ldm",7,"Using existing LDM_SESSION from environment: \"%s\"", getenv("LDM_SESSION")); } setenv("LDM_XSESSION", xsession, 1); /* Starting xsession script */ rc_files("xsession"); } /* * get_ltsp_cfg * Check for LTSP-Cluster. If true, contact loadbalancer for an IP */ void __attribute__ ((visibility("default"))) get_ltsp_cfg(gchar **server) { /* Check for LTSP-Cluster, if true, contact the loadbalancer for an IP */ if (access(LTSP_CLUSTER_CONFILE, F_OK) == 0) { FILE *fp; fp = popen("getltscfg-cluster -l ldm", "r"); if (fp != NULL) { log_entry("ltsp-cluster",6,"IP before load-balancing: %s", *server); if (fgets(*server, PATH_MAX, fp) == NULL) log_entry("ltsp-cluster",4,"failed to get an IP from the load-balancer"); log_entry("ltsp-cluster",6,"IP after loadbalancing: %s", *server); } if (pclose(fp) == -1) log_entry("ltsp-cluster",3,"load-balancing failed"); } } ldm-2.2.13/src/logging.h0000644000175000017500000000032212302300754014620 0ustar vagrantvagrant#define LOGFILE "/var/log/ldm.log" #define LOGLEVEL 6 void log_entry(char *component, int level, const char *format, ...); void die(char *component, const char *format, ...); void log_close(); void log_init(); ldm-2.2.13/src/logging.c0000644000175000017500000000605212302300754014621 0ustar vagrantvagrant/* * Copyright (2010) Stéphane Graber , Revolution Linux. * Author: Stéphane Graber * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include "logging.h" FILE *logfile = NULL; char *LOG_LEVEL_NAMES[] = { "EMERGENCY", "ALERT", "CRITICAL", "ERROR", "WARNING", "NOTICE", "INFO", "DEBUG" }; int loglevel = 0; /* * log_init * Init log facility * Open log. Will log locally or back to the server based upon * the boolean LDM_SYSLOG. */ void log_init(int syslog, int level) { if (level < 0 || level > 7) { loglevel = LOGLEVEL; } else { loglevel = level; } if (syslog) { openlog("ldm", LOG_PID | LOG_NOWAIT, LOG_DAEMON); } else { logfile = fopen(LOGFILE, "a"); if (!logfile) { fprintf(stderr, "Couldn't open logfile " LOGFILE "\n"); exit(1); } setbuf(logfile, NULL); /* unbuffered writes to the log file */ } } /* * log_close * Close logging and clean exit */ void log_close() { if (logfile) fclose(logfile); else closelog(); } /* * log_entry: log messages to file or syslog */ void log_entry(char *component, int level, const char *format, ...) { if (level < 0 || level > 7 || level > loglevel) return; va_list ap; va_start(ap, format); if (logfile) { // Get current time struct tm *ptr; time_t lt; char timestr[20]; lt = time(NULL); ptr = localtime(<); strftime(timestr, sizeof(timestr), "%b %e %H:%M:%S", ptr); fprintf(logfile, "%s: [%s] %s: ", timestr, component, LOG_LEVEL_NAMES[level]); vfprintf(logfile, format, ap); fprintf(logfile, "\n"); } else { vsyslog(level, format, ap); } va_end(ap); } /* * die() * Close display manager down with an error message. * Shut things down gracefully if we can * msg -- log message */ void die(char *component, const char *format, ...) { va_list ap; va_start(ap, format); log_entry(component, 2, format, ap); va_end(ap); /* Stop logging */ if (logfile) fclose(logfile); else closelog(); exit(1); } ldm-2.2.13/src/ldmutils.c0000644000175000017500000001257312302300754015035 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include #include #include #include #include "ldm.h" #include "ldmutils.h" #include "logging.h" /* * rc_files * * Run startup commands. */ void rc_files(char *action) { GPid rcpid; gchar *command; command = g_strjoin(" ", "/bin/sh", RC_DIR "/ldm-script", action, NULL); rcpid = ldm_spawn(command, NULL, NULL, NULL); ldm_wait(rcpid); g_free(command); } /* * get_ipaddr * Get ip address of host */ void get_ipaddr() { int numreqs = 10; struct ifconf ifc; struct ifreq *ifr; /* netdevice(7) */ struct ifreq info; struct sockaddr_in *sa; int skfd, n; skfd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (skfd < 0) die("ldm","socket"); /* * Get a list of all the interfaces. */ ifc.ifc_buf = NULL; while (TRUE) { ifc.ifc_len = sizeof(struct ifreq) * numreqs; ifc.ifc_buf = (char *)realloc(ifc.ifc_buf, ifc.ifc_len); if (ifc.ifc_buf == NULL) die("ldm","out of memory"); if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0) { log_entry("ldm",4,"SIOCGIFCONF"); goto out; } if (ifc.ifc_len == (int)sizeof(struct ifreq) * numreqs){ /* assume it overflowed and try again */ numreqs += 10; continue; } break; } /* * Look for the first interface that has an IP address, is not * loopback, and is up. */ ifr = ifc.ifc_req; for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) { if (ifr->ifr_addr.sa_family != AF_INET) continue; strcpy(info.ifr_name, ifr->ifr_name); if (ioctl(skfd, SIOCGIFFLAGS, &info) < 0) { log_entry("ldm",4,"SIOCGIFFLAGS"); goto out; } if (!(info.ifr_flags & IFF_LOOPBACK) && (info.ifr_flags & IFF_UP)) { sa = (struct sockaddr_in *) &ifr->ifr_addr; ldm.ipaddr = g_strdup(inet_ntoa(sa->sin_addr)); break; } ifr++; } out: if (ifc.ifc_buf) free(ifc.ifc_buf); if (n == ifc.ifc_len) die("ldm","no configured interface found"); } /* * ldm_spawn: * * Execute commands. Prints nice error message if failure. */ GPid ldm_spawn(gchar *command, gint *rfd, gint *wfd, GSpawnChildSetupFunc setup) { GPid pid; GError *error = NULL; GSpawnFlags flags = G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD; gint argc; gchar **argv = NULL; g_shell_parse_argv (command, &argc, &argv, NULL); if (!wfd) flags |= G_SPAWN_STDOUT_TO_DEV_NULL; g_spawn_async_with_pipes ( NULL, /* Working directory: inherit */ argv, /* Arguments, null term */ NULL, /* Environment, inherit from parent */ flags, /* Flags, set above */ setup, /* Child setup function: passed to us */ NULL, /* No user data */ &pid, /* child pid */ wfd, /* Pointer to in file descriptor */ rfd, /* Pointer to out file descriptor */ NULL, /* No stderr */ &error); /* GError handler */ g_strfreev(argv); if (error) { log_entry("ldm",3,"ldm_spawn failed to execute: %s", error->message); } else { log_entry("ldm",7,"ldm_spawn: pid = %d", pid); } return pid; } /* * handle_sigchld * * Handle sigchld's for ldm processes. Empty function, * since we wait for things to happen in order via * ldm_wait */ void handle_sigchld(int signo) { /* do nothing */ child_exited = TRUE; } /* * ldm_wait * * wait for child process */ void ldm_wait(GPid pid) { siginfo_t info; log_entry("ldm",7,"waiting for process: %d", pid); do { int res; res = waitid (P_PID, pid, &info, WEXITED | WSTOPPED); if (res == -1) { int temp; temp = errno; log_entry("ldm",4,"waitid returned an error: %s", strerror(errno)); if(temp == ECHILD) { break; } } else { if (info.si_pid == pid) { /* * The process we were waiting for exited, * so break out of the loop. */ break; } else { log_entry("ldm",4,"unexpected terminated process, pid: %d", info.si_pid); unexpected_child = TRUE; } } } while (TRUE); if (info.si_code == CLD_EXITED) { log_entry("ldm",7,"process %d exited with status %d", info.si_pid, WEXITSTATUS(info.si_status)); } else if (info.si_code == CLD_KILLED) { log_entry("ldm",7,"process %d killed by signal %d", info.si_pid, info.si_status); } } /* * close_wm * Close window manager by SIGKILL */ void close_wm() { if (!(ldm.wmpid)) { return; } log_entry("ldm",7,"closing window manager"); if (kill(ldm.wmpid, SIGKILL) < 0) { log_entry("ldm",3,"sending SIGKILL to window manager failed"); } ldm_wait(ldm.wmpid); ldm.wmpid = 0; } ldm-2.2.13/src/ldmplugin.h0000644000175000017500000000121112302300754015163 0ustar vagrantvagrant#ifndef LDMPLUGIN_H #define LDMPLUGIN_H #include "plugin.h" /* ldmplugin.c declarations */ void __attribute__ ((visibility("default"))) ldm_init_plugin(LdmBackend* descriptor); typedef enum { AUTH_EXC_NONE = 0, AUTH_EXC_RELOAD_BACKEND = 1, AUTH_EXC_GUEST, AUTH_EXC_UNKNOWN, } LdmAuthException; int ldm_load_plugins(void); int ldm_auth_plugin(); void ldm_guest_auth_plugin(); void ldm_setup_plugin(); void ldm_start_plugin(); void ldm_close_plugin(); void ldm_raise_auth_except(); gchar** ldm_get_plugins(); /* ldmplugin.c member function decl */ void _load_plugin(const char*); void set_current_plugin(char *plug_name); #endif ldm-2.2.13/src/ldmplugin.c0000644000175000017500000001130712302300754015165 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include "ldmplugin.h" #include "ldmgreetercomm.h" #include "logging.h" GTree* plugin_list = NULL; gchar** plugin_names = NULL; static jmp_buf auth_jmp_buf; static gchar* current_plugin = NULL; static int g_strcmp(gconstpointer a, gconstpointer b) { return strcmp((char*)a, (char*)b); } /* * set_current_plugin * Set current plugin name */ void set_current_plugin(char *plug_name) { current_plugin = plug_name; } /* * ldm_start_plugin * Iterate over plugin_list and start plugin */ void ldm_start_plugin() { LdmBackend *desc = (LdmBackend*) g_tree_lookup(plugin_list, current_plugin); if(desc->start_cb) desc->start_cb(); } /* * ldm_close_plugin * Iterate over plugin_list and close plugin */ void ldm_close_plugin() { LdmBackend *desc = (LdmBackend*) g_tree_lookup(plugin_list, current_plugin); if(desc->clean_cb) desc->clean_cb(); } /* * ldm_setup_plugin * Call setup callback function of plugin */ void ldm_setup_plugin() { log_entry("ldm",7,"setting up plugin: %s", current_plugin); LdmBackend *desc = (LdmBackend*) g_tree_lookup(plugin_list, current_plugin); if(desc->init_cb) desc->init_cb(); } /* * ldm_guest_auth_plugin * Call setup guest authentication values of plugin */ void ldm_guest_auth_plugin() { log_entry("ldm",7,"guest auth plugin: %s", current_plugin); LdmBackend *desc = (LdmBackend*) g_tree_lookup(plugin_list, current_plugin); if(desc->guest_cb) desc->guest_cb(); } /* * ldm_auth_plugin * Call auth callback function of plugin * Returns 0 on success, 1 otherwise */ int ldm_auth_plugin() { LdmBackend *desc = (LdmBackend*) g_tree_lookup(plugin_list, current_plugin); if (desc->guest_cb) ask_greeter("allowguest true\n"); else ask_greeter("allowguest false\n"); switch (setjmp(auth_jmp_buf)) { case AUTH_EXC_NONE: if(desc->auth_cb) desc->auth_cb(); return 0; case AUTH_EXC_RELOAD_BACKEND: ldm_close_plugin(); log_entry("ldm",7,"reloading backend"); return 1; case AUTH_EXC_GUEST: if(desc->guest_cb) desc->guest_cb(); return 0; } return 1; } /* * ldm_init_plugin * Init plugin function. Must be called at each plugin's init */ void __attribute__ ((visibility("default"))) ldm_init_plugin(LdmBackend* descriptor) { gchar** new_plugin_names; int plugin_names_len; plugin_names_len = g_strv_length(plugin_names); new_plugin_names = g_realloc(plugin_names, (plugin_names_len+1)*sizeof(gchar*)); if (new_plugin_names != plugin_names) { g_free(plugin_names); plugin_names = new_plugin_names; } plugin_names[plugin_names_len] = g_strdup(descriptor->name); plugin_names[plugin_names_len+1] = NULL; g_tree_replace(plugin_list, descriptor->name, descriptor); log_entry("ldm",7,"%s initialized", descriptor->name); } /* * _load_plugin * open plugin's lib * path -- plugin path */ void _load_plugin(const char *path) { void *handle = dlopen(path, RTLD_LAZY); if (handle) { log_entry("ldm",7,"loaded %s", path); return; } log_entry("ldm",4,"%s: Invalid LDM plugin %s", dlerror(), path); } /* * ldm_load_plugins * Load all plugins at LDM_PLUG_DIR */ int ldm_load_plugins() { plugin_list = g_tree_new(g_strcmp); g_tree_ref(plugin_list); plugin_names = g_malloc0(sizeof(gchar*)); DIR* plugin_dir = opendir(LDM_PLUG_DIR); if (!plugin_dir) { log_entry("ldm",3,"unable to open plugin dir: %s", LDM_PLUG_DIR); return 1; } struct dirent* entry; while ( (entry = readdir(plugin_dir)) ) { if ((entry->d_type == DT_REG || entry->d_type == DT_UNKNOWN) && (strstr(entry->d_name, ".so") != NULL)) { int name_len = strlen(entry->d_name)+strlen(LDM_PLUG_DIR)+2; char* plug_name = (char *) malloc(name_len); snprintf(plug_name, name_len, "%s/%s", LDM_PLUG_DIR, entry->d_name); log_entry("ldm",7,"loading: %s", plug_name); _load_plugin(plug_name); free(plug_name); } } if (errno) perror(strerror(errno)); closedir(plugin_dir); return 0; } /* * Called on authentication failure from an auth callback. * Will unwind the stack up to the frame above the callback and handle the * error before retrying. */ void ldm_raise_auth_except(LdmAuthException n) { longjmp(auth_jmp_buf, n); } gchar** ldm_get_plugins() { return plugin_names; } ldm-2.2.13/src/ldminfo.h0000644000175000017500000000202312302300754014622 0ustar vagrantvagrant#ifndef LDMINFO_H #define LDMINFO_H #define MAXBUFSIZE 16384 #include /* * state enum */ enum { SRV_UP, SRV_DOWN }; /* * Info about servers */ typedef struct { GList *languages; GList *language_names; GList *session_names; GList *sessions; gint rating; gint state; gchar *xsession; } ldminfo; /* * ldminfo.c */ /* * Init the hash table : key=char hostnames, values=struct *ldminfo * ldm_server is the LDM_SERVER variable, a list of hostnames separated by space */ void ldminfo_init(GList ** host_list, const char *ldm_server); /* Do the query for one host and fill ldminfo struct */ void _ldminfo_query_one(const char *hostname, ldminfo * ldm_host_info); /* split string by line and then construct the ldm_host_info */ void _ldminfo_parse_string(const char *s, ldminfo * ldm_host_info); int ldm_getenv_bool(const char *name); int ldm_getenv_int(const char *name, int default_value); ldminfo *ldminfo_lookup(gconstpointer key); int ldminfo_size(); void ldminfo_free(); #endif ldm-2.2.13/src/ldminfo.c0000644000175000017500000001701512302300754014624 0ustar vagrantvagrant/* LTSP Graphical GTK Greeter * Copyright (C) 2007 Francis Giraldeau, * Copyright 2007-2008 Scott Balneaves * Copyright 2008-2009 Ryan Niebur * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include "ldminfo.h" #include "ldmutils.h" static GHashTable *display_names; static GHashTable *ldminfo_hash = NULL; static void generate_hash_table(void) { char buffer[1024]; FILE * file; char ** ret; display_names = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); file = fopen(RC_DIR "/locales", "r"); if(file == NULL) { return; } while(fgets(buffer, sizeof(buffer), file) != NULL) { ret = g_strsplit(buffer, " ", 2); g_hash_table_insert(display_names, g_strdup(ret[0]), g_strdup(g_strchomp(ret[1]))); g_strfreev(ret); } fclose(file); } static gchar * get_display_name(gchar * locale) { gchar * compare_to; char ** ret; gchar * result; ret = g_strsplit(locale, ".", 2); compare_to = g_strdup(ret[0]); g_strfreev(ret); if(compare_to == NULL) { return g_strdup(locale); } result = g_hash_table_lookup(display_names, compare_to); if(result == NULL) { result = g_strdup(locale); } return result; } /* * ldminfo_free * ldminfo struct freed */ void ldminfo_free() { g_hash_table_destroy(ldminfo_hash); } /* * ldminfo_lookup */ ldminfo *ldminfo_lookup(gconstpointer key) { return g_hash_table_lookup(ldminfo_hash, key); } /* * ldminfo_size */ int ldminfo_size() { return g_hash_table_size(ldminfo_hash); } /* * ldminfo_init */ void ldminfo_init(GList **host_list, const char *ldm_server) { char **hosts_char = NULL; ldminfo *ldm_host_info = NULL; int i; generate_hash_table(); /* Static hash table */ ldminfo_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); hosts_char = g_strsplit(ldm_server, " ", -1); for (i = 0; hosts_char != NULL && hosts_char[i] != NULL; i++) { /* Initialize to default values */ ldm_host_info = g_new0(ldminfo, 1); ldm_host_info->languages = NULL; ldm_host_info->session_names = NULL; ldm_host_info->sessions = NULL; ldm_host_info->rating = 0; ldm_host_info->state = SRV_DOWN; ldm_host_info->xsession = NULL; /* * Populate the ldminfo structure, and determine if the host * is up or down. */ _ldminfo_query_one(hosts_char[i], ldm_host_info); /* * Insert into the hash table. */ g_hash_table_insert(ldminfo_hash, g_strdup(hosts_char[i]), ldm_host_info); /* * Add the host to the host list. */ *host_list = g_list_append(*host_list, g_strdup(hosts_char[i])); } g_strfreev(hosts_char); } /* * Do the query for one host and fill ldminfo struct * Note: for right now, we're reading files in /var/run/ldm. Francis would like * the host detection closer to the login and checking network availability * etc. What should happen here, for gutsy+1, is to call out to an * external script. This script will query ldminfo, perform ssh port testing, * etc. Things like nc -z hostname ssh, etc. */ void _ldminfo_query_one(const char *hostname, ldminfo * ldm_host_info) { int filedes, numbytes; char buf[MAXBUFSIZE]; char hostfile[BUFSIZ]; snprintf(hostfile, sizeof hostfile, "/var/run/ldm/%s", hostname); filedes = open(hostfile, O_RDONLY); if ((numbytes = read(filedes, buf, MAXBUFSIZE - 1)) == -1) { perror("read"); goto error; } buf[numbytes] = '\0'; close(filedes); ldm_host_info->state = SRV_UP; _ldminfo_parse_string(buf, ldm_host_info); return; error: close(filedes); ldm_host_info->state = SRV_DOWN; } /* * split string by line and then construct the ldm_host_info */ void _ldminfo_parse_string(const char *s, ldminfo * ldm_host_info) { char **lines = NULL; int i; lines = g_strsplit(s, "\n", -1); for (i = 0; lines != NULL && lines[i] != NULL; i++) { if (!g_ascii_strncasecmp(lines[i], "language:", 9)) { gchar **val; val = g_strsplit(lines[i], ":", 2); ldm_host_info->languages = g_list_append(ldm_host_info->languages, g_strdup(val[1])); ldm_host_info->language_names = g_list_append(ldm_host_info->language_names, get_display_name(val[1])); g_strfreev(val); } else if (!g_ascii_strncasecmp(lines[i], "session:", 8) && !g_strstr_len(s, -1, "session-with-name")) { gchar **val; gchar *name; val = g_strsplit(lines[i], ":", 2); name = g_strrstr(val[1], "/"); if(name) { name++; } else { name = val[1]; } ldm_host_info->sessions = g_list_append(ldm_host_info->sessions, g_strdup(val[1])); ldm_host_info->session_names = g_list_append(ldm_host_info->session_names, g_strdup(name)); g_strfreev(val); } else if (!g_ascii_strncasecmp(lines[i], "session-with-name:", 8)) { gchar **val; val = g_strsplit(lines[i], ":", 3); ldm_host_info->sessions = g_list_append(ldm_host_info->sessions, g_strdup(val[2])); ldm_host_info->session_names = g_list_append(ldm_host_info->session_names, g_strdup(val[1])); g_strfreev(val); } else if (!g_ascii_strncasecmp(lines[i], "rating:", 7)) { gchar **val; val = g_strsplit(lines[i], ":", 2); ldm_host_info->rating = atoi(val[1]); g_strfreev(val); } else if (!g_ascii_strncasecmp(lines[i], "xsession:", 9)) { gchar **val; val = g_strsplit(lines[i], ":", 2); ldm_host_info->xsession = g_strdup(val[1]); g_strfreev(val); } else { /* Variable not supported */ } } g_strfreev(lines); } /* * ldm_getenv_bool * Return if env variable is set to true or false * name -- env. variable name */ int ldm_getenv_bool(const char *name) { char *env = getenv(name); if(env) { if (*env == 'y' || *env == 't' || *env == 'T' || *env == 'Y') return 1; } return 0; } /* * ldm_getenv_int * Return an int, will return default_value if not set */ int ldm_getenv_int(const char *name,int default_value) { char *env = getenv(name); if(env) { return atoi(env); } return default_value; } ldm-2.2.13/src/ldmgreetercomm.c0000644000175000017500000000731612302300754016205 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include "ldmplugin.h" #include "ldmutils.h" #include "ldmgreetercomm.h" #include "logging.h" static GPid greeterpid; static GIOChannel *greeterr; static GIOChannel *greeterw; /* * set_greeter_pid */ void set_greeter_pid(GPid p) { greeterpid = p; } /* * set_greeter_read_channel */ void set_greeter_read_channel(GIOChannel *gr) { greeterr = gr; } /* * set_greeter_read_channel */ void set_greeter_write_channel(GIOChannel *gw) { greeterw = gw; } /* * ask_greeter * Write command to I/O buffer of the greeter * cmd -- command to write on buffer * * Return 1 if fails, else 0 */ int ask_greeter(gchar *cmd) { /* Write command to io channel of the greeter */ GError *ge = NULL; if(g_io_channel_write_chars(greeterw, cmd, -1, NULL, &ge) != G_IO_STATUS_NORMAL) { log_entry("ldm",4,"%s", ge->message); return 1; } /* Flush buffer */ if(g_io_channel_flush(greeterw, &ge) != G_IO_STATUS_NORMAL) { log_entry("ldm",4,"%s", ge->message); return 1; } return 0; } /* * close_greeter * Close greeter properly * s_ldm -- struct ldm_info */ void close_greeter() { gboolean failed = 0; gchar *cmd = "quit\n"; if (!greeterpid) return; if(ask_greeter(cmd)) failed = 1; if(failed) { log_entry("ldm",3,"quit command failed. SIGTERM to greeter"); if(kill(greeterpid, SIGTERM) < 0) { log_entry("ldm",3,"SIGTERM failed. SIGKILL to greeter"); kill(greeterpid, SIGKILL); } } ldm_wait(greeterpid); g_io_channel_shutdown(greeterr, TRUE, NULL); g_io_channel_shutdown(greeterw, TRUE, NULL); close(g_io_channel_unix_get_fd(greeterr)); close(g_io_channel_unix_get_fd(greeterw)); greeterpid = 0; } /* * set_message * Ask greeter to print a message to UI */ int set_message(gchar *msg) { gchar *cmd; if (!greeterpid) return 1; cmd = g_strconcat("msg ", msg, "\n", NULL); if(ask_greeter(cmd)) return 1; g_free(cmd); return 0; } /* * listen_greeter * Read data from I/O buffer of the greeter * buf -- double ptr to buffer where data will be written * buflen -- buffer length * end -- pointer to the end of buffer * * Return 1 if fails, else 0 and buffer with data in */ int listen_greeter(gchar **buffer, gsize *buflen, gsize *end) { while (1) { /* Reads data from I/O channel of the greeter */ GError *ge = NULL; if(g_io_channel_read_line(greeterr, buffer, buflen, end, &ge) != G_IO_STATUS_NORMAL) { log_entry("ldm",3,"%s", ge->message); return 1; } g_strstrip(*buffer); log_entry("ldm",7,"Got command: %s",*buffer); /* handle callbacks */ if (**buffer == '@') { if (!g_ascii_strncasecmp(*buffer, "@backend@", 9)) { ldm_raise_auth_except(AUTH_EXC_RELOAD_BACKEND); continue; } else if (!g_ascii_strncasecmp(*buffer, "@guest@", 7)) { ldm_raise_auth_except(AUTH_EXC_GUEST); continue; } } break; } return 0; } /* * ask_value_greeter * Send cmd and expect value * s_ldm -- ldm_info struct * cmd -- command to send * buffer -- buffer to write to answer */ gchar *ask_value_greeter(gchar *cmd) { gsize len, end; gchar *buffer; if(ask_greeter(cmd)) die("ldm", "%s from greeter failed", cmd); if(listen_greeter(&buffer, &len, &end)) die("ldm", "%s from greeter failed", cmd); return buffer; } ldm-2.2.13/src/ldm.c0000644000175000017500000001665312302300754013757 0ustar vagrantvagrant/* * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include #include #include #include "ldm.h" #include "ldmgreetercomm.h" #include "ldmplugin.h" #include "ldminfo.h" #include "ldmutils.h" #include "logging.h" GList *host_list = NULL; volatile sig_atomic_t unexpected_child = 0; volatile sig_atomic_t child_exited = 0; /* stub declaration */ struct ldm_info ldm; /* * get_ldm_env * Setting up LDM env. variables */ void get_ldm_env() { gchar *greeter_path, *wm_path; ldminfo_init(&host_list, getenv("LDM_SERVER")); ldm.allowguest = ldm_getenv_bool("LDM_GUESTLOGIN"); ldm.sound = ldm_getenv_bool("SOUND"); ldm.sound_daemon = g_strdup(getenv("SOUND_DAEMON")); ldm.localdev = ldm_getenv_bool("LOCALDEV"); ldm.override_port = g_strdup(getenv("SSH_OVERRIDE_PORT")); ldm.directx = ldm_getenv_bool("LDM_DIRECTX"); ldm.nomad = ldm_getenv_bool("LDM_NOMAD"); ldm.autologin = ldm_getenv_bool("LDM_AUTOLOGIN"); ldm.lang = g_strdup(getenv("LDM_LANGUAGE")); ldm.session = g_strdup(getenv("LDM_SESSION")); /* Greeter Setup */ greeter_path = g_strdup(getenv("LDM_GREETER")); if (!greeter_path) greeter_path = g_strdup("ldmgtkgreet"); if(greeter_path[0] != '/') { ldm.greeter_prog = g_strjoin("/", LDM_EXEC_DIR, greeter_path, NULL); g_free(greeter_path); } else { ldm.greeter_prog = greeter_path; } wm_path = g_strdup(getenv("LDM_WINMANAGER")); if(!wm_path) wm_path = g_strdup("wwm"); if(wm_path[0] != '/') { ldm.wm_prog = g_strjoin("/", LDM_EXEC_DIR, wm_path, NULL); g_free(wm_path); } else { ldm.wm_prog = wm_path; } ldm.authfile = g_strdup(getenv("XAUTHORITY")); } /* * main entry point */ int main(int argc, char *argv[]) { /* decls */ gchar *auth_plugin = NULL; struct sigaction action; /* Init log settings */ log_init(ldm_getenv_bool("LDM_SYSLOG"),ldm_getenv_int("LDM_LOGLEVEL",-1)); #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif g_type_init(); /* set an empty handler for SIGCHLD so they're not ignored */ action.sa_handler = handle_sigchld; sigemptyset(&action.sa_mask); action.sa_flags = SA_SIGINFO; sigaction (SIGCHLD, &action, NULL); /* * Zero out our info struct. */ bzero(&ldm, sizeof ldm); ldm.pid = getpid(); /* Get our pid, to use in the command_socket */ ldm.display = g_strdup(getenv("DISPLAY")); /* * Get our IP address. */ get_ipaddr(); log_entry("ldm",6,"started on client with IP address: %s", ldm.ipaddr); /* * Put ip address in environment so that it is available to to the greeter */ setenv("LDMINFO_IPADDR", ldm.ipaddr, 1); /* * Get some of the environment variables we'll need. */ get_ldm_env(); /* * Load plugins */ if(ldm_load_plugins()) log_entry("ldm",3,"unable to load plugins"); /* * Begin running display manager */ log_entry("ldm",6,"calling rc.d init scripts"); rc_files("init"); /* Execute any rc files */ if (!ldm.autologin) { /* start interactive greeter only if no autologin */ gint rfd, wfd, rfd2, wfd2; log_entry("ldm",7,"spawning window manager: %s", ldm.wm_prog); ldm.wmpid = ldm_spawn(ldm.wm_prog, &rfd2, &wfd2, NULL); log_entry("ldm",7,"spawning greeter: %s", ldm.greeter_prog); ldm.greeterpid = ldm_spawn(ldm.greeter_prog, &rfd, &wfd, NULL); set_greeter_pid(ldm.greeterpid); /* create GIOChannels for the greeter */ ldm.greeterr = g_io_channel_unix_new(rfd); set_greeter_read_channel(ldm.greeterr); ldm.greeterw = g_io_channel_unix_new(wfd); set_greeter_write_channel(ldm.greeterw); /* if a backend is forced, leave no choice */ if (!getenv("LDM_FORCE_BACKEND")) { gchar *cmd; gchar *backends; /* allow choosing backend */ backends = g_strjoinv("|", ldm_get_plugins()); cmd = g_strconcat("pref choice;backend;Authentication Backend;Select _Backend ...;session;", backends, "\n", NULL); if(ask_greeter(cmd)) die("ldm", "%s from greeter failed", cmd); g_free(backends); g_free(cmd); } do { /* backend precedence is LDM_FORCE_BACKEND, user choice, * LDM_DEFAULT_BACKEND then hardcoded constant. */ g_free(auth_plugin); auth_plugin = g_strdup(getenv("LDM_FORCE_BACKEND")); if (!auth_plugin) { auth_plugin = ask_value_greeter("value backend\n"); if (!g_strcmp0(auth_plugin, "None")) { g_free(auth_plugin); auth_plugin = g_strdup(getenv("LDM_DEFAULT_BACKEND")); if (!auth_plugin) auth_plugin = g_strdup(DEFAULT_AUTH_PLUGIN); } } /* Init plugin */ set_current_plugin(auth_plugin); log_entry("ldm",6,"authenticating with backend: %s", auth_plugin); ldm_setup_plugin(); } while (ldm_auth_plugin()); } else { auth_plugin = g_strdup(getenv("LDM_DEFAULT_BACKEND")); if (!auth_plugin) auth_plugin = g_strdup(DEFAULT_AUTH_PLUGIN); set_current_plugin(auth_plugin); log_entry("ldm",6,"guest authenticating with backend: %s", auth_plugin); ldm_setup_plugin(); ldm_guest_auth_plugin(); } /* Closing Window Manager (wwm) */ if (ldm.wmpid) close_wm(); /* Start Plugin */ ldm_start_plugin(); /* * From here plugins has taken control. When plugin return, close everything */ log_entry("ldm",6,"X session ended"); log_entry("ldm",6,"calling rc.d stop scripts"); rc_files("stop"); /* Execute any rc files */ /* Closing plugin */ ldm_close_plugin(); /* Close logging */ log_close(); g_free(ldm.server); g_free(ldm.display); g_free(ldm.override_port); g_free(ldm.authfile); g_free(ldm.username); g_free(ldm.lang); g_free(ldm.session); g_free(ldm.xsession); g_free(ldm.sound_daemon); g_free(ldm.greeter_prog); g_free(ldm.control_socket); g_free(ldm.ipaddr); g_list_foreach(host_list, (GFunc)g_free, NULL); g_list_free(host_list); exit(EXIT_SUCCESS); } ldm-2.2.13/src/Makefile.am0000644000175000017500000000105012302300754015054 0ustar vagrantvagrantSUBDIRS = plugins/ssh plugins/rdesktop sbin_PROGRAMS = ldm ldmlibexecdir = $(libexecdir)/ldm ldm_SOURCES = ldm.c ldmplugin.c ldminfo.c ldmgreetercomm.c ldmutils.c plugin.c logging.c ldm_LDADD = $(GLIB_LIBS) $(GOBJECT_LIBS) ldm_LDFLAGS = -pthread -ldl -export-dynamic @GLIB_LIBS@ AM_CPPFLAGS = $(GLIB_CFLAGS) \ $(GOBJECT_CFLAGS) \ -DRC_DIR=\""$(datadir)/ldm"\" \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DLDM_EXEC_DIR=\""$(ldmlibexecdir)"\" \ -DLDM_PLUG_DIR=\""$(ldmlibexecdir)"\" ldm-2.2.13/src/plugin.h0000644000175000017500000000244212302300754014475 0ustar vagrantvagrant#ifndef PLUGIN_H #define PLUGIN_H #include #define LTSP_CLUSTER_CONFILE "/etc/ltsp/getltscfg-cluster.conf" typedef void (*AuthCb)(); typedef void (*GuestCb)(); typedef void (*CleanCb)(); typedef void (*InitCb)(); typedef void (*StartCb)(); typedef struct { gchar* name; gchar* description; /* Init Callback function of the plugin */ InitCb init_cb; /* Clean callback function of the plugin */ CleanCb clean_cb; AuthCb auth_cb; GuestCb guest_cb; StartCb start_cb; } LdmBackend; typedef enum { STATUS_UNKNOWN = 0, STATUS_SUCCESS = 1, STATUS_BAD_CREDENTIALS = 2 } BackendStatus; /* Standard API used by plugins */ void get_userid(gchar**); void get_passwd(gchar**); void get_host(gchar**); void get_language(gchar**); void get_session(gchar**); /** * Initialize (loads) an LDM plugin */ void __attribute__ ((visibility("default"))) ldm_init_plugin(LdmBackend* descriptor); /* Get xsession info from key (gconstpointer) */ void __attribute__ ((visibility("default"))) get_Xsession(gchar **, gconstpointer); /* Set LDM_SESSION and LDM_XSESSION env variable */ void __attribute__ ((visibility("default"))) set_session_env(gchar *, gchar *); /* Check for loadbalancing IP */ void __attribute__ ((visibility("default"))) get_ltsp_cfg(gchar **); #endif ldm-2.2.13/src/ldmutils.h0000644000175000017500000000042212302300754015030 0ustar vagrantvagrant#ifndef LDMUTILS_H #define LDMUTILS_H void close_wm(void); void get_ipaddr(void); void handle_sigchld(int); void ldm_wait(pid_t pid); int ldm_getenv_bool(const char*); pid_t ldm_spawn (gchar *command, gint *rfd, gint *wfd, void (*setup)()); void rc_files(gchar *); #endif ldm-2.2.13/src/ldmgreetercomm.h0000644000175000017500000000060012302300754016177 0ustar vagrantvagrant#ifndef LDMGREETERCOMM_H #define LDMGREETERCOMM_H #define _(text) gettext(text) /* ldmgreetercomm API */ int ask_greeter(gchar*); int listen_greeter(gchar**, gsize*, gsize*); int set_message(gchar*); void close_greeter(); gchar *ask_value_greeter(gchar*); void set_greeter_pid(GPid); void set_greeter_read_channel(GIOChannel*); void set_greeter_write_channel(GIOChannel*); #endif ldm-2.2.13/src/ldm.h0000644000175000017500000000215512302300754013754 0ustar vagrantvagrant#ifndef LDM_H #define LDM_H #define _(text) gettext(text) #define DEFAULT_AUTH_PLUGIN "ssh" struct ldm_info { gchar *server; gchar *display; gchar *fontpath; gchar *override_port; gchar *authfile; gchar *username; gchar *password; gchar *lang; gchar *session; gchar *xsession; gchar *sshoptions; gchar *sound_daemon; gchar *greeter_prog; gchar *wm_prog; gchar *control_socket; gchar *ipaddr; gboolean allowguest; gboolean autologin; gboolean sound; gboolean localdev; gboolean directx; gboolean nomad; gint sshfd; gint sshslavefd; GIOChannel *greeterr; GIOChannel *greeterw; GPid pid; GPid sshpid; GPid nomadpid; GPid xsessionpid; GPid greeterpid; GPid wmpid; }; /* ldm.c specific */ void get_ldm_env(void); void load_guestinfo(void); /* extern variables */ extern volatile sig_atomic_t unexpected_child; extern volatile sig_atomic_t child_exited; /* FIXME No more ldm_info extern */ extern struct ldm_info ldm; #endif ldm-2.2.13/src/plugins/0000755000175000017500000000000012302300754014505 5ustar vagrantvagrantldm-2.2.13/src/plugins/ssh/0000755000175000017500000000000012302300754015302 5ustar vagrantvagrantldm-2.2.13/src/plugins/ssh/ssh.h0000644000175000017500000000125612302300754016254 0ustar vagrantvagrantvoid __attribute__((constructor)) initialize(); typedef struct ssh_info { gchar *ctl_socket; gchar *isguest; gchar *lang; gchar *password; gchar *override_port; gchar *server; gchar *session; gchar *xsession; gchar *sshoptions; gchar *username; gint sshfd; gint sshslavefd; GPid sshpid; } SSHInfo; /* Member functions */ void _set_env(); void *eater(); void close_ssh(void); void get_auth(void); void start_ssh(void); void get_guest(void); void init_ssh(void); void ssh_chat(gint); void ssh_endsession(void); void ssh_session(void); void ssh_tty_init(); int expect(int, char*,int,...); extern volatile sig_atomic_t child_exited; ldm-2.2.13/src/plugins/ssh/ssh.c0000644000175000017500000002746112302300754016255 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../ldm.h" #include "../../ldmutils.h" #include "../../ldmgreetercomm.h" #include "../../logging.h" #include "../../plugin.h" #include "ssh.h" #define ERROR -1 #define TIMED_OUT -2 #define MAXEXP 4096 #define SENTINEL "LTSPROCKS" LdmBackend *descriptor; SSHInfo *sshinfo; void __attribute__((constructor)) initialize() { descriptor = (LdmBackend*) malloc(sizeof(LdmBackend)); bzero(descriptor, sizeof(LdmBackend)); descriptor->name = "ssh"; descriptor->description = "ssh plugin"; descriptor->auth_cb = get_auth; descriptor->clean_cb = close_ssh; descriptor->guest_cb = get_guest; descriptor->init_cb = init_ssh; descriptor->start_cb = start_ssh; ldm_init_plugin(descriptor); } /* * init_ssh * Callback function for initialization */ void init_ssh() { sshinfo = (SSHInfo*) malloc(sizeof(SSHInfo)); bzero(sshinfo, sizeof(SSHInfo)); /* Get ENV Variables */ sshinfo->sshoptions = g_strdup(getenv("LDM_SSHOPTIONS")); sshinfo->override_port = g_strdup(getenv("SSH_OVERRIDE_PORT")); } /* * start_ssh * Start ssh session */ void start_ssh() { gboolean error = FALSE; /* Variable validation */ if (!(sshinfo->username)) { log_entry("ssh",3,"no username"); error = TRUE; } if (!(sshinfo->password)) { log_entry("ssh",3,"no password"); error = TRUE; } if (!(sshinfo->server)) { log_entry("ssh",3,"no server"); error = TRUE; } if (!(sshinfo->session)) sshinfo->session = g_strdup("default"); if (error) { die("ssh","missing mandatory information"); } /* Getting Xsession */ get_Xsession(&(sshinfo->xsession), sshinfo->server); /* Check if we are loadbalanced */ get_ltsp_cfg(&(sshinfo->server)); /* * If we run multiple ldm sessions on multiply vty's we need separate * control sockets. */ sshinfo->ctl_socket = g_strdup_printf("/var/run/ldm_socket_%d_%s", ldm.pid, sshinfo->server); /* Setting ENV variables for plugin */ _set_env(); /* Execute any rc files */ log_entry("ssh",6,"calling rc.d pressh scripts"); rc_files("pressh"); ssh_session(); log_entry("ssh",6,"established ssh session on '%s' as '%s'",sshinfo->server,sshinfo->username); /* Greeter not needed anymore */ close_greeter(); log_entry("ssh",6,"calling rc.d start scripts"); rc_files("start"); /* Execute any rc files */ log_entry("ssh",6,"starting X session"); set_session_env(sshinfo->xsession, sshinfo->session); } /* * get_guest * Callback function for setting guest login */ void get_guest() { log_entry("ssh",6,"setting guest login"); /* Get credentials */ g_free(sshinfo->username); g_free(sshinfo->password); /* Get UserID */ sshinfo->username = g_strdup(getenv("LDM_USERNAME")); /* Get password */ sshinfo->password = g_strdup(getenv("LDM_PASSWORD")); /* Don't ask anything from the greeter when on autologin */ if (!ldm_getenv_bool("LDM_AUTOLOGIN")) { /* Get hostname */ get_host(&(sshinfo->server)); /* Get Language */ get_language(&(sshinfo->lang)); /* Get Session */ get_session(&(sshinfo->session)); } if (!sshinfo->username) { gchar hostname[HOST_NAME_MAX + 1]; /* +1 for \0 terminator */ gethostname(hostname, sizeof hostname); sshinfo->username = g_strdup(hostname); } if (!sshinfo->password) sshinfo->password = g_strdup(sshinfo->username); { char **hosts_char = NULL; gchar *autoservers = NULL; gboolean good; int i; autoservers = g_strdup(getenv("LDM_GUEST_SERVER")); if (!autoservers) autoservers = g_strdup(getenv("LDM_AUTOLOGIN_SERVER")); if (!autoservers) autoservers = g_strdup(getenv("LDM_SERVER")); hosts_char = g_strsplit(autoservers, " ", -1); good = FALSE; if (sshinfo->server) { i = 0; while(1) { if(hosts_char[i] == NULL) { break; } if(!g_strcmp0(hosts_char[i], sshinfo->server)) { good = TRUE; break; } i++; } } if (good == FALSE) { sshinfo->server = g_strdup(hosts_char[0]); } g_strfreev(hosts_char); g_free(autoservers); return; } } /* * _set_env * Set environment variables used by LDM and Greeter */ void _set_env() { setenv("LDM_SERVER", sshinfo->server, 1); setenv("LDM_USERNAME", sshinfo->username, 1); setenv("LDM_SOCKET", sshinfo->ctl_socket, 1); } /* * get_auth * Callback function for authentication */ void get_auth() { /* Get UserID */ get_userid(&(sshinfo->username)); /* Get password */ get_passwd(&(sshinfo->password)); /* Get hostname */ get_host(&(sshinfo->server)); /* Get Language */ get_language(&(sshinfo->lang)); /* Get Session */ get_session(&(sshinfo->session)); } /* * close_ssh * Callback function for closing the plugins */ void close_ssh() { log_entry("ssh",7,"closing ssh session"); ssh_endsession(); // leave no crumbs and free memory allocated for auth values g_free(sshinfo->password); g_free(sshinfo->username); g_free(sshinfo->server); g_free(sshinfo->lang); g_free(sshinfo->session); free(sshinfo); } int expect(int fd, char *p, int seconds, ...) { fd_set set; struct timeval timeout; int i, st; ssize_t size = 0; size_t total = 0; va_list ap; char buffer[BUFSIZ]; gchar *arg; GPtrArray *expects; int loopcount = seconds; int loopend = 0; bzero(p, MAXEXP); expects = g_ptr_array_new(); va_start(ap, seconds); while ((arg = va_arg(ap, char *)) != NULL) { g_ptr_array_add(expects, (gpointer) arg); } va_end(ap); /* * Set our file descriptor to be watched. */ /* * Main loop. */ while(1) { timeout.tv_sec = (long)1; /* one second timeout */ timeout.tv_usec = 0; FD_ZERO(&set); FD_SET(fd, &set); st = select(FD_SETSIZE, &set, NULL, NULL, &timeout); if (child_exited) { break; /* someone died on us */ } if (st < 0) { /* bad thing */ break; } if (loopcount == 0) { break; } if (!st) { /* timeout */ loopcount--; /* We've not seen the data we want */ continue; } size = read(fd, buffer, sizeof buffer); if (size <= 0) { break; } if ((total + size) < MAXEXP) { strncpy(p + total, buffer, size); total += size; } for (i = 0; i < expects->len; i++) { if (strstr(p, g_ptr_array_index(expects, i))) { loopend = TRUE; break; } } if (loopend) { break; } if (timeout.tv_sec == 0) { break; } } log_entry("ldm",7,"expect saw: %s", p); if (size < 0 || st < 0 || child_exited) { return ERROR; /* error occured */ } if (loopcount == 0) { return TIMED_OUT; /* timed out */ } else { return i; /* which expect did we see? */ } } void ssh_chat(gint fd) { int seen; gchar lastseen[MAXEXP]; int first_time = 1; /* We've already got the password here from the mainline, so there's * no delay between asking for the userid, and the ssh session asking for a * password. That's why we need the "first_time" variable. If a * password expiry is in the works, then subsequent password prompts * will cause us to go back to the greeter. */ child_exited = FALSE; while (TRUE) { /* ASSUMPTION: ssh will send out a string that ends in ": " for an expiry */ seen = expect(fd, lastseen, 30, SENTINEL, ": ", NULL); /* We might have a : in the data, we're looking for :'s at the end of the line */ if (seen == 0) { g_free(sshinfo->password); sshinfo->password = NULL; return; } else if (seen == 1) { int i; g_strdelimit(lastseen, "\r\n\t", ' '); g_strchomp(lastseen); i = strlen(lastseen); /* If it's not the first time through, or the :'s not at the * end of a line (password expiry or error), set the message */ if ((!first_time) || (lastseen[i - 1] != ':')) { set_message(lastseen); } /* If ':' *IS* the last character on the line, we'll assume a * password prompt is presented, and get a password */ if (lastseen[i - 1] == ':') { write(fd, sshinfo->password, strlen(sshinfo->password)); write(fd, "\n", 1); } first_time = 0; } else if (seen < 0) { set_message(_("No response from server, restarting...")); sleep(5); close_greeter(); die("ssh","no response, restarting"); } } } void ssh_tty_init(void) { (void) setsid(); if (login_tty(sshinfo->sshslavefd) < 0 ) { die("ssh","login_tty failed"); } } /* * ssh_session() * Start an ssh login to the server. */ void ssh_session(void) { gchar *command; gchar *port = NULL; pthread_t pt; /* Check for port Override */ if(sshinfo->override_port) port = g_strconcat(" -p ", sshinfo->override_port, " ", NULL); openpty(&(sshinfo->sshfd), &(sshinfo->sshslavefd), NULL, NULL, NULL); command = g_strjoin(" ", "ssh", "-Y", "-t", "-M", "-S", sshinfo->ctl_socket, "-o", "NumberOfPasswordPrompts=1", "-l", sshinfo->username, port ? port : "", sshinfo->sshoptions ? sshinfo->sshoptions : "", sshinfo->server, "echo " SENTINEL "; exec /bin/sh -", NULL); log_entry("ssh",7,"ssh_session: %s", command); sshinfo->sshpid = ldm_spawn(command, NULL, NULL, ssh_tty_init); ssh_chat(sshinfo->sshfd); /* * Spawn a thread to keep sshfd clean. */ pthread_create(&pt, NULL, eater, NULL); if (port) g_free(port); } void ssh_endsession(void) { GPid pid; gchar *command; struct stat stbuf; if (!stat(sshinfo->ctl_socket, &stbuf)) { /* socket still exists, so we need to shut down the ssh link */ command = g_strjoin(" ", "ssh", "-S", sshinfo->ctl_socket, "-O", "exit", sshinfo->server, NULL); log_entry("ssh",7,"closing ssh session: %s"), command; pid = ldm_spawn(command, NULL, NULL, NULL); ldm_wait(pid); close(sshinfo->sshfd); ldm_wait(sshinfo->sshpid); sshinfo->sshpid = 0; g_free(command); } } void *eater() { fd_set set; struct timeval timeout; int st; char buf[BUFSIZ]; while (1) { if (sshinfo->sshfd == 0) { pthread_exit(NULL); break; } timeout.tv_sec = (long)1; /* one second timeout */ timeout.tv_usec = 0; FD_ZERO(&set); FD_SET(sshinfo->sshfd, &set); st = select(FD_SETSIZE, &set, NULL, NULL, &timeout); if (st > 0) { read(sshinfo->sshfd, buf, sizeof buf); } } } ldm-2.2.13/src/plugins/ssh/Makefile.am0000644000175000017500000000027512302300754017342 0ustar vagrantvagrantldmplugdir = $(libdir)/ldm/ ldmplug_LTLIBRARIES = libssh.la libssh_la_CFLAGS = $(GLIB_CFLAGS) $(GOBJECT_CFLAGS) libssh_la_LDFLAGS = $(GLIB_LIBS) $(GOBJECT_LIBS) libssh_la_SOURCES = ssh.c ldm-2.2.13/src/plugins/rdesktop/0000755000175000017500000000000012302300754016340 5ustar vagrantvagrantldm-2.2.13/src/plugins/rdesktop/rdesktop.c0000644000175000017500000001000112302300754020327 0ustar vagrantvagrant#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../ldmutils.h" #include "../../ldmgreetercomm.h" #include "../../logging.h" #include "../../plugin.h" #include "rdesktop.h" LdmBackend *descriptor; RdpInfo *rdpinfo; void __attribute__((constructor)) initialize() { descriptor = (LdmBackend*) malloc(sizeof(LdmBackend)); bzero(descriptor, sizeof(LdmBackend)); descriptor->name = "rdesktop"; descriptor->description = "rdesktop plugin"; descriptor->init_cb = init_rdesktop; descriptor->auth_cb = auth_rdesktop; descriptor->start_cb = start_rdesktop; descriptor->clean_cb = close_rdesktop; ldm_init_plugin(descriptor); } /* * init_rdesktop * Callback function for initialization */ void init_rdesktop() { rdpinfo = (RdpInfo*) malloc(sizeof(RdpInfo)); bzero(rdpinfo, sizeof(RdpInfo)); /* Get ENV value */ rdpinfo->rdpoptions = g_strdup(getenv("RDP_OPTIONS")); rdpinfo->server = g_strdup(getenv("RDP_SERVER")); } /* * start_rdesktop * Callback function for starting rdesktop session */ void start_rdesktop() { gboolean error = FALSE; /* Variable validation */ if(!rdpinfo->username) { log_entry("rdesktop",3,"no username"); error = TRUE; } if(!rdpinfo->password) { log_entry("rdesktop",3,"no password"); error = TRUE; } if(!rdpinfo->server) { log_entry("rdesktop",3,"no server"); error = TRUE; } if(!rdpinfo->domain) { log_entry("rdesktop",3,"no domain"); error = TRUE; } if(error) { die("rdesktop","missing mandatory information"); } /* Greeter not needed anymore */ close_greeter(); log_entry("rdesktop",6,"starting rdesktop session to '%s' as '%s'", rdpinfo->server, rdpinfo->username); rdesktop_session(); log_entry("rdesktop",6,"closing rdesktop session"); } /* * _get_domain */ void _get_domain() { gchar *cmd = "value domain\n"; rdpinfo->domain = ask_value_greeter(cmd); } /* * auth_rdesktop * Callback function for authentication */ void auth_rdesktop() { gchar *cmd; /* Separator for domains : '|' */ gchar *domains = getenv("RDP_DOMAIN"); cmd = g_strconcat("pref choice;domain;Domain;Select Domai_n ...;session;", domains, "\n", NULL); if (domains) { if(ask_greeter(cmd)) die("rdesktop", "%s from greeter failed", cmd); } else { log_entry("rdesktop",7,"RDP_DOMAIN isn't defined, rdesktop will connect on default domain"); } /* Ask for UserID */ get_userid(&(rdpinfo->username)); /* If user clicks on guest button above, this has changed */ get_passwd(&(rdpinfo->password)); /* Get hostname */ if(!rdpinfo->server) get_host(&(rdpinfo->server)); /* Get Domain (rdesktop plugin specific) */ _get_domain(); /* Get Language */ get_language(&(rdpinfo->lang)); g_free(cmd); } /* * close_rdesktop * Callback function for closing the plugins */ void close_rdesktop() { log_entry("rdesktop",7,"closing rdesktop session"); free(rdpinfo); } /* * rdesktop_session * Start a rdesktop session to server */ void rdesktop_session() { gchar *cmd; cmd = g_strjoin(" ", "rdesktop", "-f", "-u", rdpinfo->username, "-p", rdpinfo->password, NULL); /* Only append the domain if it's set */ if (g_strcmp0(rdpinfo->domain,"None") != 0) { cmd = g_strjoin(" ", cmd, "-d", rdpinfo->domain, NULL); } /* If we have custom options, append them */ if (rdpinfo->rdpoptions) { cmd = g_strjoin(" ", cmd, rdpinfo->rdpoptions, NULL); } cmd = g_strjoin(" ", cmd, rdpinfo->server, NULL); /* Spawning rdesktop session */ rdpinfo->rdppid = ldm_spawn(cmd, NULL, NULL, NULL); ldm_wait(rdpinfo->rdppid); g_free(cmd); } ldm-2.2.13/src/plugins/rdesktop/rdesktop.h0000644000175000017500000000076712302300754020356 0ustar vagrantvagrant#define PORT 3389 typedef struct rdp_info { gchar *username; gchar *password; gchar *domain; gchar *server; gchar *lang; gchar *rdpoptions; gint rdpfd; gint rdpslavefd; GPid rdppid; } RdpInfo; void __attribute__((constructor)) initialize(); /* Member functions */ void _get_domain(); void auth_rdesktop(void); void close_rdesktop(void); void init_rdesktop(void); void rdesktop_session(void); void start_rdesktop(void); extern volatile sig_atomic_t child_exited; ldm-2.2.13/src/plugins/rdesktop/Makefile.am0000644000175000017500000000032612302300754020375 0ustar vagrantvagrantldmplugdir = $(libdir)/ldm/ ldmplug_LTLIBRARIES = librdesktop.la librdesktop_la_CFLAGS = $(GLIB_CFLAGS) $(GOBJECT_CFLAGS) librdesktop_la_LDFLAGS = $(GLIB_LIBS) $(GOBJECT_LIBS) librdesktop_la_SOURCES = rdesktop.c ldm-2.2.13/src/plugins/pam/0000755000175000017500000000000012302300754015262 5ustar vagrantvagrantldm-2.2.13/share/0000755000175000017500000000000012302300754013337 5ustar vagrantvagrantldm-2.2.13/share/Makefile.am0000644000175000017500000000035212302300754015373 0ustar vagrantvagrantldmlibexecdir = $(libexecdir)/ldm sharedir = $(datadir)/ldm share_DATA = ldm-script EXTRA_DIST = $(share_DATA) install-data-hook: if test ! -f $(DESTDIR)$(sharedir)/rc.d ; then \ $(mkinstalldirs) $(DESTDIR)$(sharedir)/rc.d; \ fi ldm-2.2.13/share/ldm-script.in0000755000175000017500000000317212302300754015753 0ustar vagrantvagrant#! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH umask 022 ACTION=$1 for DIR in /etc/ldm/rc.d /usr/share/ldm/rc.d @libexecdir@/ldm/rc.d ; do if [ -d "$DIR" ]; then RCDIRS="$RCDIRS $DIR" fi done case "${ACTION}" in init) # From ldm.c: LDM has just started, X is running, the greeter isn't. SCRIPTS="I*" ;; pressh) # From ssh.c: a username/password was provided, no connection yet. SCRIPTS="P*" ;; start) # From ssh.c: an ssh connection was established. SCRIPTS="S*" ;; xsession) # From plugin.c: an xsession was started (maybe even rdp). SCRIPTS="X*" ;; stop) # From screen.d/ldm.c: the xsession has ended. SCRIPTS="K*" ;; esac export TEXTDOMAIN=ldmrc if [ -f /usr/bin/gettext.sh ]; then . /usr/bin/gettext.sh else eval_gettext() { if [ $"test" = "\$test" ]; then eval "echo $*" else echo $"$*" fi } fi # source ltsp client functions if [ -f "/usr/share/ltsp/ltsp-client-functions" ]; then . /usr/share/ltsp/ltsp-client-functions # source older common functions for backwards compatibility elif [ -f "/usr/share/ltsp/ltsp-common-functions" ]; then . /usr/share/ltsp/ltsp-common-functions fi for SCRIPT in $(find -L $RCDIRS -type f -name "$SCRIPTS" -printf '%f\n' | tr ' ' '\n' | egrep ^[0-9a-zA-Z_\-]*$ | sort -u) do # only source the first instance of the script found for DIR in $RCDIRS ; do if [ -f "$DIR/$SCRIPT" ]; then . "$DIR/$SCRIPT" break fi done done ldm-2.2.13/screen.d/0000755000175000017500000000000012302300754013736 5ustar vagrantvagrantldm-2.2.13/screen.d/ldm0000755000175000017500000001012312302300754014435 0ustar vagrantvagrant#!/bin/sh # Depend on the ldm package # # Copyright 2005, Canonical Ltd. # Copyright 2006-2008 Vagrant Cascadian # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License with your # Debian GNU system, in /usr/share/common-licenses/GPL. If not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # # Load code common to X based screen scripts # # NOTE: The while loop has been moved into screen_session (the parent script # to this one. MAKE SURE YOU HAVE THE LATEST ltsp-trunk trap cleanup 0 INT QUIT TERM cleanup() { if [ -d "${XAUTHORITY_DIR}" ]; then rm -Rf "${XAUTHORITY_DIR}" fi if [ -f "${XAUTHORITY}" ]; then rm -f "${XAUTHORITY}" fi if [ -f "/tmp/.X${TTY}-lock" ]; then rm -f "/tmp/.X${TTY}-lock" fi if [ -S "/tmp/.X11-unix/X${TTY}" ]; then rm -f "/tmp/.X11-unix/X${TTY}" fi } . /usr/share/ltsp/screen-x-common # backwards compatibility: set DISPLAY from old DISP variable test -z "$DISPLAY" && DISPLAY="$DISP" XAUTHORITY_DIR=`mktemp -d /var/run/ldm-xauth-XXXXXXXXX` export XAUTHORITY_DIR XAUTHORITY="${XAUTHORITY_DIR}/Xauthority" touch $XAUTHORITY export XAUTHORITY SESSIONLIST="/etc/X11/xinit/Xsession \ /etc/X11/Xsession \ /usr/lib/X11/xdm/Xsession \ /etc/X11/xdm/Xsession" if [ -z "$LDM_LOGIN_TIMEOUT" ] && [ -n "$LDM_TIMEOUT_TIME" ] && [ -n "$LDM_TIMEOUT_ENABLED" ]; then # implement backwards compatibility with short-lived timeout login options if boolean_is_true "$LDM_TIMEOUT_ENABLED" ; then LDM_LOGIN_TIMEOUT="$LDM_TIMEOUT_TIME" fi fi # # Server scalability. If there exists a /usr/share/ltsp/get_hosts file, then # use it to populate the LDM_SERVER environment variable. # if [ -z "${LDM_SERVER}" ]; then if [ -x /usr/share/ltsp/get_hosts ]; then LDM_SERVER=$(/usr/share/ltsp/get_hosts) else # Use hostname to allow IP changes without need for ltsp-update-sshkeys LDM_SERVER="server" fi fi export LDM_SERVER # # Loop though each of the hosts, and get their ldminfo # if [ -n "${LDM_SERVER}" ]; then test ! -d /var/run/ldm && mkdir -p /var/run/ldm for SRV in $LDM_SERVER ; do # Write server to /etc/hosts so reverse DNS lookup is not necessary if ! grep -Fqw "$SRV" /etc/hosts ; then echo "$SRV server-$SRV" >> /etc/hosts fi # For this to work, ldm-server needs to be installed in the chroot if boolean_is_true "$LTSP_FATCLIENT" && [ -x /usr/share/ldm/ldminfod ]; then /usr/share/ldm/ldminfod > /var/run/ldm/$SRV break else nc $nc_q_param -w 5 $SRV 9571 > /var/run/ldm/$SRV fi done fi get_xfs_settings "$LDM_SERVER" MCOOKIE=$(mcookie) if [ -z "${MCOOKIE}" ]; then echo "Couldn't create cookie" exit 1 fi # FIXME: This needs to non-destructively operate in parallel with other # X servers running on the same machine. See /usr/bin/startx for example. xauth -q add ${DISPLAY} . ${MCOOKIE} 2>/dev/null # Might not be necessary to do these... xauth -q add `hostname`${DISPLAY} . ${MCOOKIE} 2>/dev/null xauth -q add 127.0.0.1/unix${DISPLAY} . ${MCOOKIE} 2>/dev/null # Define our session if [ -z "${LDM_XSESSION}" ]; then # If admin hasn't specified session for SESSION in ${SESSIONLIST}; do if [ -x ${SESSION} ]; then export LDM_DEFAULT_XSESSION=${SESSION} break fi done fi if [ -x /usr/share/ltsp/xinitrc ]; then xinitrc=/usr/share/ltsp/xinitrc fi exec xinit $xinitrc /usr/sbin/ldm -- ${DISPLAY} vt${TTY} -auth ${XAUTHORITY} ${X_ARGS} -br >/dev/null 2>&1 ldm-2.2.13/screen.d/Makefile.am0000644000175000017500000000033212302300754015770 0ustar vagrantvagrantEXTRA_DIST=ldm install-data-hook: ldm if test '!' -f $(DESTDIR)$(datadir)/ltsp/screen.d ; then \ $(mkinstalldirs) $(DESTDIR)$(datadir)/ltsp/screen.d; \ fi $(INSTALL_SCRIPT) ldm $(DESTDIR)$(datadir)/ltsp/screen.d ldm-2.2.13/rc.d/0000755000175000017500000000000012302300754013063 5ustar vagrantvagrantldm-2.2.13/rc.d/X52-xcompmgr0000644000175000017500000000024312302300754015215 0ustar vagrantvagrant# Turn on compositing to improve performance and lower bandwidth usage if boolean_is_true "$LDM_XCOMPMGR" && [ -n "$(which xcompmgr)" ]; then xcompmgr -a& fi ldm-2.2.13/rc.d/X50-generate-env0000644000175000017500000000310512302300754015737 0ustar vagrantvagrant# -*- Shell-Script -*- # Set up the LTSP_CLIENT and LTSP_CLIENT_HOSTNAME environment variables. # We may not want to force set this: CLIENT_ENV="$CLIENT_ENV LTSP_CLIENT=$LDMINFO_IPADDR LTSP_CLIENT_HOSTNAME=$(hostname)" test -n "$LTSP_FATCLIENT" && CLIENT_ENV="$CLIENT_ENV LTSP_FATCLIENT=$LTSP_FATCLIENT" test -n "$LTSP_CLIENT_MAC" && CLIENT_ENV="$CLIENT_ENV LTSP_CLIENT_MAC=$LTSP_CLIENT_MAC" export CLIENT_ENV # Set our language, if a different one is picked. if [ -z "$LDM_LANGUAGE" ]; then LDM_LANGUAGE=$LANG fi MY_LANG="LC_ALL=$LDM_LANGUAGE LANGUAGE=$LDM_LANGUAGE LANG=$LDM_LANGUAGE" export MY_LANG # Set the DISPLAY env, if not running over encrypted ssh if boolean_is_true "$LDM_DIRECTX"; then MY_DISP="DISPLAY=${LDMINFO_IPADDR}${DISPLAY}" export MY_DISP fi # Handle scanner if boolean_is_true "$SCANNER"; then MY_SCANNER="SANE_NET_HOSTS=$LDMINFO_IPADDR" export MY_SCANNER # Allow the application server to connect to saned if [ -f /etc/sane.d/saned.conf ]; then echo $LDM_SERVER > /etc/sane.d/saned.conf fi fi # Handle sound if boolean_is_true "$SOUND"; then if [ -z "$SOUND_DAEMON" ]; then SOUND_DAEMON=pulse fi case $SOUND_DAEMON in pulse) MY_SOUND="PULSE_SERVER=tcp:$LDMINFO_IPADDR:4713 ESPEAKER=$LDMINFO_IPADDR:16001 LTSP_ALSA_DEFAULT=pulse" ;; esd) esd -nobeeps -public -tcp & ESD_PID=$! MY_SOUND="ESPEAKER=$LDMINFO_IPADDR:16001" ;; nasd) MY_SOUND="AUDIOSERVER=$LDMINFO_IPADDR:0" ;; esac export MY_SOUND fi ldm-2.2.13/rc.d/I01-nbd-checkupdate0000644000175000017500000000232212302300754016355 0ustar vagrantvagrant# Get the NBD information (ltsp-cluster doesn't have that in the environment) if [ -f /var/cache/ltsp/ltsp_config ]; then . /var/cache/ltsp/ltsp_config fi if [ -z "$NBD_ROOT_HOST" ] || ([ -z "$NBD_ROOT_PORT" ] && [ -z "$NBD_ROOT_NAME" ]); then return fi if [ -n "$NBD_ROOT_NAME" ]; then nbd-client $NBD_ROOT_HOST /dev/nbd9 -N $NBD_ROOT_NAME else nbd-client $NBD_ROOT_HOST $NBD_ROOT_PORT /dev/nbd9 fi NEW=$(dd if=/dev/nbd9 of=/dev/stdout bs=64 count=1 2> /dev/zero | sha1sum -) PID=$(nbd-client -c /dev/nbd9) nbd-client -d /dev/nbd9 # Make sure we don't have a remaining nbd-client if [ -d /proc/$PID ]; then while read COLUMN VALUE; do if [ "$COLUMN" = "PPid:" ]; then kill -9 $VALUE break fi done < /proc/$PID/status fi # Get the current squashfs information CURRENT=$(dd if=/dev/nbd0 of=/dev/stdout bs=64 count=1 2> /dev/zero | sha1sum -) # Exit if we're already running on the latest squashfs [ "$NEW" = "$CURRENT" ] && return ( for i in $(seq 10 10 100); do echo $i sleep 1s done ) | ldm-dialog --progress --auto-close "`eval_gettext "A new version of the system is available, rebooting in 10s."`" if [ "$?" = "1" ]; then return else reboot fi ldm-2.2.13/rc.d/X51-opengl0000644000175000017500000000034312302300754014645 0ustar vagrantvagrant# Force indirect rendering when using LDM_DIRECTX so we have some working GL by default if boolean_is_true "$LDM_DIRECTX" && ! boolean_is_true "$LTSP_FATCLIENT"; then CLIENT_ENV="$CLIENT_ENV LIBGL_ALWAYS_INDIRECT=true" fi ldm-2.2.13/rc.d/X50-dmrc-processing0000644000175000017500000000563412302300754016467 0ustar vagrantvagrant# LDM_SESSION may be defined as either a desktop file name: # LDM_SESSION=LXDE for /usr/share/xsessions/LXDE.desktop # # or the backwards compatible mode containing the whole command, e.g.: # LDM_SESSION="gnome-session --session=gnome-classic" # # If it matches the Exec line of xsession.desktop files, # it writes the to ~/.dmrc corresponding xsession.desktop file name, e.g. # Session=gnome-classic # So there's some code overhead for converting between those two. # # LDM_FORCE_SESSION is only implemented as desktop file name selection, # and prevents the user from selecting other sessions. # # LDM_SELECT_SESSION should only be exported from ldm directly, and is not # intended for use in lts.conf, though you could shoot yourself in the foot # with it if you really wanted. # for code readability do_ssh(){ ssh -S "$LDM_SOCKET" "$LDM_SERVER" "$@" 2>/dev/null } # $1 = key, case sensitive get_dmrc_key() { echo "$dmrc" | sed -n "s/^$1=//p" } # If the desktop.session file exists, set LDM_SESSION to its Exec line ldm_session_from_desktop_file() { local desktop session_exec desktop="$1" if [ -n "$desktop" ]; then session_exec=$(do_ssh sed -n "s/^Exec=//p" "/usr/share/xsessions/$desktop.desktop") if [ -n "$session_exec" ]; then LDM_SESSION="$session_exec" return 0 fi fi return 1 } # $1 = key, case sensitive # $2 = value put_dmrc_key() { # Don't do anything if the key already contains that value test "$(get_dmrc_key "$1")" = "$2" && return dmrc=$(echo "$dmrc" | sed '/\[Desktop\]/d') dmrc=$(echo "$dmrc" | sed "/^$1=/d") dmrc="[Desktop] $1=$2 $dmrc" changed=true } dmrc=$(do_ssh cat .dmrc) if ! ldm_session_from_desktop_file "$LDM_FORCE_SESSION"; then case "$LDM_SELECTED_SESSION" in failsafe) # No need to access the user's .dmrc for failsafe sessions (man Xsession) ;; default|'') ldm_session_from_desktop_file "$(get_dmrc_key "Session")" && break ldm_session_from_desktop_file "$LDM_SESSION" && break ;; *) LDM_SESSION="$LDM_SELECTED_SESSION" # If there's a corresponding xsession.desktop file, save its name to .dmrc dmrc_session=$(do_ssh "grep -lR '^Exec=$LDM_SESSION$' /usr/share/xsessions/ | sed -n '/\/usr\/share\/xsessions\/\(.*\)\.desktop/{s//\1/p;q}'") if [ -n "$dmrc_session" ]; then put_dmrc_key "Session" "$dmrc_session" fi ;; esac fi if [ -n "$LDM_FORCE_LANGUAGE" ]; then LDM_LANGUAGE="$LDM_FORCE_LANGUAGE" else case "$LDM_LANGUAGE" in default|'') # If the user has a language stored in his .dmrc, use it LDM_LANGUAGE=$(get_dmrc_key "Language") ;; *) put_dmrc_key "Language" "$LDM_LANGUAGE" ;; esac fi if [ -n "$changed" ]; then do_ssh "echo '$dmrc' > .dmrc" fi ldm-2.2.13/rc.d/Makefile.am0000644000175000017500000000047212302300754015122 0ustar vagrantvagrantEXTRA_DIST = $(rcd_DATA) rcddir = $(datadir)/ldm/rc.d rcd_DATA = I01-halt-check I01-nbd-checkupdate K99-ltsp-cluster P00-ltsp-cluster S01-setup-xauth S15-userLoginCheck S20-restrictUser S99-debug-terminal S99-ltsp-cluster X50-generate-env X50-dmrc-processing X50-printers X51-opengl X52-xcompmgr X95-run-x-session ldm-2.2.13/rc.d/X95-run-x-session0000644000175000017500000000376612302300754016137 0ustar vagrantvagrant# -*- Shell-Script -*- # reimplementation of ldm's x_session function in shell, so that it's # environment can be modified by other rc.d scripts (for .dmrc # processing and such) # Handle localdev if boolean_is_true "$LOCALDEV"; then MY_LOCALDEV="; /usr/sbin/ltspfsmounter all cleanup" fi # Xsession requires a single parameter [ -n "$LDM_SESSION" ] && LDM_SESSION="\"$LDM_SESSION\"" if ! boolean_is_true "$LDM_NOMAD"; then if ! boolean_is_true "$LTSP_FATCLIENT"; then ssh -Y -t -S $LDM_SOCKET $LDM_SERVER "$CLIENT_ENV $MY_LANG $MY_DISP $MY_SCANNER $MY_SOUND $LDM_XSESSION $LDM_SESSION < /dev/null > /dev/null $MY_LOCALDEV" else ICEAUTHORITY="$(dirname $XAUTHORITY)/ICEauthority" # Using pam_ck_connector to make fat client sessions ConsoleKit-aware # FIXME: su doesn't read the current process environment, so we're using # /etc/security/pam_env.conf temporarily, which also affects non-X sessions if [ -x /usr/lib/ConsoleKit/ck-get-x11-display-device ] \ && [ -f /etc/security/pam_env.conf ] \ && CKCON_X11_DISPLAY_DEVICE=$(/usr/lib/ConsoleKit/ck-get-x11-display-device 2>/dev/null) then CKCON_X11_DISPLAY="$DISPLAY" sed -i '/^CKCON_X11_DISPLAY/d' /etc/security/pam_env.conf echo "CKCON_X11_DISPLAY DEFAULT=$CKCON_X11_DISPLAY" >> /etc/security/pam_env.conf echo "CKCON_X11_DISPLAY_DEVICE DEFAULT=$CKCON_X11_DISPLAY_DEVICE" >> /etc/security/pam_env.conf fi # The XDG_* variables are for logind support. XDG_SEAT=seat0 XDG_VTNR=${SCREEN_NUM#0} su - ${LDM_USERNAME} -c "$CLIENT_ENV $MY_LANG DISPLAY=$DISPLAY ICEAUTHORITY=$ICEAUTHORITY XAUTHORITY=$XAUTHORITY $LDM_XSESSION $LDM_SESSION" # Unmount any removable devices mounted by the user for d in $(mount | awk '/uhelper=udisks/ {print $1}; /uhelper=devkit/ {print $1}'); do umount "$d" & done fi fi if [ "$SOUND_DAEMON" = "esd" ]; then kill $ESD_PID wait $ESD_PID fi ldm-2.2.13/rc.d/X50-printers0000644000175000017500000000070612302300754015231 0ustar vagrantvagrant# This script adds $PRINTER and $PRINTER_LIST to the user's environment # LDM_PRINTER_DEFAULT is used to set the user's default printer # LDM_PRINTER_LIST is the list of printers to display (requires a patched cups) [ -n "$LDM_PRINTER_DEFAULT" ] && export CLIENT_ENV="${CLIENT_ENV} PRINTER=${LDM_PRINTER_DEFAULT}" [ -n "$LDM_PRINTER_LIST" ] || [ "${LDM_PRINTER_LIST+xxx}" = "xxx" ] && export CLIENT_ENV="${CLIENT_ENV} PRINTER_LIST=${LDM_PRINTER_LIST}" ldm-2.2.13/rc.d/S99-ltsp-cluster0000644000175000017500000000331312302300754016031 0ustar vagrantvagrant# This script is specific to ltsp-cluster if [ ! -f /etc/ltsp/getltscfg-cluster.conf ]; then return fi # Check for existing session . /etc/ltsp/getltscfg-cluster.conf #FIXME: This should be handled through getltscfg-cluster sessionlist=$(wget -q -O - -T 1 -t 1 "http://${SERVER}/ltsp-cluster-control/Terminal/session.php?action=getsessions/username=${LDM_USERNAME}") if [ -n "$sessionlist" ]; then if ldm-dialog --question "`eval_gettext "The system thinks you are logged in elsewhere. Would you like to close the other session and continue to log in?"`" ; then ssh -S ${LDM_SOCKET} ${LDM_SERVER} 'touch .ltsp-cluster-accountmanager.kill' for server in $sessionlist; do if [ "${server}" = "${LDM_SERVER}" ]; then sshdProc=$(ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} '/usr/bin/pgrep -n -u $USER sshd') allsshdProcs=$(ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} '/usr/bin/pgrep -u $USER sshd') procs= for i in $allsshdProcs; do match= for j in $sshdProc; do [ "$i" = "$j" ] && match=1· done [ -z "$match" ] && procs="$procs $i" done ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} "/bin/kill $procs" sleep 1 ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} "/bin/kill -9 $procs" else echo "kill ${LDM_USERNAME}" | nc $nc_q_param ${server} 8001 fi done ssh -S ${LDM_SOCKET} ${LDM_SERVER} 'rm .ltsp-cluster-accountmanager.kill' else kill -9 ${PPID} fi fi # Register the session with the Control Center getltscfg-cluster -l login ldm-2.2.13/rc.d/S99-debug-terminal0000644000175000017500000000062712302300754016274 0ustar vagrantvagrant# Run Terminal on Client for Debugging Purposes # Be sure that one of the terminal apps are installed in the chroot. # Set LDM_DEBUG_TERMINAL=yes in lts.conf to enable. if boolean_is_true "$LDM_DEBUG_TERMINAL"; then for terminal in x-terminal-emulator gnome-terminal konsole xterm; do if [ -x /usr/bin/$terminal ]; then /usr/bin/$terminal & break fi done fi ldm-2.2.13/rc.d/S20-restrictUser0000644000175000017500000000153012302300754016045 0ustar vagrantvagrant# This script should be placed in the ldm rc.d/ directory, say: # /opt/ltsp/i386/usr/lib/ldm/rc.d/S20-restrictUser # get lts.conf vars (not needed - should already be sourced) #. /usr/lib/ltsp/ltsp_config if [ -n "${LDM_USER_ALLOW}" ]; then # Username entered in greeter (not needed in newer versions of LDM) [ -z "${LDM_USERNAME}" ] && LDM_USERNAME=$(ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} 'echo $USER') # Look for matching user in allowed users MATCH= oldifs="${IFS-not set}" IFS=, for i in ${LDM_USER_ALLOW}; do [ "${i}" = "${LDM_USERNAME}" ] && MATCH=1 done test "$oldifs" = "not set" && unset IFS || IFS="$oldifs" if [ -z "${MATCH}" ]; then ldm-dialog --message "`eval_gettext "User \\${LDM_USERNAME} is not allowed to log into this workstation."`" /bin/kill -9 ${PPID} fi fi ldm-2.2.13/rc.d/S15-userLoginCheck0000644000175000017500000000315412302300754016264 0ustar vagrantvagrant# # sourced with . # # Script to check if user is already logged in and offers to kill all of his # procs (asside from sshd and SENTINEL related ones) before continuing # if boolean_is_true "$LDM_LIMIT_ONE_SESSION"; then # If user is root, just exit from here or we'll kill all the sessions on the server if [ "$USER" = "root" ]; then return fi # Since we use a socket, by taking out the newest sshd proc from the kill list, # we should preserve our socket. sshdProc=$(ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} '/usr/bin/pgrep -n -u $USER sshd') # Let's check if there is an old session or simply stale prcoesses allsshdProcs=$(ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} '/usr/bin/pgrep -u $USER sshd') oldSessions=0 for p in $allsshdProcs; do if [ "$p" != "$sshdProc" ]; then oldSessions=$(($oldSessions+1)) fi done # Take out this sshd and kids procs= for i in $allsshdProcs; do match= for j in $sshdProc; do [ "$i" = "$j" ] && match=1 done [ -z "$match" ] && procs="$procs $i" done if [ $oldSessions -gt 0 ] && boolean_is_true "$LDM_LIMIT_ONE_SESSION_PROMPT" ; then ldm-dialog --question "`eval_gettext "The system thinks you are logged in elsewhere. Would you like to close the other session and continue to log in?"`" ret=$? else ret=0 fi if [ "$ret" = 0 ]; then ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} "/bin/kill $procs" sleep 1 ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} "/bin/kill -9 $procs" else /bin/kill -9 ${PPID} fi fi ldm-2.2.13/rc.d/S01-setup-xauth0000644000175000017500000000126612302300754015643 0ustar vagrantvagrant# Sourced with . # # Script to add LDM server address to xauth # FIXME: $ldm_log stuff are for debugging only, while not harmful # we should probably remove it at some point. if boolean_is_true "$LDM_DIRECTX"; then # FIXME: We probably want something better than head -1, however # I am currently not sure which line exactly is desired. PROTOCOL=$(xauth -f $XAUTHORITY list | head -1 | awk '{print $2}') KEY=$(xauth -f $XAUTHORITY list | head -1| awk '{print $3}') ssh -S ${LDM_SOCKET} ${LDM_SERVER} \ "xauth remove ${LDMINFO_IPADDR}${DISPLAY}" ssh -S ${LDM_SOCKET} ${LDM_SERVER} \ "xauth add ${LDMINFO_IPADDR}${DISPLAY} ${PROTOCOL} ${KEY}" fi ldm-2.2.13/rc.d/P00-ltsp-cluster0000644000175000017500000000127412302300754016010 0ustar vagrantvagrant# Tell the Control Center that ldm is loaded if [ -f /etc/ltsp/getltscfg-cluster.conf ]; then # Initialize ssh mkdir -p /root/.ssh rm -f /root/.ssh/* (echo -n "$LDM_SERVER " ; echo "getkey" | nc $nc_q_param $LDM_SERVER 8001 && echo) > /root/.ssh/known_hosts if ( boolean_is_true "$LDM_AUTOLOGIN" || boolean_is_true "$LDM_GUESTLOGIN" ); then login=$(echo "username" | nc $nc_q_param $LDM_SERVER 8001 | awk '{print $2}') if [ "$login" = "$LDM_USERNAME" ]; then ssh-keygen -b 768 -C root@ltsp -t rsa -N "" -f /root/.ssh/id_rsa > /dev/null echo "`cat /root/.ssh/id_rsa.pub`" | nc $nc_q_param $LDM_SERVER 8001 > /dev/null fi fi fi ldm-2.2.13/rc.d/K99-ltsp-cluster0000644000175000017500000000020412302300754016015 0ustar vagrantvagrant# Register the session with the Control Center if [ -f /etc/ltsp/getltscfg-cluster.conf ]; then getltscfg-cluster -l logout fi ldm-2.2.13/rc.d/I01-halt-check0000644000175000017500000000046312302300754015343 0ustar vagrantvagrant# Get the halt time for the thin client [ "$(date -d $SHUTDOWN_TIME +%s)" -lt "$(date +%s)" ] || return ( for i in $(seq 10 10 100); do echo $i sleep 1s done ) | ldm-dialog --progress --auto-close "`eval_gettext "This system will halt in 10s."`" if [ "$?" = "1" ]; then return else halt fi ldm-2.2.13/po/0000755000175000017500000000000012302300754012653 5ustar vagrantvagrantldm-2.2.13/po/ldm.pot0000644000175000017500000000364512302300754014163 0ustar vagrantvagrant# ldm gettext messages for LANGUAGE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: ldm 2.2.11\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-24 08:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/zh_TW.po0000644000175000017500000000471012302300754014250 0ustar vagrantvagrant# Chinese (Traditional) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-11-13 04:56+0000\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "使用者名稱" #: ../src/plugin.c:32 msgid "Password" msgstr "密碼" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "正在驗證密碼,請稍等。" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "伺服器沒有回應,正在重新啟動..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "在 %d 秒內自動登入" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "選擇語言(_L)…" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "選擇階段(_S)" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "選擇主機(_H)…" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "重新開機(_R)" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "關機(_D)" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "偏好設定(_P)" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "以訪客身分登入" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "預設值" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "安全模式 xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "改變作業階段(_S)" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "選擇您的作業階段管理員:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "選擇您的作業階段使用的主機:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "改變語言(_L)" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "選擇您的作業階段使用的語言:" ldm-2.2.13/po/zh_CN.po0000644000175000017500000000401512302300754014214 0ustar vagrantvagrant# Chinese (Simplified) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/vi.po0000644000175000017500000000471512302300754013640 0ustar vagrantvagrant# Vietnamese translation for LDM. # Copyright © 2009 Free Software Foundation, Inc. # Clytie Siddall , 2008-2009. # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: vi\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Tên người dùng" #: ../src/plugin.c:32 msgid "Password" msgstr "Mật khẩu" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Đang thẩm tra mật khẩu. Hãy đợi..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Máy phục vụ không đáp ứng, đang khởi chạy lại..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Tự động đăng nhập trong vòng %d giây" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Chọn _Ngôn ngữ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Chọn _Buổi hợp..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Chọn _Máy..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Khởi động lại" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Tắt máy" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Đăng nhập như Khách" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Mặc định" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm dự phòng" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Đổi _Buổi hợp" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Chọn bộ quản lý buổi hợp:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Chọn máy cần dùng trong buổi hợp:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Đổi _Ngôn ngữ" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Chọn ngôn ngữ cần dùng trong buổi hợp:" ldm-2.2.13/po/uk.po0000644000175000017500000000376412302300754013644 0ustar vagrantvagrant# Ukrainian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/ug.po0000644000175000017500000000375612302300754013641 0ustar vagrantvagrant# Uyghur translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Uyghur \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/tr.po0000644000175000017500000000376012302300754013646 0ustar vagrantvagrant# Turkish translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/sv.po0000644000175000017500000000502112302300754013641 0ustar vagrantvagrant# Swedish translation for ldm. # Copyright (C) 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the ldm package. # # Daniel Nylander , 2008, 2009. # Martin Bagge , 2010 msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Martin Bagge / brother \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "X-Poedit-Country: Sweden\n" "Language: sv\n" "X-Poedit-Language: Swedish\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Användarnamn" #: ../src/plugin.c:32 msgid "Password" msgstr "Lösenord" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Validerar lösenordet. Var god vänta." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Inget svar från server, startar om..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automatisk inloggning om %d sekunder" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Välj s_pråk ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Välj _session ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Välj _värd ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "Starta _om" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Stäng _av" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Logga in som gäst" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Standard" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Felsäker xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Byt _session" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Välj din sessionshanterare:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Välj värden att använda för din session:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Byt sp_råk" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Välj språket att använda för din session:" ldm-2.2.13/po/sr.po0000644000175000017500000000376012302300754013645 0ustar vagrantvagrant# Serbian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Serbian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/sq.po0000644000175000017500000000376212302300754013646 0ustar vagrantvagrant# Albanian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/sl.po0000644000175000017500000000460712302300754013640 0ustar vagrantvagrant# Slovenian translation for ldm # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ldm package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-10-01 18:54+0000\n" "Last-Translator: Sasa Batistic \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Uporabniško ime" #: ../src/plugin.c:32 msgid "Password" msgstr "Geslo" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Preverjanje gesla. Prosimo počakajte." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Ni odgovora s strežnika," #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Samodejna prijava v %d sekundah" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Izberi _jezik ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Izberi _sejo ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Izberi _gostitelja ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Ponovni zagon" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Iz_klopi" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Možnosti" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Prijava kot gost" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Privzeto" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Zasilni x terminal" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Spremeni _sejo" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Izberite svojega upravitelja seje:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Izberite gostitelja za svojo sejo, ki jo uporabljate:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Spremeni _jezik" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Izberite jezik za svojo sejo, ki jo uporabljate:" ldm-2.2.13/po/sk.po0000644000175000017500000000453312302300754013635 0ustar vagrantvagrant# translation of ldm to Slovak # Copyright (C) 2009 ldm's COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # Slavko , 2009, 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.2.1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Slavko \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: \n" #: ../src/plugin.c:20 msgid "Username" msgstr "Meno" #: ../src/plugin.c:32 msgid "Password" msgstr "Heslo" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Overovanie hesla. Prosím počkajte." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Žiadna odpoveď servera, reštart..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automatické prihlásenie za %d sekúnd" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Vybrať _jazyk..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Vybrať _reláciu ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Vybrať _hostiteľa ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Reštartovať" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Vypnúť" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Nastavenia" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Prihlásiť ako hosť" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Predvolená" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Bezpečný xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Zmeniť _reláciu" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Vyberte správcu relácie:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Vyberte hosťa relácie:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Zmeniť _jazyk" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Vyberte jazyk relácie:" ldm-2.2.13/po/se.po0000644000175000017500000000377412302300754013635 0ustar vagrantvagrant# Northern Sami translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Northern Sami \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/ru.po0000644000175000017500000000562212302300754013646 0ustar vagrantvagrant# translation of ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # # Yuri Kozlov , 2008. # yuri.nefedov@gmail.com, 2009. # Andrey Lyubimets , 2009. # Max Kosmach , 2009. # Yuri Kozlov , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: ldm 2.2.1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: ru\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Имя пользователя" #: ../src/plugin.c:32 msgid "Password" msgstr "Пароль" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Выполняется проверка пароля, подождите..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Нет ответа от сервера, перезапуск..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Автоматический вход в течении %d секунд" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Выбор _Языка ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Выбор _Сеанса ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Выбор _узла ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Перезагрузка" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Выключение" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "П_араметры" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Войти как Гость" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "По умолчанию" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Безопасный сеанс, xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Смена _Сеанса" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Выберите менеджер сеанса:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Выберите узел для используемого сеанса:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Смена _Языка" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Выберите язык для используемого сеанса:" ldm-2.2.13/po/ro.po0000644000175000017500000000464612302300754013645 0ustar vagrantvagrant# Romanian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "Parolă" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Se verifică parola. Vă rugăm așteptați." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Niciun răspuns de la server, se repornește..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Autentificare automată în %d secunde" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Selecție _limbă ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Alegere _sesiune..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Alegere _Gazdă" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Repornire" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Oprire" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferințe" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Autentificare ca vizitator" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Implicit" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Mod de siguranță xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Schimbare _sesiune" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Alegeți administratorul de sesiune:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Alegeți gazda pentru sesiunea de utilizat" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Schimbare _limbă" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Selectați limba pentru sesiunea de utilizat:" ldm-2.2.13/po/pt_BR.po0000644000175000017500000000473212302300754014227 0ustar vagrantvagrant# Brazilian Portuguese translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-11-22 10:55+0000\n" "Last-Translator: Mario A. C. Silva (Exp4nsion) \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Usuário" #: ../src/plugin.c:32 msgid "Password" msgstr "Senha" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Verificando a senha. Por favor aguarde." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Sem resposta do servidor, reiniciando..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Login automático em %d segundos" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Selecionar _Linguagem ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Selecionar _Sessão ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Selecionar _Host ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Reiniciar" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Desligar" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferências" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Login como Visitante" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Padrão" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm Seguro Contra Falhas" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Trocar _Sessão" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Selecione seu gerenciador de sessão:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Selecione a máquina para usar na sua sessão:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Trocar _Linguagem" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Selecione a linguagem para sua sessão:" ldm-2.2.13/po/pt.po0000644000175000017500000000474412302300754013647 0ustar vagrantvagrant# Portuguese translation for ldm messages. # Copyright (C) 2008 Pedro Ribeiro # This file is distributed under the same license as the ldm package. # Pedro Ribeiro , 2008-2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.2.1-1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Pedro Ribeiro \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: pt\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nome de utilizador" #: ../src/plugin.c:32 msgid "Password" msgstr "Palavra-passe" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "A verificar a palavra-passe. Espere por favor." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Sem resposta do servidor, a reiniciar..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Login automático em %d segundos" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Escolher _Idioma ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Escolher _Sessão ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Escolher _Máquina ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Reiniciar" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Desligar" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferências" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Entrar como Convidado" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Predefinido" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm de salvaguarda" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Mudar _Sessão" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Escolher gestor de sessões:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Escolher a máquina a utilizar para a sua sessão:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Mudar _Idioma" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Escolher o idioma a utilizar para a sua sessão:" ldm-2.2.13/po/pl.po0000644000175000017500000000450212302300754013627 0ustar vagrantvagrant# translation of pl.po to Polish # Piotr Drąg , 2008. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: pl\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nazwa użytkownika" #: ../src/plugin.c:32 msgid "Password" msgstr "Hasło" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Sprawdzanie hasła. Proszę czekać." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Brak odpowiedzi od serwera, ponowne uruchamianie..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automatyczne logowanie nastąpi za %d sekund" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "_Wybierz język..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Wybierz _sesję..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Wybierz _komputer..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "U_ruchom ponownie" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Wyłą_cz" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferencje" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Zaloguj jako gość" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Domyślna" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Bezpieczny xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Zmień _sesję" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Proszę wybrać menedżera sesji:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Proszę wybrać komputer używany przez sesję:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "_Zmień język" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Proszę wybrać język sesji:" ldm-2.2.13/po/oc.po0000644000175000017500000000404212302300754013614 0ustar vagrantvagrant# Occitan (post 1500) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nom d'utilizaire" #: ../src/plugin.c:32 msgid "Password" msgstr "Mot de pas" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/nl.po0000644000175000017500000000455412302300754013634 0ustar vagrantvagrant# ldm gettext messages for Dutch (Nederlands). # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # Jan Middelkoop , 2010. # msgid "" msgstr "" "Project-Id-Version: ldm 2.1.3\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Balaam's Miracle \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: nl\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Gebruikersnaam" #: ../src/plugin.c:32 msgid "Password" msgstr "Wachtwoord" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Server reageert niet; systeem start opnieuw..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automatisch aanmelden in %d seconden" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "_Taal instellen..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "_Sessie instellen..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "_Host instellen" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Opnieuw opstarten" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Afsluiten" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Aanmelden als Gast" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Standaard" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Systeemherstel xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "_Sessie wijzigen" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Kies de gewenste sessiemanager:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Kies de host voor deze sessie:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "_Taal wijzigen" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Kies de taal voor deze sessie:" ldm-2.2.13/po/nb.po0000644000175000017500000000472612302300754013623 0ustar vagrantvagrant# translation to Norwegian Bokmål for ldm # Copyright (C) 2008 Klaus Ade Johnstad . # This file is distributed under the same license as the ldm package. # Klaus Ade Johnstad , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: ldm 2.0.0\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Klaus Ade Johnstad \n" "Language-Team: Norwegian Bokmål \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: \n" #: ../src/plugin.c:20 msgid "Username" msgstr "Brukernavn" #: ../src/plugin.c:32 msgid "Password" msgstr "Passord" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Sjekker passord, vennligst vent..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Fikk ikke noe svar fra server, starter omigjen ..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Logger automatisk på om %d sekunder" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Velg _språk ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Velg s_esjon ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Velg _tjener ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "Start omigjen datamaskinen" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Skru av _datamaskinen" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Innstillinger" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Logg inn som gjest" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Standard" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Feilsikker xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Bytt s_esjon" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Velg din sesjonsbehandler:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Velg hvilken server du vil koble din sesjon opp mot:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Bytt _språk" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Velg språk for denne sesjonen:" ldm-2.2.13/po/my.po0000644000175000017500000000633012302300754013642 0ustar vagrantvagrant# Burmese translation for ldm # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ldm package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-05-20 07:46+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Burmese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "အသုံးပြုသူအမည်" #: ../src/plugin.c:32 msgid "Password" msgstr "စကားဝွက္" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "စကားဝှက်အားစစ်ဆေးနေသည်။ ကျေးဇူးပြု၍ခေတ္တစောင့်ပါ။" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "ဆာဗာမှတုံ့ပြန်မှ ုမရှိ ၊ ပြန်လည်စတင်ခြင်း..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "ရွေးချယ်ပါ _ဘာသာစကား ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "ရွေးချယ်ပါ _ကဏ္ဍ ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "ရွေးချယ်ပါ _Host ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_ပြန်လည်စတင်ခြင်း" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "ပိတ်သည်။" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_ဦးစားပေးချက်များ" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "guest တစ်ယောက်အနေဖြင့်စတင်ဝင်ရောက်ခြင်း" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "မူရင်းအတိုင်း" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "အပြောင်းအလဲ _ကဏ္ဍ" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "သင်၏အခန်းကဏ္ဍမန်နေဂျာအားရွေးချယ်ပါ-" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "သင်၏အခန်းကဏ္ဍကိုအသုံးပြုရန်အတွက် host အားရွေးချယ်ပါ-" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "ေျပာင္းျခင္း _ဘာသာစကား" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "သင်၏အခန်းကဏ္ဍကိုအသုံးပြုရန်အတွက်ဘာသာစကားအားရွေးချယ်ပါ-" ldm-2.2.13/po/ms.po0000644000175000017500000000375412302300754013643 0ustar vagrantvagrant# Malay translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Malay \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/lt.po0000644000175000017500000000376612302300754013646 0ustar vagrantvagrant# Lithuanian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/ja.po0000644000175000017500000000526312302300754013613 0ustar vagrantvagrant# translation of ja.po to Japanese # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Noriko Mizumoto , 2008, 2009. # Noriko Mizumoto , 2010. msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Noriko Mizumoto \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: ja\n" #: ../src/plugin.c:20 msgid "Username" msgstr "ユーザー名" #: ../src/plugin.c:32 msgid "Password" msgstr "パスワード" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "パスワードを確認しています。 お待ちください。" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "サーバーから応答がありません、 再起動しています..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "%d 秒で自動的にログインします" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "言語の選択(_L)..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "セッションの選択(_S)..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "ホストの選択(_H)..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "再起動(_R)" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "シャットダウン(_D)" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "ゲストとしてログインする" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "デフォルト" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "フェールセーフ xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "セッションの変更(_S)" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "セッションマネージャを選択する:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "使用するセッションのホストを選択する:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "言語の変更(_L)" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "使用するセッションの言語を選択する:" ldm-2.2.13/po/it.po0000644000175000017500000000470712302300754013637 0ustar vagrantvagrant# ldm gettext messages for Italian. # COPYRIGHT (C) 2010 THE LDM'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # Vincenzo Campanella , 2010. # msgid "" msgstr "" "Project-Id-Version: ldm 2.1.1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Vincenzo Campanella \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: it\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nome utente" #: ../src/plugin.c:32 msgid "Password" msgstr "Password" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Verifica della password in corso. Attendere." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Nessuna risposta dal server, riavvio in corso." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Accesso automatico fra %d secondi" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Seleziona la _lingua..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Seleziona la _sessione..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Seleziona l'_host..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Riavvia" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Arresta" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Accedi come ospite" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Predefinito" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm di emergenza" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Cambia _sessione" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Selezionare il gestore di sessione:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Selezionare l'host da utilizzare per la sessione:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Cambia _lingua" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Selezionare la lingua da utilizzare per la sessione:" ldm-2.2.13/po/id.po0000644000175000017500000000416212302300754013612 0ustar vagrantvagrant# Indonesian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Verifikasi kata sandi. Harap tunggu." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Tak ada respon dari server, memulai ulang..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Log masuk otomatis dalam %d detik" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferensi" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/hu.po0000644000175000017500000000433112302300754013630 0ustar vagrantvagrantmsgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: SZERVÁC Attila \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "X-Poedit-Country: HUNGARY\n" "Language: hu\n" "X-Poedit-Language: Hungarian\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Felhasználó" #: ../src/plugin.c:32 msgid "Password" msgstr "Jelszó" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Jelszó ellenőrzése, kis türelmet..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Válassz _nyelvet ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Válassz _folyamatot ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Válassz _gépet ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "Új_raindítás" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Leállítás" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Bejelentkezés vendégként" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Alap" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "_Folyamat cseréje" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Válaszd ki folyamat-kezelődet:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Válaszd ki a folyamathoz használt gépet:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "_Nyelv cseréje" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Válaszd ki a folyamathoz használt nyelvet:" ldm-2.2.13/po/he.po0000644000175000017500000000375612302300754013622 0ustar vagrantvagrant# Hebrew translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/gl.po0000644000175000017500000000376212302300754013625 0ustar vagrantvagrant# Galician translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/gd.po0000644000175000017500000000474412302300754013616 0ustar vagrantvagrant# Gaelic; Scottish translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Gaelic; Scottish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Ainm-cleachdaiche" #: ../src/plugin.c:32 msgid "Password" msgstr "Facal-faire" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "A' dearbhadh an fhacail-fhaire. Fuirich ort." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Chan eil am frithealaiche a' freagairt, ag ath-thòiseachadh..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Clàradh a-steach fèin-obrachail ann an %d diog(an)" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Tagh _cànan..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Tagh _seisean..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "_Tagh òstair..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Dèan reboot" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Dùin _sìos" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Clàraich a-steach mar aoigh" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Failsafe xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Atharraich an _seisean" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Tagh manaidsear an t-seisein agad:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Tagh òstair a chleachdar airson an t-seisein agad:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Atharraich an _cànan" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Tagh an cànan a chleachdar airson an t-seisein agad:" ldm-2.2.13/po/fr.po0000644000175000017500000000511712302300754013626 0ustar vagrantvagrant# French translation of ldm. # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the PACKAGE package. # Jean-Baka Domelevo-Entfellner , 2007 # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Stephane Graber \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: fr\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nom d'utilisateur" #: ../src/plugin.c:32 msgid "Password" msgstr "Mot de passe" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Vérification du mot de passe, merci de patienter..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Pas de réponse du serveur, redémarrage..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Connexion automatique dans %d secondes" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Veuillez choisir la _Langue ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Veuillez choisir la _Session ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Veuillez choisir l'_Hôte ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Redémarrer" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "É_teindre" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Préférences" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "S'identifier en tant qu'invité" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Par défaut" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm en mode sans échec" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Changer de _session" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Veuillez choisir votre gestionnaire de sessions :" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Veuillez choisir l'hôte à utiliser lors de votre session :" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Changer de _Langue" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Veuillez choisir la langue à utiliser lors de votre session :" ldm-2.2.13/po/fi.po0000644000175000017500000000471012302300754013613 0ustar vagrantvagrant# Finnish translation of ldm. # Copyright (C) 2008 ldm's COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # Ville-Pekka Vainio , 2008-2011. msgid "" msgstr "" "Project-Id-Version: ldm 2.0.0\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: fi\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Käyttäjätunnus" #: ../src/plugin.c:32 msgid "Password" msgstr "Salasana" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Varmennetaan salasanaa, odota hetki." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Ei saatu vastausta palvelimelta, aloitetaan uudelleen..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automaattinen kirjautuminen %d sekunnin kuluttua" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Valitse _kieli..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Valitse _istunto..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Valitse k_one..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "Käynnistä _uudelleen" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Sammuta" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Asetukset" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Kirjaudu vieraana" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Oletus" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Vikasietotilan xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Vaihda _istuntoa" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Valitse istunnonhallitsin:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Valitse istunnossasi käytettävä kone:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Vaihda _kieli" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Valitse istunnossasi käytettävä kieli:" ldm-2.2.13/po/eu.po0000644000175000017500000000503012302300754013622 0ustar vagrantvagrant# translation of ldm_2.2.1_eu.po to Basque # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Piarres Beobide , 2008, 2009. # Iñaki Larrañaga Murgoitio , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: ldm_2.2.1_eu\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Oier Mees \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: eu\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Erabiltzaile-izena" #: ../src/plugin.c:32 msgid "Password" msgstr "Pasahitza" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Pasahitza egiaztatzen. Itxaron..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Ez dago erantzunik zerbitzaritik, berrabiarazten..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Saio-hasiera automatikoa %d segundotan" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Hautatu _hizkuntza..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Hautatu _saioa..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Hautatu _ostalaria..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "Be_rrabiarazi" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "I_tzali" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Hobespenak" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Hasi saioa gonbidatu gisa" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Lehenetsia" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm segurua" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Aldatu _saioa" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Hautatu zure saio-kudeatzailea:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Hautatu ostalaria zure saioan erabiltzeko:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Aldatu _hizkuntza" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Hautatu hizkuntza zure saioan erabiltzeko:" ldm-2.2.13/po/et.po0000644000175000017500000000376212302300754013633 0ustar vagrantvagrant# Estonian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/es.po0000644000175000017500000000470712302300754013632 0ustar vagrantvagrant# translation of es.po to spanish # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # José L. Redrejo Rodríguez , 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Paco Molinero \n" "Language-Team: spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "Language: \n" #: ../src/plugin.c:20 msgid "Username" msgstr "Nombre de usuario" #: ../src/plugin.c:32 msgid "Password" msgstr "Contraseña" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Comprobando la contraseña, espere." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "No hay respuesta del servidor, reiniciando..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Login automático en %d segundos" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Elegir _Idioma ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Elegir _Sesión ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Elegir _Servidor ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Reiniciar" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "Apagar" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Preferencias" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Entrar como Invitado" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Predeterminada" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "xterm a prueba de fallos" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Cambiar _Sesión" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Seleccione su gestor de sesiones:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Seleccione el servidor a usar en su sesión:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Cambiar _Idioma" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Seleccione el idioma para su sesión:" ldm-2.2.13/po/eo.po0000644000175000017500000000376412302300754013630 0ustar vagrantvagrant# Esperanto translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/en_GB.po0000644000175000017500000000402512302300754014166 0ustar vagrantvagrant# English (United Kingdom) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/en_AU.po0000644000175000017500000000401312302300754014200 0ustar vagrantvagrant# English (Australia) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/el.po0000644000175000017500000000601512302300754013615 0ustar vagrantvagrant# Greek translations for LDM package. # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the ldm package. # Alkis Georgopoulos , 2009-2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.0.0\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-14 10:58+0000\n" "Last-Translator: Kainourgiakis Giorgos \n" "Language-Team: Greek\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "X-Poedit-Country: GREECE\n" "Language: \n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Basepath: /home/alkisg/tmp/ltsp-upstream/ldm-trunk/po\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Όνομα χρήστη" #: ../src/plugin.c:32 msgid "Password" msgstr "Κωδικός πρόσβασης" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Επαλήθευση του κωδικού πρόσβασης, παρακαλώ περιμένετε." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Ο εξυπηρετητής δεν ανταποκρίθηκε, γίνεται επανεκκίνηση..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Αυτόματη σύνδεση σε %d δευτερόλεπτα" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Επιλογή _Γλώσσας ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Επιλογή _Συνεδρίας ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Επιλογή Ε_ξυπηρετητή ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Επανεκκίνηση" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Τερματισμός" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Προτιμήσεις" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Είσοδος ως επισκέπτης" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Προεπιλογή" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Τερματικό σε ασφαλή λειτουργία" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "Αλλαγή _Συνεδρίας" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Επιλέξτε διαχειριστή συνεδρίας:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Επιλέξτε εξυπηρετητή για τη συνεδρία σας:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "Αλλαγή _γλώσσας" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Επιλέξτε γλώσσα για τη συνεδρία σας:" ldm-2.2.13/po/de.po0000644000175000017500000000510412302300754013603 0ustar vagrantvagrant# German LDM translation # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the ldm package. # Oliver Grawert , 2007. # Wolfgang Schweer , 2008-2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.1.1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Wolfgang Schweer \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "X-Poedit-Country: GERMANY\n" "Language: de\n" "X-Poedit-Language: German\n" "X-Poedit-SourceCharset: utf-8\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Benutzername" #: ../src/plugin.c:32 msgid "Password" msgstr "Passwort" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Passwort wird überprüft. Bitte warten ..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Keine Antwort des Servers, Neustart ..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Automatische Anmeldung in %d Sekunden" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "_Sprache wählen ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "_Sitzungsart wählen ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "_Rechner wählen ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Neustart" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Ausschalten" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Einstellungen" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Anmeldung als Gast" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Voreinstellung" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm als Notlösung" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "_Sitzungsart ändern" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Sitzungsmanager auswählen:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Rechner für diese Sitzung auswählen:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "_Sprache wechseln" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Sprache für diese Sitzung auswählen:" ldm-2.2.13/po/da.po0000644000175000017500000000470312302300754013603 0ustar vagrantvagrant# Danish LDM translation # Copyright (C) 2011 Dennis Duggen # This file is distributed under the same license as the ldm package. # Dennis Duggen , 2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.1.1\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: Dennis Duggen \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" "X-Poedit-Country: DANISH\n" "Language: da\n" "X-Poedit-Language: Danish\n" "X-Poedit-SourceCharset: utf-8\n" #: ../src/plugin.c:20 msgid "Username" msgstr "Brugernavn" #: ../src/plugin.c:32 msgid "Password" msgstr "Adgangskode" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "Adgangskoden kontrolleres. Vent venligst ..." #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "Serveren svarede ikke, genstarter ..." #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "Logger automatisk på om %d sekunder" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "Vælg sprog ..." #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "Vælg _session ..." #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "Vælg _computer ..." #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "_Genstart" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "_Luk ned" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "_Indstillinger" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "Log på som gæst" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "Standard" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "Xterm nød løsning" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "ændre _session" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "Vælg session manager:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "Vælg computeren for denne session:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "_Skift sprog" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "Vælg sprog for denne session:" ldm-2.2.13/po/cs.po0000644000175000017500000000375412302300754013631 0ustar vagrantvagrant# Czech translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/ca.po0000644000175000017500000000376012302300754013604 0ustar vagrantvagrant# Catalan translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/bs.po0000644000175000017500000000376012302300754013625 0ustar vagrantvagrant# Bosnian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/bg.po0000644000175000017500000000376412302300754013615 0ustar vagrantvagrant# Bulgarian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/be.po0000644000175000017500000000376612302300754013615 0ustar vagrantvagrant# Belarusian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/ast.po0000644000175000017500000000376312302300754014013 0ustar vagrantvagrant# Asturian translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2013-11-25 04:32+0000\n" "PO-Revision-Date: 2013-01-13 21:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Asturian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-26 04:30+0000\n" "X-Generator: Launchpad (build 16840)\n" #: ../src/plugin.c:20 msgid "Username" msgstr "" #: ../src/plugin.c:32 msgid "Password" msgstr "" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "" #: ../src/plugins/ssh/ssh.c:388 msgid "No response from server, restarting..." msgstr "" #: ../gtkgreet/greeter.c:250 #, c-format msgid "Automatic login in %d seconds" msgstr "" #: ../gtkgreet/greeter.c:513 msgid "Select _Language ..." msgstr "" #: ../gtkgreet/greeter.c:523 msgid "Select _Session ..." msgstr "" #: ../gtkgreet/greeter.c:533 msgid "Select _Host ..." msgstr "" #: ../gtkgreet/greeter.c:566 msgid "_Reboot" msgstr "" #: ../gtkgreet/greeter.c:574 msgid "Shut_down" msgstr "" #: ../gtkgreet/greeter.c:718 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:812 msgid "Login as Guest" msgstr "" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:89 msgid "Default" msgstr "" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "" ldm-2.2.13/po/zh.po0000644000175000017500000001027512302300754013641 0ustar vagrantvagrant# ldm gettext messages for Chinese # Copyright (C) 2010 xiaoqi zhao # This file is distributed under the same license as the ldm package. # xiaoqi zhao . # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: sbalneav@ltsp.org\n" "POT-Creation-Date: 2011-07-12 21:42-0700\n" "PO-Revision-Date: 2010-01-27 15:51+0800\n" "Last-Translator: xiaoqi zhao \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/plugin.c:20 msgid "Username" msgstr "用户名" #: ../src/plugin.c:32 msgid "Password" msgstr "口令" #: ../src/plugin.c:35 msgid "Verifying password. Please wait." msgstr "正在核实口令。请等待。" #: ../src/plugins/ssh/ssh.c:386 msgid "No response from server, restarting..." msgstr "服务器没有响应,重新启动..." #: ../gtkgreet/greeter.c:255 #, c-format msgid "Automatic login in %d seconds" msgstr "在%d秒以后自动登录" #: ../gtkgreet/greeter.c:514 msgid "Select _Language ..." msgstr "选择语言..." #: ../gtkgreet/greeter.c:519 msgid "Select _Session ..." msgstr "选择进程..." #: ../gtkgreet/greeter.c:524 msgid "Select _Host ..." msgstr "选择主机..." #: ../gtkgreet/greeter.c:529 msgid "_Reboot" msgstr "重启" #: ../gtkgreet/greeter.c:533 msgid "Shut_down" msgstr "关闭" #: ../gtkgreet/greeter.c:697 msgid "_Preferences" msgstr "" #: ../gtkgreet/greeter.c:801 msgid "Login as Guest" msgstr "以客户身份登录" #: ../gtkgreet/sesswin.c:105 ../gtkgreet/langwin.c:104 #: ../gtkgreet/prefwin.c:93 msgid "Default" msgstr "默认" #: ../gtkgreet/sesswin.c:107 msgid "Failsafe xterm" msgstr "失败安全的xterm" #: ../gtkgreet/sesswin.c:130 msgid "Change _Session" msgstr "变更进程" #: ../gtkgreet/sesswin.c:141 msgid "Select your session manager:" msgstr "选择您的进程管理器:" #: ../gtkgreet/hostwin.c:123 msgid "Select the host for your session to use:" msgstr "为您要使用的进程选择相应主机:" #: ../gtkgreet/langwin.c:127 msgid "Change _Language" msgstr "变更语言" #: ../gtkgreet/langwin.c:138 msgid "Select the language for your session to use:" msgstr "为您要使用的进程选择相应语言:" #~ msgid "Out of memory" #~ msgstr "内存溢出" #~ msgid "No configured interface found\n" #~ msgstr "未找到配置界面\n" #~ msgid "ldm_spawn failed to execute: %s" #~ msgstr "Idm_spawn执行失败:%s" #~ msgid "Exiting ldm" #~ msgstr "退出Idm" #~ msgid "Waiting for process %d\n" #~ msgstr "等待进程 %d\n" #~ msgid "waitid returned an error:" #~ msgstr "等待编号返回一个错误:" #~ msgid "Unexpected terminated process: pid = %d" #~ msgstr "未预期的中止进程:pid = %d" #~ msgid "Process %d exited with status %d" #~ msgstr "进程%d以状态%d退出" #~ msgid "Process %d killed by signal %d" #~ msgstr "信号%d中止了进程%d" #~ msgid "ERROR: no Xsession" #~ msgstr "错误:没有Xsession" #~ msgid "Logging in as guest" #~ msgstr "以访客身份登录" #~ msgid "LDM2 running on ip address %s" #~ msgstr "LDM2运行在IP地址%s之上" #~ msgid "Spawning greeter: %s" #~ msgstr "孵化:%s" #~ msgid "ERROR: %s from greeter failed" #~ msgstr "错误:从greeter错误%s" #~ msgid "ERROR: no username" #~ msgstr "错误:没有用户名" #~ msgid "ERROR: no password" #~ msgstr "错误:没有口令" #~ msgid "ERROR: no server" #~ msgstr "错误:没有服务器" #~ msgid "Fatal error, missing mandatory information" #~ msgstr "致命错误,缺失必需的信息" #~ msgid "Established ssh session." #~ msgstr "建立ssh连接。" #~ msgid "Executing rc files." #~ msgstr "执行rc文件。" #~ msgid "Beginning X session." #~ msgstr "启动X进程。" #~ msgid "X session ended." #~ msgstr "X进程完成。" #~ msgid "Ending ssh session." #~ msgstr "完成ssh进程。" #~ msgid "expect saw: %s" #~ msgstr "期望的往复:%s" #~ msgid "Logged in successfully.\n" #~ msgstr "成功登录。\n" #~ msgid "No response, restarting" #~ msgstr "没有响应,重新启动" #~ msgid "login_tty failed" #~ msgstr "登录窗口login_tty失败" #~ msgid "Shutting down ssh session: %s" #~ msgstr "关闭ssh进程:%s" ldm-2.2.13/po/Rules-quot0000644000175000017500000000337612302300754014667 0ustar vagrantvagrant# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header ldm-2.2.13/po/remove-potcdate.sin0000644000175000017500000000066012302300754016466 0ustar vagrantvagrant# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ldm-2.2.13/po/regenerate-pot0000755000175000017500000000057112302300754015525 0ustar vagrantvagrant#!/bin/bash # regenerate the .pot file with appropriate values substituted for package # name, description and version. set -e cd .. # get name and version values . release.conf cd - pot=$NAME.pot rm $pot make $pot sed -i -e "s,SOME DESCRIPTIVE TITLE.,$NAME gettext messages for LANGUAGE.,g" \ -i -e "s,PACKAGE ,$NAME ,g" \ -i -e "s,VERSION,$VERSION,g" \ $pot ldm-2.2.13/po/quot.sed0000644000175000017500000000023112302300754014334 0ustar vagrantvagrants/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g ldm-2.2.13/po/POTFILES.in0000644000175000017500000000061612302300754014433 0ustar vagrantvagrant# List of source files which contain translatable strings. src/ldm.c src/ldmgreetercomm.c src/ldmutils.c src/plugin.c src/plugins/rdesktop/rdesktop.c src/plugins/ssh/ssh.c gtkgreet/greeter.c gtkgreet/sesswin.c gtkgreet/hostwin.c gtkgreet/langwin.c gtkgreet/prefwin.c rc.d/I01-halt-check rc.d/I01-nbd-checkupdate rc.d/S15-userLoginCheck rc.d/S20-restrictUser rc.d/S99-ltsp-cluster misc/ldm-dialog.c ldm-2.2.13/po/Makevars0000644000175000017500000000342112302300754014347 0ustar vagrantvagrant# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Scott Balneaves # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = sbalneav@ltsp.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = ldm-2.2.13/po/LINGUAS0000644000175000017500000000015012302300754013674 0ustar vagrantvagrant#list all languages here, keep it alphabatical da de el es eu fi fr hu it ja nb nl pl pt ru sk sv vi zh ldm-2.2.13/po/insert-header.sin0000644000175000017500000000124012302300754016115 0ustar vagrantvagrant# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ldm-2.2.13/po/en@quot.header0000644000175000017500000000226312302300754015443 0ustar vagrantvagrant# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # ldm-2.2.13/po/en@boldquot.header0000644000175000017500000000247112302300754016305 0ustar vagrantvagrant# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # ldm-2.2.13/po/boldquot.sed0000644000175000017500000000033112302300754015176 0ustar vagrantvagrants/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g ldm-2.2.13/po/rc.d/0000755000175000017500000000000012302300754013501 5ustar vagrantvagrantldm-2.2.13/po/rc.d/zh_TW.po0000644000175000017500000000302512302300754015074 0ustar vagrantvagrant# Chinese (Traditional) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-11-13 05:30+0000\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-14 04:31+0000\n" "X-Generator: Launchpad (build 16820)\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "系統認為您已經從其他地方登入。您想要關閉其他的作業階段然後繼續登入嗎?" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "這個系統會在 10 秒內關機。" #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "使用者 ${LDM_USERNAME} 不被允許登入這個工作站。" #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "有新版本的系統可用,於 10 秒內重新開機。" ldm-2.2.13/po/rc.d/sk.po0000644000175000017500000000273112302300754014461 0ustar vagrantvagrant# translation of sk.po to Slovenský # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Slavko , 2009, 2010. msgid "" msgstr "" "Project-Id-Version: sk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Slavko \n" "Language-Team: Slovenský \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" "Language: \n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" "V systéme je záznam, že ste prihlásený aj inde. Zatvoriť druhú reláciu a " "pokračovať v prihlasovaní?" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "Systém bude vypnutý za 10s." #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "Používateľ ${LDM_USERNAME} nemá právo prihlásiť sa k tejto stanici." #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "Je dostupná nová verzia systému, reštart za 10 s." ldm-2.2.13/po/rc.d/pt_BR.po0000644000175000017500000000311012302300754015042 0ustar vagrantvagrant# Brazilian Portuguese translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-11-22 11:03+0000\n" "Last-Translator: Guilherme Benkenstein \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-23 04:30+0000\n" "X-Generator: Launchpad (build 16831)\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" "O Sistema acha que você está logado em outro local. Você gostaria de fechar " "a outra sessão e continuar no login?" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "O Sistema irá desligar em 10 segundos." #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "" "Usuário ${LDM_USERNAME} não é permitido logar nesta estação de trabalho." #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "" "Uma nova verão do sistema está disponível, reiniciando em 10 segundos." ldm-2.2.13/po/rc.d/fr.po0000644000175000017500000000301312302300754014445 0ustar vagrantvagrant# French translation of ldm. # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the ldm package. msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Stéphane Graber \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" "Language: fr\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" "Le système pense que vous êtes déjà connecté quelque part. Souhaitez-vous " "fermer votre autre session et en ouvrir une nouvelle ?" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "Cette machine s'arrêtera dans 10s." #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "" "L'utilisateur ${LDM_USERNAME} n'est pas autorisé à se connecter sur cette " "machine." #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "" "Une nouvelle version du système est disponible, redémarrage dans 10s." ldm-2.2.13/po/rc.d/el.po0000644000175000017500000000343312302300754014444 0ustar vagrantvagrant# Greek translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-13 22:31+0000\n" "Last-Translator: Fotis Tsamis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" "Το σύστημα πιστεύει πως έχετε συνδεθεί κάπου αλλού. Θα θέλατε να κλείσετε " "την άλλη συνεδρία και να συνεχίσετε την είσοδο;" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "Το σύστημα θα τερματίσει σε 10\"." #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "" "Ο χρήστης ${LDM_USERNAME} δεν επιτρέπεται να συνδεθεί σε αυτόν τον σταθμό " "εργασίας." #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "" "Μια νέα έκδοση του συστήματος είναι διαθέσιμη, γίνεται επανεκκίνηση σε 10\"." ldm-2.2.13/po/rc.d/zh.po0000644000175000017500000000255712302300754014473 0ustar vagrantvagrant# ldm gettext messages for Chinese # Copyright (C) 2010 xiaoqi zhao # This file is distributed under the same license as the ldm package. # xiaoqi zhao . # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2010-01-27 15:51+0800\n" "Last-Translator: xiaoqi zhao \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" "系统认为您已经在其他地方登录了。可否请您关闭其他的登录进程,再进行继续的登" "录?" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "此系统将在10秒后停止。" #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "此工作站禁止用户${LDM_USERNAME}登入" #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "系统的一个新版本现在可用,将在10秒后重启。" ldm-2.2.13/po/rc.d/Makefile.in.in0000644000175000017500000000143512302300754016156 0ustar vagrantvagrantDOMAIN=ldmrc POFILES=$(wildcard *.po) MOFILES=$(patsubst %.po,%.mo,$(POFILES)) LINGUAS=$(basename $(POFILES)) GETTEXTFILES=$(shell find ../../rc.d/ -type f | grep -v Makefile) POTFILE=$(DOMAIN).pot DESTDIR=/ %.mo: %.po msgfmt --statistics -o $@ $< %.po: $(DOMAIN).pot msgmerge -U $*.po $(DOMAIN).pot $(DOMAIN).pot: $(GETTEXTFILES) $(shell xgettext -L Shell -o $(DOMAIN).pot $(GETTEXTFILES)) update-po: -for lang in $(LINGUAS); do\ msgmerge -U $$lang.po $(DOMAIN).pot; \ done install: $(MOFILES) -for lang in $(LINGUAS); do\ install -d $(DESTDIR)/usr/share/locale/$$lang/LC_MESSAGES/; \ install -m 644 $$lang.mo $(DESTDIR)/usr/share/locale/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done all: update-po $(MOFILES) distclean: clean clean: - rm *.mo *~ .PHONY: update-po check ldm-2.2.13/po/rc.d/ldmrc.pot0000644000175000017500000000220412302300754015324 0ustar vagrantvagrant# ldm gettext messages for LANGUAGE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: ldm 2.1.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../../rc.d/S15-userLoginCheck:34 ../../rc.d/S99-ltsp-cluster:12 #, sh-format msgid "" "The system thinks you are logged in elsewhere. Would you like to close the " "other session and continue to log in?" msgstr "" #: ../../rc.d/I01-halt-check:9 #, sh-format msgid "This system will halt in 10s." msgstr "" #: ../../rc.d/S20-restrictUser:21 #, sh-format msgid "User ${LDM_USERNAME} is not allowed to log into this workstation." msgstr "" #: ../../rc.d/I01-nbd-checkupdate:36 #, sh-format msgid "A new version of the system is available, rebooting in 10s." msgstr "" ldm-2.2.13/po/ltsp-cluster-info/0000755000175000017500000000000012302300754016245 5ustar vagrantvagrantldm-2.2.13/po/ltsp-cluster-info/zh_TW.po0000644000175000017500000000330112302300754017635 0ustar vagrantvagrant# Chinese (Traditional) translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-11-13 05:32+0000\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-14 04:31+0000\n" "X-Generator: Launchpad (build 16820)\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "這個精簡客戶端的資訊。" #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "這個精簡客戶端尚未設定。" #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "MAC 位址" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "IP 位址" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "CPU" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "記憶體" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "視訊" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "應用程式伺服器" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "網路介面" ldm-2.2.13/po/ltsp-cluster-info/sk.po0000644000175000017500000000317112302300754017224 0ustar vagrantvagrant# Slovak translations for ldm package # Copyright (C) 2010 THE ldm's COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # Slavko , 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: ldm 2.2.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Slavko \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" "Language: \n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "Informácie o tenkom klientovi." #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "Tento tenký klient ešte nebol nastavený." #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "MAC adresa" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "IP adresa" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "CPU" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "RAM" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "Video" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "Aplikačný server" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "Webové rozhranie" ldm-2.2.13/po/ltsp-cluster-info/pt_BR.po0000644000175000017500000000331412302300754017614 0ustar vagrantvagrant# Brazilian Portuguese translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-11-22 11:05+0000\n" "Last-Translator: Guilherme Benkenstein \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-23 04:30+0000\n" "X-Generator: Launchpad (build 16831)\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "Informação sobre este thin client." #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "Este thin client não fora configurado ainda." #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "Endereço MAC" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "Endereço IP" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "CPU" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "RAM" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "Vídeo" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "Servidor de aplicação" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "Interface Web" ldm-2.2.13/po/ltsp-cluster-info/fr.po0000644000175000017500000000321012302300754017210 0ustar vagrantvagrant# French translation of ldm. # Copyright (C) 2007 Scott Balneaves # This file is distributed under the same license as the ldm package. msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-14 03:07+0000\n" "Last-Translator: Stéphane Graber \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" "Language: fr\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "Information sur ce client léger." #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "Ce client léger n'est pas encore configuré." #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "Addresse MAC" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "Addresse IP" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "Processeur" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "Mémoire" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "Carte graphique" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "Serveur d'application" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "Interface web" ldm-2.2.13/po/ltsp-cluster-info/el.po0000644000175000017500000000342412302300754017210 0ustar vagrantvagrant# Greek translation for ltsp # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the ltsp package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: ltsp\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2013-01-13 22:33+0000\n" "Last-Translator: Fotis Tsamis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-10 04:30+0000\n" "X-Generator: Launchpad (build 16799)\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "Πληροφορίες για αυτόν τον thin client." #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "Αυτός ο thin client δεν έχει ρυθμιστεί ακόμη." #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "Διεύθυνση MAC" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "Διεύθυνση IP" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "CPU" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "RAM" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "Βίντεο" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "Διακομιστής εφαρμογών" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "Περιβάλλον ιστού" ldm-2.2.13/po/ltsp-cluster-info/zh.po0000644000175000017500000000303712302300754017231 0ustar vagrantvagrant# ldm gettext messages for Chinese # Copyright (C) 2010 xiaoqi zhao # This file is distributed under the same license as the ldm package. # xiaoqi zhao . # msgid "" msgstr "" "Project-Id-Version: ldm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: 2010-01-27 15:51+0800\n" "Last-Translator: xiaoqi zhao \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "在此瘦客户端上的信息。" #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "此瘦客户端还未进行配置。" #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "MAC地址" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "IP地址" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "CPU中央处理器" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "RAM内存" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "视频" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "应用服务器" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "Web接口" ldm-2.2.13/po/ltsp-cluster-info/Makefile.in.in0000644000175000017500000000146612302300754020726 0ustar vagrantvagrantDOMAIN=ltsp-cluster-info POFILES=$(wildcard *.po) MOFILES=$(patsubst %.po,%.mo,$(POFILES)) LINGUAS=$(basename $(POFILES)) GETTEXTFILES=$(shell find ../../ltsp-cluster-info/ -type f | grep -v Makefile) POTFILE=$(DOMAIN).pot DESTDIR=/ %.mo: %.po msgfmt --statistics -o $@ $< %.po: $(DOMAIN).pot msgmerge -U $*.po $(DOMAIN).pot $(DOMAIN).pot: $(GETTEXTFILES) $(shell xgettext -L Shell -o $(DOMAIN).pot $(GETTEXTFILES)) update-po: -for lang in $(LINGUAS); do\ msgmerge -U $$lang.po $(DOMAIN).pot; \ done install: $(MOFILES) -for lang in $(LINGUAS); do\ install -d $(DESTDIR)/usr/share/locale/$$lang/LC_MESSAGES/; \ install -m 644 $$lang.mo $(DESTDIR)/usr/share/locale/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done all: update-po $(MOFILES) distclean: clean clean: - rm *.mo *~ .PHONY: update-po check ldm-2.2.13/po/ltsp-cluster-info/ltsp-cluster-info.pot0000644000175000017500000000264212302300754022367 0ustar vagrantvagrant# ldm gettext messages for LANGUAGE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the ldm package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: ldm 2.1.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-10 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../../ltsp-cluster-info/ltsp-cluster-info:21 #, sh-format msgid "Information on this thin client." msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:23 #, sh-format msgid "This thin client hasn't been configured yet." msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:43 #, sh-format msgid "MAC address" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:44 #, sh-format msgid "IP address" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:45 #, sh-format msgid "CPU" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:46 #, sh-format msgid "RAM" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:47 #, sh-format msgid "Video" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:48 #, sh-format msgid "Application server" msgstr "" #: ../../ltsp-cluster-info/ltsp-cluster-info:50 #, sh-format msgid "Web interface" msgstr "" ldm-2.2.13/misc/0000755000175000017500000000000012302300754013170 5ustar vagrantvagrantldm-2.2.13/misc/Makefile.am0000644000175000017500000000054012302300754015223 0ustar vagrantvagrant## Process this file with automake to produce Makefile.in bin_PROGRAMS = ldm-dialog ldm_dialog_SOURCES = ldm-dialog.c ldm_dialog_LDADD = $(GTK_LIBS) AM_CPPFLAGS = $(GTK_CFLAGS) \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DGETTEXT_PACKAGE=\""$(GETTEXT_PACKAGE)"\" \ -DLDM_THEME_DIR=\""$(datadir)/ldm/themes/"\" ldm-2.2.13/misc/ldm-dialog.c0000644000175000017500000001662112302300754015353 0ustar vagrantvagrant/* * LDM Dialog * Copyright (2009) Ryan Niebur * Author: Ryan Niebur * 2009, Ryan Niebur * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include #include #define _(text) gettext(text) #define NOTHING 0 #define MESSAGE 1 #define QUESTION 2 #define PROGRESS 3 #define AUTO_CLOSE_OPTION 100 GtkWidget *progress, *yes, *no; double current_number; GIOChannel *g_stdin; int auto_close; void yes_clicked(GtkWidget * widget, GtkWidget * mywin) { gtk_main_quit(); exit(0); } void no_clicked(GtkWidget * widget, GtkWidget * mywin) { gtk_main_quit(); exit(1); } void link_clicked(GtkWidget * widget, GtkLabel * mywin) { printf("url: %s\n",gtk_label_get_current_uri(GTK_LABEL(widget))); gtk_main_quit(); exit(0); } void update_progressbar() { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), current_number/100.0); if(current_number < 100.0) { if(yes) gtk_widget_set_sensitive(yes, FALSE); } else { if(auto_close == TRUE) yes_clicked(NULL, NULL); if(yes) { gtk_widget_set_sensitive(yes, TRUE); gtk_widget_grab_focus(yes); } } } void update_progressbar_from_channel(GIOChannel * channel) { GString *buf; buf = g_string_new(""); g_io_channel_read_line_string(channel, buf, NULL, NULL); current_number = atof(buf->str); update_progressbar(); g_string_free(buf, TRUE); g_io_channel_flush(g_stdin, NULL); } void usage(char * progname) { printf("Usage: %s --message|--question|--progress [mode specific options] \"message\"\n", progname); printf("Progress mode options: --auto-close\n"); exit(1); } #define USAGE() usage(argv[0]) int main(int argc, char ** argv){ GtkWidget *mywin, *vbox, *hbox, *label, *spacer, *big_hbox, *ospacer, *o2spacer; int mode; int retval; char * message; int has_no_button, has_yes_button; mode = NOTHING; has_no_button = TRUE; has_yes_button = TRUE; auto_close = FALSE; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); // Option processing struct option longopts[] = { {"message", 0, 0, MESSAGE}, {"question", 0, 0, QUESTION}, {"progress", 0, 0, PROGRESS}, {"auto-close", 0, 0, AUTO_CLOSE_OPTION}, {0,0,0,0} }; while(1) { retval = getopt_long(argc, argv, "", longopts, NULL); if(retval == -1) break; switch(retval) { case MESSAGE: case QUESTION: case PROGRESS: if(mode != NOTHING) USAGE(); mode = retval; break; case AUTO_CLOSE_OPTION: auto_close = TRUE; break; default: USAGE(); break; } } if(mode == NOTHING) USAGE(); if((argc - optind) != 1) USAGE(); if(auto_close == TRUE && mode != PROGRESS) USAGE(); message = argv[optind]; switch(mode) { case MESSAGE: has_no_button = FALSE; break; case QUESTION: break; case PROGRESS: if(auto_close == TRUE) has_yes_button = FALSE; break; } // Set up the basic stuff gtk_init(&argc, &argv); // Theme char * ldm_theme; gchar * ldm_gtkrc; ldm_theme = getenv("LDM_THEME"); if (ldm_theme) { if(*ldm_theme == '/') ldm_gtkrc = g_strconcat(ldm_theme, "/greeter-gtkrc", NULL); else ldm_gtkrc = g_strconcat(LDM_THEME_DIR, ldm_theme, "/greeter-gtkrc", NULL); } else ldm_gtkrc = g_strconcat(LDM_THEME_DIR, "default", "/greeter-gtkrc", NULL); gtk_rc_add_default_file(ldm_gtkrc); g_free(ldm_gtkrc); // Finish setting up the basic stuff mywin = gtk_window_new(GTK_WINDOW_TOPLEVEL); gdk_window_set_cursor(gdk_get_default_root_window(), gdk_cursor_new(GDK_LEFT_PTR)); gtk_window_set_title(GTK_WINDOW(mywin),""); gtk_window_set_skip_taskbar_hint(GTK_WINDOW(mywin),TRUE); gtk_window_set_resizable (GTK_WINDOW(mywin),0); gtk_window_set_position(GTK_WINDOW(mywin), GTK_WIN_POS_CENTER_ALWAYS); g_signal_connect(GTK_WINDOW(mywin), "destroy", G_CALLBACK(no_clicked), mywin); hbox = gtk_hbox_new(FALSE, 3); spacer = gtk_label_new(""); ospacer = gtk_label_new(""); o2spacer = gtk_label_new(""); gtk_widget_set_size_request(ospacer, 0, 8); gtk_widget_set_size_request(o2spacer, 0, 8); gtk_box_pack_start(GTK_BOX(hbox), spacer, TRUE, FALSE, 0); // Make the yes button if(has_yes_button == TRUE) { yes = gtk_button_new_from_stock("gtk-ok"); g_signal_connect(G_OBJECT(yes), "clicked", G_CALLBACK(yes_clicked), mywin); gtk_box_pack_start(GTK_BOX(hbox), yes, FALSE, FALSE, 0); } // Make the no button if(has_no_button == TRUE) { no = gtk_button_new_from_stock("gtk-cancel"); g_signal_connect(G_OBJECT(no), "clicked", G_CALLBACK(no_clicked), mywin); gtk_box_pack_start(GTK_BOX(hbox), no, FALSE, FALSE, 0); } // Create the label label = gtk_label_new(message); gtk_label_set_markup(GTK_LABEL(label), message); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_window_set_default_size(GTK_WINDOW(mywin), 300, -1); g_signal_connect(GTK_LABEL(label), "activate-link", G_CALLBACK(link_clicked), label); vbox = gtk_vbox_new(FALSE, 0); GtkWidget * blah; blah = gtk_alignment_new(0, 0.5, 0, 0); gtk_container_add(GTK_CONTAINER(blah), label); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(blah), FALSE, FALSE, 10); if(mode == PROGRESS) { // Make the progress bar progress = gtk_progress_bar_new(); gtk_box_pack_start(GTK_BOX(vbox), progress, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), o2spacer, FALSE, FALSE, 0); // Set the starting value current_number = 0.0; update_progressbar(); // Set up the hook that listens for input g_stdin = g_io_channel_unix_new(0); g_io_add_watch(g_stdin, G_IO_IN, (GIOFunc) update_progressbar_from_channel, g_stdin); } // More basic GTK stuff gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), ospacer, FALSE, FALSE, 0); big_hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(big_hbox), vbox, TRUE, TRUE, 10); gtk_container_add(GTK_CONTAINER(mywin), big_hbox); gtk_widget_show_all(mywin); gtk_main(); return 0; } ldm-2.2.13/misc/ldm-dialog.10000644000175000017500000000171312302300754015265 0ustar vagrantvagrant.TH "ldm-dialog" "1" "20090515" "Vagrant Cascadian" "" .SH "NAME" ldm-dialog \(em simple dialog implementation for ldm .SH "SYNOPSIS" .PP \fBldm-dialog\fR \-\-message|\-\-question|\-\-progress [\-\-auto-close] "message" .SH "DESCRIPTION" .PP \fBldm-dialog\fR is a simple program to display information or ask questions of the user. .PP \-\-message display a message to a user. .PP \-\-question ask the user a question. exit 0 if user clicks on ok button, exit 1 otherwise. .PP \-\-progress [\-\-auto-close] display a progress bar. if \-\-auto-close is specified, exit after reaching 100%. .SH "SEE ALSO" .PP ldm(1). .SH "AVAILABILITY" .PP \fBldm-dialog\fR is part of \fBldm\fP package and the latest versions are available in source form from \fIhttps://launchpad.net/products/ltsp\fR. .SH "MAN PAGE AUTHOR" .PP copyright 2009 Vagrant Cascadian , distributed under the terms of the GNU General Public License version 2 or any later version. ldm-2.2.13/man/0000755000175000017500000000000012302300754013010 5ustar vagrantvagrantldm-2.2.13/man/Makefile.am0000644000175000017500000000002612302300754015042 0ustar vagrantvagrantdist_man_MANS = ldm.1 ldm-2.2.13/man/ldm.10000644000175000017500000000324012302300754013645 0ustar vagrantvagrant.\" Title: ldm .\" Author: .\" Generator: DocBook XSL Stylesheets v1.70.1 .\" Date: 08/31/2006 .\" Manual: .\" Source: .\" .\" disable hyphenation .\" .nh .\" disable justification (adjust text to left margin only) .\" .ad l .TH "LDM2" "1" "06/14/2007" "" "" .SH "NAME" ldm \- a display manager for LTSP .SH "SYNOPSIS" \fIldm\fR <:[0\-N]> .SH "DESCRIPTION" ldm(1) starts an X server and presents the user with a login screen, similar to the gdm(1) login prompt. instead of using the XDMCP protocol, ldm(1) uses ssh(1) connect to remote servers, then starts an Xsession either via ssh(1) X forwarding, or direct TCP/IP connection. It was designed for the LTSP project, but could be used in a non\-ltsp environment as well. .SH "OPTIONS" tty where ldm will run <:[0\-N]> X display that ldm uses. .SH "RESOURCES" http://ltsp.org .SH "COPYING" Copyright \(co 2007 Canonical Ltd. Copyright \(co 2007 LTSP.org. .RS 3n .nf This program is Free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .fi .RE .RS 3n .nf This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. .fi .RE .RS 3n .nf You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110\-1301 USA .fi .RE ldm-2.2.13/m4/0000755000175000017500000000000012302300754012555 5ustar vagrantvagrantldm-2.2.13/m4/progtest.m40000644000175000017500000000555012302300754014673 0ustar vagrantvagrant# progtest.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ(2.50) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) ldm-2.2.13/m4/po.m40000644000175000017500000004336712302300754013452 0ustar vagrantvagrant# po.m4 serial 13 (gettext-0.15) dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) ldm-2.2.13/m4/lib-prefix.m40000644000175000017500000001503612302300754015065 0ustar vagrantvagrant# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing dnl the basename of the libdir, either "lib" or "lib64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. The current dnl practice is that on a system supporting 32-bit and 64-bit instruction dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit dnl libraries go under $prefix/lib. We determine the compiler's default dnl mode by looking at the compiler's library search path. If at least dnl of its elements ends in /lib64 or points to a directory whose absolute dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the dnl default, namely "lib". acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ]) ldm-2.2.13/m4/lib-link.m40000644000175000017500000006424412302300754014532 0ustar vagrantvagrant# lib-link.m4 serial 9 (gettext-0.16) dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.50) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) ldm-2.2.13/m4/lib-ld.m40000644000175000017500000000653112302300754014167 0ustar vagrantvagrant# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) ldm-2.2.13/m4/iconv.m40000644000175000017500000000642612302300754014145 0ustar vagrantvagrant# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) ldm-2.2.13/m4/gettext.m40000644000175000017500000003773212302300754014517 0ustar vagrantvagrant# gettext.m4 serial 59 (gettext-0.16.1) dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) ldm-2.2.13/ltsp-cluster-info/0000755000175000017500000000000012302300754015627 5ustar vagrantvagrantldm-2.2.13/ltsp-cluster-info/Makefile.am0000644000175000017500000000011712302300754017662 0ustar vagrantvagrantsharedir = $(bindir) share_DATA = ltsp-cluster-info EXTRA_DIST = $(share_DATA) ldm-2.2.13/ltsp-cluster-info/ltsp-cluster-info0000755000175000017500000000323412302300754021151 0ustar vagrantvagrant#!/bin/sh export TEXTDOMAIN=ltsp-cluster-info if [ -f /usr/bin/gettext.sh ]; then . /usr/bin/gettext.sh else eval_gettext() { if [ $"test" = "\$test" ]; then eval "echo $*" else echo $"$*" fi } fi if [ -z "$LDM_SERVER" ]; then eval $(getltscfg -a -c /var/cache/getltscfg-cluster/lts.conf) || true fi if [ -z "$CLUSTER_CONFIGURED" ]; then title=`eval_gettext "Information on this thin client."` else title=`eval_gettext "This thin client hasn't been configured yet."` fi test -f /etc/ltsp/getltscfg-cluster.conf && . /etc/ltsp/getltscfg-cluster.conf INTERFACE=$(ip route | grep default | cut -d " " -f5) INTERFACE_MAC=$(/sbin/ifconfig | grep ${INTERFACE} | cut -f11 -d" ") INTERFACE_IP=$(/sbin/ifconfig ${INTERFACE} | grep inet | cut -f2 -d":" | cut -f1 -d" ") CPU=$(cat /proc/cpuinfo | grep "^model name" | head -1 | sed "s/.*: //") RAM=$(free -m | grep "^Mem" | awk '{print $2}') VGA=$(lspci | grep "VGA" | sed "s/.* \[//" | sed "s/\]//") APPSERVER=${LDM_SERVER:-$RDP_SERVER} URL="http://$CC_SERVER/ltsp-cluster-control/Admin" BROWSER=$(which firefox) if [ -n "$BROWSER" ]; then URL="$URL" fi output=$(ldm-dialog --message "${title} `eval_gettext "MAC address"`: ${INTERFACE_MAC} `eval_gettext "IP address"`: ${INTERFACE_IP} `eval_gettext "CPU"`: ${CPU} `eval_gettext "RAM"`: ${RAM}MB `eval_gettext "Video"`: ${VGA} `eval_gettext "Application server"`: ${APPSERVER} `eval_gettext "Web interface"`: ${URL} ") url=$(echo $output | grep "^url: " | sed "s/^url: //g") if [ -n "$BROWSER" ] && [ -n "$url" ]; then $BROWSER $url fi ldm-2.2.13/ldminfod/0000755000175000017500000000000012302300754014031 5ustar vagrantvagrantldm-2.2.13/ldminfod/ldminfod0000755000175000017500000002041512302300754015555 0ustar vagrantvagrant#!/usr/bin/python # Copyright (c) 2006 Canonical LTD # # Author: Oliver Grawert # # 2006, Oliver Grawert # Vagrant Cascadian # 2007, Oliver Grawert # Francis Giraldeau # Scott Balneaves # 2008, Vagrant Cascadian # Ryan Niebur # Warren Togami # 2009, Vagrant Cascadian # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, you can find it on the World Wide # Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301, USA. import sys import os import locale from subprocess import * def get_memory_usage(): memusg = {} # Get memory usage information, according to /proc/meminfo f = open('/proc/meminfo', 'r') swap_free = 0 mem_physical_free = 0 mem_buffers = 0 mem_cached = 0 for line in f.readlines(): tokens = line.split() label = tokens[0] size = tokens[1] try: size = int(size) except: # The line is an header, skip it. continue # We approximate kb to bytes size = size * 1024 if label == 'MemTotal:': memusg['ram_total'] = size elif label == 'MemFree:': mem_physical_free = size elif label == 'Buffers:': mem_buffers = size elif label == 'Cached:': mem_cached = size elif label == 'SwapTotal:': memusg['swap_total'] = size elif label == 'SwapFree:': swap_free = size f.close() memusg['ram_used'] = memusg['ram_total'] - mem_physical_free - mem_buffers - mem_cached memusg['swap_used'] = memusg['swap_total'] - swap_free return memusg def get_load_average(): # Gets the current system load, according to /proc/loadavg loadavg = {} load_file = open('/proc/loadavg') load_infos = load_file.read().split() loadavg['one_min_avg'] = load_infos[0] loadavg['five_min_avg'] = load_infos[1] loadavg['fifteen_min_avg'] = load_infos[2] # scheduling_info = load_infos[3] # not used # last_pid = load_infos[4] load_file.close() return loadavg def compute_server_rating(): """Compute the server rating from it's state The rating is computed by using load average and the memory used. The returned value is betweed 0 and 100, higher is better """ max_acceptable_load_avg = 8.0 mem = get_memory_usage() load = get_load_average() rating = 100 - int( \ 50 * ( float(load['fifteen_min_avg']) / max_acceptable_load_avg ) + \ 50 * ( float(mem['ram_used']) / float(mem['ram_total']) ) \ ) if rating < 0: rating = 0 return rating def get_sessions (dir): """Get a list of available sessions. Returns a list of sessions gathered from .desktop files """ sessions = [] if os.path.isdir(dir): for f in os.listdir(dir): if f.endswith('.desktop') and os.path.isfile(os.path.join(dir, f)): x=dict() for line in file(os.path.join(dir, f), 'r').readlines(): line = line.rstrip() if line.count('Exec=') > 0 or line.count('Hidden=') > 0: variable, value = line.split('=', 1) x[variable]=value if not x.has_key('Exec'): continue if x.has_key('Hidden') and x['Hidden'].lower() == "true": continue if x.has_key('TryExec') and call(['which',x['TryExec']], stdout=PIPE, stderr=PIPE) != 0: continue sessions.append(x['Exec']) return sessions def get_sessions_with_names (dir): """Get a list of available sessions with their name. Returns a list of sessions gathered from .desktop files """ sessions = [] if os.path.isdir(dir): for f in os.listdir(dir): if f.endswith('.desktop') and os.path.isfile(os.path.join(dir, f)): x=dict() for line in file(os.path.join(dir, f), 'r').readlines(): line = line.rstrip() if line.count('Exec=') > 0 or line.count("Name=") > 0 or line.count('Hidden=') > 0: variable, value = line.split('=', 1) x[variable]=value if not x.has_key('Exec'): continue if x.has_key('Hidden') and x['Hidden'].lower() == "true": continue if x.has_key('TryExec') and call(['which',x['TryExec']], stdout=PIPE, stderr=PIPE) != 0: continue if x.has_key('Name'): thing = x['Name'] else: thing = f.replace(".desktop", "") sessions.append(thing + ":" + x['Exec']) return sessions def get_xsession(): """Return the full path to the default Xsession script""" xsessionlist=("/etc/X11/xinit/Xsession", "/etc/X11/Xsession", "/usr/lib/X11/xdm/Xsession", "/etc/X11/xdm/Xsession") for xsession in xsessionlist: # check if file exists and is executable if os.access(xsession, 5): return xsession return None if __name__ == "__main__": # Get the server's default locale # We want it to appear first in the list try: lines = Popen(['locale'], stdout=PIPE).communicate()[0] except OSError: print "ERROR: failed to run locale" sys.exit(0) for line in lines.split(): if line.startswith('LANG='): defaultlocale = line.split('=')[1].strip('"') defaultlocale = defaultlocale.replace('UTF8', 'UTF-8') print "language:" + defaultlocale # Get list of valid locales from locale -a try: lines = Popen(['locale', '-a'], stdout=PIPE).communicate()[0] except OSError: print "ERROR" sys.exit(0) langs = lines.split(None) locale_whitelist_file='/etc/ldm/ldminfod-locale-whitelist' if os.access(locale_whitelist_file, 4): # limit the list of valid locales whitelisted_locales=file(locale_whitelist_file, 'r').readlines() new_langs=list() for l in whitelisted_locales: l=l.strip().replace('.UTF-8', '.utf8') if langs.count(l) > 0: new_langs.append(l) if new_langs: langs=new_langs langs.sort() for lang in langs: lang = lang.rstrip() if lang.endswith('.utf8'): # locale returns .utf8 when we want .UTF-8 lang = lang.replace('.utf8','.UTF-8') else: # if locale did not end with .utf8, do not add to list continue if lang != 'POSIX' and lang != 'C' and lang != defaultlocale: print "language:" + lang try: lines = get_sessions('/usr/share/xsessions/') except OSError: print "ERROR" sys.exit(0) for line in lines: print "session:" + line try: lines = get_sessions_with_names('/usr/share/xsessions/') except OSError: print "ERROR" sys.exit(0) for line in lines: print "session-with-name:" + line try: xsession = get_xsession() except: print "ERROR" sys.exit(0) if xsession: print "xsession:" + xsession # Get the rating of this server rate = 0 try: rate = compute_server_rating() except: print "ERROR" sys.exit(0) print "rating:" + str(compute_server_rating()) ldm-2.2.13/ldminfod/xinetd.d/0000755000175000017500000000000012302300754015546 5ustar vagrantvagrantldm-2.2.13/ldminfod/xinetd.d/ldminfod0000755000175000017500000000041212302300754017265 0ustar vagrantvagrant# default: off # description: LDM Info Daemon service ldminfod { disable = yes type = UNLISTED socket_type = stream wait = no user = nobody server = /usr/sbin/ldminfod port = 9571 } ldm-2.2.13/ldminfod/doc/0000755000175000017500000000000012302300754014576 5ustar vagrantvagrantldm-2.2.13/ldminfod/doc/ldminfod.80000644000175000017500000000163412302300754016467 0ustar vagrantvagrant.TH "ldminfod" "8" "20090515" "Vagrant Cascadian" "" .SH "NAME" ldminfod \(em output login sessions and available locales .SH "SYNOPSIS" .PP \fBldminfod\fR .SH "DESCRIPTION" .PP \fBldminfod\fR will output the login sessions and locales available. it is usually run from an inetd(8) instance. it is used by ldm(1) to remotely determine available login and locale settings. .SH "EXAMPLE" .PP add the following lines to /etc/inetd.conf(5): .PP 9571 stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/ldminfod .SH "SEE ALSO" .PP ldm(1), inetd(8), inetd.conf(5). .SH "AVAILABILITY" .PP \fBldminfod\fR is part of \fBldm\fP package and the latest versions are available in source form from \fIhttps://launchpad.net/products/ltsp\fR. .SH "MAN PAGE AUTHOR" .PP copyright 2006-2009 Vagrant Cascadian , distributed under the terms of the GNU General Public License version 2 or any later version. ldm-2.2.13/gtkgreet/0000755000175000017500000000000012302300754014051 5ustar vagrantvagrantldm-2.2.13/gtkgreet/prefwin.c0000644000175000017500000001033312302300754015667 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (C) 2010 Simon Poirier, * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include "prefs.h" #include "../src/ldminfo.h" #include "greeter.h" static GtkWidget* pref_combo = NULL; static gint choice_total = 0; extern GIOChannel *g_stdout; typedef struct { GtkWidget* prefwin; const gchar* prefname; } PrefData; /* * Local functions */ static void prefwin_accept(GtkWidget * widget, PrefData* data) { GreeterPref* pref = greeter_pref_get_pref(data->prefname); gchar* notif; pref->value.int_val = gtk_combo_box_get_active(GTK_COMBO_BOX(pref_combo)); gtk_widget_destroy(data->prefwin); notif = g_strconcat("@", data->prefname, "@\n", NULL); g_io_channel_write_chars(g_stdout, notif, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(notif); g_free(data); } /* * External functions */ void populate_pref_combo_box(const char *choice, GtkWidget * pref_combo_box) { gtk_combo_box_append_text(GTK_COMBO_BOX(pref_combo_box), g_strdup(choice)); ++choice_total; } void prefwin(GtkWidget * widget, gpointer pref_name) { GreeterPref* pref; GtkWidget *prefwin, *label, *vbox, *buttonbox; GtkWidget *cancel, *accept, *frame; pref_combo = gtk_combo_box_new_text(); pref = greeter_pref_get_pref(pref_name); /* * Populate lang with default host hash */ gtk_combo_box_append_text(GTK_COMBO_BOX(pref_combo), g_strdup(_("Default"))); g_list_foreach(pref->choices, (GFunc) populate_pref_combo_box, pref_combo); gtk_combo_box_set_active(GTK_COMBO_BOX(pref_combo), pref->value.int_val); /* * Build window */ prefwin = gtk_window_new(GTK_WINDOW_POPUP); gtk_window_set_position((GtkWindow *) prefwin, GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_modal((GtkWindow *) prefwin, TRUE); vbox = gtk_vbox_new(FALSE, 0); buttonbox = gtk_hbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); cancel = gtk_button_new_from_stock("gtk-cancel"); g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_popup), prefwin); accept = gtk_button_new_from_stock("gtk-ok"); PrefData* data = g_malloc0(sizeof(PrefData)); data->prefwin = prefwin; data->prefname = pref_name; g_signal_connect(G_OBJECT(accept), "clicked", G_CALLBACK(prefwin_accept), data); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) accept, FALSE, FALSE, 0); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) cancel, FALSE, FALSE, 0); label = gtk_label_new(""); gtk_label_set_markup((GtkLabel *) label, _(pref->title)); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) label, FALSE, FALSE, 0); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) pref_combo, FALSE, FALSE, 5); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) buttonbox, TRUE, TRUE, 5); frame = gtk_frame_new(""); gtk_frame_set_shadow_type((GtkFrame *) frame, GTK_SHADOW_OUT); gtk_frame_set_label_align((GtkFrame *) frame, 1.0, 0.0); gtk_container_add(GTK_CONTAINER(frame), vbox); gtk_container_add(GTK_CONTAINER(prefwin), frame); gtk_widget_show_all(prefwin); return; } ldm-2.2.13/gtkgreet/prefs.c0000644000175000017500000000534612302300754015344 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (C) 2010 Simon Poirier, * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "prefs.h" #include #include #include #include static GTree* greeter_prefs = NULL; static int g_strcmp(gconstpointer a, gconstpointer b) { return strcmp((char*)a, (char*)b); } void greeter_pref_init() { if (greeter_prefs) { g_tree_destroy(greeter_prefs); greeter_prefs = NULL; } greeter_prefs = g_tree_new(g_strcmp); } GreeterPref* greeter_pref_new(const gchar* name) { GreeterPref* pref = g_malloc0(sizeof(GreeterPref)); g_tree_replace(greeter_prefs, g_strdup(name), pref); pref->choices = g_list_alloc(); return pref; } void greeter_pref_destroy(const gchar* name) { gpointer key; gpointer valptr; GreeterPref* value; g_tree_lookup_extended(greeter_prefs, name, &key, &valptr); value = (GreeterPref*)valptr; if (value->choices) { g_list_foreach(value->choices, (GFunc)g_free, NULL); g_list_free(value->choices); } if (value->title) { g_free(value->title); } if (value->menu) { g_free(value->menu); } if (value->icon) { g_free(value->icon); } g_free(value); g_free(value); g_free(key); } void greeter_pref_prompt(const gchar* name) { } GreeterPref* greeter_pref_get_pref(const gchar* name) { return (GreeterPref*)g_tree_lookup(greeter_prefs, name); } PrefValue greeter_pref_get_value(const gchar* name) { GreeterPref* value = (GreeterPref*) g_tree_lookup(greeter_prefs, name); if (!value) { return (PrefValue)"None"; } if (value->value.int_val == 0) { return (PrefValue)"None"; } return (PrefValue)(char*)g_list_nth_data(value->choices, value->value.int_val); } void greeter_pref_foreach(GTraverseFunc func, gpointer user_data) { g_tree_foreach(greeter_prefs, func, user_data); } ldm-2.2.13/gtkgreet/greeter.c0000644000175000017500000007512612302300754015665 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (2007) Oliver Grawert , Canonical Ltd. * Author: Oliver Grawert * 2007, Oliver Grawert * Scott Balneaves * 2008, Ryan Niebur * Warren Togami * Stéphane Graber * Scott Balneaves * Vagrant Cascadian * Oliver Grawert * John Ellson * Gideon Romm * Jigish Gohil * Wolfgang Schweer * Toshio Kuratomi * 2012, Alkis Georgopoulos * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; version 2. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../src/logging.h" #include "greeter.h" #include "prefs.h" #include "prefwin.h" #define _(text) gettext(text) #define TOP_BAR_HEIGHT 30 #define BOTTOM_BAR_HEIGHT 30 /* * Make sure that StatusMessages can accommodate many lines of text - auto scrollbars? */ GtkWidget *UserPrompt; /* prompt area before the entry */ GtkWidget *StatusMessages; /* Status msg area below entry */ GtkWidget *entry; /* entry box */ GtkWidget *choiceCombo; GtkListStore *choiceList; GtkWidget *GuestButton; GtkWidget *timeoutbox; gboolean timeout_enabled; GList *host_list = NULL; GIOChannel *g_stdout; /* stdout io channel */ gchar * ldm_theme_dir; int allowguest; gint login_timeout; gint timeout_left; gchar * ldm_theme_file(char * file) { gchar * filename; gchar * filename_default; filename = g_strconcat("/", ldm_theme_dir, "/", file, NULL); filename_default = g_strconcat("/", LDM_THEME_DIR, "ltsp", "/", file, NULL); if (access(g_strconcat(filename, ".png", NULL), F_OK ) != -1) { filename = g_strconcat(filename, ".png", NULL); } else if (access(g_strconcat(filename, ".jpg", NULL), F_OK ) != -1) { filename = g_strconcat(filename, ".jpg", NULL); } else if (access(g_strconcat(filename_default, ".png", NULL), F_OK ) != -1) { filename = g_strconcat(filename_default, ".png", NULL); } else if (access(g_strconcat(filename_default, ".jpg", NULL), F_OK ) != -1) { filename = g_strconcat(filename_default, ".jpg", NULL); } return filename; } GdkPixmap* root_bg = 0; void load_root_background(const gchar* filename, gboolean scale, gboolean reload) { if (root_bg != 0){ if (reload) { g_object_unref(G_OBJECT (root_bg)); root_bg = 0; } else { return; } } GtkWidget* image = gtk_image_new_from_file(filename); g_object_ref(G_OBJECT (image)); GdkPixbuf* pixbuf = gtk_image_get_pixbuf(GTK_IMAGE (image)); double img_width = (double)gdk_pixbuf_get_width(pixbuf); double img_height = (double)gdk_pixbuf_get_height(pixbuf); GdkWindow* root = gdk_get_default_root_window(); gint width, height; gdk_drawable_get_size(GDK_DRAWABLE (root), &width, &height); // create pixmap gdk_drawable_get_size(GDK_DRAWABLE (root), &width, &height); root_bg = gdk_pixmap_new(GDK_DRAWABLE (root), width, height, -1); g_object_ref(G_OBJECT (root_bg)); // paint pixmap onto bg cairo_t* ctx = gdk_cairo_create(GDK_DRAWABLE (root_bg)); if (scale) { cairo_scale(ctx, width/img_width, height/img_height); } gdk_cairo_set_source_pixbuf(ctx, pixbuf, 0, 0); cairo_paint(ctx); cairo_destroy(ctx); //g_object_unref(G_OBJECT (bg)); g_object_unref(G_OBJECT (image)); } void set_root_background() { GdkWindow* root = gdk_get_default_root_window(); // bg needs to be set and painted, so it refreshes now and in the future gdk_window_set_back_pixmap(GDK_WINDOW (root), GDK_PIXMAP (root_bg), 0); gdk_draw_drawable(GDK_DRAWABLE (root), gdk_gc_new(GDK_DRAWABLE (root)), GDK_DRAWABLE (root_bg), 0, 0, 0, 0, -1, -1); } void draw_background(GtkWidget* widget, gpointer data) { GdkWindow* window; gint width, height, x, y; window = gtk_widget_get_window(widget); if (window == NULL) { return; } gdk_drawable_get_size(GDK_DRAWABLE (window), &width, &height); gdk_window_get_origin(GDK_WINDOW (window), &x, &y); GdkPixmap* new_bg = gdk_pixmap_new(root_bg, width, height, -1); g_object_ref(G_OBJECT (new_bg)); gdk_draw_drawable(GDK_DRAWABLE (new_bg), gdk_gc_new(GDK_DRAWABLE (new_bg)), GDK_DRAWABLE (root_bg), x, y, 0, 0, width, height); gdk_window_set_back_pixmap(GDK_WINDOW (window), new_bg, 0); gtk_widget_queue_draw(GTK_WIDGET (widget)); } static void destroy(GtkWidget * widget, gpointer data) { gtk_main_quit(); } static void spawn_command(GtkWidget * widget, const gchar *command) { GError **error = NULL; g_spawn_command_line_async(command, error); } gboolean update_time(GtkWidget * label) { gchar *timestring = 0; time_t timet; struct tm *timePtr; timet = time(NULL); timePtr = localtime(&timet); // use 12 hour clock format if LDM_12HOURCLOCK is set to true if (ldm_getenv_bool("LDM_12HOURCLOCK")) { timestring = g_strdup_printf("%.2d:%.2d", (timePtr->tm_hour % 12) ? (timePtr->tm_hour % 12) : 12, timePtr->tm_min); } else { timestring = g_strdup_printf("%.2d:%.2d", timePtr->tm_hour, timePtr->tm_min); } gtk_label_set_markup((GtkLabel *) label, timestring); g_free(timestring); return TRUE; } gboolean update_timeout(GtkWidget * label) { gchar *string; int entry_length; entry_length = strlen(gtk_entry_get_text((GtkEntry *)entry)); if(entry_length == 0 && timeout_enabled) { if (timeout_left > 1){ timeout_left--; } else if (timeout_left == 1) { g_io_channel_write_chars(g_stdout, "@GUEST@\n", -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); timeout_left = 0; timeout_enabled = FALSE; } else if (timeout_left == 0){ timeout_left = login_timeout; } string = g_strdup_printf(_("Automatic login in %d seconds"), timeout_left); gtk_label_set_markup((GtkLabel *) label, string); g_free(string); gtk_widget_show(timeoutbox); } else { timeout_left = 0; gtk_widget_hide(timeoutbox); } return TRUE; } void destroy_popup(GtkWidget * widget, GtkWidget * popup) { gtk_widget_destroy(popup); return; } gboolean xproperty_exists(gchar * property) { GdkAtom *actual_property_type = NULL; gint *actual_format = 0; gint *actual_length = 0; guchar **data = NULL; gboolean result; result=gdk_property_get( gdk_get_default_root_window(), gdk_atom_intern(property,TRUE), GDK_NONE, 0, 512, FALSE, actual_property_type, actual_format, actual_length, data); return result; } gboolean handle_command(GIOChannel * io_input) { GString *buf; buf = g_string_new(""); g_io_channel_read_line_string(io_input, buf, NULL, NULL); g_strstrip(buf->str); log_entry("gtkgreet",7,"Got command: %s",buf->str); if (!g_ascii_strncasecmp(buf->str, "msg", 3)) { gchar **split_buf; split_buf = g_strsplit(buf->str, " ", 2); gtk_label_set_markup((GtkLabel *) StatusMessages, split_buf[1]); g_strfreev(split_buf); } else if (!g_ascii_strncasecmp(buf->str, "quit", 4)) { if (!xproperty_exists("X11VNC_TICKER")) { GdkCursor *cursor; cursor = gdk_cursor_new(GDK_WATCH); gdk_window_set_cursor(gdk_get_default_root_window(), cursor); } gtk_main_quit(); } else if (!g_ascii_strncasecmp(buf->str, "prompt", 6)) { gchar **split_buf; split_buf = g_strsplit(buf->str, " ", 2); gtk_label_set_markup((GtkLabel *) UserPrompt, split_buf[1]); g_strfreev(split_buf); } else if (!g_ascii_strncasecmp(buf->str, "userid", 6)) { timeout_enabled = login_timeout > 0; if(timeout_enabled) { gtk_widget_show(timeoutbox); } gtk_widget_show(entry); gtk_widget_hide(choiceCombo); gtk_entry_set_text(GTK_ENTRY(entry), ""); gtk_entry_set_visibility(GTK_ENTRY(entry), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(entry), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(GuestButton), TRUE); } else if (!g_ascii_strncasecmp(buf->str, "passwd", 6)) { timeout_enabled = FALSE; timeout_left = 0; gtk_widget_hide(timeoutbox); gtk_entry_set_text(GTK_ENTRY(entry), ""); gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(entry), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(GuestButton), FALSE); } else if (!g_ascii_strncasecmp(buf->str, "hostname", 8)) { gchar *hoststr; update_selected_host(); hoststr = g_strdup_printf("%s\n", host); g_io_channel_write_chars(g_stdout, hoststr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(hoststr); gtk_widget_set_sensitive(GTK_WIDGET(entry), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(GuestButton), FALSE); } else if (!g_ascii_strncasecmp(buf->str, "language", 8)) { gchar *langstr; update_selected_lang(); langstr = g_strdup_printf("%s\n", language); g_io_channel_write_chars(g_stdout, langstr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(langstr); } else if (!g_ascii_strncasecmp(buf->str, "session", 7)) { gchar *sessstr; update_selected_sess(); sessstr = g_strdup_printf("%s\n", session); g_io_channel_write_chars(g_stdout, sessstr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(sessstr); } else if (!g_ascii_strncasecmp(buf->str, "choice", 6)) { int i; GtkTreeIter iter; // strip newline char buf->len--; buf->str[buf->len] = '\0'; // choice;choice 1|choice 2|choice 3 gchar** choices = g_strsplit(buf->str+7, "|", -1); // drop combo box to drop model gtk_list_store_clear(choiceList); for (i=0; istr, "pref choice", 11)) { int i; // strip newline char buf->len--; buf->str[buf->len] = '\0'; // pref choice;key;title;menu;icon;choice 1|choice 2|choice 3 gchar** args = g_strsplit(buf->str, ";", 6); gchar** choices = g_strsplit(args[5], "|", -1); GreeterPref *pref = greeter_pref_new(g_strdup(args[1])); pref->type = PREF_CHOICE; pref->title = g_strdup(args[2]); pref->menu = g_strdup(args[3]); pref->icon = g_strdup(args[4]); for (i=0; ichoices = g_list_append(pref->choices, g_strdup(choices[i])); } g_strfreev(choices); g_strfreev(args); } else if (!g_ascii_strncasecmp(buf->str, "value", 5)) { gchar *name = buf->str + 6; gchar *valstr; // strip newline char buf->len--; buf->str[buf->len] = '\0'; valstr = g_strdup_printf("%s\n", greeter_pref_get_value(name).str_val); g_io_channel_write_chars(g_stdout, valstr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(valstr); } else if (!g_ascii_strncasecmp(buf->str, "allowguest", 10)) { gchar* valstr = buf->str + 11; allowguest = g_ascii_strncasecmp(valstr, "false", 2); if (!allowguest) gtk_widget_hide(GTK_WIDGET(GuestButton)); else gtk_widget_show(GTK_WIDGET(GuestButton)); } g_string_free(buf, TRUE); return TRUE; } char * get_sysname(void) { struct utsname name; char *node; if (uname(&name) == 0) { node = strdup(name.nodename); return node; } return NULL; } static void handle_guestbutton(GtkButton * entry, GdkWindow * window) { g_io_channel_write_chars(g_stdout, "@GUEST@\n", -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); } static void handle_choice(GtkComboBox * combo, GdkWindow * window) { gchar* selection; gchar* entrystr; selection = gtk_combo_box_get_active_text(GTK_COMBO_BOX(choiceCombo)); entrystr = g_strdup_printf("%s\n", selection); g_io_channel_write_chars(g_stdout, entrystr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(entrystr); } static void handle_entry(GtkEntry * entry, GdkWindow * window) { gchar *entrystr; entrystr = g_strdup_printf("%s\n", gtk_entry_get_text(entry)); g_io_channel_write_chars(g_stdout, entrystr, -1, NULL, NULL); g_io_channel_flush(g_stdout, NULL); g_free(entrystr); if(gtk_entry_get_visibility(GTK_ENTRY(entry))) gtk_entry_set_text(entry, ""); } static gboolean menu_append_pref(gpointer akey, gpointer avalue, gpointer adata) { char* key = (char*)akey; GreeterPref* pref = (GreeterPref*)avalue; GtkWidget* menu = (GtkWidget*)adata; GtkWidget *pref_item, *prefico; pref_item = gtk_image_menu_item_new_with_mnemonic(_(pref->menu)); prefico = gtk_image_new_from_file(ldm_theme_file(pref->icon)); gtk_image_menu_item_set_image((GtkImageMenuItem *) pref_item, prefico); g_signal_connect(G_OBJECT(pref_item), "activate", G_CALLBACK(prefwin), key); gtk_menu_shell_append(GTK_MENU_SHELL(menu), pref_item); return FALSE; } static void popup_menu(GtkWidget * widget, GtkWindow * window) { GtkWidget *menu, *lang_item, *sess_item, *host_item, *custom_item, *quit_item, *reboot_item; GtkWidget *sep, *langico, *sessico, *hostico, *customico, *rebootico, *haltico; gchar custom_env_var[20], *custom_mnemonic, *custom_command; int i; menu = gtk_menu_new(); if (getenv("LDM_FORCE_LANGUAGE") == NULL) { lang_item = gtk_image_menu_item_new_with_mnemonic(_("Select _Language ...")); langico = gtk_image_new_from_file(ldm_theme_file("language")); gtk_image_menu_item_set_image((GtkImageMenuItem *) lang_item, langico); g_signal_connect_swapped(G_OBJECT(lang_item), "activate", G_CALLBACK(langwin), window); gtk_menu_shell_append(GTK_MENU_SHELL(menu), lang_item); } if (getenv("LDM_FORCE_SESSION") == NULL) { sess_item = gtk_image_menu_item_new_with_mnemonic(_("Select _Session ...")); sessico = gtk_image_new_from_file(ldm_theme_file("session")); gtk_image_menu_item_set_image((GtkImageMenuItem *) sess_item, sessico); g_signal_connect_swapped(G_OBJECT(sess_item), "activate", G_CALLBACK(sesswin), window); gtk_menu_shell_append(GTK_MENU_SHELL(menu), sess_item); } if (ldminfo_size() > 1) { host_item = gtk_image_menu_item_new_with_mnemonic(_("Select _Host ...")); hostico = gtk_image_new_from_file(ldm_theme_file("host")); gtk_image_menu_item_set_image((GtkImageMenuItem *) host_item, hostico); g_signal_connect_swapped(G_OBJECT(host_item), "activate", G_CALLBACK(hostwin), window); gtk_menu_shell_append(GTK_MENU_SHELL(menu), host_item); } for (i=0; i<=9; i++) { g_sprintf(custom_env_var, "LDM_MENU_ITEM_%d", i); custom_mnemonic=getenv(custom_env_var); if (custom_mnemonic == NULL) continue; custom_item = gtk_image_menu_item_new_with_mnemonic(custom_mnemonic); g_sprintf(custom_env_var, "LDM_MENU_COMMAND_%d", i); custom_command=getenv(custom_env_var); if (custom_command == NULL) { gtk_widget_destroy(custom_item); continue; } customico = gtk_image_new_from_file(ldm_theme_file("backend")); gtk_image_menu_item_set_image((GtkImageMenuItem *) custom_item, customico); g_signal_connect(G_OBJECT(custom_item), "activate", G_CALLBACK(spawn_command), g_strdup(custom_command)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), custom_item); } greeter_pref_foreach(menu_append_pref, menu); sep = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(menu), sep); reboot_item = gtk_image_menu_item_new_with_mnemonic(_("_Reboot")); rebootico = gtk_image_new_from_file(ldm_theme_file("reboot")); gtk_image_menu_item_set_image((GtkImageMenuItem *) reboot_item, rebootico); gtk_menu_shell_append(GTK_MENU_SHELL(menu), reboot_item); g_signal_connect(G_OBJECT(reboot_item), "activate", G_CALLBACK(spawn_command), "/sbin/reboot"); quit_item = gtk_image_menu_item_new_with_mnemonic(_("Shut_down")); haltico = gtk_image_new_from_file(ldm_theme_file("shutdown")); gtk_image_menu_item_set_image((GtkImageMenuItem *) quit_item, haltico); g_signal_connect(G_OBJECT(quit_item), "activate", G_CALLBACK(spawn_command), "/sbin/poweroff"); gtk_menu_shell_append(GTK_MENU_SHELL(menu), quit_item); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time()); gtk_widget_show_all(menu); gtk_menu_reposition(GTK_MENU(menu)); return; } /* * scopy() * * Copy a string. Used to move data in and out of our ldminfo structure. * Note: if the source string is null, or points to a valid string of '\0', * both result in a dest string length of 0. */ char * scopy(char *dest, char *source) { if (!source) *dest = '\0'; else { strncpy(dest, source, MAXSTRSZ - 1); *(dest + MAXSTRSZ - 1) = '\0'; /* ensure null termination */ } return dest; } /* * Remap GDK_Tab to behaves as enter * Inspired by gdm/gui/gdmlogin.c */ static gboolean key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer window) { if ((event->keyval == GDK_Tab || event->keyval == GDK_KP_Tab) && (event->state & (GDK_CONTROL_MASK|GDK_MOD1_MASK|GDK_SHIFT_MASK)) == 0) { handle_entry(GTK_ENTRY(entry), window); return TRUE; } return FALSE; } int main(int argc, char *argv[]) { gint lw; GtkWidget *loginWindow, *prefBar; GdkCursor *normcursor, *busycursor; GtkWidget *syslabel, *timelabel; GtkWidget *logo, *EntryBox; GtkWidget *timeoutspacer1, *timeoutspacer2, *timeoutlabel; GtkWidget *entryspacer1, *entryspacer2; GtkWidget *optionico; GtkWidget *optionbutton; GdkWindow *root; GdkPixbuf *pix; gint width, height; GIOChannel *g_stdin; char * ldm_theme; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif /* Init log settings */ log_init(ldm_getenv_bool("LDM_SYSLOG"),ldm_getenv_int("LDM_LOGLEVEL",-1)); gtk_init(&argc, &argv); ldm_theme = getenv("LDM_THEME"); if (ldm_theme) { if(*ldm_theme == '/') ldm_theme_dir = g_strdup(ldm_theme); else ldm_theme_dir = g_strconcat(LDM_THEME_DIR, ldm_theme, NULL); } else { ldm_theme_dir = g_strconcat(LDM_THEME_DIR, "default", NULL); } allowguest = ldm_getenv_bool("LDM_GUESTLOGIN"); gtk_rc_add_default_file(ldm_theme_file("/greeter-gtkrc")); /* Initialize information about hosts */ ldminfo_init(&host_list, getenv("LDM_SERVER")); normcursor = gdk_cursor_new(GDK_LEFT_PTR); busycursor = gdk_cursor_new(GDK_WATCH); root = gdk_get_default_root_window(); gdk_window_set_cursor(root, busycursor); greeter_pref_init(); /* Set the background */ load_root_background(ldm_theme_file("bg"), TRUE, FALSE); set_root_background(); gdk_drawable_get_size(root, &width, &height); /* Setup the time and system labels */ { const char *hoststring = 0; syslabel = gtk_label_new(""); timelabel = gtk_label_new(""); #ifdef K12LINUX hoststring = g_strdup_printf("%s (%s)", get_sysname(), getenv("LDMINFO_IPADDR")); #else hoststring = g_strdup_printf("%s (%s) //", get_sysname(), getenv("LDMINFO_IPADDR")); #endif gtk_label_set_markup((GtkLabel *) syslabel, hoststring); update_time(timelabel); g_timeout_add(30000, (GSourceFunc) update_time, timelabel); } /**** Create the login window ****/ loginWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* Create the options button */ { optionbutton = gtk_button_new_with_mnemonic(_("_Preferences")); optionico = gtk_image_new_from_file(ldm_theme_file("preferences")); gtk_button_set_image((GtkButton *) optionbutton, optionico); gtk_button_set_relief((GtkButton *) optionbutton, GTK_RELIEF_NONE); gtk_button_set_focus_on_click((GtkButton *) optionbutton, FALSE); g_signal_connect(G_OBJECT(optionbutton), "clicked", G_CALLBACK(popup_menu), loginWindow); } /**** Create the login window ****/ gtk_window_set_position(GTK_WINDOW(loginWindow), GTK_WIN_POS_CENTER_ALWAYS); { GtkWidget *guestbox, *guestspacer1, *guestspacer2, *vbox, *vbox2, *hbox; GtkCellRenderer *renderer; g_signal_connect(G_OBJECT(loginWindow), "destroy", G_CALLBACK(destroy), NULL); gtk_widget_set_app_paintable(loginWindow, TRUE); g_signal_connect(loginWindow, "configure-event", G_CALLBACK(draw_background), NULL); //gtk_widget_set_size_request(loginWindow, width/2, height/2); //gtk_widget_realize(loginWindow); gtk_window_set_decorated(GTK_WINDOW (loginWindow), FALSE); logo = gtk_image_new_from_file(ldm_theme_file("logo")); #ifdef K12LINUX if(access(ldm_theme_file("bottom_right"), R_OK) == 0) { bottom_right = gtk_image_new_from_file(ldm_theme_file("bottom_right")); has_bottom_right_image=TRUE; } else has_bottom_right_image=FALSE; #endif pix = gtk_image_get_pixbuf((GtkImage *) logo); lw = gdk_pixbuf_get_width(pix); vbox = gtk_vbox_new(FALSE, 5); vbox2 = gtk_vbox_new(FALSE, 0); EntryBox = gtk_hbox_new(FALSE, 5); hbox = gtk_hbox_new(FALSE, 0); UserPrompt = gtk_label_new(""); if (lw < 180) lw = 180; gtk_misc_set_alignment((GtkMisc *) UserPrompt, 1, 0.5); gtk_widget_set_size_request(UserPrompt, (lw / 2), 0); StatusMessages = gtk_label_new(""); entry = gtk_entry_new(); gtk_entry_set_width_chars(GTK_ENTRY(entry), 12); g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(handle_entry), root); // Remap tab on entry to behave as enter g_signal_connect(G_OBJECT(entry), "key_press_event", G_CALLBACK(key_press_event), loginWindow); choiceList = gtk_list_store_new(1, G_TYPE_STRING); choiceCombo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(choiceList)); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(choiceCombo), GTK_CELL_RENDERER(renderer), TRUE); gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(choiceCombo), GTK_CELL_RENDERER(renderer), "text", 0); g_signal_connect(G_OBJECT(choiceCombo), "changed", G_CALLBACK(handle_choice), root); if (getenv("LDM_LOGIN_TIMEOUT") != NULL ) { login_timeout = atoi(getenv("LDM_LOGIN_TIMEOUT")); } else { login_timeout = 0; } timeout_enabled = login_timeout > 0; timeout_left = 0; timeoutspacer1 = gtk_label_new(""); timeoutspacer2 = gtk_label_new(""); timeoutlabel = gtk_label_new(""); timeoutbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), timeoutbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(timeoutbox), timeoutspacer1, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(timeoutbox), timeoutlabel, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(timeoutbox), timeoutspacer2, TRUE, FALSE, 0); g_timeout_add(1000, (GSourceFunc) update_timeout, timeoutlabel); guestspacer1 = gtk_label_new(""); guestspacer2 = gtk_label_new(""); GuestButton = gtk_button_new_with_label (_("Login as Guest")); g_signal_connect(G_OBJECT(GuestButton), "clicked", G_CALLBACK(handle_guestbutton), root); gtk_button_set_focus_on_click((GtkButton *)GuestButton, FALSE); guestbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(guestbox), guestspacer1, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(guestbox), GuestButton, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(guestbox), guestspacer2, TRUE, FALSE, 0); entryspacer1 = gtk_label_new(""); entryspacer2 = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(EntryBox), entryspacer1, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(EntryBox), UserPrompt, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(EntryBox), entry, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(EntryBox), choiceCombo, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(EntryBox), entryspacer2, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), logo, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), EntryBox, TRUE, FALSE, 0); if(allowguest) gtk_box_pack_start(GTK_BOX(vbox), guestbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), timeoutbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), StatusMessages, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(loginWindow), vbox2); } /**** Create the preference bar ****/ prefBar = gtk_window_new(GTK_WINDOW_TOPLEVEL); { GtkWidget *BottomBarBox; gtk_widget_set_app_paintable(GTK_WIDGET (prefBar), TRUE); g_signal_connect(prefBar, "configure-event", G_CALLBACK(draw_background), NULL); gtk_window_set_decorated(GTK_WINDOW (prefBar), FALSE); gtk_widget_set_size_request(prefBar, width, BOTTOM_BAR_HEIGHT); BottomBarBox = gtk_hbox_new(FALSE, 0); #ifndef K12LINUX gtk_box_pack_start(GTK_BOX(BottomBarBox), GTK_WIDGET(optionbutton), FALSE, FALSE, 5); gtk_box_pack_end(GTK_BOX(BottomBarBox), GTK_WIDGET(timelabel), FALSE, FALSE, 5); gtk_box_pack_end(GTK_BOX(BottomBarBox), GTK_WIDGET(syslabel), FALSE, FALSE, 0); #else optionbutton_box = gtk_vbox_new(FALSE, 0); optionbutton_spacer = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(optionbutton_box), GTK_WIDGET(optionbutton_spacer), TRUE, FALSE, 0); gtk_box_pack_end(GTK_BOX(optionbutton_box), GTK_WIDGET(optionbutton), FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(BottomBarBox), GTK_WIDGET(optionbutton_box), FALSE, FALSE, 5); if(has_bottom_right_image == TRUE) { bottom_right_box = gtk_vbox_new(FALSE, 0); bottom_right_spacer = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(bottom_right_box), GTK_WIDGET(bottom_right_spacer), TRUE, FALSE, 0); gtk_box_pack_end(GTK_BOX(bottom_right_box), GTK_WIDGET(bottom_right), FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(BottomBarBox), GTK_WIDGET(bottom_right_box), FALSE, FALSE, 0); } #endif gtk_container_add(GTK_CONTAINER (prefBar), BottomBarBox); } #ifdef K12LINUX /**** Create the TopBarBox ****/ topBar = gtk_window_new(GTK_WINDOW_TOPLEVEL); { GtkWidget *TopBarBox; gtk_window_set_decorated(GTK_WINDOW (topBar), FALSE); gtk_widget_set_size_request(topBar, width, TOP_BAR_HEIGHT); TopBarBox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(TopBarBox), GTK_WIDGET(syslabel), FALSE, FALSE, 5); gtk_box_pack_end(GTK_BOX(TopBarBox), GTK_WIDGET(timelabel), FALSE, FALSE, 5); } #endif /* Show everything */ gtk_widget_show_all(loginWindow); gtk_widget_show_all(prefBar); gtk_window_move(GTK_WINDOW (prefBar), 0, height - BOTTOM_BAR_HEIGHT); #ifdef K12LINUX gtk_widget_show_all(topBar); gtk_window_move(GTK_WINDOW (topBar), 0, 0); #endif gdk_window_set_cursor(root, normcursor); #ifdef K12LINUX gtk_widget_grab_focus(GTK_WIDGET(entry)); #endif /* * Start listening to stdin */ g_stdin = g_io_channel_unix_new(STDIN_FILENO); /* listen to stdin */ g_stdout = g_io_channel_unix_new(STDOUT_FILENO); g_io_add_watch(g_stdin, G_IO_IN, (GIOFunc) handle_command, g_stdin); gtk_main(); log_close(); return 0; } ldm-2.2.13/gtkgreet/Makefile.am0000644000175000017500000000106112302300754016103 0ustar vagrantvagrant## Process this file with automake to produce Makefile.in ldmlibexecdir = $(libexecdir)/ldm ldmlibexec_PROGRAMS = ldmgtkgreet ldmgtkgreet_SOURCES = hostwin.c greeter.c langwin.c sesswin.c prefs.c prefwin.c \ ../src/ldminfo.c ../src/logging.c ldmgtkgreet_LDADD = $(GTK_LIBS) AM_CPPFLAGS = $(GTK_CFLAGS) \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DLDM_THEME_DIR=\""$(datadir)/ldm/themes/"\" \ -DRC_DIR=\""$(datadir)/ldm"\" \ -DLDM_EXEC_DIR=\""$(ldmlibexecdir)"\" \ -DLDM_PLUG_DIR=\""$(ldmlibexecdir)"\" ldm-2.2.13/gtkgreet/sesswin.c0000644000175000017500000001124712302300754015715 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (2007) Oliver Grawert , Canonical Ltd. * Author: Oliver Grawert * 2007, Oliver Grawert * Scott Balneaves * 2008, Ryan Niebur * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; version 2. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #define _GNU_SOURCE #include #include #include #include #include #include #include gchar session[MAXSTRSZ]; GtkWidget *sess_select; /* session selection combo */ gint sess_total = 0; gint sess_selected = 0; /* * Local functions */ static void sesswin_accept(GtkWidget * widget, GtkWidget * sesswin) { sess_selected = gtk_combo_box_get_active(GTK_COMBO_BOX(sess_select)); gtk_widget_destroy(sesswin); } /* * External functions */ void update_selected_sess() { if (sess_selected == 0) g_strlcpy(session, "None", MAXSTRSZ); else if (sess_selected == 1) g_strlcpy(session, "/usr/bin/xterm", MAXSTRSZ); /* failsafe xterm */ else { ldminfo *curr_host = NULL; GList *s = NULL; curr_host = ldminfo_lookup(g_list_nth_data(host_list, selected_host_id)); s = curr_host->sessions; g_strlcpy(session, g_list_nth_data(s, sess_selected - 2), MAXSTRSZ); } } void populate_sess_combo_box(const char *sess, GtkWidget * sess_combo_box) { gtk_combo_box_append_text(GTK_COMBO_BOX(sess_combo_box), g_strdup(sess)); sess_total++; } /* * Session window */ void sesswin(GtkWidget * widget, GtkWindow * win) { GtkWidget *sesswin, *label, *vbox, *buttonbox; GtkWidget *cancel, *accept, *frame; ldminfo *curr_host = NULL; sess_select = gtk_combo_box_new_text(); /* * Populate sess with default host hash */ curr_host = ldminfo_lookup(g_list_nth_data(host_list, current_host_id)); gtk_combo_box_append_text(GTK_COMBO_BOX(sess_select), g_strdup(_("Default"))); gtk_combo_box_append_text(GTK_COMBO_BOX(sess_select), g_strdup(_("Failsafe xterm"))); g_list_foreach(curr_host->session_names, (GFunc) populate_sess_combo_box, sess_select); gtk_combo_box_set_active(GTK_COMBO_BOX(sess_select), sess_selected); /* * Build window */ sesswin = gtk_window_new(GTK_WINDOW_POPUP); gtk_window_set_position((GtkWindow *) sesswin, GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_modal((GtkWindow *) sesswin, TRUE); vbox = gtk_vbox_new(FALSE, 0); buttonbox = gtk_hbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); cancel = gtk_button_new_from_stock("gtk-cancel"); g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_popup), sesswin); accept = gtk_button_new_with_mnemonic(_("Change _Session")); g_signal_connect(G_OBJECT(accept), "clicked", G_CALLBACK(sesswin_accept), sesswin); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) accept, FALSE, FALSE, 0); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) cancel, FALSE, FALSE, 0); label = gtk_label_new(""); gtk_label_set_markup((GtkLabel *) label, _("Select your session manager:")); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) label, FALSE, FALSE, 0); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) sess_select, FALSE, FALSE, 5); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) buttonbox, TRUE, TRUE, 5); frame = gtk_frame_new(""); gtk_frame_set_shadow_type((GtkFrame *) frame, GTK_SHADOW_OUT); gtk_frame_set_label_align((GtkFrame *) frame, 1.0, 0.0); gtk_container_add(GTK_CONTAINER(frame), vbox); gtk_container_add(GTK_CONTAINER(sesswin), frame); gtk_widget_show_all(sesswin); return; } ldm-2.2.13/gtkgreet/prefwin.h0000644000175000017500000000174612302300754015704 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (C) 2010 Simon Poirier, * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PREFWIN_H #define PREFWIN_H void prefwin(GtkWidget * widget, gpointer pref_name); #endif /* PREFWIN_H */ ldm-2.2.13/gtkgreet/prefs.h0000644000175000017500000000305612302300754015345 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (C) 2010 Simon Poirier, * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PREFS_H #define PREFS_H typedef enum { PREF_UNDEFINED = 0, PREF_CHOICE, PREF_STRING } PrefType; typedef union { gchar* str_val; int int_val; } PrefValue; typedef struct { PrefType type; PrefValue value; gchar* title; gchar* menu; gchar* icon; GList* choices; } GreeterPref; void greeter_pref_init(); GreeterPref* greeter_pref_new(const gchar* name); void greeter_pref_destroy(const gchar* name); GreeterPref* greeter_pref_get_pref(const gchar* name); void greeter_pref_prompt(const gchar* name); PrefValue greeter_pref_get_value(const gchar* name); void greeter_pref_foreach(GTraverseFunc func, gpointer user_data); #endif /* PREFS_H */ ldm-2.2.13/gtkgreet/greeter.h0000644000175000017500000000407612302300754015666 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (C) 2007 Francis Giraldeau, * * - Queries servers to get information about them * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GREETER_H #define GREETER_H #include "../src/ldminfo.h" #define MAXSTRSZ 255 /* * hostwin.c */ extern gchar host[MAXSTRSZ]; extern gint current_host_id; extern gint selected_host_id; void update_selected_host(); void populate_host_combo_box(const char *hostname, GtkWidget * host_combo_box); void hostwin(GtkWidget * widget, GtkWindow * win); /* * greeter.c */ extern GList *host_list; extern gint current_host_id; extern gint selected_host_id; void destroy_popup(GtkWidget * widget, GtkWidget * popup); /* * langwin.c */ extern gchar language[MAXSTRSZ]; extern GtkWidget *lang_select; extern gint lang_total; extern gint lang_selected; void update_selected_lang(); void populate_lang_combo_box(const char *lang, GtkWidget * lang_combo_box); void langwin(GtkWidget * widget, GtkWindow * win); /* * sesswin.c */ extern gchar session[MAXSTRSZ]; extern GtkWidget *sess_select; /* session selection combo */ extern gint sess_total; extern gint sess_selected; void update_selected_sess(); void populate_sess_combo_box(const char *sess, GtkWidget * sess_combo_box); void sesswin(GtkWidget * widget, GtkWindow * win); #endif /* GREETER_H */ ldm-2.2.13/gtkgreet/langwin.c0000644000175000017500000001113112302300754015651 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (2007) Oliver Grawert , Canonical Ltd. * Author: Oliver Grawert * 2007, Oliver Grawert * Scott Balneaves * 2008, Vagrant Cascadian * Jigish Gohil * Wolfgang Schweer * 2009, Ryan Niebur * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; version 2. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #define _GNU_SOURCE #include #include #include #include #include #include gchar language[MAXSTRSZ]; GtkWidget *lang_select; /* language selection combo */ gint lang_total = 0; gint lang_selected = 0; /* * Local functions */ static void langwin_accept(GtkWidget * widget, GtkWidget * langwin) { lang_selected = gtk_combo_box_get_active(GTK_COMBO_BOX(lang_select)); gtk_widget_destroy(langwin); } /* * External functions */ void update_selected_lang() { if (lang_selected == 0) g_strlcpy(language, "None", MAXSTRSZ); else { ldminfo *curr_host = NULL; GList *l = NULL; curr_host = ldminfo_lookup(g_list_nth_data(host_list, selected_host_id)); l = curr_host->languages; g_strlcpy(language, g_list_nth_data(l, lang_selected - 1), MAXSTRSZ); } } void populate_lang_combo_box(const char *lang, GtkWidget * lang_combo_box) { gtk_combo_box_append_text(GTK_COMBO_BOX(lang_combo_box), g_strdup(lang)); lang_total++; } void langwin(GtkWidget * widget, GtkWindow * win) { GtkWidget *langwin, *label, *vbox, *buttonbox; GtkWidget *cancel, *accept, *frame; ldminfo *curr_host = NULL; lang_select = gtk_combo_box_new_text(); /* * Populate lang with default host hash */ curr_host = ldminfo_lookup(g_list_nth_data(host_list, selected_host_id)); gtk_combo_box_append_text(GTK_COMBO_BOX(lang_select), g_strdup(_("Default"))); g_list_foreach(curr_host->language_names, (GFunc) populate_lang_combo_box, lang_select); gtk_combo_box_set_active(GTK_COMBO_BOX(lang_select), lang_selected); /* * Build window */ langwin = gtk_window_new(GTK_WINDOW_POPUP); gtk_window_set_position((GtkWindow *) langwin, GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_modal((GtkWindow *) langwin, TRUE); vbox = gtk_vbox_new(FALSE, 0); buttonbox = gtk_hbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); cancel = gtk_button_new_from_stock("gtk-cancel"); g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_popup), langwin); accept = gtk_button_new_with_mnemonic(_("Change _Language")); g_signal_connect(G_OBJECT(accept), "clicked", G_CALLBACK(langwin_accept), langwin); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) accept, FALSE, FALSE, 0); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) cancel, FALSE, FALSE, 0); label = gtk_label_new(""); gtk_label_set_markup((GtkLabel *) label, _("Select the language for your session to use:")); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) label, FALSE, FALSE, 0); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) lang_select, FALSE, FALSE, 5); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) buttonbox, TRUE, TRUE, 5); frame = gtk_frame_new(""); gtk_frame_set_shadow_type((GtkFrame *) frame, GTK_SHADOW_OUT); gtk_frame_set_label_align((GtkFrame *) frame, 1.0, 0.0); gtk_container_add(GTK_CONTAINER(frame), vbox); gtk_container_add(GTK_CONTAINER(langwin), frame); gtk_widget_show_all(langwin); return; } ldm-2.2.13/gtkgreet/hostwin.c0000644000175000017500000001006512302300754015712 0ustar vagrantvagrant/* * LTSP Graphical GTK Greeter * Copyright (2007) Oliver Grawert , Canonical Ltd. * Author: Oliver Grawert * 2007, Oliver Grawert * 2008, Toshio Kuratomi * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; version 2. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, you can find it on the World Wide * Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301, USA. */ #define _GNU_SOURCE #include #include #include #include #include #include #include gchar host[MAXSTRSZ] = "None"; gint current_host_id = 0; gint selected_host_id = 0; /* * Local functions */ static void hostwin_update_host(GtkWidget * widget, gpointer data) { current_host_id = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); } static void hostwin_accept(GtkWidget * widget, GtkWidget * hostwin) { selected_host_id = current_host_id; gtk_widget_destroy(hostwin); /* * We selected a new host, so we have to update the lang and session * windows. */ lang_selected = 0; sess_selected = 0; } /* * External functions */ void update_selected_host() { g_strlcpy(host, g_list_nth_data(host_list, selected_host_id), MAXSTRSZ); } void populate_host_combo_box(const char *hostname, GtkWidget * host_combo_box) { gtk_combo_box_append_text(GTK_COMBO_BOX(host_combo_box), g_strdup(hostname)); } void hostwin(GtkWidget * widget, GtkWindow * win) { GtkWidget *hostwin, *label, *vbox, *buttonbox, *combo_host; GtkWidget *cancel, *accept, *frame; hostwin = gtk_window_new(GTK_WINDOW_POPUP); gtk_window_set_position((GtkWindow *) hostwin, GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_modal((GtkWindow *) hostwin, TRUE); vbox = gtk_vbox_new(FALSE, 0); buttonbox = gtk_hbox_new(FALSE, 5); combo_host = gtk_combo_box_new_text(); g_list_foreach(host_list, (GFunc) populate_host_combo_box, combo_host); g_signal_connect(G_OBJECT(combo_host), "changed", G_CALLBACK(hostwin_update_host), NULL); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_host), selected_host_id); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); cancel = gtk_button_new_from_stock("gtk-cancel"); g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_popup), hostwin); accept = gtk_button_new_from_stock("gtk-apply"); g_signal_connect(G_OBJECT(accept), "clicked", G_CALLBACK(hostwin_accept), hostwin); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) accept, FALSE, FALSE, 0); gtk_box_pack_end((GtkBox *) buttonbox, (GtkWidget *) cancel, FALSE, FALSE, 0); label = gtk_label_new(""); gtk_label_set_markup((GtkLabel *) label, _("Select the host for your session to use:")); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) label, FALSE, FALSE, 0); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) combo_host, FALSE, FALSE, 5); gtk_box_pack_start((GtkBox *) vbox, (GtkWidget *) buttonbox, TRUE, TRUE, 5); frame = gtk_frame_new(""); gtk_frame_set_shadow_type((GtkFrame *) frame, GTK_SHADOW_OUT); gtk_frame_set_label_align((GtkFrame *) frame, 1.0, 0.0); gtk_container_add(GTK_CONTAINER(frame), vbox); gtk_container_add(GTK_CONTAINER(hostwin), frame); gtk_widget_show_all(hostwin); }