From 91e762eecdb6333e9a6b57e7eeabd8ff256f214f Mon Sep 17 00:00:00 2001 From: geos_one Date: Sat, 9 Aug 2025 09:36:33 +0200 Subject: [PATCH] Initial import --- build_orig.sh | 66 ++++ debian/README.source | 10 + debian/changelog | 6 + debian/compat | 1 + debian/control | 34 ++ debian/copyright | 333 +++++++++++++++++++ debian/dirs | 1 + debian/nxclient.wrapper | 2 + debian/postinst | 715 ++++++++++++++++++++++++++++++++++++++++ debian/postrm | 215 ++++++++++++ debian/rules | 47 +++ debian/source/format | 1 + files.diz | 3 + 13 files changed, 1434 insertions(+) create mode 100644 build_orig.sh create mode 100644 debian/README.source create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/dirs create mode 100644 debian/nxclient.wrapper create mode 100755 debian/postinst create mode 100755 debian/postrm create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 files.diz diff --git a/build_orig.sh b/build_orig.sh new file mode 100644 index 0000000..f895daf --- /dev/null +++ b/build_orig.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# the directory of the script +DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd` +echo "Working directory $DIR" + +# the temp directory used, within $DIR +WORK_DIR=`mktemp -d -p "$DIR"` +echo "Creating temp working directory $WORK_DIR" + +# deletes the temp directory +function cleanup { + rm -rf "$WORK_DIR" + echo "Deleted temp working directory $WORK_DIR" +} + +# register the cleanup function to be called on the EXIT signal +trap cleanup EXIT + +# Download Files specified in files.diz +while IFS=! read type app version outputfile url md5 +do + echo "Downloading $app Version: $version" + #use -O for output file. define $outputfile yourself + wget --no-check-certificate --tries=1 -O $DIR/../$outputfile --timeout=5 "$url" + # use $(..) instead of backticks. + calculated_md5=$(md5sum "$DIR/../$outputfile" | cut -f 1 -d " ") + # compare md5 + case "$calculated_md5" in + "$md5" ) + echo "$DIR/../$outputfile md5 ok" + ;; + *) + echo "$DIR/../$outputfile md5 NOT ok" + exit 1 + ;; + esac +done < "$DIR/files.diz" + +# Extract to specified dir and set some variables +while IFS=! read type app version outputfile url md5 +do + mkdir -p $WORK_DIR/${app}-${version}/${type} + pushd $WORK_DIR/${app}-${version}/${type} + tar -zxf $DIR/../$outputfile + echo "${app}_${version}.orig.tar.gz" > $WORK_DIR/filename.txt + echo "${app}-${version}" > $WORK_DIR/dirname.txt + echo "${version}" > $WORK_DIR/version.txt + popd +done < "$DIR/files.diz" + +FILENAME=`cat $WORK_DIR/filename.txt` +DIRNAME=`cat $WORK_DIR/dirname.txt` +echo "Creating $DIR/../$FILENAME " + +pushd $WORK_DIR +tar -czf $DIR/../$FILENAME $DIRNAME +popd + +#exit 0 + +VER=`cat $WORK_DIR/version.txt` +echo "Importing $DIR/../$FILENAME as $VER into git" +cleanup +gbp import-orig --pristine-tar -u $VER $DIR/../$FILENAME + +exit 0 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..0fe69dc --- /dev/null +++ b/debian/README.source @@ -0,0 +1,10 @@ +nxclient (3.5.0-7) unstable; urgency=low + + Sources have been repacked from the following upstream archive: + + 246ca19750965066f97730e704718cb8 8.04.07_MegaCLI.zip + + Contents of MegaCli-8.04.07-1.noarch.rpm and Lib_Utils-1.00-09.noarch.rpm + have been extracted after being turned into tarball using alien. + + -- Adam Cécile (Le_Vert) Mon, 20 Aug 2012 22:23:22 +0200 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..d961e30 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6 @@ +nxclient (3.5.0-7) UNRELEASED; urgency=medium + + * Imported Initial version 3.5.0 + + -- NoMachine NX Thu, 2 Sep 2014 18:01:20 +0200 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..53ad132 --- /dev/null +++ b/debian/control @@ -0,0 +1,34 @@ +Source: nxclient +Section: base +Priority: optional +Maintainer: NoMachine NX +Build-Depends: debhelper (>= 5), build-essential, rsync +Standards-Version: 3.9.5 +Homepage: https://ftp.disconnected-by-peer.at/NX/ + +Package: nxclient +Architecture: i386 amd64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: NX Client + . + NoMachine NX is a fast and scalable terminal server system based on the + X11 protocol. NX lets you work fluently even across slow links like modems + and provides a full set of administration tools that make it a complete + desktop virtualization solution for your organization. + . + This package contains the graphical front-end used to access X, RDP and RFB + sessions on a remote NX Server. It also includes NX X compression libraries + and utilities needed by both NX Client and Server. + . + Baseline: + . + nx-X11: 3.5.0-1 + nxauth: 3.5.0-1 + nxwin: 3.5.0-2 + nxssh: 3.5.0-2 + nxcomp: 3.5.0-2 + nxesd: 3.5.0-2 + nxkill: 3.5.0-1 + nxservice: 3.5.0-2 + nxcompsh: 3.5.0-1 + nx-X11-compat: 3.5.0-1 diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..2f497e7 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,333 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: nomachine +Source: https://www.nomachine.com/licensing/nomachine-end-user-license-agreement + +Files: amd64/* i386/* +Copyright: Copyright (c) 2002-2011 NoMachine +License: Proprietary + End-User License Agreement + + NoMachine - Rome - Italy + + NoMachine NX Products License + + Copyright (c) 2002-2011 NoMachine. All Rights Reserved. + + Do not install or use NX products until you have read and accepted this + Agreement. By installing or using NX products you accept this Agreement. + + If you do not agree to the terms of this license, you must not install + or use the NoMachine NX products. When applicable you may return NX + product you purchased, including all packaging, media, and documentation, + to the place of purchase for a refund, provided that the return is made + within ten days of the date of purchase. + + 1. Licensee + + "Licensee" is the person, company or entity who uses this NX Product. + The Licensee must accept and agree to this Agreement before installing + or using the NX Product. + + 2. License of NoMachine NX Product + + Subject to the other provisions of this Agreement, NoMachine grants to + Licensee a nonexclusive, nontransferable license ("the License") to use + the NX Product on a single computer system. Additionally, this product + may be installed on more than one computer system in a non-commercial + setting. Rights to NoMachine not expressly granted to Licensee in this + Agreement are reserved by NoMachine. + + 3. NX Product + + The "NX Product" includes the NX Software (NX Client, NX Server, NX + Server Manager, NX Web Companion any edition and add-on software) and, + depending on the product, a License Certificate. + + 4. NX Software + + The "NX Software" includes three categories of computer programs: + Commercial Software developed by NoMachine, Open Source Software + developed by NoMachine, Third Party Open Source Software. The term + "Software" is used to mean any or all of the Commercial, Open Source, + and Third Party Software. + + 4.1 Commercial NoMachine Software + + NoMachine Commercial Software consists of the following computer programs + that have been developed by NoMachine: + + - nxserver + - nxnode + - nxmanager + - nxclient + - nxapplet + - nxstat + + NoMachine owns the copyrights and intellectual property in and to each + item of NoMachine Commercial Software. Redistribution of NX Server + software is forbidden without written permission by NoMachine. + Redistribution of NX Client software, including commercial Closed Source + packages, is allowed, free of charge, for commercial and non-commercial + use providing any copyright notices that pertain to the origins of the + Software are not altered in any way or removed. + + You may not copy the Software except for a reasonable number of machine- + readable copies of the Software for backup or archival purposes and except + as expressly permitted in this EULA. + + No modification, adaptation, translation of the software is permitted, + including modification to the graphical contents, without specific and + prior permission from NoMachine. + + 4.2 Open Source NoMachine Software + + Open Source NoMachine Software consists of packages developed by NoMachine + for inclusion in NX products. NoMachine Open Source software packages + and modifications to existing Open Source packages are released by + NoMachine under the terms of the GNU Public License version 2. The license + governs the software and the copying, distribution, modification, and + use of the software. Source code of the Open Source software packages + is included and distributed to Licensee, consistent with the requirements + of the license agreement. Open Source Software developed by NoMachine + is owned by NoMachine and distributed by NoMachine to Licensee for use + by Licensee. NoMachine releases as Open Source software the following + packages: + + - nxproxy + - nxcomp + - nxcompext + - nxssh + - nxuexec + - nxspool + - nxsensor + - nx-X11 + - nx-X11-compat + - nxwin + - nxauth + - nxagent + - nxcompshad + - nxesd + - nxscripts + - nxcompsh + - nxkill + - nxservice + - nxbuilder + + 4.3 Third Party Open Source Software + + Many of the Software Programs included in the Software are distributed + under the terms of agreements with third parties ("Third Party Agreements") + which may expand or limit your rights to use certain Software Programs + as set forth in Section 2. Certain Software Programs may be licensed + (or sublicensed) under the GNU General Public License and other similar + open source license agreements ("OSLAs") which, among other rights, + permit the copying, modification and redistribution of certain Software + Programs, or portions thereof, and give access to the source code of + certain Software Programs, or portions thereof. In addition, certain + Software Programs, or portions thereof, may be licensed (or sublicensed) + under terms stricter than those set forth in Section 2. The Third Party + Agreements, related online documentation, source code, and other information + about such Software Programs are available at the relevant websites: + + - Cygwin [Cygwin License, http://www.cygwin.com/] + - XFree86 [XFree86 License, http://www.xfree.org/] + - X.Org [X.org License, ftp://www.x.org/pub/X11R6.9.0/doc/LICENSE] + - OpenSSH [OpenSSH License, http://www.openssh.org/] + - CUPS [GPL, http://www.cups.org/] + - SAMBA [GPL, http://www.samba.net/] + - ESD [GPL, http://www.tux.org/~ricdude/EsounD.html] + - GKrellM [GPL, http://www.gkrellm.net/] + - SQLite [SQLite License, http://www.sqlite.org/] + + Upon request NoMachine will deliver all the relative third-party source + code, consistent with the licensing terms of the original software, and + documentation at the cost of the postage charges incurred. + + You acknowledge that you have read, understood and agreed to the terms + and conditions of each such Third Party Agreement. To the extent any + Third Party Agreements require that Licensor provide rights to use, copy + or modify a Software Program that are broader than the rights granted + in Section 2, then such rights shall take precedence over the rights + and restrictions granted in this Agreement solely for such Software + Programs. + + Licensed, Not Sold Open Source Software, NoMachine Software and Third + Party Software are not sold, but are licensed and distributed to Licensee. + Any reference to the purchase or sale of the NX Product means, with respect + to the NX Software and Third Party Software, a purchase or sale of the + applicable licenses. The license fees for such licenses are included in + the NX product purchase price. No fee is charged for any Open Source + Software license, but a fee for distribution (e.g., transferring a copy + or copies to Licensee) is included in the NX product purchase price. + Ownership of copies of Open Source Software, NoMachine Software and Third + Party Software is governed by the applicable license agreement. + + Maintenance Releases All maintenance releases, fixes, patches, work-around + solutions, upgrades, and updates for or to the Open Source Software, + NoMachine Software and Third Party Software made available by NoMachine + or its distributors, OEMs, VARs or other resellers to Licensee shall be + deemed part of the NoMachine Software, Third Party Software or Open + Source Software as applicable, and shall be governed by this Agreement + and the license agreements referred to herein, unless a different license + agreement is provided with or made applicable to such maintenance releases, + fixes, patches, work-around solutions, upgrades, and updates. + + 5. Documentation + + "Documentation" means the online documentation and printed documentation, + if any, provided to Licensee in connection with NX, except for documentation + provided under third party or open source licenses as provided in Sections + 4.2 and 4.3 above. Whenever the context reasonably permits, any reference + in this Agreement to NoMachine Software shall also apply to Documentation. + The Documentation may be used by Licensee, but only in connection with + this NX Product. + + 6. NoMachine Artwork + + "NoMachine Artwork" includes the [!M] logo, the NoMachine and NX logos, + included icon sets, and other trademarks. NoMachine holds all rights, + including the right of distribution, to NoMachine Artwork. + + 7. Limited Warranty + + Media And Documentation. NoMachine warrants that if the NX Product media + or printed documentation, if any, provided by NoMachine are in a damaged + or physically defective condition when delivered and if they are returned + to NoMachine (postage prepaid) within 30 days of the date of purchase, + then NoMachine will provide Licensee with replacements at no charge. + + NoMachine Software. NoMachine warrants that if the NoMachne Software + fails to substantially conform to the specifications in the Documentation + or to any other NoMachine Software specifications published by NoMachine + and if the nonconformity is reported in writing by Licensee to NoMachine + within 30 days from the date the License is purchased, then NoMachine + shall either remedy the nonconformity or offer to refund the purchase + price to Licensee upon a return of the NX Product (including all packaging, + media, and documentation) to NoMachine. In the event of a refund, the + License shall terminate. + + Third Party Software. Warranties, if any, applicable to Third Party + Software will be the warranties made by the third party licensors in + the applicable license agreements. + + Open Source Software. Pursuant to the various open source licenses + there is no warranty applicable to Open Source Software. + + 8. Disclaimers And Limitations + + Disclaimer Of Warranties. NOMACHINE MAKES NO WARRANTY, PROMISE OR + REPRESENTATION NOT EXPRESSLY SET FORTH IN THIS AGREEMENT. EXCEPT AS + EXPRESSLY WARRANTED HEREIN, THE NX SOFTWARE IS PROVIDED "AS IS" WITHOUT + WARRANTY OR REPRESENTATION OF ANY KIND. NOMACHINE MAKES NO WARRANTY OR + REPRESENTATION WITH RESPECT TO THIRD PARTY SOFTWARE. OPEN SOURCE SOFTWARE + IS PROVIDED "AS IS" WITHOUT WARRANTY OR REPRESENTATION OF ANY KIND. + NOMACHINE DISCLAIMS AND EXCLUDES ALL IMPLIED WARRANTIES INCLUDING, WITHOUT + LIMITATION, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. NOMACHINE DOES NOT WARRANT THAT + ANY THE SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT IT IS + WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED. + THIS AGREEMENT GIVES LICENSEE SPECIFIC LEGAL RIGHTS. LICENSEE MIGHT + HAVE OTHER RIGHTS, WHICH VARY FROM STATE/JURISDICTION TO STATE/JURISDICTION. + + Limitation On Liability. THE AGGREGATE LIABILITY OF NOMACHINE ARISING + FROM OR RELATING TO THIS AGREEMENT OR ANY OF THE SOFTWARE (REGARDLESS + OF THE FORM OF ACTION OR CLAIM - E.G., CONTRACT, WARRANTY, TORT, STRICT + LIABILITY, MALPRACTICE, FRAUD AND/OR OTHERWISE) SHALL NOT EXCEED THE + TOTAL PAYMENT MADE BY LICENSEE TO PURCHASE THIS NX PRODUCT. NOMACHINE + SHALL NOT IN ANY CASE BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, + INDIRECT OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFIT, REVENUE, DATA, OR + PROGRAMS, EVEN IF NoMachine HAS BEEN ADVISED OF THE POSSIBILITY THEREOF. + Because some states/jurisdictions do not allow the exclusion or limitation + of liability, the above limitation might not apply. + + Responsibility For Decisions. Licensee is responsible for decisions + made and actions taken based on the Software. + + Non-Parties. The officers, directors, employees, shareholders and + representatives of NoMachine are not parties to this Agreement and shall + have no obligation or liability to Licensee relating to this Agreement + or the Software. + + 9. Sole Remedy And Allocation Of Risk + + LICENSEE'S SOLE AND EXCLUSIVE REMEDY IS SET FORTH IN THIS AGREEMENT. + This Agreement defines a mutually agreed-upon allocation of risk and + the License fees reflect such allocation of risk. + + 10. Support + + Nothing in this Agreement entitles Licensee to any support, maintenance + or new versions or distributions of any Software. Licensee may contact + NoMachine to determine the availability of support, maintenance and new + versions and distributions of Software, and the fees, terms and conditions + applicable there to. + + 11. Governing Law + + This Agreement shall be governed by the laws of the state of Italy without + giving effect to conflict or choice of law principles. The parties agree + to exclude application of the "United Nations Convention on Contracts + for the International Sale of Goods" to this Agreement. Any litigation + between the parties shall be conducted exclusively in Rome state courts. + The parties agree and submit to such exclusive jurisdiction and venue. + + 12. Entire Agreement + + This Agreement sets forth the entire understanding and agreement between + the parties relating to the subject matter of this Agreement and may be + amended only in a writing signed by both parties. No vendor, distributor, + OEM, VAR, reseller, dealer, retailer, sales person or other person is + authorized by NoMachine to modify this Agreement or to make any warranty, + representation or promise which is different than, or in addition to, + the warranties, representations and promises of this Agreement. + + 13. Termination + + The License shall automatically terminate if Licensee materially breaches + this Agreement. Upon termination of the License, Licensee shall cease + all use of the NX Software and shall destroy all copies of the NX Software + within the possession or control of Licensee and shall return the original + NX Software media and Documentation, if any, to NoMachine. + + 14. Export Laws + + Licensee shall not export, disclose or distribute any Software in violation + of any applicable laws or regulations, including the export laws and + regulations of Italy, and shall comply with all such laws and regulations. + + 15. Construction + + In the construction and interpretation of this Agreement, no rule of + strict construction shall apply against either party. + + 16. Severability + + If any provision in this Agreement is invalid or unenforceable or contrary + to applicable law, such provision shall be construed, limited, or altered, + as necessary, to eliminate the invalidity or unenforceability or the + conflict with applicable law, and all other provisions of this Agreement + shall remain in effect. + + NoMachine's End User License Agreement is subject to revisions. Please + see http://www.nomachine.com for any updates + +Files: debian/* +Copyright: Copyright (C) 2014-2025 Mario Fetka (geos_one) +License: GPL-2.0+ + +License: GPL-2.0+ + This package 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 package 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, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..018d58d --- /dev/null +++ b/debian/dirs @@ -0,0 +1 @@ +usr/NX diff --git a/debian/nxclient.wrapper b/debian/nxclient.wrapper new file mode 100644 index 0000000..c53e4c1 --- /dev/null +++ b/debian/nxclient.wrapper @@ -0,0 +1,2 @@ +#!/bin/sh +LD_PRELOAD=/usr/NX/lib/nxfixglibc1190.so /usr/NX/bin/nxclient.bin /$@ diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..46c5a75 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,715 @@ +#!/bin/sh + +NX_ROOT="/usr/NX" +APPLNK_DIR="/usr/NX/share/applnk" +ICONS_DIR="/usr/NX/share/icons" +LINK_NAME="/NX Client for Linux" + +LINK_DIR_X="$APPLNK_DIR/x-nxclient" +LINK_DIR_XK="$APPLNK_DIR/x-nxclient-kde" +LINK_DIR_XD="$APPLNK_DIR/x-nxclient-direct" +LINK_DIR_N="$APPLNK_DIR/network" +LINK_DIR_NRH8="$APPLNK_DIR/network-rh8" +LINK_DIR_NG="$APPLNK_DIR/network-gnome" +LINK_DIR_C="$APPLNK_DIR/clean" +LINK_DIR_MDK="$APPLNK_DIR/mdk" + +XDG_LINK_DIR_X="$APPLNK_DIR/xdg-x" +XDG_LINK_DIR_XD="$APPLNK_DIR/xdg-x-direct" +XDG_MENU="/etc/xdg/menus/applications-merged" +XDG_MENU_KDE="/etc/xdg/menus/kde-applications-merged" +XDG_DIRECTORY="/usr/share/desktop-directories" +XDG_DESKTOP="/usr/share/applications" +XDG_DESKTOP_NOVELL="/opt/gnome/share/applications" +XDG_ICONS_DIR="/usr/share/icons/hicolor" +XDG_ICONS_DIR_OPT_GNOME="/opt/gnome/share/icons/hicolor" +XDG_ICONS_DIR_OPT_KDE="/opt/kde3/share/icons/hicolor" + +KDE_APPLNK="/usr/share/applnk/" +KDE_APPLNK_RH="/usr/share/applnk-redhat/" +KDE2_APPLNK_SUSE="/opt/kde2/share/applnk/" +KDE3_APPLNK_SUSE="/opt/kde3/share/applnk/" + +GNOME_APPLNK="/usr/share/gnome/apps/" +GNOME_APPLNK_SUSE="/opt/gnome/share/gnome/apps/" +GNOME_APPLNK_MDK="/var/lib/gnome/Mandrake/" +ALL_APPLNK_MDK="/usr/share/applnk-mdk/" + +XDG_MIME_DIR="/usr/share/mime/packages" +XDG_MIME_LINK_DIR="$APPLNK_DIR/mime-xdg" + +KDE_MIME_DIR="/usr/share/mimelnk/application" +KDE_SUSE_MIME_DIR="/opt/kde3/share/mimelnk/application" +KDE_MIME_LINK_DIR="$APPLNK_DIR/mime-kde" + +GNOME_MIME_ICON_DIR1="/usr/share/icons/gnome/16x16/mimetypes" +GNOME_MIME_ICON_DIR2="/usr/share/icons/gnome/22x22/mimetypes" +GNOME_MIME_ICON_DIR3="/usr/share/icons/gnome/32x32/mimetypes" +GNOME_MIME_ICON_DIR4="/usr/share/icons/gnome/48x48/mimetypes" +GNOME_MIME_ICON_DIR_HICOLOR="/usr/share/icons/hicolor/48x48/mimetypes" +GNOME_MIME_ICON1="$GNOME_MIME_ICON_DIR1/gnome-mime-application-nx-session.png" +GNOME_MIME_ICON2="$GNOME_MIME_ICON_DIR2/gnome-mime-application-nx-session.png" +GNOME_MIME_ICON3="$GNOME_MIME_ICON_DIR3/gnome-mime-application-nx-session.png" +GNOME_MIME_ICON4="$GNOME_MIME_ICON_DIR4/gnome-mime-application-nx-session.png" +GNOME_MIME_ICON_HICOLOR="$GNOME_MIME_ICON_DIR_HICOLOR/gnome-mime-application-nx-session.png" +GNOME_SUSE_MIME_ICON_DIR="/opt/gnome/share/icons/gnome/48x48/mimetypes" +GNOME_SUSE_MIME_ICON_DIR_HICOLOR="/opt/gnome/share/icons/hicolor/48x48/mimetypes" +GNOME_SUSE_MIME_ICON="$GNOME_SUSE_MIME_ICON_DIR/gnome-mime-application-nx-session.png" +GNOME_SUSE_MIME_ICON_HICOLOR="$GNOME_SUSE_MIME_ICON_DIR_HICOLOR/gnome-mime-application-nx-session.png" +GNOME_MIME_LINK_ICON1="/usr/NX/share/icons/16x16/application-nx-session.png" +GNOME_MIME_LINK_ICON2="/usr/NX/share/icons/22x22/application-nx-session.png" +GNOME_MIME_LINK_ICON3="/usr/NX/share/icons/32x32/application-nx-session.png" +GNOME_MIME_LINK_ICON4="/usr/NX/share/icons/48x48/application-nx-session.png" + +debug() +{ + echo $1 >> /tmp/nxinstall.txt +} + +debug "" +debug "" + +debugSystem() +{ + debug "" + debug "release file:" + debug "`cat $1`" + debug "" + debug "issue file:" + debug "`cat /etc/issue`" + debug "" + debug "/etc/xdg dir:" + if [ -d /etc/xdg ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$XDG_MENU dir:" + if [ -d $XDG_MENU ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$XDG_MENU_KDE dir:" + if [ -d $XDG_MENU_KDE ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$XDG_DIRECTORY dir:" + debug "$XDG_DIRECTORY dir:" + if [ -d $XDG_DIRECTORY ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$XDG_DESKTOP dir:" + if [ -d $XDG_DESKTOP ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$XDG_MIME_DIR dir:" + if [ -d $XDG_MIME_DIR ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$GNOME_MIME_ICON_DIR1 dir:" + if [ -d $GNOME_MIME_ICON_DIR1 ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "$GNOME_MIME_ICON_DIR_HICOLOR dir:" + if [ -d $GNOME_MIME_ICON_DIR_HICOLOR ]; then + debug "exist" + else + debug "not exist" + fi + debug "" + debug "kde-config --path apps:" + debug `( kde-config --path apps || echo not_found ) 2>/dev/null ` + debug "" + debug "gnome-config --datadir:" + debug `( gnome-config --datadir || echo not_found ) 2>/dev/null ` + debug "" +} + +doCreateLink() +{ + if test -d "$2"; then + if test -e "$2$LINK_NAME"; then + rm -rf "$2$LINK_NAME" + fi + if test -d "$2/$3"; then + if test -e "$2/$3/$LINK_NAME"; then + rm -rf "$2/$3/$LINK_NAME" + fi + fi + if test -d "$2/$3"; then + debug "linking $1 to $2$3$LINK_NAME" + ln -sf "$1" "$2$3$LINK_NAME" + elif test -d "$2"; then + debug "linking $1 to $2$LINK_NAME" + ln -sf "$1" "$2$LINK_NAME" + fi + else + debug "$2 don't exist" + fi +} + +doCreateSingleLinks() +{ + debug "linking $1/*.desktop to $2" + if test -f "$1/nxclient-gnome.desktop"; then + debug " using gnome only entrys" + POST="-gnome" + elif test -f "$1/nxclient-kde.desktop"; then + debug " using kde only entrys" + POST="-kde" + else + debug " using normal entrys" + POST="" + fi + + if test -d "$2"; then + if test -e "$2/nxclient$POST.desktop"; then + rm -f "$2/nxclient$POST.desktop" + fi + ln -sf "$1/nxclient$POST.desktop" $2/. + + if test -e "$2/nxclient-wizard$POST.desktop"; then + rm -f "$2/nxclient-wizard$POST.desktop" + fi + ln -sf "$1/nxclient-wizard$POST.desktop" $2/. + + if test -e "$2/nxclient-help$POST.desktop"; then + rm -f "$2/nxclient-help$POST.desktop" + fi + ln -sf "$1/nxclient-help$POST.desktop" $2/. + + if test -e "$2/nxclient-admin$POST.desktop"; then + rm -f "$2/nxclient-admin$POST.desktop" + fi + ln -sf "$1/nxclient-admin$POST.desktop" $2/. + else + debug "$2 don't exist" + fi +} + +doCreateXGD() +{ + + debug "linking to xdg tree" + + if test -d "/etc/xdg"; then + if [ ! -d "$XDG_MENU" ]; then + debug " fixing $XDG_MEN" + mkdir -p "$XDG_MENU" + fi + if test -e "$XDG_MENU/nxclient.menu"; then + rm -f "$XDG_MENU/nxclient.menu" + fi + debug " linking $2/nxclient.menu to $XDG_MENU" + + ln -sf "$2/nxclient.menu" $XDG_MENU/. + + if [ -d "$XDG_MENU_KDE" ]; then + if test -e "$XDG_MENU_KDE/nxclient.menu"; then + rm -f "$XDG_MENU_KDE/nxclient.menu" + fi + debug " linking $2/nxclient.menu to $XDG_MENU_KDE" + ln -sf "$2/nxclient.menu" $XDG_MENU_KDE/. + fi + fi + + if test -d "$XDG_DIRECTORY"; then + if test -e "$XDG_DIRECTORY/nxclient.directory"; then + rm -f "$XDG_DIRECTORY/nxclient.directory" + fi + debug " linking $2/nxclient.directory to $XDG_DIRECTORY" + ln -sf "$2/nxclient.directory" $XDG_DIRECTORY/. + fi + + doCreateSingleLinks $1 $XDG_DESKTOP +} + +doCreateIconLinks() +{ + debug "linking to xdg icons" + + if [ -d "$XDG_ICONS_DIR" ]; then + + if [ -d "$XDG_ICONS_DIR/16x16/apps" ]; then + ln -sf "$ICONS_DIR/16x16/nxclient-icon.png" "$XDG_ICONS_DIR/16x16/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/16x16/nxclient-desktop.png" "$XDG_ICONS_DIR/16x16/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/16x16/nxclient-wizard.png" "$XDG_ICONS_DIR/16x16/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/16x16/nxclient-admin.png" "$XDG_ICONS_DIR/16x16/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR/22x22/apps" ]; then + ln -sf "$ICONS_DIR/22x22/nxclient-icon.png" "$XDG_ICONS_DIR/22x22/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/22x22/nxclient-desktop.png" "$XDG_ICONS_DIR/22x22/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/22x22/nxclient-wizard.png" "$XDG_ICONS_DIR/22x22/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/22x22/nxclient-admin.png" "$XDG_ICONS_DIR/22x22/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR/32x32/apps" ]; then + ln -sf "$ICONS_DIR/32x32/nxclient-icon.png" "$XDG_ICONS_DIR/32x32/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/32x32/nxclient-desktop.png" "$XDG_ICONS_DIR/32x32/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/32x32/nxclient-wizard.png" "$XDG_ICONS_DIR/32x32/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/32x32/nxclient-admin.png" "$XDG_ICONS_DIR/32x32/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR/48x48/apps" ]; then + ln -sf "$ICONS_DIR/48x48/nxclient-icon.png" "$XDG_ICONS_DIR/48x48/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/48x48/nxclient-desktop.png" "$XDG_ICONS_DIR/48x48/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/48x48/nxclient-wizard.png" "$XDG_ICONS_DIR/48x48/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/48x48/nxclient-admin.png" "$XDG_ICONS_DIR/48x48/apps/nxclient-admin.png" + fi + + GTK_UPDATE_ICON_CACHE="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + debug "Checking $x for gtk-update-icon-cache" + if [ -x "$x/gtk-update-icon-cache" ] ; then + debug "Found $x/gtk-update-icon-cache" + GTK_UPDATE_ICON_CACHE="$x/gtk-update-icon-cache" + fi + done + + if [ "$GTK_UPDATE_ICON_CACHE" != "-" ] ; then + debug "Running $GTK_UPDATE_ICON_CACHE -f -t \"$XDG_ICONS_DIR\"" + eval '$GTK_UPDATE_ICON_CACHE -f -t "$XDG_ICONS_DIR" 2>/dev/null >/dev/null' + fi + + fi +} + +doCreateIconLinksOpt() +{ + debug "linking to xdg in opt dir icons" + + if [ -d "$XDG_ICONS_DIR_OPT_GNOME" ]; then + + if [ -d "$XDG_ICONS_DIR_OPT_GNOME/16x16/apps" ]; then + ln -sf "$ICONS_DIR/16x16/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_GNOME/16x16/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/16x16/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_GNOME/16x16/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/16x16/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_GNOME/16x16/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/16x16/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_GNOME/16x16/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_GNOME/22x22/apps" ]; then + ln -sf "$ICONS_DIR/22x22/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_GNOME/22x22/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/22x22/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_GNOME/22x22/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/22x22/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_GNOME/22x22/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/22x22/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_GNOME/22x22/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_GNOME/32x32/apps" ]; then + ln -sf "$ICONS_DIR/32x32/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_GNOME/32x32/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/32x32/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_GNOME/32x32/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/32x32/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_GNOME/32x32/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/32x32/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_GNOME/32x32/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_GNOME/48x48/apps" ]; then + ln -sf "$ICONS_DIR/48x48/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_GNOME/48x48/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/48x48/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_GNOME/48x48/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/48x48/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_GNOME/48x48/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/48x48/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_GNOME/48x48/apps/nxclient-admin.png" + fi + + GTK_UPDATE_ICON_CACHE="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + debug "Checking $x for gtk-update-icon-cache" + if [ -x "$x/gtk-update-icon-cache" ] ; then + debug "Found $x/gtk-update-icon-cache" + GTK_UPDATE_ICON_CACHE="$x/gtk-update-icon-cache" + fi + done + + if [ "$GTK_UPDATE_ICON_CACHE" != "-" ] ; then + debug "Running $GTK_UPDATE_ICON_CACHE -f -t \"$XDG_ICONS_DIR_OPT_GNOME\"" + eval '$GTK_UPDATE_ICON_CACHE -f -t "$XDG_ICONS_DIR_OPT_GNOME" 2>/dev/null >/dev/null' + fi + + fi + if [ -d "$XDG_ICONS_DIR_OPT_KDE" ]; then + + if [ -d "$XDG_ICONS_DIR_OPT_KDE/16x16/apps" ]; then + ln -sf "$ICONS_DIR/16x16/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_KDE/16x16/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/16x16/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_KDE/16x16/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/16x16/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_KDE/16x16/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/16x16/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_KDE/16x16/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_KDE/22x22/apps" ]; then + ln -sf "$ICONS_DIR/22x22/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_KDE/22x22/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/22x22/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_KDE/22x22/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/22x22/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_KDE/22x22/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/22x22/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_KDE/22x22/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_KDE/32x32/apps" ]; then + ln -sf "$ICONS_DIR/32x32/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_KDE/32x32/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/32x32/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_KDE/32x32/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/32x32/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_KDE/32x32/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/32x32/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_KDE/32x32/apps/nxclient-admin.png" + fi + + if [ -d "$XDG_ICONS_DIR_OPT_KDE/48x48/apps" ]; then + ln -sf "$ICONS_DIR/48x48/nxclient-icon.png" "$XDG_ICONS_DIR_OPT_KDE/48x48/apps/nxclient-icon.png" + ln -sf "$ICONS_DIR/48x48/nxclient-desktop.png" "$XDG_ICONS_DIR_OPT_KDE/48x48/apps/nxclient-desktop.png" + ln -sf "$ICONS_DIR/48x48/nxclient-wizard.png" "$XDG_ICONS_DIR_OPT_KDE/48x48/apps/nxclient-wizard.png" + ln -sf "$ICONS_DIR/48x48/nxclient-admin.png" "$XDG_ICONS_DIR_OPT_KDE/48x48/apps/nxclient-admin.png" + fi + + # GTK_UPDATE_ICON_CACHE="-" + # for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + # debug "Checking $x for gtk-update-icon-cache" + # if [ -x "$x/gtk-update-icon-cache" ] ; then + # debug "Found $x/gtk-update-icon-cache" + # GTK_UPDATE_ICON_CACHE="$x/gtk-update-icon-cache" + # fi + # done + # + # if [ "$GTK_UPDATE_ICON_CACHE" != "-" ] ; then + # debug "Running $GTK_UPDATE_ICON_CACHE -f -t \"$XDG_ICONS_DIR_OPT_KDE\"" + # eval '$GTK_UPDATE_ICON_CACHE -f -t "$XDG_ICONS_DIR_OPT_KDE" 2>/dev/null >/dev/null' + # fi + + fi +} + +doCreateMDK() +{ + + debug "linking to mdk menu system" + + if test -d "/usr/lib/menu"; then + if test -e "/usr/lib/menu/nxclient"; then + rm -f "/usr/lib/menu/nxclient" + fi + debug " linking $LINK_DIR_MDK/nxclient to /usr/lib/menu/nxclient" + ln -sf "$LINK_DIR_MDK/nxclient" "/usr/lib/menu/nxclient" + debug " adding $LINK_DIR_MDK/menu to /usr/lib/menu/menu" + + if test -e "/usr/lib/menu/menu"; then + NUM=`cat /usr/lib/menu/menu| grep -c "NX Client for Linux"` + if [ $NUM -le 0 ]; then + echo "# +?package(menu): needs=x11 section=\"Internet\" title=\"NX Client for Linux\" icon=\"/usr/NX/share/icons/48x48/nxclient-icon.png\"" >> "/usr/lib/menu/menu" + fi + fi + fi + +} + +if [ -f /etc/mandrake-release ]; then + debug "detected mandrake" + debugSystem "/etc/mandrake-release" + + if [ -d "$ALL_APPLNK_MDK/Networking" ]; then + debug " using Networking group" + doCreateLink $LINK_DIR_C $ALL_APPLNK_MDK "Networking" + doCreateLink $LINK_DIR_C $GNOME_APPLNK_MDK "Networking" + elif [ -e "/usr/lib/menu/menu" ]; then + debug " using Internet group and native mdk menu system" + doCreateMDK + #doCreateLink $LINK_DIR_C $ALL_APPLNK_MDK "Internet" + #doCreateLink $LINK_DIR_C $GNOME_APPLNK_MDK "Internet" + #doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP + elif [ -d "/etc/xdg" ]; then + debug " detected xdg" + doCreateIconLinks + doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + fi + +elif [ -f /etc/redhat-release ]; then + debug "detected redhat" + debugSystem "/etc/redhat-release" + + VERS=`cat /etc/redhat-release` + + if [ "$VERS" = "Fedora Core release 4 (Stentz)" ]; then + debug " detected fedora core 4" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + elif [ "$VERS" = "Fedora Core release 3 (Heidelberg)" ]; then + debug " detected fedora core 3" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + elif [ "$VERS" = "Fedora Core release 1 (Yarrow)" ]; then + debug " detected fedora core 1" + debug " using rh8 entrys" + doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP + elif [ "$VERS" = "Fedora Core release 2 (Tettnang)" ]; then + debug " detected fedora core 2" + debug " using rh8 entrys" + doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP + elif [ "$VERS" = "Red Hat Linux release 9 (Shrike)" -o "$VERS" = "Red Hat Linux release 8.0 (Psyche)" ]; then + debug " detected red hat 8/9" + doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP + #doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + #doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP + else + if [ -d /etc/xdg ]; then + debug " detected xdg" + doCreateIconLinks + doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + else + if [ -d $KDE_APPLNK ]; then + doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" + else + doCreateLink $LINK_DIR_C $KDE_APPLNK_RH "Internet" + fi + if [ -d $GNOME_APPLNK ]; then + doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" + else + doCreateSingleLinks $LINK_DIR_N $XDG_DESKTOP + fi + fi + fi + +elif [ -f /etc/SuSE-release ]; then + debug "detected suse" + debugSystem "/etc/SuSE-release" + + VERS=`cat /etc/SuSE-release` + + if [ "$VERS" = "SuSE Linux 9.0 (i586) +VERSION = 9.0" ]; then + debug " detected suse 9.0" + doCreateLink $LINK_DIR_C $KDE3_APPLNK_SUSE "Internet" + doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP + elif [ "$VERS" = "SuSE Linux 9.1 (i586) +VERSION = 9.1" ]; then + debug " detected suse 9.1" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP_NOVELL + elif [ "$VERS" = "SuSE Linux 9.2 (i586) +VERSION = 9.2" ]; then + debug " detected suse 9.2" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + elif [ "$VERS" = "SuSE Linux 9.3 (i586) +VERSION = 9.3" ]; then + debug " detected suse 9.3" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + elif [ "$VERS" = "Novell Linux Desktop 9 (i586) +VERSION = 9 +RELEASE = 9" ]; then + debug " detected novell 9" + doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP_NOVELL + else + if [ -d /etc/xdg ]; then + debug " detected xdg" + doCreateIconLinks + doCreateIconLinksOpt + doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + #if [ -d "$XDG_ICONS_DIR" ]; then + # debug " suse with sstandard icons dir" + # doCreateIconLinks + # doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + #else + # debug " suse without icons dir" + # doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + #fi + else + doCreateLink $LINK_DIR_C $KDE2_APPLNK_SUSE "Internet" + doCreateLink $LINK_DIR_C $KDE3_APPLNK_SUSE "Internet" + doCreateLink $LINK_DIR_C $GNOME_APPLNK_SUSE "Internet" + fi + fi + +elif [ -f /etc/debian_version ]; then + debug "detected debian" + debugSystem "/etc/debian_version" + + VERS=`cat /etc/debian_version` + + if [ "$VERS" = "testing/unstable" -a -f "/etc/xdg/menus/gnome-applications.menu" ]; then + debug " detected debian unstable with separate gnome menu" + doCreateXGD $LINK_DIR_XK $XDG_LINK_DIR_X + doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP + elif [ "$VERS" = "3.1" ]; then + debug " detected debian/xandros 3.1" + doCreateSingleLinks $LINK_DIR_N $XDG_DESKTOP + #doCreateXGD $LINK_DIR_XD $XDG_LINK_DIR_XD + #doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" + else + if [ -d /etc/xdg ]; then + debug " detected xdg" + doCreateIconLinks + doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + else + doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" + doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" + fi + fi + +else + debug "failed to detect any distro" + debug "using defaults" + if [ -d /etc/xdg ]; then + debug " detected xdg" + doCreateIconLinks + doCreateXGD $LINK_DIR_X $XDG_LINK_DIR_X + else + doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" + doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" + fi +fi + +doCreateXGD_MIME() +{ + + XDG_MIME="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + debug "Checking $x for xdg-mime" + if [ -x "$x/xdg-mime" ] ; then + debug "Found $x/xdg-mime" + XDG_MIME="$x/xdg-mime" + fi + done + + XDG_ICON_RESOURCE="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + debug "Checking $x for xdg-icon-resource" + if [ -x "$x/xdg-icon-resource" ] ; then + debug "Found $x/xdg-icon-resource" + XDG_ICON_RESOURCE="$x/xdg-icon-resource" + fi + done + + if [ "$XDG_MIME" != "-" -a "$XDG_ICON_RESOURCE" != "-" ] ; then + debug "linking to xdg mime with xdg tools" + debug "Running $XDG_MIME install --novendor $XDG_MIME_LINK_DIR/nomachine.xml" + eval '$XDG_MIME install --novendor $XDG_MIME_LINK_DIR/nomachine.xml 2>/dev/null >/dev/null' + + debug "Running $XDG_ICON_RESOURCE install --context mimetypes --size 16 $GNOME_MIME_LINK_ICON1" + eval '$XDG_ICON_RESOURCE install --context mimetypes --size 16 $GNOME_MIME_LINK_ICON1 2>/dev/null >/dev/null' + + debug "Running $XDG_ICON_RESOURCE install --context mimetypes --size 22 $GNOME_MIME_LINK_ICON2" + eval '$XDG_ICON_RESOURCE install --context mimetypes --size 22 $GNOME_MIME_LINK_ICON2 2>/dev/null >/dev/null' + + debug "Running $XDG_ICON_RESOURCE install --context mimetypes --size 32 $GNOME_MIME_LINK_ICON3" + eval '$XDG_ICON_RESOURCE install --context mimetypes --size 32 $GNOME_MIME_LINK_ICON3 2>/dev/null >/dev/null' + + debug "Running $XDG_ICON_RESOURCE install --context mimetypes --size 48 $GNOME_MIME_LINK_ICON4" + eval '$XDG_ICON_RESOURCE install --context mimetypes --size 48 $GNOME_MIME_LINK_ICON4 2>/dev/null >/dev/null' + else + debug "linking to xdg mime without xdg tools" + if test -d "$XDG_MIME_DIR"; then + if test -e "$XDG_MIME_DIR/nomachine.xml"; then + rm -f "$XDG_MIME_DIR/nomachine.xml" + fi + debug " linking $XDG_MIME_LINK_DIR/nomachine.xml to $XDG_MIME_DIR" + ln -sf "$XDG_MIME_LINK_DIR/nomachine.xml" $XDG_MIME_DIR/. + fi + + if test -d "$GNOME_MIME_ICON_DIR1"; then + if test -e "$GNOME_MIME_ICON1"; then + rm -f "$GNOME_MIME_ICON1" + fi + debug " linking $GNOME_MIME_LINK_ICON1 to $GNOME_MIME_ICON1" + ln -sf "$GNOME_MIME_LINK_ICON1" $GNOME_MIME_ICON1 + fi + + if test -d "$GNOME_MIME_ICON_DIR2"; then + if test -e "$GNOME_MIME_ICON2"; then + rm -f "$GNOME_MIME_ICON2" + fi + debug " linking $GNOME_MIME_LINK_ICON2 to $GNOME_MIME_ICON2" + ln -sf "$GNOME_MIME_LINK_ICON2" $GNOME_MIME_ICON2 + fi + + if test -d "$GNOME_MIME_ICON_DIR3"; then + if test -e "$GNOME_MIME_ICON3"; then + rm -f "$GNOME_MIME_ICON3" + fi + debug " linking $GNOME_MIME_LINK_ICON3 to $GNOME_MIME_ICON3" + ln -sf "$GNOME_MIME_LINK_ICON3" $GNOME_MIME_ICON3 + fi + + if test -d "$GNOME_MIME_ICON_DIR4"; then + if test -e "$GNOME_MIME_ICON4"; then + rm -f "$GNOME_MIME_ICON4" + fi + debug " linking $GNOME_MIME_LINK_ICON4 to $GNOME_MIME_ICON4" + ln -sf "$GNOME_MIME_LINK_ICON4" $GNOME_MIME_ICON4 + fi + + if test -d "$GNOME_MIME_ICON_DIR_HICOLOR"; then + if test -e "$GNOME_MIME_ICON_HICOLOR"; then + rm -f "$GNOME_MIME_ICON_HICOLOR" + fi + debug " linking $GNOME_MIME_LINK_ICON4 to $GNOME_MIME_ICON_HICOLOR" + ln -sf "$GNOME_MIME_LINK_ICON4" $GNOME_MIME_ICON_HICOLOR + fi + + if test -d "$GNOME_SUSE_MIME_ICON_DIR"; then + if test -e "$GNOME_SUSE_MIME_ICON"; then + rm -f "$GNOME_SUSE_MIME_ICON" + fi + debug " linking $GNOME_MIME_LINK_ICON4 to $GNOME_SUSE_MIME_ICON" + ln -sf "$GNOME_MIME_LINK_ICON4" $GNOME_SUSE_MIME_ICON + fi + + if test -d "$GNOME_SUSE_MIME_ICON_DIR_HICOLOR"; then + if test -e "$GNOME_SUSE_MIME_ICON_HICOLOR"; then + rm -f "$GNOME_SUSE_MIME_ICON_HICOLOR" + fi + debug " linking $GNOME_MIME_LINK_ICON4 to $GNOME_SUSE_MIME_ICON_HICOLOR" + ln -sf "$GNOME_MIME_LINK_ICON4" $GNOME_SUSE_MIME_ICON_HICOLOR + fi + fi +} + +doCreateKDE_MIME() +{ + + debug "linking to kde mime" + + if test -d "$KDE_MIME_DIR"; then + if test -e "$KDE_MIME_DIR/nx-session.desktop"; then + rm -f "$XDG_MIME_DIR/nx-session.desktop" + fi + debug " linking $KDE_MIME_LINK_DIR/nx-session.desktop to $KDE_MIME_DIR" + ln -sf "$KDE_MIME_LINK_DIR/nx-session.desktop" $KDE_MIME_DIR/. + + elif test -d "$KDE_SUSE_MIME_DIR"; then + if test -e "$KDE_SUSE_MIME_DIR/nx-session.desktop"; then + rm -f "$XDG_SUSE_MIME_DIR/nx-session.desktop" + fi + debug " linking $KDE_MIME_LINK_DIR/nx-session.desktop to $KDE_SUSE_MIME_DIR" + ln -sf "$KDE_MIME_LINK_DIR/nx-session.desktop" $KDE_SUSE_MIME_DIR/. + fi + +} + +doCreateXGD_MIME +doCreateKDE_MIME + +checkPermIPP() +{ + if test -e "/usr/lib/cups/backend/ipp"; then + permit=`stat -c %a /usr/lib/cups/backend/ipp` + + otherPer=`echo $permit|cut -b3`; + + if [ "$otherPer" != "5" ] && [ "$otherPer" != "7" ] + then + echo "Showing file: /usr/NX/share/documents/client/cups-info"; + cat $NX_ROOT/share/documents/client/cups-info + fi + fi +} + +checkPermIPP diff --git a/debian/postrm b/debian/postrm new file mode 100755 index 0000000..6c3467e --- /dev/null +++ b/debian/postrm @@ -0,0 +1,215 @@ +#!/bin/sh + +if test -e /usr/NX/bin/nxclient; then + exit 0; +fi + +LINK_NAME="/NX Client for Linux" + +doRemoveLink() +{ + if test -L "$1$LINK_NAME"; then + rm -rf "$1$LINK_NAME" + fi + + if test -L "$1/Internet/$LINK_NAME"; then + rm -rf "$1/Internet/$LINK_NAME" + fi + + if test -L "$1/Networking/$LINK_NAME"; then + rm -rf "$1/Networking/$LINK_NAME" + fi +} + +doRemoveSingleLinks() +{ + if test -d "$1"; then + rm -f "$1/nxclient.desktop" + rm -f "$1/nxclient-wizard.desktop" + rm -f "$1/nxclient-help.desktop" + rm -f "$1/nxclient-admin.desktop" + + rm -f "$1/nxclient-gnome.desktop" + rm -f "$1/nxclient-wizard-gnome.desktop" + rm -f "$1/nxclient-help-gnome.desktop" + rm -f "$1/nxclient-admin-gnome.desktop" + + rm -f "$1/nxclient-kde.desktop" + rm -f "$1/nxclient-wizard-kde.desktop" + rm -f "$1/nxclient-help-kde.desktop" + rm -f "$1/nxclient-admin-kde.desktop" + fi +} + +doRemoveXDG() +{ + XDG_MENU="/etc/xdg/menus/applications-merged" + XDG_MENU_KDE="/etc/xdg/menus/kde-applications-merged" + XDG_DIRECTORY="/usr/share/desktop-directories" + XDG_DESKTOP="/usr/share/applications" + XDG_DESKTOP_NOVELL="/opt/gnome/share/applications" + + if test -L "$XDG_MENU/nxclient.menu"; then + rm -rf "$XDG_MENU/nxclient.menu" + fi + + if test -L "$XDG_MENU_KDE/nxclient.menu"; then + rm -rf "$XDG_MENU_KDE/nxclient.menu" + fi + + if test -L "$XDG_DIRECTORY/nxclient.directory"; then + rm -rf "$XDG_DIRECTORY/nxclient.directory" + fi + + doRemoveSingleLinks $XDG_DESKTOP + doRemoveSingleLinks $XDG_DESKTOP_NOVELL + + doRemoveXDGIcons +} + +doRemoveXDGIcons() +{ + XDG_ICONS_DIR="/usr/share/icons/hicolor" + + rm -f "$XDG_ICONS_DIR/16x16/apps/nxclient-icon.png" + rm -f "$XDG_ICONS_DIR/22x22/apps/nxclient-icon.png" + rm -f "$XDG_ICONS_DIR/32x32/apps/nxclient-icon.png" + rm -f "$XDG_ICONS_DIR/48x48/apps/nxclient-icon.png" + + rm -f "$XDG_ICONS_DIR/16x16/apps/nxclient-desktop.png" + rm -f "$XDG_ICONS_DIR/22x22/apps/nxclient-desktop.png" + rm -f "$XDG_ICONS_DIR/32x32/apps/nxclient-desktop.png" + rm -f "$XDG_ICONS_DIR/48x48/apps/nxclient-desktop.png" + + rm -f "$XDG_ICONS_DIR/16x16/apps/nxclient-wizard.png" + rm -f "$XDG_ICONS_DIR/22x22/apps/nxclient-wizard.png" + rm -f "$XDG_ICONS_DIR/32x32/apps/nxclient-wizard.png" + rm -f "$XDG_ICONS_DIR/48x48/apps/nxclient-wizard.png" + + rm -f "$XDG_ICONS_DIR/16x16/apps/nxclient-admin.png" + rm -f "$XDG_ICONS_DIR/22x22/apps/nxclient-admin.png" + rm -f "$XDG_ICONS_DIR/32x32/apps/nxclient-admin.png" + rm -f "$XDG_ICONS_DIR/48x48/apps/nxclient-admin.png" +} + +doRemoveMDK() +{ + if test -L "/usr/lib/menu/nxclient"; then + rm -rf "/usr/lib/menu/nxclient" + fi +} + +doRemoveMIME() +{ + XDG_MIME_DIR="/usr/share/mime/packages" + XDG_MIME_DIR_LOCAL="/usr/local/share/mime/packages" + GNOME_MIME_ICON1="/usr/share/icons/gnome/16x16/mimetypes/gnome-mime-application-nx-session.png" + GNOME_MIME_ICON2="/usr/share/icons/gnome/22x22/mimetypes/gnome-mime-application-nx-session.png" + GNOME_MIME_ICON3="/usr/share/icons/gnome/32x32/mimetypes/gnome-mime-application-nx-session.png" + GNOME_MIME_ICON4="/usr/share/icons/gnome/48x48/mimetypes/gnome-mime-application-nx-session.png" + GNOME_MIME_ICON_HICOLOR="/usr/share/icons/hicolor/48x48/mimetypes/gnome-mime-application-nx-session.png" + GNOME_SUSE_MIME_ICON="/opt/gnome/share/icons/gnome/48x48/mimetypes/gnome-mime-application-nx-session.png" + GNOME_SUSE_MIME_ICON_HICOLOR="/opt/gnome/share/icons/hicolor/48x48/mimetypes/gnome-mime-application-nx-session.png" + KDE_MIME_DIR="/usr/share/mimelnk/application" + KDE_SUSE_MIME_DIR="/opt/kde3/share/mimelnk/application" + + + XDG_MIME="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + if [ -x "$x/xdg-mime" ] ; then + XDG_MIME="$x/xdg-mime" + fi + done + + XDG_ICON_RESOURCE="-" + for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do + if [ -x "$x/xdg-icon-resource" ] ; then + XDG_ICON_RESOURCE="$x/xdg-icon-resource" + fi + done + + if [ "$XDG_MIME" != "-" ] ; then + eval '$XDG_MIME uninstall $XDG_MIME_DIR_LOCAL/nomachine.xml 2>/dev/null >/dev/null' + eval '$XDG_MIME uninstall $XDG_MIME_DIR/nomachine.xml 2>/dev/null >/dev/null' + fi + + if [ "$XDG_ICON_RESOURCE" != "-" ] ; then + eval '$XDG_ICON_RESOURCE uninstall --context mimetypes --size 16 application-nx-session.png 2>/dev/null >/dev/null' + eval '$XDG_ICON_RESOURCE uninstall --context mimetypes --size 22 application-nx-session.png 2>/dev/null >/dev/null' + eval '$XDG_ICON_RESOURCE uninstall --context mimetypes --size 32 application-nx-session.png 2>/dev/null >/dev/null' + eval '$XDG_ICON_RESOURCE uninstall --context mimetypes --size 48 application-nx-session.png 2>/dev/null >/dev/null' + fi + + if test -L "$XDG_MIME_DIR/nomachine.xml"; then + rm -f "$XDG_MIME_DIR/nomachine.xml" + fi + + if test -L "$XDG_MIME_DIR_LOCAL/nomachine.xml"; then + rm -f "$XDG_MIME_DIR_LOCAL/nomachine.xml" + fi + + if test -L "$GNOME_MIME_ICON1"; then + rm -f "$GNOME_MIME_ICON1" + fi + + if test -L "$GNOME_MIME_ICON2"; then + rm -f "$GNOME_MIME_ICON2" + fi + + if test -L "$GNOME_MIME_ICON3"; then + rm -f "$GNOME_MIME_ICON3" + fi + + if test -L "$GNOME_MIME_ICON4"; then + rm -f "$GNOME_MIME_ICON4" + fi + + if test -L "$GNOME_MIME_ICON_HICOLOR"; then + rm -f "$GNOME_MIME_ICON_HICOLOR" + fi + + if test -L "$GNOME_SUSE_MIME_ICON"; then + rm -f "$GNOME_SUSE_MIME_ICON" + fi + + if test -L "$GNOME_SUSE_MIME_ICON_HICOLOR"; then + rm -f "$GNOME_SUSE_MIME_ICON_HICOLOR" + fi + + if test -L "$KDE_MIME_DIR/nx-session.desktop"; then + rm -f "$KDE_MIME_DIR/nx-session.desktop" + fi + + if test -L "$KDE_SUSE_MIME_DIR/nx-session.desktop"; then + rm -f "$KDE_SUSE_MIME_DIR/nx-session.desktop" + fi + +} + + +KDE_APPLNK="/usr/share/applnk/" +KDE_APPLNK_RH="/usr/share/applnk-redhat/" +KDE2_APPLNK_SUSE="/opt/kde2/share/applnk/" +KDE3_APPLNK_SUSE="/opt/kde3/share/applnk/" + +GNOME_APPLNK="/usr/share/gnome/apps/" +GNOME_APPLNK_SUSE="/opt/gnome/share/gnome/apps/" +GNOME_APPLNK_MDK="/var/lib/gnome/Mandrake/" + +ALL_APPLNK_MDK="/usr/share/applnk-mdk/" + + +doRemoveLink "$KDE_APPLNK" +doRemoveLink "$KDE_APPLNK_RH" +doRemoveLink "$KDE2_APPLNK_SUSE" +doRemoveLink "$KDE3_APPLNK_SUSE" +doRemoveLink "$GNOME_APPLNK" +doRemoveLink "$GNOME_APPLNK_SUSE" +doRemoveLink "$GNOME_APPLNK_MDK" +doRemoveLink "$ALL_APPLNK_MDK" + +doRemoveXDG + +doRemoveMDK + +doRemoveMIME diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..b9717c1 --- /dev/null +++ b/debian/rules @@ -0,0 +1,47 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +build: build-arch build-indep +build-arch: +build-indep: + +clean: + dh_testdir + dh_testroot + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs +ifeq ($(DEB_BUILD_ARCH),amd64) + rsync -avr $(CURDIR)/amd64/NX $(CURDIR)/debian/nxclient/usr/ +endif +ifeq ($(DEB_BUILD_ARCH),i386) + rsync -avr $(CURDIR)/i386/NX $(CURDIR)/debian/nxclient/usr/ +endif + $(CC) -shared -ldl -fPIC $(CURDIR)/glibc/nxfixglibc1190/libfix1190.c -o $(CURDIR)/debian/nxclient/usr/NX/lib/libfix1190.so + mv $(CURDIR)/debian/nxclient/usr/NX/bin/nxclient $(CURDIR)/debian/nxclient/usr/NX/bin/nxclient.bin + install $(CURDIR)/debian/nxclient.wrapper $(CURDIR)/debian/nxclient/usr/NX/bin/nxclient + +binary-indep: +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/files.diz b/files.diz new file mode 100644 index 0000000..d5229d3 --- /dev/null +++ b/files.diz @@ -0,0 +1,3 @@ +amd64!nxclient!3.5.0!nxclient-3.5.0-7.x86_64.tar.gz!https://ftp.disconnected-by-peer.at/NX/Linux/nxclient-3.5.0-7.x86_64.tar.gz!3d3ba27c7bf78f206964237892590140 +i386!nxclient!3.5.0!nxclient-3.5.0-7.i386.tar.gz!https://ftp.disconnected-by-peer.at/NX/Linux/nxclient-3.5.0-7.i386.tar.gz!0bc9f652cb294bc3eabc71e6ca6fe5dd +glibc!nxclient!3.5.0!nxfixglibc1190.tar.gz!https://ftp.disconnected-by-peer.at/NX/nxfixglibc1190.tar.gz!7bc100e50d2d2b327bd04fb95cdee8fb