File italc.spec of Package italc
#
# spec file for package italc
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: italc
Version: 3.0.3
Release: 1
License: GPL-2.0
Summary: Didactical monitoring software for Linux-networks
Url: http://italc.sourceforge.net/
Group: Productivity/Networking/Other
BuildRequires: automake
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: java-devel
BuildRequires: libjpeg-devel
BuildRequires: libstdc++-devel
BuildRequires: make
BuildRequires: openssl
BuildRequires: openssl-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: zlib-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: libqt5-linguist-devel
BuildRequires: wvstreams-devel
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
Requires: gpg2
Requires: avahi-utils
Requires(pre): pwdutils
Source4: italc.firewall2
Source7: italc-README.SuSE
#
# standard source and patch files
#
Source: %{name}-%{version}.tar.gz
Source2: italc-start_ica
Source3: italc.sysconfig
Source5: ica-autostart.desktop
Source6: italc-launcher
Source8: italc.desktop
Source9: italc-rpmlintrc
Source10: italc-imc.1.gz
Patch0: QtSlaveLauncher_fix_build_for_Qt56.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define italcgrp italc
%description
iTALC is a powerful software for Linux-networks, which was especially developed
for working with computers in school. But it can be also used in other
learning-environments. iTALC is a software for teachers using the computer
as didactical tool in their lessons. It aims to be a complete replacement for
expensive commercial software like MasterEye (tm).
iTALC makes it possible, to access and influence the pupils activities from the
computer of the teacher. This way iTALC supports the work with modern
equipment in school.
For example the teacher is able to see the content of the pupils screens on his
screen. If a student needs help, the teacher can access his desktop and
give support while sitting in front of his computer. The pupil can watch all
activities, the teacher is doing on his desktop. So the he can learn new
processes.
If you want to teach the pupils completely new stuff, you can switch into
demo-mode. Then all pupils see what the teacher is doing/demonstrating.
It's also possible to let a pupil demonstrate something by redirecting his
screen to all screens of the other pupils.
iTALC provides even more features for controlling the pupils computers.
For example you can lock all screens, so that the pupils can't continue their
work and are forced to turn their attention to the teacher. You can also kill
games or internet-browsers, if these things are not part of the lesson.
But there are also some nice features for administrators, making the
administration of the computers much easier and more comfortable. For example
you can execute one or more commands on every computer without sitting in front
of every computer and typing these comands. The execution of X-applications
(e.g. Star/OpenOffice-Setup) on all clients with redirection to the local
admin-computer is also part of iTALC's featurelist. Furthermore you can
shutdown and restart the computers per remote control. If the computers support
Wake-on-LAN, it's also possible to turn on all computers from a central place.
Author:
-------
Tobias Doerfel
%package client
Summary: Software for iTALC-clients
Group: Productivity/Networking/Other
Requires: italc = %{version}
Requires(pre): perl
Requires(pre): xorg-x11
Requires(pre): %fillup_prereq
Requires(pre): %insserv_prereq
Requires(pre): permissions
%description client
This package contains the software, needed by iTALC-clients.
See /usr/share/doc/packages/italc/README.SuSE for details on how to install
and setup iTALC in your network.
Author:
-------
Tobias Doerfel
%package master
Summary: Software for iTALC-masters
Group: Productivity/Networking/Other
Requires(pre): coreutils
Requires(pre): italc = %{version}
Requires(pre): italc-client = %{version}
%description master
This package contains the software, needed by iTALC-master-computers.
See /usr/share/italc/doc/INSTALL for details on how to install and setup iTALC
in your network.
Author:
-------
Tobias Doerfel
%prep
%setup -q
%patch0 -p0
%build
##export SUSE_ASNEEDED=0
mkdir build
cd build
cmake ../ \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
-DCMAKE_C_FLAGS="%{optflags} -fpic -fPIC" \
-DCMAKE_CXX_FLAGS="%{optflags} -fpic -fPIC"
%install
cd build
%make_install
cd ..
# create the directories containing the auth-keys
mkdir -p %{buildroot}%{_sysconfdir}/italc/keys/{private,public}/{teacher,admin,supporter,other}
# create pseudo key files so RPM can own them (ghost files)
for role in admin supporter teacher; do
touch %{buildroot}%{_sysconfdir}/italc/keys/{private,public}/$role/key
done
# create the initial config
mkdir -p "%{buildroot}%{_sysconfdir}/settings/iTALC Solutions"
cat > "%{buildroot}%{_sysconfdir}/settings/iTALC Solutions/iTALC.conf" << EOF
[Authentication]
LogonAuthenticationEnabled=0
KeyAuthenticationEnabled=1
PublicKeyBaseDir=%{_sysconfdir}/italc/keys/public
PrivateKeyBaseDir=%{_sysconfdir}/italc/keys/private
LogonGroups=
PermissionRequiredWithKeyAuthentication=0
PermissionRequiredWithLogonAuthentication=0
SameUserConfirmationDisabled=0
[DemoServer]
Backend=0
Multithreaded=1
[Logging]
LimittedLogFileSize=0
LogFileDirectory=\$TEMP
LogFileSizeLimit=-1
LogLevel=4
LogToStdErr=1
LogToWindowsEventLog=0
[Network]
CoreServerPort=11100
DemoServerPort=11400
FirewallExceptionEnabled=1
HttpServerEnabled=0
HttpServerPort=5800
[Service]
Arguments=
Autostart=1
HideTrayIcon=0
[VNC]
CaptureLayeredWindows=0
LowAccuracy=1
PollFullScreen=1
[Paths]
PersonalConfiguration=\$APPDATA/PersonalConfig.xml
GlobalConfiguration=\$APPDATA/GlobalConfig.xml
SnapshotDirectory=\$APPDATA/Snapshots
EOF
# install manpages
mkdir -p %{buildroot}%{_mandir}/man1
install -m644 ./ica/ica.1 %{buildroot}%{_mandir}/man1/
install -m644 ./ima/italc.1 %{buildroot}%{_mandir}/man1/
install -m644 %{SOURCE10} %{buildroot}%{_mandir}/man1/imc.1.gz
# install start script for ica client
install -D -m755 %{SOURCE2} %{buildroot}%{_bindir}/start-ica
install -D -m644 %{SOURCE5} %{buildroot}%{_sysconfdir}/xdg/autostart/ica-autostart.desktop
install -D -m755 %{SOURCE6} %{buildroot}%{_bindir}/italc-launcher
# icon for the desktop file
install -Dm644 ima/data/italc.png %{buildroot}%{_datadir}/pixmaps/italc.png
#
# Distribution specific
#
# configuration for ica
install -D -m644 %{SOURCE3} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.ica
# install firewall definitions
# see http://en.opensuse.org/SuSEfirewall2/Service_Definitions_Added_via_Packages
# for details
install -D -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/italc
#
# install desktop file
#
install -Dm644 %{SOURCE8} %{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file %{name}
#
# install README.SuSE
#
install -m644 %{SOURCE7} README.SuSE
%post
if
getent group %italcgrp >/dev/null
then
: OK group %italcgrp already present
else
groupadd -r %italcgrp 2>/dev/null || :
fi
%post client
%{fillup_only -n ica}
# remove old entries (italc-client < 1.0.8.992
if grep -qw /etc/init.d/italc /etc/X11/xdm/Xsetup 2>/dev/null; then
sed -i "s@.*/etc/init.d/italc start.*@@g" /etc/X11/xdm/Xsetup
fi
if grep -qw /etc/init.d/ica /etc/X11/xdm/Xsetup 2>/dev/null; then
sed -i "s@.*/etc/init.d/ica start.*@@g" /etc/X11/xdm/Xsetup
fi
%post master
# dont run scripts on update
if [ ${1:-0} -lt 2 ]; then
for role in admin supporter teacher; do
if [ ! -f "%{_sysconfdir}/italc/keys/private/$role/key" ]; then
/usr/bin/imc -role $role -createkeypair "%{_sysconfdir}/italc/keys" >/dev/null
chgrp %italcgrp "%{_sysconfdir}/italc/keys/private/$role/key"
chmod 0440 "%{_sysconfdir}/italc/keys/private/$role/key"
fi
done
fi
%files
%defattr(-,root,root)
%doc contrib doc/* AUTHORS COPYING README*
%{_datadir}/italc/
%dir %{_sysconfdir}/italc
%dir %{_sysconfdir}/italc/keys
%dir %{_sysconfdir}/italc/keys/public
%dir %{_sysconfdir}/italc/keys/public/teacher
%dir %{_sysconfdir}/italc/keys/public/admin
%dir %{_sysconfdir}/italc/keys/public/supporter
%dir %{_sysconfdir}/italc/keys/public/other
%dir %{_sysconfdir}/settings
%dir "%{_sysconfdir}/settings/iTALC Solutions"
%ghost %config(missingok,noreplace) %{_sysconfdir}/italc/keys/public/*/key
%config(missingok,noreplace) "%{_sysconfdir}/settings/iTALC Solutions/iTALC.conf"
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/italc
%files client
%defattr(-,root,root)
%doc %{_mandir}/man1/ica.1*
%doc %{_mandir}/man1/imc.1*
%{_bindir}/ica
%{_bindir}/start-ica
%{_bindir}/imc
%attr(755,root,root) %{_bindir}/italc_auth_helper
%dir %{_libdir}/italc
%{_libdir}/italc/libItalcCore.so
%config %{_sysconfdir}/xdg/autostart/ica-autostart.desktop
%doc README.SuSE
%{_localstatedir}/adm/fillup-templates/sysconfig.ica
%files master
%defattr(-,root,root)
%{_bindir}/italc
%{_bindir}/italc-launcher
%doc %{_mandir}/man1/italc.1*
%{_datadir}/applications/italc.desktop
#{_datadir}/icons/italc.*
%{_datadir}/pixmaps/italc.*
%dir %{_sysconfdir}/italc/keys/private
%defattr(0440,root,%italcgrp,0750)
%dir %{_sysconfdir}/italc/keys/private/teacher
%dir %{_sysconfdir}/italc/keys/private/admin
%dir %{_sysconfdir}/italc/keys/private/supporter
%dir %{_sysconfdir}/italc/keys/private/other
%ghost %config(missingok,noreplace) %{_sysconfdir}/italc/keys/private/*/key
%changelog