--- italc-1.0.13.orig/debian/italc-client.postinst +++ italc-1.0.13/debian/italc-client.postinst @@ -0,0 +1,64 @@ +#!/bin/sh +if [ ! `getent group admin` ]; then + addgroup --system admin +fi + +if [ -d /etc/italc ]; then + known_keys="38437fd93f2728ed752b55604abe3f26 701806e8744e15540b2391d66ab560e6 ce39df1800470195c0d35a13acc7f2f4 122c1a9f324c997db4c69bb5a0b2eac1 783d858340ed89c132db8c2973b4b9fb 2a6cdd46ec7d52eb2df334da08122797 cab58fba8b1e002f894317b5ec53052d f04bc4de36ca6c3aeaa50f2e7a8c3e72 ae3a07a17da0dbd795c24898483da12a b11f5dbbbc6392ce96eb970e6ab173c9 ed6f414a92f558a5a5f475fcf04b6543 4415ebbe044d9004f5e4edb36ab0e8bf 9746f2ac0e55c761912bd24a2c0df077 9224a0b6a09cd29545a91798b3e402a4 5adfa4044d68a8fa1591887c11f8788c 43c88a01ea36f056be69c750097fb82a 544d88f8ce8c8de3c28d411a5ee45091 adbf57dd4419f3a28de52572099e2c0b c0244cda824f75b2b186cf8830c44c2b bd1576d3824dc330c0e60b6369fdb173 1953dffb20ef8f0b258e32a7c957e8fe 5021b1e3c8ce147a2d962ec368b681f6 8f372d3a35763db6e017bcfc86b28b9f bdd706777034072db71329f47f041c94 909b6771f03df333a26c70fe48814702 1fa2f1f8709dff5e681bbba693a184be 12cb0152c344df5592eced24a5175b90 554991d4382fa98d6da6d2bb125e8f68 933c823eeaeba399211207784e410ae1 d81ee1636da323c652e67fc9f5d17dea 443e7a853ac6e963c94e7b7ed36092cb 0a0745860a4d055e8b4524ff6c3b7356 143a0371bd3ea11d71c50b0cbe219dce d53811801490e7dd515ae427e9d244c5 29d2e819b9fbcbe493a7276b12e08ee0 89e52ef5a04595261fea94b8f57abcc4" + found_key=0 + # Security, remove known keys + for key in /etc/italc/keys/private/*/key /etc/italc/keys/public/*/key; do + sum=$(md5sum $key | cut -d ' ' -f1) + for known_key in $known_keys; do + if [ "$sum" = "$known_key" ]; then + found_key=1 + rm $key + break + fi + done + done + if [ "$found_key" = "1" ]; then + echo "WARNING" + echo "One or multiple common keys have been found on your system." + echo "As a security measure, they have now been removed and re-generated." + echo "More information is available here: https://wiki.ubuntu.com/iTalc/Keys" + fi +fi + +if [ ! -f /etc/italc/keys/private/teacher/key ] && [ ! -f /etc/italc/keys/public/teacher/key ]; then + echo "Creating teacher keypair" + ica -role teacher -createkeypair > /dev/zero + chmod g+r /etc/italc/keys/private/teacher/key + chgrp admin /etc/italc/keys/private/teacher/key +fi +if [ ! -f /etc/italc/keys/private/admin/key ] && [ ! -f /etc/italc/keys/public/admin/key ]; then + echo "Creating admin keypair" + ica -role admin -createkeypair > /dev/zero + chmod g+r /etc/italc/keys/private/admin/key + chgrp admin /etc/italc/keys/private/admin/key +fi +if [ ! -f /etc/italc/keys/private/supporter/key ] && [ ! -f /etc/italc/keys/public/supporter/key ]; then + echo "Creating supporter keypair" + ica -role supporter -createkeypair > /dev/zero + chmod g+r /etc/italc/keys/private/supporter/key + chgrp admin /etc/italc/keys/private/supporter/key +fi + +if [ -f /etc/ltsp_chroot ] && [ -d /usr/share/ldm/rc.d/ ]; then + [ -f /usr/share/ldm/rc.d/S06-italc ] && rm /usr/share/ldm/rc.d/S06-italc + echo "Installing ldm rc script" + ( + cat << 'EOF' +xprop -f ica_ltsp 8b -root -set ica_ltsp False +if boolean_is_true "$START_ITALC" +then + USER=`hostname` ica-launcher & + (sleep 2s && xprop -f ica_ltsp 8b -root -set ica_ltsp True)& +else + xprop -f ica_ltsp 8b -root -set ica_ltsp False +fi +EOF + ) > /usr/share/ltsp/xinitrc.d/I15-italc +fi + +#DEBHELPER# --- italc-1.0.13.orig/debian/menu +++ italc-1.0.13/debian/menu @@ -0,0 +1,7 @@ +?package(italc-master):\ + needs="X11"\ + section="Applications/Education"\ + title="iTALC"\ + command="/usr/bin/italc-launcher" \ + icon32x32="/usr/share/pixmaps/italc.xpm"\ + hints="KDE" --- italc-1.0.13.orig/debian/changelog +++ italc-1.0.13/debian/changelog @@ -0,0 +1,458 @@ +italc (1:1.0.13-0ubuntu4) precise; urgency=low + + * Build-depend on libjpeg-dev instead of libjpeg62-dev. + * Fix FTBFS with -Werror=format-security. + - Add 14_fix-format-string.patch + + -- Felix Geyer Sun, 27 Nov 2011 13:00:38 +0100 + +italc (1:1.0.13-0ubuntu3) oneiric; urgency=low + + * Fix FTBFS due to configure not detecting libQt with multiarch. + Currently patching configure directly as autoreconf can't build a new + configure and upstream apparently updated it by hand. + Next major upstream release switched to cmake which should fix that. + (LP: #831212) + + -- Stéphane Graber Tue, 13 Sep 2011 22:22:43 -0400 + +italc (1:1.0.13-0ubuntu2) oneiric; urgency=low + + * No change rebuild for libssl1.0.0 transition. + + -- Angel Abad Sun, 29 May 2011 14:15:25 +0200 + +italc (1:1.0.13-0ubuntu1) natty; urgency=low + + * New upstream bugfix release (1.0.13) + + * Ubuntu patches + * Remove fix chinese patch (fixed upstream) + * Update maximize default patch + + * Add iTalc keys blacklist (LP: #714864) + CVE-2011-0724 + + -- Stéphane Graber Wed, 23 Feb 2011 16:19:50 -0500 + +italc (1:1.0.9.1-0ubuntu18) lucid; urgency=low + + * Add patch to iTalc to use DBUS calls for gnome (LP: #367960) + + -- Stéphane Graber Tue, 09 Feb 2010 09:38:13 -0500 + +italc (1:1.0.9.1-0ubuntu17) lucid; urgency=low + + * Fix italc-launcher when iTalc runs as a LTSP localapp. + + -- Stéphane Graber Tue, 09 Feb 2010 09:29:31 -0500 + +italc (1:1.0.9.1-0ubuntu16) karmic; urgency=low + + * Merge more of Alkis' changes to ica-launcher and italc-launcher. + * Export the user's gecos when using LTSP-Cluster and it's available. + + -- Stéphane Graber Tue, 06 Oct 2009 20:03:09 -0400 + +italc (1:1.0.9.1-0ubuntu15) karmic; urgency=low + + * Include Alkis' changes to ica-launcher and italc-launcher to avoid + using the same ports twice. + + -- Stéphane Graber Mon, 05 Oct 2009 11:50:00 -0400 + +italc (1:1.0.9.1-0ubuntu14) karmic; urgency=low + + * italc-launcher + * Make sure we don't have duplicated entries + * Sort client list + + -- Stéphane Graber Sun, 23 Aug 2009 14:05:16 -0400 + +italc (1:1.0.9.1-0ubuntu13) karmic; urgency=low + + * Make lock screen work on all cases. (LP: #414887) + * Fix python launcher to use the new md5 module + + -- Stéphane Graber Wed, 19 Aug 2009 02:15:55 -0400 + +italc (1:1.0.9.1-0ubuntu12) karmic; urgency=low + + * Fix malformed patch (whitespaces and tabs) + + -- Stéphane Graber Mon, 17 Aug 2009 23:07:44 -0400 + +italc (1:1.0.9.1-0ubuntu11) karmic; urgency=low + + * Maximize window by default + * Update python script for python 2.6 + * Allow the role to be passed to ica-launcher + * Update standards to 3.8.3 + + -- Stéphane Graber Mon, 17 Aug 2009 23:01:03 -0400 + +italc (1:1.0.9.1-0ubuntu10) karmic; urgency=low + + * Fix FTBFS for Karmic (06_fix-ftbfs.patch) + * Respawn ica when crashed (07_ica-auto-respawn.patch) + * Make the reboot action actually reboot the client + instead of shutdown (08_fix-reboot.patch) + * Update standards to 3.8.1 + + -- Stéphane Graber Mon, 08 Jun 2009 10:49:58 -0400 + +italc (1:1.0.9.1-0ubuntu9) jaunty; urgency=low + + * Previous fix was buggy, now really fix it. (Avahi starting in ltsp-cluster + environment where we don't want it) + + -- Stéphane Graber Tue, 17 Feb 2009 19:57:17 -0500 + +italc (1:1.0.9.1-0ubuntu8) jaunty; urgency=low + + * Fix ica-launcher for ltsp-cluster + + -- Stéphane Graber Tue, 17 Feb 2009 18:59:20 -0500 + +italc (1:1.0.9.1-0ubuntu7) jaunty; urgency=low + + * Improve ltsp-cluster support + * Show username when available + * Show the whole classroom even if not logged in + + -- Stéphane Graber Sun, 15 Feb 2009 23:23:28 -0500 + +italc (1:1.0.9.1-0ubuntu6) jaunty; urgency=low + + * Fix italc-launcher for ltsp-cluster (invalid URL) + + -- Stéphane Graber Thu, 12 Feb 2009 19:08:14 -0500 + +italc (1:1.0.9.1-0ubuntu5) jaunty; urgency=low + + * Use /etc/ltsp/getltscfg-cluster.conf instead of /etc/ltsp/directory.conf + * LTSP: Start as xinitrc.d script instead of ldm rc.d + * Check if host is online only if using avahi + * Export the username for avahi instead of the hostname (avoids duplicate) + + -- Stéphane Graber Sun, 08 Feb 2009 20:06:34 -0500 + +italc (1:1.0.9.1-0ubuntu4) jaunty; urgency=low + + * Fix italc-launcher not restoring $LANG before starting italc. + + -- Stéphane Graber Tue, 27 Jan 2009 00:22:57 -0500 + +italc (1:1.0.9.1-0ubuntu3) intrepid; urgency=low + + * Fix demo mode for standard users. + + -- Stéphane Graber Sun, 12 Oct 2008 16:24:39 -0400 + +italc (1:1.0.9.1-0ubuntu2) intrepid; urgency=low + + * Fix LTSP support. + * Make avahi a recommend. + + -- Stéphane Graber Thu, 02 Oct 2008 21:01:56 -0400 + +italc (1:1.0.9.1-0ubuntu1) intrepid; urgency=low + + * New release upstream (difference from -rc4) + * various fixes for Qt 4.4-compatibility - fixes demo-mode crashs in + RC3/RC4 + * Update to new Debian standards (3.8.0) + * Used 1.0.9.1 as upstream version as the release had to be re-rolled to + include a last-minute QT fix. (Also solves bad Debian version numbering) + + -- Stéphane Graber Wed, 23 Jul 2008 23:46:50 +0200 + +italc (1:1.0.9-rc4-0ubuntu1) intrepid; urgency=low + + * New pre-release upstream + * Drop 03_remoteica.patch (included upstream) + * Drop 05_x11vnc.patch (included upstream) + * Drop 07_masterpatch.patch (included upstream) + * Re-order remaining patches + + -- Stéphane Graber Mon, 07 Jul 2008 12:23:33 +0200 + +italc (1:1.0.9-rc3-0ubuntu3) intrepid; urgency=low + + * Update X11VNC fixing tight encoding issues. (05_x11vnc.patch) + * Update ica-launcher to kill already running ica. (LP: #238839) + * Auto-arrange screen previews when more than one is at position 0;0. + (06_autoarrange.patch) + * Add upstream master interface patch (07_masterpatch.patch) + * Resync patches with upstream code. (line number) + + -- Stéphane Graber Fri, 04 Jul 2008 12:14:53 +0200 + +italc (1:1.0.9-rc3-0ubuntu2) intrepid; urgency=low + + * Fix tight VNC issue. + + -- Stéphane Graber Tue, 24 Jun 2008 00:31:59 +0200 + +italc (1:1.0.9-rc3-0ubuntu1) intrepid; urgency=low + + * Packaging + * Take some packaging changes from Debian (libitalc.dirs, libitalc.install, + s/openssl/libssl-dev/ in control) + * Change Maintainer to Ubuntu Core Developers + * Move Homepage to the source package + * Change italc-client.postinst to set $USER in ldm session script + * Drop patches (included upstream) + * 02_demofix.patch + * 04_errorfix.patch + * Add patches (will be included upstream in final release) + * 03_remoteica.patch (connect to remote ISD) + * Add patches (Debian/Ubuntu specific) + * 04_username.patch (remove ,,, from the end of gecos) + + * ica-launcher + * Add support for LTSP chroot + * Avoid avahi service name conflict + + * italc-launcher + * Add support for remote ISD + * Add support for LTSP chroot + + -- Stéphane Graber Thu, 08 May 2008 11:23:56 +0200 + +italc (1:1.0.8-0ubuntu1) intrepid; urgency=low + + * pulled from https://launchpad.net/~edubuntu-italc-devel as this version + is superior to the one in debian (instead of merging), thanks to + Stéphane Graber for preparing that. + + -- Oliver Grawert Wed, 07 May 2008 16:36:08 +0200 + +italc (1:1.0.8-0ubuntu1~ppa5) hardy; urgency=low + + * Add support for installation in LTSP chroot + + -- Stéphane Graber Thu, 01 May 2008 20:15:46 +0200 + +italc (1:1.0.8-0ubuntu1~ppa4) hardy; urgency=low + + * Replace /bin/bash by /bin/sh + * Fix typo in postinst script (s/priavte/private/) + * Filter auto-generated classroom to remove the teacher computer + + -- Stéphane Graber Wed, 30 Apr 2008 08:56:08 +0200 + +italc (1:1.0.8-0ubuntu1~ppa3) hardy; urgency=low + + * Add a forcevisible one-time option to globalconfig.xml and use it in + italc-launcher. + * Fix infinite loop when no read access to private keys + * Fix LTSP support in italc-launcher + + -- Stéphane Graber Fri, 25 Apr 2008 00:20:50 +0200 + +italc (1:1.0.8-0ubuntu1~ppa2) hardy; urgency=low + + * Add patch from upstream to fix demo mode + + -- Stéphane Graber Thu, 24 Apr 2008 16:27:13 +0200 + +italc (1:1.0.8-0ubuntu1~ppa1) hardy; urgency=low + + * New upstream release (1.0.8) + - disabled MMX-optimized image-scaler on x86_64 as it's currently buggy + - added zoom-feature: holding mouse-button on a client-window makes it zoom + - display hostname in client-windows when "show user" is not checked + - removed support-tab and added a button in toolbar instead + - improved sidebar + - visibility of individual toolbar-buttons can be configured via the toolbar-contextmenu + - fixed several issues with scaling in remote-control-window + - always try to run demo-server on default-port 5858 to allow easier and more secure firewall-configuration + - drag'n drop support in classroom manager + - fixed confirmation-dialog when closing setup-window via Alt+F4/close-button + - added timeout-recognition in isdConnection::readFromServer()-function which makes iTALC-master not hang when quitting if a connection is somehow blocked + - the name-field of a client is now optional - if you do not specify it, the hostname/IP is used for displaying the client's name + - network-interface for demo-mode doesn't need to be configured anymore - it's auto-detected by clients + - improved stability of demo-server + + -- Stéphane Graber Mon, 21 Apr 2008 13:04:54 +0200 + +italc (1:1.0.8-rc3-0ubuntu1~ppa1) hardy; urgency=low + + * New upstream version + + -- Stéphane Graber Sat, 19 Apr 2008 14:10:45 +0200 + +italc (1:1.0.7-0ubuntu3~ppa3) hardy; urgency=low + + * Fix menu entry to hide the startup notify + * Select the right role depending on key access + + -- Stéphane Graber Wed, 16 Apr 2008 09:01:58 +0200 + +italc (1:1.0.7-0ubuntu3~ppa2) hardy; urgency=low + + * Remove remaining debug instructions + * Wait for .italc to be created (possible race condition here) + + -- Stéphane Graber Tue, 15 Apr 2008 12:40:34 +0200 + +italc (1:1.0.7-0ubuntu3~ppa1) hardy; urgency=low + + * Replace old launcher scripts with avahi powered ones. + + -- Stéphane Graber Sat, 05 Apr 2008 00:06:30 +0200 + +italc (1:1.0.7-0ubuntu2) hardy; urgency=low + + * Fix the "Execute commands" window, the icon was overlapping the text. Icon + is now removed. + * Fix italc-client.postinst to create the admin group if it doesn't already + exist. (LP: #204235) + + -- Stéphane Graber Thu, 20 Mar 2008 13:44:28 +0100 + +italc (1:1.0.7-0ubuntu1) hardy; urgency=low + + * New version upstream (1.0.7) + * improved overall usability by adding new icons and reworking look of + overview-mode + * added new image-scaling algorithm with (optional) MMX-optimizations in order + to use less CPU-time on master-computer when monitoring a lot of clients with + short update-intervals + * thanks to fast image-scaler, remote-control and demo-mode now scale screen + in real-time instead of having the user to scroll + * removed user-list and added ability to display user-name instead of + IP-address in classroom-manager + * removed remote-IP-property as not used anymore + * fixed logon-feature from classroom-action-menu + * in case user accidently changed role but no keys exist for this role try + teacher-role as fallback in order to make iTALC still usable in such cases + (Closes #1866440) + * updated spec-file for building RPMs + * added Polish localization-files + * made power-down, reboot and logoff work under Linux if no user is logged in + * fixed various crashes + * Update UI patch for Edubuntu + * Fix FTBFS and segfault for MMX on amd64 + + -- Stéphane Graber Mon, 10 Mar 2008 00:19:35 +0100 + +italc (1:1.0.6-0ubuntu1) hardy; urgency=low + + * New upstream version (bug fixes) + * Set Ubuntu maintainer address. + * Add ica-launcher, launcher script for ICA + * Add italc-launcher, launcher script for iTalc + * Add an iTalc menu entry for the master interface + * Set iTalc client to autostart using xdg + * Disable the remote Logon function (not working if not running as a root + service) + * Update "Execute commands" to execute only one command at a time + * Sync packaging from Debian Unstable (Patrick Winnertz) + * Add options for dh_shlibdeps to debian/rules to prevent a ftbfs + * Added new package libitalc to control since now both + applications needs this lib. + * Changed my maintainer address. + * Add compiler flags to rules + * Modified menu file to fit into the new layout + * Add Homepage: tag and remove Homepage from description + * use new standard-version (3.7.3) + + -- Stéphane Graber Mon, 11 Feb 2008 23:40:20 +0100 + +italc (1:1.0.4-0ubuntu1) hardy; urgency=low + + * New upstream release + - Fix VNC crash + - Code moved from ica/italc into libitalc.so + * Add libitalc.so to italc-client + * Remove the client systray icon + * Turn off the help bubbles by default in italc + * Fix FTBFS due to missing za locale + * Use gnome-session-save/gdm-signal for Gnome shutdown/reboot/logoff + * Use dcop for KDE shutdown/reboot/logoff + + -- Stéphane Graber Tue, 27 Nov 2007 22:34:58 +0100 + +italc (1:1.0.2-2) unstable; urgency=low + + * Upload of the package to unstable + + -- Patrick Winnertz Wed, 16 May 2007 13:45:10 +0200 + +italc (1:1.0.2-1) experimental; urgency=low + + * Packaging new upstream release + * FTBFS Bug on kfreeBSD send to upstream and this is fixed in + this version now. (Closes: #414096) + + -- Patrick Winnertz Tue, 10 Apr 2007 15:29:41 +0200 + +italc (1:1.0.0-1) experimental; urgency=low + + * Packaging new upstream version. + Must use epoch since 1.0.0 seems to be lesser than 1.0.0.0~rc2 + * Added build dependency libxtst-dev + * Modified rules: + - Removed build of icon, since this is now upstream + - Added --with-linux to enable build on kfreeBSD. Thanks to Cyril + Brulebois. (Closes: #414096) + + -- Patrick Winnertz Sat, 24 Mar 2007 15:44:11 +0100 + +italc (1.0.0.0~rc2-1) experimental; urgency=low + + * Packaging new upstream release + * Adopting this package from Steffen Joeris with his acceptance + * Increasing the debhelper level to 5 + * Adding the build-depends: + - libqt4-dev + - zlib1g-dev + - libjpeg62-dev + - openssl + * italc-master now has a dependency against italc-client, since + the client server (ica ) also have to run on the master. + * Updated Copyright file, since some files were removed + * Removed build depends libxaw7-dev, libqt3-mt-dev, libssl-dev, libxtst-dev + since they are obsolete + * Removed patches since upstream adopted them + * Added README.Debian to make key creation easier for local administrators + + -- Patrick Winnertz Wed, 27 Dec 2006 20:16:04 +0100 + +italc (0.9.6.2-3) unstable; urgency=low + + * Change build-depends against libxaw8-dev to libxaw7-dev + (Closes: #370197) + * Expand 20-configure.patch to adjust to newer X libraries + Thanks to Peter Eisentraut + * Bump standard version to 3.7.2 + * Provide the italc-keygen program which is needed for + the key generation to enable the connection + Thanks to Patrick Winnertz for some further skolelinux packaging + * Fix spelling error in descriptions (Closes: #363282, #363979) + * Upload sponsored by Morten Werner Olsen. + + -- Steffen Joeris Sun, 4 Jun 2006 13:23:38 +0200 + +italc (0.9.6.2-2) unstable; urgency=low + + [ Steffen Joeris ] + * Include patch to prevent italc to segfault on architectures + where the size of a pointer is greater than the size of + an integer, such as ia64. (Closes: #340684) + Thanks to Dann Frazier. + + [ Florian Ragwitz ] + * Removed build-dep on xlibs-dev, which is deprecated now, and depend on the + individual libraries we need. + + -- Florian Ragwitz Mon, 9 Jan 2006 15:51:40 +0100 + +italc (0.9.6.2-1) unstable; urgency=low + + * Initial release (Closes: #338678) + + -- Steffen Joeris Sat, 12 Nov 2005 00:20:36 +0100 + --- italc-1.0.13.orig/debian/control +++ italc-1.0.13/debian/control @@ -0,0 +1,66 @@ +Source: italc +Section: x11 +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Patrick Winnertz +Build-Depends: cdbs, debhelper (>= 5.0), dpatch, libqt4-dev, zlib1g-dev, libjpeg-dev, libssl-dev, imagemagick, libxtst-dev +Standards-Version: 3.9.1 +Homepage: http://italc.sourceforge.net/home.php + +Package: italc-master +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python, italc-client, libitalc (=${binary:Version}) +Recommends: avahi-utils +Description: Intelligent Teaching and Learning with Computers (master part) + iTALC makes it possible, to access and influence the pupils + activities just from the computer of the teacher. With the + help of iTALC, for example the teacher is able to see the + content of the pupils screens on his screen. If a pupil needs + help, the teacher can access the pupils desktop and give support + from his computer. The pupil can watch all activities, the + teacher is doing on his desktop. So the pupil can learn new processes. + For teaching something to all pupils, you can switch into demo-mode + where all screens of the pupils show the teacher-screen. + Furthermore things like locking pupil's screens, killing games, + power on/off clients and much more can be done with iTALC. + . + This package contains the software necessary to observe and control iTALC + clients provided by the italc-client package. + +Package: italc-client +Architecture: any +Recommends: avahi-utils +Depends: ${shlibs:Depends}, ${misc:Depends}, libitalc (=${binary:Version}) +Description: Intelligent Teaching and Learning with Computers (client part) + iTALC makes it possible, to access and influence the pupils + activities just from the computer of the teacher. With the + help of iTALC, for example the teacher is able to see the + content of the pupils screens on his screen. If a pupil needs + help, the teacher can access the pupils desktop and give support + from his computer. The pupil can watch all activities, the + teacher is doing on his desktop. So the pupil can learn new processes. + For teaching something to all pupils, you can switch into demo-mode + where all screens of the pupils show the teacher-screen. + Furthermore things like locking pupil's screens, killing games, + power on/off clients and much more can be done with iTALC. + . + This package contains the client software for iTALC that can be controlled + using italc-master. + +Package: libitalc +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Intelligent Teaching and Learning with Computers (library) + iTALC makes it possible, to access and influence the pupils + activities just from the computer of the teacher. With the + help of iTALC, for example the teacher is able to see the + content of the pupils screens on his screen. If a pupil needs + help, the teacher can access the pupils desktop and give support + from his computer. The pupil can watch all activities, the + teacher is doing on his desktop. So the pupil can learn new processes. + For teaching something to all pupils, you can switch into demo-mode + where all screens of the pupils show the teacher-screen. + Furthermore things like locking pupil's screens, killing games, + power on/off clients and much more can be done with iTALC. + . + This package provides the necessary library for italc --- italc-1.0.13.orig/debian/docs +++ italc-1.0.13/debian/docs @@ -0,0 +1,2 @@ +README +TODO --- italc-1.0.13.orig/debian/ica-launcher +++ italc-1.0.13/debian/ica-launcher @@ -0,0 +1,100 @@ +#!/bin/sh +# iTalc client launcher using avahi +# Written by Stéphane Graber + +find_free_port() { +# $1 = requested port +# $2 = sorted list of ports in use +# Basic logic: if the distance between two used ports A and B is greater than 1, +# then port A+1 is free. + req_port=$1 + used_ports="$2 65536" + candidate=$req_port + for p in $used_ports + do + if [ $p -lt $req_port ] + then # Pass the ports lower than the requested one + continue + elif [ $p -gt $candidate ] + then + echo $candidate + return 0 + else + candidate=$(($p+1)) + fi + done + return 1 +} + +ICA_LTSP=`xprop -root ica_ltsp | sed 's/^.* //' 2> /dev/zero` +if [ "$ICA_LTSP" = "1" ] +then + echo "ICA already running on the thin client." + exit 0 +fi + +# Provide a configuration file to enable switching off client autodetection +# and/or specifying user-defined ports. +if [ -f /etc/italc/italc.conf ] +then + . /etc/italc/italc.conf +fi + +PUBLISH_CLIENT=${PUBLISH_CLIENT:-True} +ISDPORT=${ISDPORT:-5800} +IVSPORT=${IVSPORT:-5900} +HOSTNAME=`hostname` +MD5_3=`md5sum /etc/italc/keys/public/teacher/key | awk '{print \$1}'` +MD5_2=`md5sum /etc/italc/keys/public/admin/key | awk '{print \$1}'` +MD5_1=`md5sum /etc/italc/keys/public/supporter/key | awk '{print \$1}'` + +if [ -n "$1" ]; then + ROLE=$1 +else + ROLE="other" +fi + +if [ -n "$LTSP_CLIENT" ] +then + echo LTSP environement detected + PORT=`echo $LTSP_CLIENT | awk -F . '{print \$4}'` +# Not much point in using the ports from /etc/italc/italc.conf for thin clients + ISDPORT=$((11000 + $PORT)) + IVSPORT=$((10000 + $PORT)) + HOSTNAME=${LTSP_CLIENT_HOSTNAME:-$HOSTNAME} +fi + +USED_PORTS=$(netstat -nap 2>/dev/null | grep -v TIME_WAIT | sed -n 's/unix[^0-9]*[0-9]*[^0-9]*\([0-9]*\).*/\1/p;s/tcp[^:]*:\([0-9]*\).*/\1/p;s/udp[^:]*:\([0-9]*\).*/\1/p' | sort -n) +ISDPORT=`find_free_port $ISDPORT "$USED_PORTS"` +USED_PORTS=$(echo "$USED_PORTS +$ISDPORT" | sort -n) +IVSPORT=`find_free_port $IVSPORT "$USED_PORTS"` + +RUNNING_ICA=`ps -C ica -o pid,command | sed -n 's/^ *\([0-9]*\) *ica.*/\1/p'` +if [ -n "$RUNNING_ICA" ] +then + for processus in $RUNNING_ICA + do + kill $processus + done + echo ICA already running, killing it. + sleep 1s +fi + +if [ "$PUBLISH_CLIENT" = "True" ] && [ -f /usr/bin/avahi-publish-service ] && [ ! -f /etc/ltsp/getltscfg-cluster.conf ] +then + echo Announce the service on avahi + avahi-publish-service "italc $USER" _italc._tcp $IVSPORT $MD5_1 $MD5_2 $MD5_3 "$HOSTNAME" > /dev/zero & +fi + +echo Starting ICA +# Store the port in an xprop, for italc-launcher to find it +xprop -root -f ICA_PORT 16c -set ICA_PORT $ISDPORT +ica -noshm -isdport $ISDPORT -ivsport $IVSPORT -role $ROLE 2> /dev/zero +xprop -root -remove ICA_PORT + +if [ "$PUBLISH_CLIENT" = "True" ] && [ -f /usr/bin/avahi-publish-service ] && [ ! -f /etc/ltsp/getltscfg-cluster.conf ] +then + echo Stopping avahi + kill `ps -C "avahi-publish-service italc $USER _italc._tcp $IVSPORT" -o pid=` +fi --- italc-1.0.13.orig/debian/italc-master.manpages +++ italc-1.0.13/debian/italc-master.manpages @@ -0,0 +1 @@ +ima/italc.1 --- italc-1.0.13.orig/debian/italc-master.install +++ italc-1.0.13/debian/italc-master.install @@ -0,0 +1,2 @@ +usr/bin/italc /usr/bin/ +../italc-launcher /usr/bin/ --- italc-1.0.13.orig/debian/italc-client.dirs +++ italc-1.0.13/debian/italc-client.dirs @@ -0,0 +1 @@ +etc/italc --- italc-1.0.13.orig/debian/italc-master.dirs +++ italc-1.0.13/debian/italc-master.dirs @@ -0,0 +1 @@ +usr/bin --- italc-1.0.13.orig/debian/README.Debian +++ italc-1.0.13/debian/README.Debian @@ -0,0 +1,33 @@ +italc for Debian +---------------- + +1.1) Create keypairs to allow watching + + To configure italc in order to allow teachers and/or admins to watch what + the pupils/people do, you have to create key pairs. These keys are automatically + stored in /etc/italc, and they are created by this command: + ica -createkeypair -role $role + where $role could be: teacher, admins, other or supporter. + If you don't specify the -role option, the key is automatically created for + role= teacher. + +1.2) Allow specific users to have access to these keys. + + In the next step you must grant access to the users who should later use italc: + + The private key for role=teacher should now be in: + /etc/italc/keys/private/teacher/ + and the public one in + /etc/italc/keys/public/teacher/ + + To allow all users to have access, add them into the group which has the access + rights on this directory. + +1.3) Start ica on all client PC's + + You must verify that all running ica applications have access to the public keys, + so you have to copy them on your own to the machines ica should run on. + + + + -- Patrick Winnertz Wed, 27 Dec 2006 09:18:32 +0100 --- italc-1.0.13.orig/debian/compat +++ italc-1.0.13/debian/compat @@ -0,0 +1 @@ +5 --- italc-1.0.13.orig/debian/italc.desktop +++ italc-1.0.13/debian/italc.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=iTalc master interface +Comment=Computer room overview +Exec=/usr/bin/italc-launcher +Icon=/usr/share/pixmaps/italc.xpm +Terminal=false +Type=Application +StartupNotify=false +Categories=GNOME;KDE;System; +X-Ubuntu-Gettext-Domain=italc --- italc-1.0.13.orig/debian/italc-client.install +++ italc-1.0.13/debian/italc-client.install @@ -0,0 +1,2 @@ +usr/bin/ica /usr/bin/ +../ica-launcher /usr/bin/ --- italc-1.0.13.orig/debian/rules +++ italc-1.0.13/debian/rules @@ -0,0 +1,26 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/dpatch.mk + +DEB_DH_INSTALL_SOURCEDIR = debian/tmp +CPPFLAGS += -I/usr/X11R6/include +DEB_CONFIGURE_EXTRA_FLAGS = --with-linux LDFLAGS=-L/usr/X11R6/lib +DEB_DH_MAKESHLIBS_ARGS += -V +DEB_DH_SHLIBDEPS_ARGS_libitalc = -L libitalc -l debian/libitalc/usr/lib/ + +debian/italc.xpm: ima/data/italc.png + convert -resize 32 $< $@ + +common-install-arch:: debian/italc.xpm + install -D -m 644 debian/italc.xpm debian/italc-client/usr/share/pixmaps/italc.xpm + install -D -m 644 debian/ica.desktop debian/italc-client/etc/xdg/autostart/ica.desktop + install -D -m 644 debian/italc.desktop debian/italc-master/usr/share/applications/italc.desktop + +clean:: + rm -f debian/italc.xpm + rm -f lupus/config.log + rm -f lupus/config.status + rm -f config.log + rm -f config.status --- italc-1.0.13.orig/debian/italc-client.postrm +++ italc-1.0.13/debian/italc-client.postrm @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +if [ "$1" = purge ]; then + rm -rf /etc/italc +fi; + +if [ -f /etc/ltsp_chroot ] && [ -d /usr/share/ldm/rc.d/ ] && [ -f /usr/share/ldm/rc.d/S06-italc ]; then + echo "Removing ldm rc script" + rm /usr/share/ldm/rc.d/S06-italc +fi + +#DEBHELPER# --- italc-1.0.13.orig/debian/ica.desktop +++ italc-1.0.13/debian/ica.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=iTalc client +Comment=iTalc client daemon +Exec=/usr/bin/ica-launcher +Icon=/usr/share/pixmaps/italc.xpm +Terminal=false +Type=Application +StartupNotify=false +Categories=GNOME;KDE;System; +X-Ubuntu-Gettext-Domain=ica --- italc-1.0.13.orig/debian/copyright +++ italc-1.0.13/debian/copyright @@ -0,0 +1,211 @@ +This package was debianized by Steffen Joeris on +Sat, 12 Nov 2005 00:20:36 +0100. + +It was downloaded from http://italc.sourceforge.net/download.php + +Copyright Holders: + +Main Developer: Tobias Doerffel + + +Other Developers: + + Rohit Kumar + Copyright (C) 2005 + List of files: +./ica/x11/rfb/rfb.h +./ica/x11/libvncserver/scale.c +./ica/x11/libvncserver/auth.c +./ica/x11/libvncserver/sockets.c +./ica/x11/libvncserver/rfbserver.c +./common/include/rfb/rfb.h +./common/include/rfb/rfbproto.h + + Dan McGuirk + Copyright (C) 2001 + List of files: +./ica/x11/rfb/rfb.h +./ica/x11/libvncserver/corre.c +./ica/x11/libvncserver/tabletrans24template.c +./ica/x11/libvncserver/rre.c +./ica/x11/libvncserver/scale.c +./ica/x11/libvncserver/tableinittctemplate.c +./ica/x11/libvncserver/tableinitcmtemplate.c +./ica/x11/libvncserver/stats.c +./ica/x11/libvncserver/tableinit24.c +./ica/x11/libvncserver/auth.c +./ica/x11/libvncserver/tabletranstemplate.c +./ica/x11/libvncserver/hextile.c +./ica/x11/libvncserver/translate.c +./ica/x11/libvncserver/sockets.c +./ica/x11/libvncserver/rfbserver.c +./ica/x11/libvncserver/cutpaste.c +./common/include/rfb/rfb.h + + RealVNC Ltd. + Copyright (C) 2002 + List of files: +./ica/x11/rfb/rfb.h +./ica/x11/libvncserver/corre.c +./ica/x11/libvncserver/scale.c +./ica/x11/libvncserver/zrlepalettehelper.c +./ica/x11/libvncserver/zrlepalettehelper.h +./ica/x11/libvncserver/zrletypes.h +./ica/x11/libvncserver/stats.c +./ica/x11/libvncserver/zrleoutstream.c +./ica/x11/libvncserver/zrleoutstream.h +./ica/x11/libvncserver/zrleencodetemplate.c +./ica/x11/libvncserver/zrle.c +./ica/x11/libvncserver/httpd.c +./ica/x11/libvncserver/rfbserver.c +./common/include/rfb/rfb.h + + AT&T Laboratories Cambridge + Copyright (C) 1999 + List of files: +./ica/x11/rfb/rfb.h +./ica/x11/libvncserver/corre.c +./ica/x11/libvncserver/tabletrans24template.c +./ica/x11/libvncserver/rre.ci +./ica/x11/libvncserver/scale.c +./ica/x11/libvncserver/d3des.c +./ica/x11/libvncserver/d3des.h +./ica/x11/libvncserver/tableinittctemplate.c +./ica/x11/libvncserver/tableinitcmtemplate.c +./ica/x11/libvncserver/cursor.c +./ica/x11/libvncserver/stats.c +./ica/x11/libvncserver/tight.c +./ica/x11/libvncserver/tableinit24.c +./ica/x11/libvncserver/auth.c +./ica/x11/libvncserver/tabletranstemplate.c +./ica/x11/libvncserver/hextile.c +./ica/x11/libvncserver/zlib.c +./ica/x11/libvncserver/translate.c +./ica/x11/libvncserver/httpd.c +./ica/x11/libvncserver/vncauth.c +./ica/x11/libvncserver/sockets.c +./ica/x11/libvncserver/rfbserver.c +./ica/x11/libvncserver/cutpaste.c +./common/include/rfb/rfb.h +./common/include/rfb/rfbproto.h +./tightvnc4win_italc.diff + + James "Wez" Weatherall + Copyright (C) 2001 + List of files: +./ica/x11/libvncserver/rfbregion.c + + Johannes E. Schindelin + Copyright (C) 2001 + List of files: +./ica/x11/libvncserver/rfbregion.c +./ica/x11/libvncserver/scale.c +./ica/x11/libvncserver/auth.c +./ica/x11/libvncserver/sockets.c +./ica/x11/libvncserver/rfbserver.c +./common/include/rfb/rfbproto.h + + Sun Microsystems, Inc. + Copyright (C) 2003 + List of files: +./ica/x11/libvncserver/zrlepalettehelper.c +./ica/x11/libvncserver/zrlepalettehelper.h +./ica/x11/libvncserver/zrleoutstream.c +./ica/x11/libvncserver/zrleoutstream.h +./ica/x11/libvncserver/zrleencodetemplate.c +./ica/x11/libvncserver/zrle.c + + Richard Outerbridge + Copyright (C) 1988-1992 + List of files: +./ica/x11/libvncserver/d3des.c +./ica/x11/libvncserver/d3des.h +./common/include/rfb/rfbproto.h + + Constantin Kaplinsky + Copyright (C) 2000,2001 + List of files: +./ica/x11/libvncserver/cursor.c +./ica/x11/libvncserver/tight.c + + Tridia Corporation + Copyright (C) 2000 + List of files: +./ica/x11/libvncserver/zlib.c +./common/include/rfb/rfbproto.h + + Karl J. Runge + Copyright (C) 2004-2006 + List of files: +./ica/x11/x11vnc/tkx11vnc.h +./ica/x11/x11vnc/x11vnc.c +./ica/x11/x11vnc/help.c + + Free Software Foundation, Inc. + Copyright (C) 1989, 1991 + List of files: +./ica/x11/x11vnc/help.c + + The Open Group + Copyright (C) 1987, 1998 + List of files: +./ica/x11/x11vnc/nox11.h + + Markus Franz Xaver + Copyright (C) 2002 + List of files: +./ica/src/lzoconf.h +./ica/src/minilzo.c +./ica/src/minilzo.h + + Johannes Oberhumer + Copyright (C) 2002 + List of files: +./ica/src/lzoconf.h +./ica/src/minilzo.c +./ica/src/minilzo.h + + Joseph Wenniger + Copyright (C) 2001-2003 + List of files: +./ima/src/kmultitabbar.h +./ima/src/kmultitabbar.cpp + + Trolltech ASA + Copyright (C) 1992-2006 + List of files: +./ima/src/3rdparty/qnetworkinterface.h +./ima/src/3rdparty/qnetworkinterface_win.cpp +./ima/src/3rdparty/qnetworkinterface_win_p.h +./ima/src/3rdparty/qnetworkinterface.cpp +./ima/src/3rdparty/qnetworkinterface_p.h +./ima/src/3rdparty/qnetworkinterface_unix.cpp + + Tatu Ylonen + Copyright (C) 1995 + List of files: +./common/src/dsa_key.cpp + + Harakan Software + Copyright (C) 2001 + List of files: +./common/include/rfb/rfbproto.h + + X Consortium + Copyright (C) 1987 + List of files: +./common/include/rfb/keysym.h + +License: + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License, version 2 +as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANDABILITY of FITNESS FOR A PARTICULAR PURPOSE. +See the GNU General Public License for details. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in /usr/share/common-licenses/GPL. --- italc-1.0.13.orig/debian/libitalc.dirs +++ italc-1.0.13/debian/libitalc.dirs @@ -0,0 +1 @@ +usr/lib/italc --- italc-1.0.13.orig/debian/italc-launcher +++ italc-1.0.13/debian/italc-launcher @@ -0,0 +1,229 @@ +#!/usr/bin/python +# coding=UTF-8 + +# iTalc master launcher using avahi +# Written by Stéphane Graber + +from xml.dom import minidom +from hashlib import md5 +import subprocess, re, socket, os, sys, urllib2, gettext, pwd + +# gettext +gettext.textdomain('italc') +_ = gettext.gettext + +# Store the old environment +lang=os.environ["LANG"] + +# Empty config file to use if it doesn't already exist +skeleton=""" + + + + +""" + +try: + confdir=os.environ.get("HOME")+"/.italc/" +except: + sys.exit('Invalid or undefined env variable \"HOME\"') + +try: + file=open("/etc/italc/keys/public/teacher/key","r") + md5_1=md5(file.read()).hexdigest() + file.close() + + file=open("/etc/italc/keys/public/admin/key","r") + md5_2=md5(file.read()).hexdigest() + file.close() + + file=open("/etc/italc/keys/public/supporter/key","r") + md5_3=md5(file.read()).hexdigest() + file.close() +except: + sys.exit('iTalc keys not correctly installed') + +def getLocalIPs(): + "Scan ifconfig output for local IPV4 addresses" + os.environ["LANG"]="C" # Set environ LANG to C + ip=[] + output=subprocess.Popen("ifconfig",stdout=subprocess.PIPE) + output.wait() + for line in output.stdout.readlines(): + line=line.strip() + if line.startswith("inet addr"): + ip.append(line.split(" ")[1].split(":")[1]) + return ip + +def getHostPort(): + isdhost="127.0.0.1" + try: + output=subprocess.Popen(["xprop", "-root", "ICA_PORT"], stdout=subprocess.PIPE).communicate()[0] + isdport=str(int(output.split('=')[1].strip())) + except: + isdport="5800" + + if "LTSP_CLIENT" in os.environ: + xprop=subprocess.Popen(["xprop","-root","ica_ltsp"],stdout=subprocess.PIPE) + xprop.wait() + if xprop.stdout.read().split(" ")[2].strip() == "1": + isdhost=os.environ["LTSP_CLIENT"] + else: + isdport=str(int(os.environ["LTSP_CLIENT"].split(".")[3])+11000) + return [isdhost,isdport] + +def getClusterHosts(): + hosts=[] + if not os.path.exists("/etc/ltsp/getltscfg-cluster.conf") or not "LTSP_CLIENT" in os.environ: + return hosts + conf=open("/etc/ltsp/getltscfg-cluster.conf","r") + for line in conf.readlines(): + if line.startswith("SERVER="): + controlcenter=line.replace("SERVER=","").strip() + conf.close() + if not controlcenter: + return hosts + page=urllib2.urlopen("http://"+controlcenter+"/ltsp-cluster-control/Terminal/TeachTools.php?list/ip="+os.environ["LTSP_CLIENT"]) + for line in page.readlines(): + line=line.strip() + if line and not line.startswith("CLASSROOM"): + ip,mac,username=line.split(",") + try: + gecos=pwd.getpwnam(username).pw_gecos + except: + gecos=username + hosts.append([ip+":5900",0,gecos]) + return hosts + +def getAvahiHosts(): + global local_addr + hosts=[] + if not os.path.exists("/usr/bin/avahi-browse"): + return hosts + client_list=subprocess.Popen(["avahi-browse","-trp","_italc._tcp"],stdout=subprocess.PIPE) + client_list.wait() + for line in client_list.stdout.readlines(): + if line.startswith("="): + try: + param=line.split(";") + comment=re.findall('"(.*)" "(.*)" "(.*)" "(.*)"\n',param[9])[0] + if (comment[1] == md5_1 or comment[2] == md5_2 or comment[3] == md5_3): + if param[7] in local_addr: + param[7]="127.0.0.1" + host=[param[7]+":"+param[8],1,comment[0]] + if host not in hosts: + hosts.append(host) + except: + print 'Ignoring a client, invalid data received' + return hosts + +if not os.access("/etc/italc/keys/private/teacher/key",os.R_OK): + md5_1="0" + if not os.access("/etc/italc/keys/private/admin/key",os.R_OK): + md5_2="0" + if not os.access("/etc/italc/keys/private/supporter/key",os.R_OK): + md5_3="0" + access="none" + else: + access="supporter" + else: + access="admin" +else: + access="teacher" + +local_addr=getLocalIPs() +isdhost,isdport=getHostPort() + +# Whether to use avahi autodetection. Defaults to true +autodetect_clients=not subprocess.Popen(["sh", "-c", ". /etc/italc/italc.conf >/dev/null 2>&1 && echo $AUTODETECT_CLIENTS"], stdout=subprocess.PIPE).communicate()[0].strip().upper() in ["FALSE", "F", "0"] + +if autodetect_clients: + try: + xmldoc=minidom.parse(confdir+"globalconfig.xml") + body=xmldoc.getElementsByTagName("globalclientconfig")[0].getElementsByTagName("body")[0] + classrooms=body.getElementsByTagName("classroom") + except: + mkdir=subprocess.Popen(["mkdir","-p",confdir]) + mkdir.wait() + try: + config=open(confdir+"globalconfig.xml","w+") + config.write(skeleton) + config.close() + except: + sys.exit('Unable to write to config file') + xmldoc=minidom.parse(confdir+"globalconfig.xml") + body=xmldoc.getElementsByTagName("globalclientconfig")[0].getElementsByTagName("body")[0] + classrooms=body.getElementsByTagName("classroom") + + # Scan for an existing classroom and delete it + for classroom in classrooms: + if classroom.getAttribute("name") == _("Auto-detected computers"): + body.removeChild(classroom) + + # Create the Auto-detected computers classroom + avahi=xmldoc.createElement("classroom") + avahi.setAttribute("name",_("Auto-detected computers")) + avahi.setAttribute("forcevisible","yes") + body.appendChild(avahi) + + # Add computers to the classroom + clients=sorted(getAvahiHosts()+getClusterHosts(), reverse=True) + count=0 + + if isdhost not in local_addr: + local_addr=[isdhost] + + for client in clients: + try: + line=client[0] + host,port=line.split(":") + if (host in local_addr and str(int(isdport)+100) == port): + continue + + # Do not perform some checks when in ltsp-cluster environment + if client[1] == 1: + # Make sure we have a running VNC server + connection=socket.socket(socket.AF_INET,socket.SOCK_STREAM) + connection.connect((host,int(port))) + connection.close() + + # Get MAC address + mac=subprocess.Popen(("arp", host, "-n", "-a"),stdout=subprocess.PIPE) + mac.wait() + mac=mac.stdout.read().strip().split(" ")[3] + if not re.match("^..:..:..:..:..:..$",mac): + mac="" + else: + mac="" #FIXME: This should be retrieved from the control-center (along with the username) + + # Generate the name + if client[2] != '': + name=client[2] + else: + name="client "+str(count) + + # Generate the new node + client=xmldoc.createElement("client") + client.setAttribute("id",str(count)) + client.setAttribute("localip",host+":"+port) + client.setAttribute("mac",mac) + client.setAttribute("name",name) + client.setAttribute("type","0") + avahi.appendChild(client) + count+=1 + except: + print 'Ignoring a client, invalid data received' + + try: + file=open(confdir+"globalconfig.xml","w") + file.write(xmldoc.documentElement.toxml( "utf-8")) + file.close() + except: + exit('Failed to save updated config') + +print "Starting italc as "+access+" ("+isdhost+":"+isdport+")" + +# Restore environment +os.environ["LANG"]=lang + +subprocess.Popen(["italc","-isdport",isdport,"-isdhost",isdhost,"-role",access]) --- italc-1.0.13.orig/debian/libitalc.install +++ italc-1.0.13/debian/libitalc.install @@ -0,0 +1 @@ +usr/lib/italc/libitalc_core.so usr/lib/italc/ --- italc-1.0.13.orig/debian/italc-client.manpages +++ italc-1.0.13/debian/italc-client.manpages @@ -0,0 +1 @@ +ica/ica.1 --- italc-1.0.13.orig/debian/patches/14_fix-format-string.patch +++ italc-1.0.13/debian/patches/14_fix-format-string.patch @@ -0,0 +1,17 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 14_fix-format-string.patch by Felix Geyer +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix FTBFS with -Werror=format-security + +--- italc-1.0.13.orig/ima/src/classroom_manager.cpp ++++ italc-1.0.13/ima/src/classroom_manager.cpp +@@ -428,7 +428,7 @@ + QString xml = "\n" + doc.toString( 2 ); + if( MainWindow::ensureConfigPathExists() == FALSE ) + { +- qWarning( QString( "Could not read/write or create directory " ++ qWarning( "%s", QString( "Could not read/write or create directory " + "%1! For running iTALC, make sure you " + "have write-access to your home-" + "directory and to %1 (if already " --- italc-1.0.13.orig/debian/patches/02_forcevisible.patch +++ italc-1.0.13/debian/patches/02_forcevisible.patch @@ -0,0 +1,26 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_forcevisible.patch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add a forcevisible one-time option to the .xml + +@DPATCH@ +diff -Nrup ../../orig/ima/src/classroom_manager.cpp ../ima/src/classroom_manager.cpp +--- ../../orig/ima/src/classroom_manager.cpp 2008-04-17 23:02:23.000000000 +0200 ++++ ../ima/src/classroom_manager.cpp 2008-04-25 00:11:41.000000000 +0200 +@@ -719,7 +719,14 @@ void classroomManager::loadTree( classRo + _parent_item, + getMainWindow(), + e.attribute( "id" ).toInt() ); +- c->hide(); ++ if( _parent_element.attribute("forcevisible") == "yes" ) ++ { ++ c->show(); ++ } ++ else ++ { ++ c->hide(); ++ } + ++items_at_zero_pos; + } + else --- italc-1.0.13.orig/debian/patches/01_simplify_ui.patch +++ italc-1.0.13/debian/patches/01_simplify_ui.patch @@ -0,0 +1,34 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_simplify_ui.patch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Remove the tryicon from ICA and hide info-bubble by default + +@DPATCH@ +diff -Nrup ../../italc-1.0.9-rc1.orig/ima/src/tool_button.cpp ../ima/src/tool_button.cpp +--- ../../italc-1.0.9-rc1.orig/ima/src/tool_button.cpp 2008-04-30 16:43:15.000000000 +0200 ++++ ../ima/src/tool_button.cpp 2008-05-09 20:07:41.000000000 +0200 +@@ -42,7 +42,7 @@ + const int MARGIN = 10; + const int ROUNDED = 2000; + +-bool toolButton::s_toolTipsDisabled = FALSE; ++bool toolButton::s_toolTipsDisabled = TRUE; + bool toolButton::s_iconOnlyMode = FALSE; + + +diff -Nrup ../../italc-1.0.9-rc1.orig/lib/include/qt_features.h ../lib/include/qt_features.h +--- ../../italc-1.0.9-rc1.orig/lib/include/qt_features.h 2007-11-24 21:06:10.000000000 +0100 ++++ ../lib/include/qt_features.h 2008-05-09 20:08:20.000000000 +0200 +@@ -35,9 +35,9 @@ + + #else + +-#ifdef BUILD_ICA ++/*#ifdef BUILD_ICA + #define SYSTEMTRAY_SUPPORT +-#endif ++#endif*/ + + #ifdef BUILD_LINUX + #define NATIVE_VIRTUAL_KEY_SUPPORT --- italc-1.0.13.orig/debian/patches/04_autoarrange.patch +++ italc-1.0.13/debian/patches/04_autoarrange.patch @@ -0,0 +1,51 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_autoarrange.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Auto-arrange windows when more than one is at 0;0 + +@DPATCH@ +Index: ../ima/src/classroom_manager.cpp +=================================================================== +--- ../ima/src/classroom_manager.cpp (Revision 401) ++++ ../ima/src/classroom_manager.cpp (Arbeitskopie) +@@ -77,6 +77,7 @@ inline T roundCorrect( T _val ) + + + const int widths[] = { 128, 192, 256, 320, 384, 448, 512, 0 }; ++int items_at_zero_pos = 0; + + + +@@ -719,6 +720,7 @@ void classroomManager::loadTree( classRo + getMainWindow(), + e.attribute( "id" ).toInt() ); + c->hide(); ++ ++items_at_zero_pos; + } + else + { +@@ -733,6 +735,10 @@ void classroomManager::loadTree( classRo + e.attribute( "y" ).toInt() ); + c->m_rasterX = e.attribute( "x" ).toInt(); + c->m_rasterY = e.attribute( "y" ).toInt(); ++ if( c->m_rasterX != 0 || c->m_rasterY != 0 ) ++ { ++ --items_at_zero_pos; ++ } + c->setFixedSize( e.attribute( "w" ).toInt(), + e.attribute( "h" ).toInt() ); + +@@ -982,6 +988,12 @@ void classroomManager::updateClients( vo + cl->update(); + } + ++ if ( items_at_zero_pos > 1 ) ++ { ++ arrangeWindows(); ++ items_at_zero_pos = 0; ++ } ++ + QTimer::singleShot( m_clientUpdateInterval * 1000, this, + SLOT( updateClients() ) ); + } --- italc-1.0.13.orig/debian/patches/06_fix-ftbfs.patch +++ italc-1.0.13/debian/patches/06_fix-ftbfs.patch @@ -0,0 +1,17 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06_fix-ftbfs.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix FTBFS on karmic + +@DPATCH@ +--- ../../orig/lib/include/types.h ++++ ../lib/include/types.h +@@ -22,6 +22,7 @@ + * + */ + ++#include + #ifndef _TYPES_H + #define _TYPES_H + --- italc-1.0.13.orig/debian/patches/10_fix-lock.patch +++ italc-1.0.13/debian/patches/10_fix-lock.patch @@ -0,0 +1,17 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 10_fix-lock.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Make sure the lock window is on top of the others + +@DPATCH@ +--- ../../orig/lib/src/lock_widget.cpp ++++ ../lib/src/lock_widget.cpp +@@ -68,6 +68,7 @@ + m_sysKeyTrapper.disableAllKeys( TRUE ); + setWindowTitle( tr( "screen lock" ) ); + setWindowIcon( QIcon( ":/resources/icon32.png" ) ); ++ setWindowFlags( Qt::Popup ); + setCursor( Qt::BlankCursor ); + showFullScreen(); + move( 0, 0 ); --- italc-1.0.13.orig/debian/patches/07_ica-auto-respawn.patch +++ italc-1.0.13/debian/patches/07_ica-auto-respawn.patch @@ -0,0 +1,29 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 07_ica-auto-respawn.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Respawn ICA when crashed + +@DPATCH@ +--- ../../orig/ica/src/ivs.cpp ++++ ../ica/src/ivs.cpp +@@ -180,18 +180,7 @@ + p.setProcessChannelMode( QProcess::ForwardedChannels ); + p.start( QCoreApplication::applicationFilePath() + + " -rx11vs " + cmdline.join( " " ) ); +- m_restart = FALSE; +- while( p.state() != QProcess::NotRunning ) +- { +- sleep( 1 ); +- if( m_restart ) +- { +- p.terminate(); +- sleep( 1 ); +- p.kill(); +- break; +- } +- } ++ p.waitForFinished(-1); + } + return; + } --- italc-1.0.13.orig/debian/patches/00list +++ italc-1.0.13/debian/patches/00list @@ -0,0 +1,13 @@ +01_simplify_ui.patch +04_autoarrange.patch +02_forcevisible.patch +03_username.patch +05_fixdemo.patch +06_fix-ftbfs.patch +07_ica-auto-respawn.patch +08_fix-reboot.patch +09_maximize-default.patch +10_fix-lock.patch +12_dbus_gnome.patch +13_fix-multiarch.patch +14_fix-format-string.patch --- italc-1.0.13.orig/debian/patches/05_fixdemo.patch +++ italc-1.0.13/debian/patches/05_fixdemo.patch @@ -0,0 +1,58 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 05_fixdemo.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix demo mode when using remote ISD + +@DPATCH@ +diff -Nrup ../../orig/ica/src/isd_server.cpp ../ica/src/isd_server.cpp +--- ../../orig/ica/src/isd_server.cpp 2008-07-06 16:24:58.000000000 -0400 ++++ ../ica/src/isd_server.cpp 2008-10-12 23:26:54.000000000 -0400 +@@ -256,7 +256,10 @@ int isdServer::processClient( socketDisp + } + else + { +- action = port; ++ if ( port.split(":").size() == 3 ) ++ action = port.split(":")[1]+":"+port.split(":")[2]; ++ else ++ action = port; + } + break; + } +diff -Nrup ../../orig/ima/src/client.cpp ../ima/src/client.cpp +--- ../../orig/ima/src/client.cpp 2008-06-26 08:18:29.000000000 -0400 ++++ ../ima/src/client.cpp 2008-10-12 19:45:10.000000000 -0400 +@@ -52,12 +52,13 @@ const int TITLE_HEIGHT = 23; + const QPoint CONTENT_OFFSET( DECO_WIDTH, DECO_WIDTH + TITLE_HEIGHT ); + const QSize CONTENT_SIZE_SUB( 2*DECO_WIDTH, 2*DECO_WIDTH + TITLE_HEIGHT ); + ++extern QString __isd_host; + + // resolve static symbols... + QHash client::s_clientIDs; + + bool client::s_reloadSnapshotList = FALSE; +- ++QString demohost; + + class closeButton : public QWidget + { +@@ -1244,8 +1245,16 @@ void updateThread::update( void ) + i.second.toString() ); + break; + case Cmd_StartDemo: ++ if ( __isd_host != "127.0.0.1" ) ++ { ++ demohost=__isd_host + ":" + i.second.toList()[0].toString(); ++ } ++ else ++ { ++ demohost=i.second.toList()[0].toString(); ++ } + m_client->m_connection->startDemo( +- i.second.toList()[0].toString(), ++ demohost, + i.second.toList()[1].toInt() ); + break; + case Cmd_StopDemo: --- italc-1.0.13.orig/debian/patches/12_dbus_gnome.patch +++ italc-1.0.13/debian/patches/12_dbus_gnome.patch @@ -0,0 +1,40 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 11_fix_dbus_gnome.patch by Alkis Georgopoulos +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix shutdown/reboot/logout with gnome using DBUS calls + +@DPATCH@ +=== modified file 'ica/src/local_system_ica.cpp' +--- ../ica/src/local_system_ica.cpp 2009-12-03 18:17:01 +0000 ++++ ../ica/src/local_system_ica.cpp 2009-12-03 18:17:25 +0000 +@@ -449,8 +449,7 @@ + } + else + { +- QProcess::startDetached( "gdm-signal -h" ); // Gnome shutdown +- QProcess::startDetached( "gnome-session-save --silent --kill" ); // Gnome logout ++ QProcess::startDetached( "dbus-send --session --dest=org.gnome.SessionManager --type=method_call --print-reply --reply-timeout=2000 /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown" ); // Gnome shutdown + QProcess::startDetached( "dcop ksmserver ksmserver logout 0 2 0" ); // KDE shutdown + } + #endif +@@ -464,7 +463,7 @@ + #ifdef BUILD_WIN32 + ExitWindowsEx( EWX_LOGOFF | SHUTDOWN_FLAGS, SHUTDOWN_REASON ); + #else +- QProcess::startDetached( "gnome-session-save --silent --kill" ); // Gnome logout ++ QProcess::startDetached( "dbus-send --session --dest=org.gnome.SessionManager --type=method_call --print-reply --reply-timeout=2000 /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1" ); // Gnome logout, 1 = No confirmation inferface should be shown. + QProcess::startDetached( "dcop ksmserver ksmserver logout 0 0 0" ); // KDE logout + #endif + } +@@ -491,8 +490,7 @@ + } + else + { +- QProcess::startDetached( "gdm-signal -r" ); // Gnome reboot +- QProcess::startDetached( "gnome-session-save --silent --kill" ); // Gnome logout ++ QProcess::startDetached( "dbus-send --session --dest=org.gnome.SessionManager --type=method_call --print-reply --reply-timeout=2000 /org/gnome/SessionManager org.gnome.SessionManager.RequestReboot" ); // Gnome reboot + QProcess::startDetached( "dcop ksmserver ksmserver logout 0 1 0" ); // KDE reboot + } + #endif + --- italc-1.0.13.orig/debian/patches/08_fix-reboot.patch +++ italc-1.0.13/debian/patches/08_fix-reboot.patch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 08_fix-reboot.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Respawn ICA when crashed + +@DPATCH@ +--- ../../orig/ica/src/local_system_ica.cpp ++++ ../ica/src/local_system_ica.cpp +@@ -487,7 +487,7 @@ + #else + if( currentUser() == "root (root)" ) + { +- QProcess::startDetached( "poweroff" ); ++ QProcess::startDetached( "reboot" ); + } + else + { --- italc-1.0.13.orig/debian/patches/13_fix-multiarch.patch +++ italc-1.0.13/debian/patches/13_fix-multiarch.patch @@ -0,0 +1,23 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 13_fix-multiarch.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix FTBFS with multiarch (ugly hack to configure) + +@DPATCH@ +=== modified file 'configure' +--- ../../orig/configure 2011-02-23 16:19:50 +0000 ++++ ../configure 2011-09-14 02:04:06 +0000 +@@ -16299,7 +16299,10 @@ + if test "x$QT_LIBS" = x; then + QT_LIBS=`ls $QTDIR/lib/libQt*.so 2> /dev/null` + if test "x$QT_LIBS" = x; then +- as_fn_error $? "*** Couldn't find any Qt4 libraries" "$LINENO" 5 ++ QT_LIBS=`ls $QTDIR/lib/*/libQt*.so* 2> /dev/null` ++ if test "x$QT_LIBS" = x; then ++ as_fn_error $? "*** Couldn't find any Qt4 libraries" "$LINENO" 5 ++ fi + fi + QT_LIB="-L$QTDIR/lib -L$QTDIR/lib/qt4" + else + --- italc-1.0.13.orig/debian/patches/03_username.patch +++ italc-1.0.13/debian/patches/03_username.patch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_username.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Remove ,,, from the gecos + +@DPATCH@ +diff -Nrup ../../../package/italc-1.0.9-rc3/ica/src/local_system_ica.cpp ../ica/src/local_system_ica.cpp +--- ../../../package/italc-1.0.9-rc3/ica/src/local_system_ica.cpp 2008-04-02 14:22:11.000000000 +0200 ++++ ../ica/src/local_system_ica.cpp 2008-06-13 14:54:53.000000000 +0200 +@@ -388,7 +388,7 @@ QString currentUser( void ) + } + + return( QString( "%1 (%2)" ). +- arg( QString::fromUtf8( pw_entry->pw_gecos ) ). ++ arg( QString::fromUtf8( pw_entry->pw_gecos ).replace( ",,,", "" ) ). + arg( QString::fromUtf8( pw_entry->pw_name ) ) ); + } + #endif --- italc-1.0.13.orig/debian/patches/09_maximize-default.patch +++ italc-1.0.13/debian/patches/09_maximize-default.patch @@ -0,0 +1,20 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 09_maximize-default.patch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Maximize iTalc by default + +@DPATCH@ +=== modified file '../ima/src/classroom_manager.cpp' +--- ../ima/src/classroom_manager.cpp 2011-02-23 21:15:48 +0000 ++++ ../ima/src/classroom_manager.cpp 2011-02-23 21:16:39 +0000 +@@ -916,6 +916,8 @@ + void classroomManager::setDefaultWindowsSizeAndPosition( void ) + { + mainWindow()->resize( DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT ); ++ mainWindow()->setWindowState( mainWindow()->windowState() | ++ Qt::WindowMaximized ); + mainWindow()->move( QPoint( 0, 0 ) ); + } + +