qtnx mit autoconnect-Funktion patch'en

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
egerlach
Beiträge: 206
Registriert: 13.06.2009 17:21:50

qtnx mit autoconnect-Funktion patch'en

Beitrag von egerlach » 08.07.2012 13:31:42

Hallo,
qtnx kann kein autoconnect, es ignoriert alle Parameter beim Aufruf, es muss immer müheselig in dem GUI der User und Passwort eingegeben werden. qtnx sollte aber von der Kommandozeige bzw einem Icon aus aufgerufen werden können um in den Autostart zu kommen, speziell ich starte einen Mini-PC (486er) ohne DE/WindowManager und der soll nur NX starten, dazu brauche ich die Kommandozeilen-Version von qtnx zwingend.
Ich will nun die sourcen von qtnx patchen, wie es bei ubuntu 12.04 schon vollzogen ist. Der Patch für Ubuntu schlägt aber bei sqeeze fehl. Wer hilft mir da mit? Oder soll ich mich gleich an den Maintainer: Matthew Johnson <mjj29@debian.org> wenden?

Also: die Syntax:

Code: Alles auswählen

qtnx <session> <username> <password>
funktioniert leider nur bei ubuntu seit dem die den Code patchen:
https://launchpad.net/ubuntu/+source/qtnx/+changelog Stichwort "auto-connect" oder autoconnect.
Der patch: http://package-import.ubuntu.com/diffs/qtnx

Ich habe hier squeeze und habe mir per apt-get source qtnx die sourcen geladen:

Code: Alles auswählen

-rw-r--r-- 1 root root 15607 14. Mär 2008  qtnx_0.9.orig.tar.gz
-rw-r--r-- 1 root root   962 30. Apr 2008  qtnx_0.9-3.dsc
-rw-r--r-- 1 root root 30779 30. Apr 2008  qtnx_0.9-3.diff
drwxr-xr-x 4 root root  4096  8. Jul 13:19 qtnx-0.9
Dann einfach mal den patch angewandt:

Code: Alles auswählen

root@levoSqueeze64:~/qtnx-0.9# patch -p0 < patch
patching file ubuntu/debian/changelog           
Hunk #1 FAILED at 1.                            
1 out of 1 hunk FAILED -- saving rejects to file ubuntu/debian/changelog.rej
patching file ubuntu/debian/control
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 13.
2 out of 2 hunks FAILED -- saving rejects to file ubuntu/debian/control.rej
patching file ubuntu/debian/patches/autoconnect
patching file ubuntu/debian/patches/autoconnect-status-handling
patching file ubuntu/debian/patches/series
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file ubuntu/debian/patches/series.rej
patching file ubuntu/debian/patches/virtual-desktop
patching file ubuntu/debian/qtnx.desktop
Hunk #1 FAILED at 7.
1 out of 1 hunk FAILED -- saving rejects to file ubuntu/debian/qtnx.desktop.rej
patching file ubuntu/debian/qtnx.install
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file ubuntu/debian/qtnx.install.rej
patching file ubuntu/debian/qtnx.png.uuencoded
patching file ubuntu/debian/rules
Hunk #1 FAILED at 25.
1 out of 1 hunk FAILED -- saving rejects to file ubuntu/debian/rules.rej
Wer kann mir helfen? Wie gehe ich vor?

Gruss
Eckard

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von Natureshadow » 09.07.2012 09:10:25

Hallo,

du wendest den Patch auf eine ältere Version an (oder zumindest eine andere).

Da du sowieso immer für sid paketierst, lade dir bitte einmal das Quellcode-Paket aus sid runter!

-nik

Benutzeravatar
towo
Beiträge: 4545
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von towo » 09.07.2012 09:13:16

Man könnte auch einfach die Buntkuh-Sourcen recompilieren.

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von uname » 09.07.2012 09:59:56

Leider kenne ich mit dem Patchen auch nicht aus. Aber vielleicht kannst du die "paar" Sourcecodeänderungen besser manuell vornehmen, sofern sie für das Problem relevant sind bzw. im Quellcode von Debian überhaupt vorkommen.

Interessant scheint ja nur in main.cpp:

Code: Alles auswählen

++    if (argc >= 2) {
++        QString session, username, password;
++        session = argv[1];
++
++        if (argc >= 3) {
++            username = argv[2];
++        }
++
++        if (argc >= 4) {
++            password = argv[3];
++        }
++
++        mw->autoConnect(session, username, password);
++    }
++    else {
++        mw->show();
++    }
Zuletzt geändert von uname am 09.07.2012 10:04:02, insgesamt 1-mal geändert.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von Natureshadow » 09.07.2012 10:03:25

uname hat geschrieben:Leider kenne ich mit dem Patchen auch nicht aus. Aber vielleicht kannst du die "paar" Sourcecodeänderungen besser manuell vornehmen, sofern sie für das Problem relevant sind bzw. im Quellcode von Debian überhaupt vorkommen.
Nicht, wenn die Änderung ins offizielle Debian-Repository soll. Dann muss sie in irgendeiner Form als Patch hinzugefügt werden, z.B. mit Debianquilt.

egerlach
Beiträge: 206
Registriert: 13.06.2009 17:21:50

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von egerlach » 09.07.2012 10:49:51

Natureshadow hat geschrieben:Hallo,

du wendest den Patch auf eine ältere Version an (oder zumindest eine andere).

Da du sowieso immer für sid paketierst, lade dir bitte einmal das Quellcode-Paket aus sid runter!

-nik
Ich bin da leider nicht so gut .. Ich habe in sources.list sid mit eingetragen,. dann ein aptitude update, dann

Code: Alles auswählen

root@levoSqueeze64:~# aptitude search qtnx
i   qtnx                                                       - NX-Client für QT
root@levoSqueeze64:~# apt-get source qtnx
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
E: Datei /var/lib/apt/lists/ftp.de.debian.org_debian_dists_squeeze_sid_source_Sources konnte nicht geöffnet werden - open (2: Datei oder Verzeichnis nicht gefunden)

kein zweites Paket im "Angebot"?

Dann habe ich mal unter http://packages.debian.org/sid/qtnx gesehen, da finde ich kein qtnx-Paket zum herunterladen, nur die zugehörigen libss, etc.

Wo finde ich das sid Paket?

egerlach
Beiträge: 206
Registriert: 13.06.2009 17:21:50

Re: qtnx mit autoconnect-Funktion patch'en

Beitrag von egerlach » 09.07.2012 11:14:03

uname hat geschrieben: ... Aber vielleicht kannst du die "paar" Sourcecodeänderungen besser manuell vornehmen, sofern sie für das Problem relevant sind bzw. im Quellcode von Debian überhaupt vorkommen.

Interessant scheint ja nur in main.cpp:

Code: Alles auswählen

++    if (argc >= 2) {
++        QString session, username, password;
++        session = argv[1];
++
++        if (argc >= 3) {
++            username = argv[2];
++        }
++
++        if (argc >= 4) {
++            password = argv[3];
++        }
++
++        mw->autoConnect(session, username, password);
++    }
++    else {
++        mw->show();
++    }
Habe das so gemacht, auch in qtnxwindow.cpp habe ich die Funktion autoConnect eingefügt.
Wie aber weiter? In README steht:

Code: Alles auswählen

Building qtnx
-------------

Prerequisites are:

* libXcomp from NoMachine, provided by the nxcomp package.
* nxssh from NoMachine
* nxproxy from NoMachine
* nxcl from the FreeNX subversion repository

(These three NX components all should be from the 3.x.x series. You can
obtain them from NoMachine's servers at http://www.nomachine.com/sources.php)

Read the nxcl README for details of the first three packages. You will not need
to build the nxcmd daemon nor the doxygen API documentation.

To build QtNX you will need Qt 4.x. You need to run the following commands:

$ qmake
$ make

This will generate a qtnx binary in that directory; install it to /usr/bin
or anywhere you want.

qmake habe ich installiert: aptitude install qt4-qmake
Dann aber:

Code: Alles auswählen

root@levoSqueeze64:~/qtnx-0.9# qmake                 
Usage: qmake [mode] [options] [files]                

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project

Mode:
  -project       Put qmake into project file generation mode
                 In this mode qmake interprets files as files to
                 be built,
[...]
Was für Parameter sind da erforderlich? Brauche ich die sourcen von http://www.nomachine.com/sources.php ?

Antworten