:: /̣
: italc2
Sources Gear Bugs and FR Repocop
: italc2-alt-all.patch
CMakeLists.txt | 44 ++-
cmake/modules/FindIcotool.cmake | 42 +++
cmake/modules/FreedesktopIconsMacros.cmake | 439 +++++++++++++++++++++++++++++
cmake/modules/MacroProcessManpages.cmake | 83 ++++++
ica/CMakeLists.txt | 3 +
ica/helpers/CMakeLists.txt | 3 +
ica/helpers/man/italc_auth_helper.1 | 28 ++
ica/ica.1 | 70 -----
ica/man/ica.1 | 101 +++++++
ica/src/ItalcVncServer.cpp | 2 +-
ima/CMakeLists.txt | 12 +
ima/data/italc.desktop.in | 7 +-
ima/italc.1 | 35 ---
ima/man/italc.1 | 32 +++
imc/CMakeLists.txt | 12 +
imc/man/imc.1 | 71 +++++
lib/resources/ru.qm | Bin 77301 -> 77313 bytes
lib/resources/ru.ts | 2 +-
18 files changed, 875 insertions(+), 111 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71d86f0..0a5044f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
PROJECT(italc)
@@ -16,6 +16,12 @@ INCLUDE(CheckIncludeFiles)
INCLUDE(CheckFunctionExists)
INCLUDE(FindPkgConfig)
INCLUDE(Qt4Hacks)
+INCLUDE(GNUInstallDirs)
+INCLUDE(MacroProcessManpages)
+IF(UNIX)
+ # installing Freedesktop icons only for UNIX
+ INCLUDE(FreedesktopIconsMacros)
+ENDIF(UNIX)
SET(VERSION_MAJOR "2")
SET(VERSION_MINOR "0")
@@ -81,6 +87,7 @@ CHECK_INCLUDE_FILES(linux/fb.h ITALC_HAVE_LINUX_FB_H)
CHECK_INCLUDE_FILES(linux/input.h ITALC_HAVE_LINUX_INPUT_H)
CHECK_INCLUDE_FILES(linux/uinput.h ITALC_HAVE_LINUX_UINPUT_H)
CHECK_INCLUDE_FILES(linux/videodev.h ITALC_HAVE_LINUX_VIDEODEV_H)
+CHECK_INCLUDE_FILES(linux/videodev2.h ITALC_HAVE_LINUX_VIDEODEV2_H)
IF(NOT ITALC_BUILD_WIN32)
FIND_PACKAGE(PAM REQUIRED)
@@ -221,12 +228,45 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/lib/include ${ZLIB_I
LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_BINARY_DIR}/lib)
LINK_LIBRARIES(${QT_LIBRARIES} ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${OPENSSL_LIBRARIES})
+IF(DEFINED CMAKE_INSTALL_DATADIR)
+ SET(
+ DESKTOP_FILES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/applications"
+ CACHE PATH
+ "Install location for .desktop files (relative to prefix)."
+ )
+ MARK_AS_ADVANCED(DESKTOP_FILES_DIR)
+ INSTALL(
+ FILES ${CMAKE_BINARY_DIR}/ima/data/italc.desktop
+ DESTINATION ${DESKTOP_FILES_INSTALL_DIR}
+ )
+ENDIF(DEFINED CMAKE_INSTALL_DATADIR)
+
# make sub-directories
ADD_SUBDIRECTORY(lib)
ADD_SUBDIRECTORY(ica)
ADD_SUBDIRECTORY(ima)
ADD_SUBDIRECTORY(imc)
+# doc files
+LIST(APPEND italc_DOC_FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS"
+ "${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog"
+ "${CMAKE_CURRENT_SOURCE_DIR}/COPYING"
+ "${CMAKE_CURRENT_SOURCE_DIR}/INSTALL"
+ "${CMAKE_CURRENT_SOURCE_DIR}/README"
+ "${CMAKE_CURRENT_SOURCE_DIR}/README.LZO"
+ "${CMAKE_CURRENT_SOURCE_DIR}/TODO"
+)
+
+# doc dirs
+LIST(APPEND italc_DOC_DIRS
+ "${CMAKE_CURRENT_SOURCE_DIR}/doc"
+)
+
+# install docs
+INSTALL(FILES ${italc_DOC_FILES} DESTINATION "${CMAKE_INSTALL_FULL_DOCDIR}")
+INSTALL(DIRECTORY ${italc_DOC_DIRS} DESTINATION "${CMAKE_INSTALL_FULL_DOCDIR}")
+
INSTALL()
#
@@ -298,6 +338,8 @@ MESSAGE("\n"
"iTALC build summary\n"
"--------------------\n"
"* Install prefix : ${CMAKE_INSTALL_PREFIX}\n"
+"* Docs dir : ${CMAKE_INSTALL_DOCDIR}\n"
+"* Man pages dir : ${CMAKE_INSTALL_MANDIR}\n"
"* Build type : ${CMAKE_BUILD_TYPE}\n"
"* Platform : ${CMAKE_SYSTEM_PROCESSOR} (${Machine})\n"
"* Builtin JavaViewer support : ${STATUS_JAVA}\n"
diff --git a/cmake/modules/FindIcotool.cmake b/cmake/modules/FindIcotool.cmake
new file mode 100644
index 0000000..d6566f6
--- /dev/null
+++ b/cmake/modules/FindIcotool.cmake
@@ -0,0 +1,42 @@
+#
+# - Find icotool
+# This module looks for icotool. This module defines the
+# following values:
+# ICOTOOL_EXECUTABLE: the full path to the icotool tool.
+# ICOTOOL_FOUND: True if icotool has been found.
+#
+
+#=============================================================================
+# Copyright (c) 2012, Aleksey Avdeev <solo@altlinux.ru>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+INCLUDE(FindCygwin)
+
+FIND_PROGRAM(ICOTOOL_EXECUTABLE
+ icotool
+ ${CYGWIN_INSTALL_PATH}/bin
+ /bin
+ /usr/bin
+ /usr/local/bin
+ /sbin
+ /usr/sbin
+ /usr/local/sbin
+)
+
+# handle the QUIETLY and REQUIRED arguments and set ICOTOOL_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Icotool DEFAULT_MSG ICOTOOL_EXECUTABLE)
+
+MARK_AS_ADVANCED(
+ ICOTOOL_EXECUTABLE
+)
diff --git a/cmake/modules/FreedesktopIconsMacros.cmake b/cmake/modules/FreedesktopIconsMacros.cmake
new file mode 100644
index 0000000..bb48f6d
--- /dev/null
+++ b/cmake/modules/FreedesktopIconsMacros.cmake
@@ -0,0 +1,439 @@
+#
+# - Define freedesktop.org standard for icons installation
+# Provides icons install variables as defined freedesktop.org standards:
+# http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
+# The module defines the following variables:
+# CMAKE_FREEDESKTOP_ICONS_THEMENAME - icons theme name (hicolor)
+# CMAKE_FREEDESKTOP_ICONS_CONTEXTNAME - icons context name (apps)
+# CMAKE_FREEDESKTOP_ICONS_SIZE - icons size (auto)
+# Inclusion of this module defines the following variables:
+# CMAKE_INSTALL_FREEDESKTOP_ICONS_<dir> - destination for files of
+# a given type
+# CMAKE_INSTALL_FREEDESKTOP_ICONS_FULL_<dir> - corresponding absolute path
+# where <dir> is one of:
+# BASE - freedesktop icons theme dir (DATAROOTDIR/icons)
+# Each CMAKE_INSTALL_FREEDESKTOP_ICONS_<dir> value may be passed to the
+# DESTINATION options of install() commands for the corresponding file type.
+# If the includer does not define a value the above-shown default will be used
+# and the value will appear in the cache for editing by the user.
+# Each CMAKE_INSTALL_FREEDESKTOP_ICONS_FULL_<dir> value contains an absolute
+# path constructed # from the corresponding destination by prepending
+# (if necessary) the value of CMAKE_INSTALL_PREFIX.
+# This module also defines a macro:
+# FREEDESKTOP_INSTALL_ICONFILE(<_install_FILENAME> <_origin_FILE> <_icon_size> <_icon_context> <_icon_theme>)
+# FREEDESKTOP_INSTALL_ICONS(<_install_BASENAME>|<_install_FILENAME> <_origin_FILES> [auto|<_icon_sizes> [default|<_icon_context> [default|<_icon_theme>]]])
+#
+###################################################################
+#
+# Copyright (c) 2012, Aleksey Avdeev <solo@altlinux.ru>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the cmake-modules nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Default names
+#
+IF(NOT DEFINED CMAKE_FREEDESKTOP_ICONS_THEMENAME)
+ SET(CMAKE_FREEDESKTOP_ICONS_THEMENAME "hicolor" CACHE STRING "icons theme name (hicolor)")
+ENDIF()
+
+IF(NOT DEFINED CMAKE_FREEDESKTOP_ICONS_CONTEXTNAME)
+ SET(CMAKE_FREEDESKTOP_ICONS_CONTEXTNAME "apps" CACHE STRING "icons context name (apps)")
+ENDIF()
+
+IF(NOT DEFINED CMAKE_FREEDESKTOP_ICONS_SIZE)
+ SET(CMAKE_FREEDESKTOP_ICONS_SIZE "auto" CACHE STRING "icons size (auto)")
+ENDIF()
+
+MARK_AS_ADVANCED(
+ CMAKE_FREEDESKTOP_ICONS_THEMENAME
+ CMAKE_FREEDESKTOP_ICONS_CONTEXTNAME
+ CMAKE_FREEDESKTOP_ICONS_SIZE
+)
+
+INCLUDE(GNUInstallDirs)
+
+#-----------------------------------------------------------------------------
+# Values whose defaults are relative to DATAROOTDIR. Store empty values in
+# the cache and store the defaults in local variables if the cache values are
+# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
+
+IF(NOT CMAKE_INSTALL_FREEDESKTOP_ICONSDIR)
+ SET(CMAKE_INSTALL_FREEDESKTOP_ICONSDIR "" CACHE PATH "freedesktop icons theme dir (DATAROOTDIR/icons)")
+ SET(CMAKE_INSTALL_FREEDESKTOP_ICONSDIR "${CMAKE_INSTALL_DATAROOTDIR}/icons")
+ENDIF()
+
+MARK_AS_ADVANCED(
+ CMAKE_INSTALL_FREEDESKTOP_ICONSDIR
+)
+
+#-----------------------------------------------------------------------------
+
+# Result directories
+#
+IF(NOT IS_ABSOLUTE ${CMAKE_INSTALL_FREEDESKTOP_ICONSDIR})
+ SET(CMAKE_INSTALL_FULL_FREEDESKTOP_ICONSDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_FREEDESKTOP_ICONSDIR}")
+ELSE()
+ SET(CMAKE_INSTALL_FULL_FREEDESKTOP_ICONSDIR "${CMAKE_INSTALL_FREEDESKTOP_ICONSDIR}")
+ENDIF()
+
+IF(NOT DEFINED ImageMagick_identify_FOUND)
+ FIND_PACKAGE(ImageMagick COMPONENTS identify)
+ENDIF(NOT DEFINED ImageMagick_identify_FOUND)
+
+IF(NOT DEFINED ICOTOOL_FOUND)
+ FIND_PACKAGE(Icotool)
+ENDIF(NOT DEFINED ICOTOOL_FOUND)
+
+MACRO(FREEDESKTOP_INSTALL_ICONFILE _install_FILENAME _origin_FILE _icon_size _icon_context _icon_theme)
+ SET(
+ FREEDESKTOP_INSTALL_ICONFILE_usage
+ "FREEDESKTOP_INSTALL_ICONFILE(<_install_FILENAME> <_origin_FILE> <_icon_size> <_icon_context> <_icon_theme>)"
+ )
+
+ # MESSAGE(STATUS "icon: ${_origin_FILE} theme: ${_icon_theme} size: ${_icon_size} context: ${_icon_context} name: ${_install_FILENAME}")
+ INSTALL(
+ FILES ${_origin_FILE}
+ DESTINATION "${CMAKE_INSTALL_FULL_FREEDESKTOP_ICONSDIR}/${_icon_theme}/${_icon_size}/${_icon_context}/"
+ RENAME ${_install_FILENAME}
+ )
+
+ENDMACRO(FREEDESKTOP_INSTALL_ICONFILE)
+
+#
+# FREEDESKTOP_INSTALL_ICONS(install_file origin_files [auto|<icon_sizes> [default|<icon_context> [default|<icon_theme>]]])
+#
+# The processing parameters install_file:
+# no extension - the extension of the installed files will coincide
+# with the extension of the original
+# (except for .ico - are extracted .png)
+# is an extension - set only icons of corresponding type
+#
+# The processing parameters origin_files:
+# .ico - for any given size (see parameter icon_sizes)
+# are extracted from the file icon with
+# the maximum number of bits per pixel and are
+# installed as a .png file
+# .svg, .svgz, .png or .xpm - the files are installed without any changes
+#
+# The processing parameters icon_sizes
+# (CMAKE_FREEDESKTOP_ICONS_SIZE by default):
+# containing the value of auto - automatically creates directories
+# actual size by appropriate icons
+# no containing the value of auto - depending on file type icons:
+# scalable (.svg or .svgz):
+# icon_sizes contains the value scalable - will be placed
+# only in the scalable directory
+# icon_sizes does not contain the value scalable - will be placed
+# in all the directories and related to the size
+# specified in the list
+# bitmap (.png or .xpm):
+# icon_sizes contains only one value different from the scalable -
+# all raster will place the file in the directory
+# specified by appropriate size, without checking
+# the actual size of the icons.
+# icon_sizes contains multiple values, different from the scalable -
+# all raster will place the file in the directory
+# by appropriate to their actual size and specified
+# in the list
+#
+MACRO(FREEDESKTOP_INSTALL_ICONS _install_NAME _origin_FILES)
+ SET(
+ FREEDESKTOP_INSTALL_ICONS_usage
+ "FREEDESKTOP_INSTALL_ICONS(<_install_BASENAME>|<_install_FILENAME> <_origin_FILES> [auto|<_icon_sizes> [default|<_icon_context> [default|<_icon_theme>]]])"
+ )
+
+ # regex seting
+ SET(
+ _icon_install_ext_regex
+ "^\\.(svgz?|png|xpm)$"
+ )
+ SET(
+ _icon_origin_ext_regex
+ "^\\.(svgz?|png|xpm|ico)$"
+ )
+
+ GET_FILENAME_COMPONENT(_icon_basename ${_install_NAME} NAME_WE)
+ GET_FILENAME_COMPONENT(_icon_extension ${_install_NAME} EXT)
+ IF(_icon_extension)
+ STRING(TOLOWER ${_icon_extension} _icon_extension)
+ IF(NOT _icon_extension MATCHES "${_icon_install_ext_regex}")
+ MESSAGE(FATAL_ERROR "Installable icon file should have the extension .svg, .svgz, .png or .xpm, not ${_icon_extension}")
+ ENDIF(NOT _icon_extension MATCHES "${_icon_install_ext_regex}")
+ ELSE(_icon_extension)
+ SET(_icon_extension "")
+ ENDIF(_icon_extension)
+
+ SET(_icon_sizes ${ARGV2})
+ IF(NOT _icon_sizes)
+ SET(_icon_sizes ${CMAKE_FREEDESKTOP_ICONS_SIZE})
+ ENDIF(NOT _icon_sizes)
+ LIST(REMOVE_DUPLICATES _icon_sizes)
+ LIST(FIND _icon_sizes "auto" _size_index)
+ IF(_size_index EQUAL -1)
+ # no auto in _icon_sizes
+ SET(_icon_size_auto FALSE)
+ ELSE(_size_index EQUAL -1)
+ # yes auto in _icon_sizes
+ SET(_icon_size_auto TRUE)
+ LIST(REMOVE_AT _icon_sizes ${_size_index})
+ FOREACH(_current_size ${_icon_sizes})
+ SET(_icon_${_current_size}_build_files)
+ ENDFOREACH(_current_size ${_icon_sizes})
+ ENDIF(_size_index EQUAL -1)
+ SET(_pixmap_size_default FALSE)
+ IF(NOT _icon_size_auto)
+ SET(_icon_sizes_pixmap ${_icon_sizes})
+ LIST(REMOVE_ITEM _icon_sizes_pixmap "scalable")
+ LIST(LENGTH _icon_sizes_pixmap _sizes_pixmap_count)
+ IF(_sizes_pixmap_count EQUAL 1)
+ SET(_pixmap_size_default ${_icon_sizes_pixmap})
+ ENDIF(_sizes_pixmap_count EQUAL 1)
+ ENDIF(NOT _icon_size_auto)
+
+ SET(_icon_context ${ARGV3})
+ IF(NOT _icon_context OR "${_icon_context}" STREQUAL "default")
+ SET(_icon_context ${CMAKE_FREEDESKTOP_ICONS_CONTEXTNAME})
+ ENDIF(NOT _icon_context OR "${_icon_context}" STREQUAL "default")
+
+ SET(_icon_theme ${ARGV4})
+ IF(NOT _icon_theme OR "${_icon_theme}" STREQUAL "default")
+ SET(_icon_theme ${CMAKE_FREEDESKTOP_ICONS_THEMENAME})
+ ENDIF(NOT _icon_theme OR "${_icon_theme}" STREQUAL "default")
+
+ # preinstall icons
+ FOREACH(_current_file ${_origin_FILES})
+ GET_FILENAME_COMPONENT(_current_extension ${_current_file} EXT)
+ IF(_current_extension)
+ STRING(TOLOWER ${_current_extension} _current_extension)
+ IF(NOT _current_extension MATCHES "${_icon_origin_ext_regex}")
+ MESSAGE(FATAL_ERROR "File ${_current_file} not processed: Use icon with the extension .svg, .svgz, .png, .xpm or .ico")
+ ENDIF(NOT _current_extension MATCHES "${_icon_origin_ext_regex}")
+ ELSE(_current_extension)
+ MESSAGE(FATAL_ERROR "File ${_current_file} not processed: The expansion is absent")
+ ENDIF(_current_extension)
+
+ # set _current_build_patch
+ GET_FILENAME_COMPONENT(_current_patch ${_current_file} PATH)
+ IF("${CMAKE_CURRENT_SOURCE_DIR}" STRLESS "${CMAKE_CURRENT_BINARY_DIR}")
+ SET(_current_build_patch "${_current_patch}")
+ ELSEIF("${_current_patch}" STRLESS "")
+ SET(_current_build_patch "${CMAKE_CURRENT_BINARY_DIR}")
+ ELSEIF(NOT IS_ABSOLUTE "${_current_patch}")
+ SET(_current_build_patch "${CMAKE_CURRENT_BINARY_DIR}/${_current_patch}")
+ ELSE("${CMAKE_CURRENT_SOURCE_DIR}" STRLESS "${CMAKE_CURRENT_BINARY_DIR}")
+ STRING(
+ REGEX REPLACE
+ "^${CMAKE_CURRENT_SOURCE_DIR}((/.*)?)$"
+ "${CMAKE_CURRENT_BINARY_DIR}\\1"
+ _current_build_patch
+ "${_current_patch}"
+ )
+ ENDIF("${CMAKE_CURRENT_SOURCE_DIR}" STRLESS "${CMAKE_CURRENT_BINARY_DIR}")
+
+ IF(_current_extension MATCHES "\\.svgz?$")
+ SET(_current_size "scalable")
+ LIST(FIND _icon_sizes ${_current_size} _size_index)
+ IF(_size_index EQUAL -1)
+ # no scalable in _icon_sizes
+ IF(_icon_size_auto)
+ LIST(APPEND _icon_sizes ${_current_size})
+ SET(_icon_${_current_size}_build_files ${_current_file})
+ ELSE(_icon_size_auto)
+ # add _current_file to all _icon_sizes
+ FOREACH(_current_size ${_icon_sizes})
+ LIST(APPEND _icon_${_current_size}_build_files ${_current_file})
+ ENDFOREACH(_current_size ${_icon_sizes})
+ ENDIF(_icon_size_auto)
+ ELSE(_size_index EQUAL -1)
+ # scalable in _icon_sizes
+ LIST(APPEND _icon_${_current_size}_build_files ${_current_file})
+ ENDIF(_size_index EQUAL -1)
+ ELSEIF("${_current_extension}" STREQUAL ".ico")
+ # ico -> png
+
+ IF(NOT ICOTOOL_FOUND)
+ MESSAGE(FATAL_ERROR "File ico processing is not possible: the icotool program was not found")
+ ENDIF(NOT ICOTOOL_FOUND)
+
+ SET(_icon_ico_sizes)
+
+ # select indexs for transformation ico to png
+ # (create _icon_<size>_index vars)
+ EXECUTE_PROCESS(
+ COMMAND "${ICOTOOL_EXECUTABLE}" --list ${_current_file}
+ OUTPUT_VARIABLE _icon_icotool_out
+ ERROR_VARIABLE _icon_icotool_err
+ )
+ STRING(
+ REGEX MATCHALL
+ "[^\r\n]+"
+ _ico_icotool_list
+ "${_icon_icotool_out}"
+ )
+ FOREACH(_current_string ${_ico_icotool_list})
+ IF(_current_string AND _current_string MATCHES "(^|[ \t])--icon([ \t]|$)")
+ IF(_current_string MATCHES "(^|[ \t])--index=([0-9]+)([ \t]|$)")
+ SET(_current_index ${CMAKE_MATCH_2})
+ IF(_current_string MATCHES "(^|[ \t])--width=([0-9]+)([ \t]|$)")
+ SET(_current_width ${CMAKE_MATCH_2})
+ IF(_current_string MATCHES "(^|[ \t])--height=([0-9]+)([ \t]|$)")
+ SET(_current_height ${CMAKE_MATCH_2})
+ IF(_current_string MATCHES "(^|[ \t])--bit-depth=([0-9]+)([ \t]|$)")
+ SET(_current_bit_depth ${CMAKE_MATCH_2})
+ SET(_current_size "${_current_width}x${_current_height}")
+ LIST(FIND _icon_sizes ${_current_size} _current_size_index)
+ IF(_icon_size_auto OR NOT _current_size_index EQUAL -1)
+ IF(_current_size_index EQUAL -1)
+ LIST(APPEND _icon_sizes ${_current_size})
+ SET(_icon_${_current_size}_build_files)
+ ENDIF(_current_size_index EQUAL -1)
+ LIST(FIND _icon_ico_sizes ${_current_size} _current_size_index)
+ IF(_current_size_index EQUAL -1)
+ LIST(APPEND _icon_ico_sizes ${_current_size})
+ SET(_icon_${_current_size}_bit_depth)
+ ENDIF(_current_size_index EQUAL -1)
+ IF((NOT DEFINED _icon_${_current_size}_bit_depth) OR _current_bit_depth GREATER _icon_${_current_size}_bit_depth)
+ SET(_icon_${_current_size}_bit_depth ${_current_bit_depth})
+ SET(_icon_${_current_size}_index ${_current_index})
+ ENDIF((NOT DEFINED _icon_${_current_size}_bit_depth) OR _current_bit_depth GREATER _icon_${_current_size}_bit_depth)
+ ENDIF(_icon_size_auto OR NOT _current_size_index EQUAL -1)
+ ENDIF(_current_string MATCHES "(^|[ \t])--bit-depth=([0-9]+)([ \t]|$)")
+ ENDIF(_current_string MATCHES "(^|[ \t])--height=([0-9]+)([ \t]|$)")
+ ENDIF(_current_string MATCHES "(^|[ \t])--width=([0-9]+)([ \t]|$)")
+ ENDIF(_current_string MATCHES "(^|[ \t])--index=([0-9]+)([ \t]|$)")
+ ENDIF(_current_string AND _current_string MATCHES "(^|[ \t])--icon([ \t]|$)")
+ ENDFOREACH(_current_string)
+
+ IF(DEFINED _icon_ico_sizes)
+ # create _current_build_patch
+ IF(NOT EXISTS "${_current_build_patch}")
+ FILE(MAKE_DIRECTORY "${_current_build_patch}")
+ ENDIF(NOT EXISTS "${_current_build_patch}")
+
+ # png generate
+ FOREACH(_current_size ${_icon_ico_sizes})
+ SET(
+ _current_build_filename
+ "${_icon_basename}_${_icon_${_current_size}_index}_${_current_size}x${_icon_${_current_size}_bit_depth}.png"
+ )
+ SET(
+ _current_target
+ "icon.icotopng.${_current_build_filename}"
+ )
+ SET(
+ _current_build_file
+ "${_current_build_patch}/${_current_build_filename}"
+ )
+ LIST(
+ APPEND
+ _icon_${_current_size}_build_files
+ "${_current_build_file}"
+ )
+ ADD_CUSTOM_TARGET(
+ "${_current_target}"
+ ALL
+ )
+ ADD_CUSTOM_COMMAND(
+ TARGET "${_current_target}"
+ COMMAND ${ICOTOOL_EXECUTABLE}
+ ARGS -x --icon -i ${_icon_${_current_size}_index} -o ${_current_build_file} ${_current_file}
+ DEPENDS ${_current_file}
+ VERBATIM
+ )
+ ENDFOREACH(_current_size)
+ ENDIF(DEFINED _icon_ico_sizes)
+ ELSE(_current_extension MATCHES "\\.svgz?$")
+ IF(_pixmap_size_default)
+ SET(_current_size ${_pixmap_size_default})
+ ELSE(_pixmap_size_default)
+ IF(NOT ImageMagick_identify_FOUND)
+ MESSAGE(FATAL_ERROR "Automatic determination of the size of icons is impossible: the identify program was not found")
+ ENDIF(NOT ImageMagick_identify_FOUND)
+ # get _current_size
+ EXECUTE_PROCESS(
+ COMMAND "${ImageMagick_identify_EXECUTABLE}" -verbose ${_current_file}
+ OUTPUT_VARIABLE _icon_identify_out
+ )
+ STRING(
+ REGEX REPLACE
+ "^.*[\r\n][ \t]*[Gg][Ee][Oo][Mm][Ee][Tt][Rr][Yy]:[ \t]+([0-9]+x[0-9]+)([^0-9].*)?[ \t]*[\r\n].*$"
+ "\\1"
+ _current_size
+ "${_icon_identify_out}"
+ )
+ IF((NOT _current_size) OR "${_current_size}" STREQUAL "${_icon_identify_out}")
+ MESSAGE(FATAL_ERROR "Automatic determination of the size of icon ${_current_file} is impossible: the ${ImageMagick_identify_EXECUTABLE} program does not the size allocated")
+ ENDIF((NOT _current_size) OR "${_current_size}" STREQUAL "${_icon_identify_out}")
+ ENDIF(_pixmap_size_default)
+
+ LIST(FIND _icon_sizes ${_current_size} _size_index)
+ IF(_size_index EQUAL -1)
+ # no scalable in _icon_sizes
+ IF(_icon_size_auto)
+ LIST(APPEND _icon_sizes ${_current_size})
+ SET(_icon_${_current_size}_build_files ${_current_file})
+ ELSE(_icon_size_auto)
+ MESSAGE(FATAL_ERROR "Create a directory for the icon size ${_current_size} prohibited (this size is missing in the list)")
+ ENDIF(_icon_size_auto)
+ ELSE(_size_index EQUAL -1)
+ LIST(APPEND _icon_${_current_size}_build_files ${_current_file})
+ ENDIF(_size_index EQUAL -1)
+ ENDIF(_current_extension MATCHES "\\.svgz?$")
+ ENDFOREACH(_current_file)
+
+ # install icons
+ FOREACH(_current_size ${_icon_sizes})
+ FOREACH(_current_file ${_icon_${_current_size}_build_files})
+ GET_FILENAME_COMPONENT(_current_extension ${_current_file} EXT)
+ IF(_current_extension)
+ STRING(TOLOWER ${_current_extension} _current_extension)
+ IF(NOT _current_extension MATCHES "${_icon_install_ext_regex}")
+ MESSAGE(FATAL_ERROR "File ${_current_file} not processed: Use icon with the extension .svg, .svgz, .png or .xpm")
+ ENDIF(NOT _current_extension MATCHES "${_icon_install_ext_regex}")
+ ELSE(_current_extension)
+ MESSAGE(FATAL_ERROR "File ${_current_file} not processed: The expansion is absent")
+ ENDIF(_current_extension)
+
+ IF(_icon_extension AND (NOT "${_current_extension}" STREQUAL "${_icon_extension}"))
+ MESSAGE(FATAL_ERROR "Target (${_install_NAME}) and source (${_current_file}) files have a different extension")
+ ENDIF(_icon_extension AND (NOT "${_current_extension}" STREQUAL "${_icon_extension}"))
+
+ SET(
+ _install_filename
+ "${_icon_basename}${_current_extension}"
+ )
+
+ # MESSAGE(STATUS "icon: ${_current_file} theme: ${_icon_theme} size: ${_current_size} context: ${_icon_context} name: ${_install_filename}")
+ FREEDESKTOP_INSTALL_ICONFILE(${_install_filename} ${_current_file} ${_current_size} ${_icon_context} ${_icon_theme})
+ ENDFOREACH(_current_file)
+ ENDFOREACH(_current_size)
+
+ENDMACRO(FREEDESKTOP_INSTALL_ICONS)
diff --git a/cmake/modules/MacroProcessManpages.cmake b/cmake/modules/MacroProcessManpages.cmake
new file mode 100644
index 0000000..5530c04
--- /dev/null
+++ b/cmake/modules/MacroProcessManpages.cmake
@@ -0,0 +1,83 @@
+#
+# - MACRO_INSTALL_MANPAGES
+# Find manpages in the given directory and install them
+# structure:
+#
+# man/file.1
+# man/es/file.5
+# man/de/file.1
+#
+###################################################################
+#
+# Copyright (c) 2006, Andreas Schneider <mail@cynapses.org>
+#
+# 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.
+#
+###################################################################
+#
+# Copyright (c) Andreas Schneider <mail@cynapses.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the name of the cmake-modules nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+INCLUDE(GNUInstallDirs)
+
+MACRO(MACRO_INSTALL_MANPAGES _mandirs)
+ FOREACH(_current_mandir ${_mandirs})
+ FILE(GLOB_RECURSE _manpages "${_current_mandir}/*.[1-9]")
+
+ IF (_manpages)
+ FOREACH(_man ${_manpages})
+ FILE(RELATIVE_PATH _lang ${_current_mandir} ${_man})
+ GET_FILENAME_COMPONENT(_lang ${_lang} PATH)
+ GET_FILENAME_COMPONENT(_manext ${_man} EXT)
+ STRING(REGEX MATCH "[1-9]" _manext ${_manext})
+ INSTALL(FILES ${_man} DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/${_lang}/man${_manext})
+ #MESSAGE("DEBUG: install ${_man} to ${CMAKE_INSTALL_FULL_MANDIR}/${_lang}/man${_manext}")
+ ENDFOREACH(_man ${_manpages})
+ ENDIF (_manpages)
+ ENDFOREACH(_current_mandir)
+ENDMACRO(MACRO_INSTALL_MANPAGES)
+
+# vim:et ts=2 sw=2 comments=\:\#
diff --git a/ica/CMakeLists.txt b/ica/CMakeLists.txt
index 9bcdbac..eb7d32a 100644
--- a/ica/CMakeLists.txt
+++ b/ica/CMakeLists.txt
@@ -179,6 +179,9 @@ TARGET_LINK_LIBRARIES(ica ItalcCore)
ADD_DEPENDENCIES(ica JavaViewer)
+# install man pages for ica
+MACRO_INSTALL_MANPAGES(${CMAKE_CURRENT_SOURCE_DIR}/man)
+
INSTALL(TARGETS ica RUNTIME DESTINATION bin)
IF(ITALC_BUILD_WIN32)
diff --git a/ica/helpers/CMakeLists.txt b/ica/helpers/CMakeLists.txt
index 6fc4a7c..25c5966 100644
--- a/ica/helpers/CMakeLists.txt
+++ b/ica/helpers/CMakeLists.txt
@@ -2,3 +2,6 @@ LINK_LIBRARIES(${PAM_LIBRARY})
INCLUDE_DIRECTORIES(${PAM_INCLUDE_DIR})
ADD_EXECUTABLE(italc_auth_helper ${CMAKE_CURRENT_SOURCE_DIR}/ItalcAuthHelper.cpp)
INSTALL(TARGETS italc_auth_helper RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE SETUID GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+
+# install man pages for italc_auth_helper
+MACRO_INSTALL_MANPAGES(${CMAKE_CURRENT_SOURCE_DIR}/man)
diff --git a/ica/helpers/man/italc_auth_helper.1 b/ica/helpers/man/italc_auth_helper.1
new file mode 100644
index 0000000..dff6c81
--- /dev/null
+++ b/ica/helpers/man/italc_auth_helper.1
@@ -0,0 +1,28 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH ITALC 8 "May 18, 2012"
+.SH NAME
+italc_auth_helper \- iTALC PAM Authentication Helper
+.SH SYNOPSIS
+.B italc_auth_helper
+.SH DESCRIPTION
+.B italc_auth_helper
+is a PAM-su authentication helper for the iTALC service (called \fBica\fP).
+.PP
+.I NOTE:
+.B italc_auth_helper
+has to be installed setuid root and must be available in your system's environment $PATH.
+.
+.SH OPTIONS
+No options present.
+.PP
+.SH SEE ALSO
+.IR ica (1), italc (1), imc (1)
+.PP
+.IR http://italc.sf.net
+.SH AUTHOR
+iTALC has been written by Tobias Doerffel. See AUTHORS for details.
+.PP
+This manual page has been written by Mike Gabriel. It was originally written for the Debian project (but may be used by others).
diff --git a/ica/ica.1 b/ica/ica.1
deleted file mode 100644
index 301b5fe..0000000
--- a/ica/ica.1
+++ /dev/null
@@ -1,70 +0,0 @@
-.\" Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH ICA 1 "April 30, 2007"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh disable hyphenation
-.\" .hy enable hyphenation
-.\" .ad l left justify
-.\" .ad b justify to both left and right margins
-.\" .nf disable filling
-.\" .fi enable filling
-.\" .br insert line break
-.\" .sp <n> insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-ica \- iTALC Client Application
-.SH SYNOPSIS
-.B ica
-.RB "[options]"
-.br
-.B ica
-.RI "[options] [command]"
-.SH DESCRIPTION
-.PP
-.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
-.\" respectively.
-.B ICA
-is the software which needs to run on clients in order to access them using iTALC master application. It provides a VNC-server and a service-daemon which is neccessary for taking control over the client.
-
-.SH OPTIONS
-.IP "\fB\-role\fP \fIrole\fP
-.IP
-Set role under which ICA should run where \fIrole\fP has to be "teacher", "admin", "supporter" or "other". This is mainly used in combination with the \fB-createkeypair\fP option.
-.IP "\fB\-ivsport\fP \fIport\fP
-.IP
-Set port at which the iTALC-VNC-server should listen. Default: 11100
-.
-.IP "\fB\-isdport\fP \fIport\fP
-.IP
-Set port at which the iTALC-service-daemon should listen. Default: 11200
-.
-.IP \fB-noshm\fR
-.IP
-Do not use the MIT-SHM extension for the polling.
-Remote displays can be polled this way: be careful this
-can use large amounts of network bandwidth. This is
-also of use if the local machine has a limited number
-of shm segments and \fB-onetile\fR is not sufficient.
-.PP
-\fB-onetile\fR
-.IP
-Do not use the new copy_tiles() framebuffer mechanism,
-just use 1 shm tile for polling. Limits shm segments
-used to 3.
-.
-.IP "\fB\-createkeypair\fP \fI[private-key-file] [public-key-file]\fP
-.IP
-Create a new key pair for authentication between master and client. Until specified with \fB-role\fP the key-pair will be created for role "other". The keys either will be saved under given file-names or the default ones according to the selected role (/etc/italc/keys/private/<role>/key and /etc/italc/keys/public/<role>/key).
-.SH SEE ALSO
-.IR italc (1),
-.IR http://italc.sf.net/
-
-.SH AUTHOR
-iTALC was written by Tobias Doerffel. See AUTHORS for details.
-.PP
-This manual page was written by Tobias Doerffel <tobydox /at/ users /dot/ sf /dot/ net>, for the Debian project (but may be used by others).
diff --git a/ica/man/ica.1 b/ica/man/ica.1
new file mode 100644
index 0000000..ec911fb
--- /dev/null
+++ b/ica/man/ica.1
@@ -0,0 +1,101 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH ICA 1 "May 18, 2012"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+ica \- iTALC Client Application
+.SH SYNOPSIS
+.B ica
+.RB "[options]"
+.br
+.B ica
+.RI "[options] [command]"
+.SH DESCRIPTION
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+.B ICA
+is the software which needs to run on clients in order to access them using iTALC master application. It provides a VNC-server and a service-daemon which is neccessary for taking control over the client.
+
+.SH iTALC OPTIONS
+.IP "\fB\-role\fP \fIrole\fP
+.IP
+Set role under which ICA should run where \fIrole\fP has to be "teacher", "admin", "supporter" or "other".
+.IP "\fB\-port\fP \fIport\fP
+.IP
+Set port at which the iTALC-VNC-server should listen. Default: 11100
+.PP
+The \fB\-createkeypair\fP option has been moved to the iTALC Management Console \fBimc\fP since iTALC 2.0.0.
+
+.SH X11VNC OPTIONS
+.IP \fB-noshm\fR
+.IP
+Do not use the MIT-SHM extension for the polling.
+Remote displays can be polled this way: be careful this
+can use large amounts of network bandwidth. This is
+also of use if the local machine has a limited number
+of shm segments and \fB-onetile\fR is not sufficient.
+.PP
+\fB-onetile\fR
+.IP
+Do not use the new copy_tiles() framebuffer mechanism,
+just use 1 shm tile for polling. Limits shm segments
+used to 3.
+.PP
+\fB-nosel\fR
+.IP
+ Do not manage exchange of X selection/cutbuffer between VNC viewers and the X server at all.
+.PP
+\fB-nosetclipboard\fR
+.IP
+Do not set the CLIPBOARD selection for changes received from VNC clients.
+.PP
+\fB-solid\fR \fI[color]\fR
+.IP
+To improve performance, when VNC clients are connected try to change the desktop background to a solid color. The [color] is optional: the
+default color is "cyan4". For a different one specify the X color (rgb.txt name, e.g. "darkblue" or numerical "#RRGGBB").
+.IP
+Currently this option only works on GNOME, KDE3, CDE, XFCE, and classic X (i.e. with the background image on the root window). The "gconftool-2",
+"dcop" and "xfconf-query" external commands are run for GNOME, KDE, and XFCE respectively.
+(There is no color selection for XFCE.) Other desktops won't work, (send us the corresponding commands if you find them).
+.IP
+
+.PP
+\fB-xrandr\fR \fI[mode]\fR
+.IP
+If the display supports the XRANDR (X Resize, Rotate and Reflection) extension, and you expect XRANDR events to occur to the display while
+x11vnc is running, this options indicates x11vnc should try to respond to them (as opposed to simply crashing by assuming the old screen
+size). See the xrandr(1) manpage and run ´xrandr -q' for more info. [mode] is optional and described below.
+.IP
+Since watching for XRANDR events and trapping errors increases polling overhead, only use this option if XRANDR changes are expected. For
+example on a rotatable screen PDA or laptop, or using a XRANDR-aware Desktop where you resize often. It is best to be viewing with a
+vncviewer that supports the NewFBSize encoding, since it knows how to react to screen size changes. Otherwise, LibVNCServer tries to do so
+something reasonable for viewers that cannot do this (portions of the screen may be clipped, unused, etc).
+.IP
+"mode" defaults to "resize", which means create a new, resized, framebuffer and hope all viewers can cope with the change. "newfbsize"
+means first disconnect all viewers that do not support the NewFBSize VNC encoding, and then resize the framebuffer. "exit" means disconnect
+all viewer clients, and then terminate x11vnc.
+.PP
+.SH SEE ALSO
+.IR italc (1), imc (1), italc_auth_helper (1)
+.PP
+.IR http://italc.sf.net/
+
+.SH AUTHOR
+iTALC has been written by Tobias Doerffel. See AUTHORS for details.
+.PP
+This manual page has been written by Tobias Doerffel and updated by Mike Gabriel. It was originally written for the Debian project (but may be used by others).
diff --git a/ica/src/ItalcVncServer.cpp b/ica/src/ItalcVncServer.cpp
index c63608a..7d6af28 100644
--- a/ica/src/ItalcVncServer.cpp
+++ b/ica/src/ItalcVncServer.cpp
@@ -251,7 +251,7 @@ static void runX11vnc( QStringList cmdline, int port, bool plainVnc )
// workaround for x11vnc when running in an NX session
foreach( const QString &s, QProcess::systemEnvironment() )
{
- if( s.startsWith( "NXSESSIONID=" ) )
+ if( s.startsWith( "NXSESSIONID=" ) || s.startsWith( "X2GO_SESSION=" ) )
{
cmdline << "-noxdamage";
}
diff --git a/ima/CMakeLists.txt b/ima/CMakeLists.txt
index 06f9b73..0ddad55 100644
--- a/ima/CMakeLists.txt
+++ b/ima/CMakeLists.txt
@@ -22,8 +22,20 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
ADD_EXECUTABLE(italc ${italc_UIC_out} ${italc_SOURCES} ${italc_INCLUDES} ${italc_MOC_out} ${italc_RCC_out} ${WINRC})
TARGET_LINK_LIBRARIES(italc ItalcCore)
+# install man pages for ima
+MACRO_INSTALL_MANPAGES(${CMAKE_CURRENT_SOURCE_DIR}/man)
+
INSTALL(TARGETS italc RUNTIME DESTINATION bin)
+IF(UNIX)
+ # installing Freedesktop icons only for UNIX
+ IF(ICOTOOL_FOUND)
+ FREEDESKTOP_INSTALL_ICONS(italc ${CMAKE_CURRENT_SOURCE_DIR}/data/italc.ico)
+ ELSE(ICOTOOL_FOUND)
+ FREEDESKTOP_INSTALL_ICONS(italc ${CMAKE_CURRENT_SOURCE_DIR}/data/italc.png)
+ ENDIF(ICOTOOL_FOUND)
+ENDIF(UNIX)
+
IF(ITALC_BUILD_WIN32)
SET_TARGET_PROPERTIES(italc PROPERTIES LINK_FLAGS -mwindows)
ENDIF(ITALC_BUILD_WIN32)
diff --git a/ima/data/italc.desktop.in b/ima/data/italc.desktop.in
index 4906d70..4a16b41 100644
--- a/ima/data/italc.desktop.in
+++ b/ima/data/italc.desktop.in
@@ -3,9 +3,10 @@ Encoding=UTF-8
Name=iTALC
GenericName=View and remote-control clients
GenericName[de]=Clients überwachen und fernsteuern
+GenericName[ru]=Управление рабочими столами учеников
Comment=Intelligent Teaching And Learning with Computers
-Icon=@prefix@/share/pixmaps/italc.png
-Exec=@prefix@/bin/italc
+Icon=italc
+Exec=@CMAKE_INSTALL_PREFIX@/bin/italc
Type=Application
Terminal=false
-Categories=Qt;KDE;Education;X-KDE-Edu-Teaching;
+Categories=Qt;KDE;Education;X-KDE-Edu-Teaching;RemoteAccess;
diff --git a/ima/italc.1 b/ima/italc.1
deleted file mode 100644
index 4c2133b..0000000
--- a/ima/italc.1
+++ /dev/null
@@ -1,35 +0,0 @@
-.\" Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH ITALC 1 "February 1, 2008"
-.SH NAME
-italc \- iTALC Master Application
-.SH SYNOPSIS
-.B italc
-.SH DESCRIPTION
-.B iTALC
-is the actual software to control iTALC-clients. Using it's GUI you can remote-control, lock, shutdown/reboot computers as well as show a demo, send text-messages to users and much more.
-.
-.SH OPTIONS
-.IP "\fB\-rctrl\fP \fIhost:[port]\fP
-.IP
-Directly remote-control the specified host. You can omit port if the server is running at the default-port (11100).
-.
-.IP "\fB\-isdport\fP \fIport\fP
-.IP
-Set port to which iTALC should connect in order to contact the local iTALC-service-daemon. Default: 11200
-.
-.IP "\fB\-isdhost\fP \fIip\fP
-.IP
-Set the host to which iTALC should connect in order to contact the local iTALC-service-daemon. Default: localhost
-.
-.PP
-.SH SEE ALSO
-.IR ica (1),
-.IR http://italc.sf.net
-.SH AUTHOR
-iTALC was written by Tobias Doerffel. See AUTHORS for details.
-.PP
-This manual page was written by Steffen Joeris <steffen.joeris@skolelinux.de>
-and Tobias Doerffel <tobydox /at/ users /dot/ sf /dot/ net>, for the Debian project (but may be used by others).
diff --git a/ima/man/italc.1 b/ima/man/italc.1
new file mode 100644
index 0000000..229c347
--- /dev/null
+++ b/ima/man/italc.1
@@ -0,0 +1,32 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH ITALC 1 "May 18, 2012"
+.SH NAME
+italc \- iTALC Master Application
+.SH SYNOPSIS
+.B italc
+.SH DESCRIPTION
+.B iTALC
+is the actual software to control iTALC-clients. Using it's GUI you can remote-control, lock, shutdown/reboot computers as well as show a demo, send text-messages to users and much more.
+.
+.SH OPTIONS
+.IP "\fB\-rctrl\fP \fIhost:[port]\fP
+.IP
+Directly remote-control the specified host. You can omit port if the server is running at the default-port (11100).
+.
+.IP "\fB\-screen\fP \fI<screen-number>\fP
+.IP
+Place the remote control window on another screen if running on a multi-headed workstation.
+.
+.PP
+.SH SEE ALSO
+.IR ica (1), imc (1), italc_auth_helper(1)
+.PP
+.IR http://italc.sf.net
+.SH AUTHOR
+iTALC has been written by Tobias Doerffel. See AUTHORS for details.
+.PP
+This manual page has been written by Steffen Joeris
+and Tobias Doerffel and updated by Mike Gabriel. It was originally written for the Debian project (but may be used by others).
diff --git a/imc/CMakeLists.txt b/imc/CMakeLists.txt
index d088587..c335ef0 100644
--- a/imc/CMakeLists.txt
+++ b/imc/CMakeLists.txt
@@ -23,8 +23,20 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
ADD_EXECUTABLE(imc ${imc_UIC_out} ${imc_SOURCES} ${imc_INCLUDES} ${imc_MOC_out} ${imc_RCC_out} ${WINRC})
TARGET_LINK_LIBRARIES(imc ItalcCore)
+# install man pages for imc
+MACRO_INSTALL_MANPAGES(${CMAKE_CURRENT_SOURCE_DIR}/man)
+
INSTALL(TARGETS imc RUNTIME DESTINATION bin)
+IF(UNIX)
+ # installing Freedesktop icons only for UNIX
+ IF(ICOTOOL_FOUND)
+ FREEDESKTOP_INSTALL_ICONS(imc ${CMAKE_CURRENT_SOURCE_DIR}/Resources/imc.ico)
+ ELSE(ICOTOOL_FOUND)
+ FREEDESKTOP_INSTALL_ICONS(imc ${CMAKE_CURRENT_SOURCE_DIR}/Resources/imc.png)
+ ENDIF(ICOTOOL_FOUND)
+ENDIF(UNIX)
+
IF(ITALC_BUILD_WIN32)
SET_TARGET_PROPERTIES(imc PROPERTIES LINK_FLAGS -mwindows)
ENDIF(ITALC_BUILD_WIN32)
diff --git a/imc/man/imc.1 b/imc/man/imc.1
new file mode 100644
index 0000000..a44acc1
--- /dev/null
+++ b/imc/man/imc.1
@@ -0,0 +1,71 @@
+.TH imc 1 "Date: 2011/16/12 10:00:00" "imc"
+.SH NAME
+imc \- is the iTALC management console to setup iTALC.
+.SH SYNOPSIS
+\fBimc\fP [\fIoptions\fP]
+.SH OVERVIEW
+
+imc\[rg], is a X11 program to modify the various settings used by italc-client and italc-master.
+
+imc is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.
+
+The functionality of imc is typically utilized from X11 but also from the command line.
+
+In the paragraphs below, find a short description for each command-line option.If you are just getting acquianted with imc, start the program without any options.
+.TP
+.B -ListConfig -l
+
+The current configuration with all keys and values will be listed. This will give an output like
+ ...
+ Logging/LogLevel=1
+ Network/CoreServerPort=11100
+ Network/DemoServerPort=11400
+ ...
+
+.TP
+.B -SetConfigValue -s
+
+The value of configuration property can be changed with this option.
+Examples:
+ imc -SetConfigValue Logging/LogFileDirectory C:\temp
+ imc -s Logging/LogLevel=4
+
+.TP
+.B -ApplySettings -a
+
+You can apply the settings previously saved in a settings file using this command.
+Examples:
+ imc -ApplySettings MyCustomSettings.xml
+
+.TP
+.B -ImportPublicKey -i
+
+You can import a public key file which has been exported during the installation
+of the iTALC master computer using this command or its abbreviation.
+
+You can omit the the second parameter which specifies the public key file if it
+is located in the directory from which you launch IMC. IMC will automatically
+search for a *.key.txt file. If it finds exactly one, it'll import this one.
+Examples:
+ imc -ImportPublicKey MyPublicKey.key.txt
+ imc -i
+
+.TP
+.B -createkeypair <path>
+
+creates a new key pair for the default role (teacher) with the specified "path" as base dir. If "path" is omitted
+the path is taken from the settings file. This is used in conjunction with role. If role is omitted the default
+role is "teacher".
+
+.TP
+.B -role [supporter|teacher|admin]
+
+in connection with "createkeypair" creates a key pair for the specified role.
+
+.PP
+For more information about the imc, point your browser to file:///usr/share/doc/packages/imc or http://italc.sourceforge.net/.
+.SH SEE ALSO
+ica(1), italc(1)
+
+.SH COPYRIGHT
+\fBCopyright (C) 2004-2011 Tobias Doerffel. Additional copyrights and licenses apply to this software, see http://italc.sourceforge.net\fP
diff --git a/lib/resources/ru.qm b/lib/resources/ru.qm
index 0405f76..66d01c9 100644
--- a/lib/resources/ru.qm
+++ b/lib/resources/ru.qm
@@ -1,7 +1,7 @@
-<d!`B 4 ; g H5 9K g Հ e : q n ڱ &( Ԕ *% } *0 + Q + G J | J . Lb Ojz P RD_ h V "