autoupdater

Hier können Sie auf Deutsch diskutieren. Bedenken Sie, dass Sie in den englischen Foren mehr Nutzer ansprechen.

Moderators: frik85, EmuandCo, Dr. Fred

naums
Posts: 275
Joined: Sun Feb 21, 2010 9:12 pm
Location: Milkau, Germany
Contact:

autoupdater

Post by naums »

Ahoi,

Ich hab ne wahnwitzige Idee für einen AutoUpdater für ReactOS, brauch dafür noch paar extra-Daten. 1. werden make und g++ ordnungsgemäß ausgeführt. Funktioniert SVN ordentlich? Wie kann man von einem C-Programm aus die aktuelle Revision, mit der das ROS gebaut wurde erfragen?
2. Werden PHP, Python oder Perl unterstützt?
3. Hat irgendjemand Lust ein Frontend zu basteln für das minimalistische C-Programm?

Zur letzten Frage: sollte das der Fall sein, muss ich mir nämlich keine Gedanken machen, darüber, dass ich mein Programm irgendwie zeitgesteuert starten lassen muss.

MfG
User avatar
gonzoMD
Posts: 1077
Joined: Fri Oct 20, 2006 7:49 am
Location: Germany
Contact:

Re: autoupdater

Post by gonzoMD »

in dem Script, welches hier vorgestellt wird, ist eine getlatest.cmd bei, welche die aktuelle revisionsnummer abfragt. ist ein shellscript, lässt sich aber sicher in c adaptieren.

ich wollte mal so etwas ähnliches machen und habe das mit einem linux-shellscript realisiert. Momentan bin ich mit der RGF-Ed beschäftigt, du kannst ja aber trotzdem mal sagen, was du dir genau vorstellst. (w32/konsole; c/c++?; Problemdefinition/Lösungsansatz)
naums
Posts: 275
Joined: Sun Feb 21, 2010 9:12 pm
Location: Milkau, Germany
Contact:

Re: autoupdater

Post by naums »

Problem: Neue Dateien holen ohne neue Serverinfrastruktur aufbauen zu müssen.
Lösung: SVN downloaden, bauen, neue Dateien kopieren.

Das in C umsetzen (also haufenweise system() - Aufrufe) ist recht einfach, es muss aber svn und gcc wenigstens auf ReactOS lauffähig sein. Benutzung des Programm eher umständlich, deshalb sollte jmd. (nicht ich) eine Oberfläche (WinAPI) dafür basteln. Ich erkläre auch gerne, was wie wo übergeben werden muss und was zurückommt. Ist aber auch net schwer zu verstehen.

MfG
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: autoupdater

Post by EmuandCo »

Schaut mal in die update.cmd in RosBE. Es gibt einen Updater, der geht sogar an sich.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
User avatar
gonzoMD
Posts: 1077
Joined: Fri Oct 20, 2006 7:49 am
Location: Germany
Contact:

Re: autoupdater

Post by gonzoMD »

hmm ich nutze die unix version von RosBE, hab da kein updatescript gefunden
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: autoupdater

Post by EmuandCo »

Das Skript ist auch mein Spielzeug, nicht das von Colin ^^
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
naums
Posts: 275
Joined: Sun Feb 21, 2010 9:12 pm
Location: Milkau, Germany
Contact:

Re: autoupdater

Post by naums »

Ich schau da mal bei Gelegenheit rein. Wie muss ich denn nun ReactOS bauen? Cmake generiert, was auch immer das zu generieren hat, dann make baut - recht kurz - und wie mach ich daraus nun eine bootCD? warum baut das in unter einer Minute - nein ich baue nicht auf einem Server! übrigens: INSTALL ist nicht mehr up to date. Und noch wichtiger: Warum gibt es nirgends auf dieser gesamten Website irgendwie Hinweise, wie man cmake zu verwenden hat?!

PS: Kann da mal irgendwer der kundig ist, sich mit mir in Kontakt begeben. Ich will das recht bald hinter mich bringen.

MfG
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: autoupdater

Post by EmuandCo »

ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
naums
Posts: 275
Joined: Sun Feb 21, 2010 9:12 pm
Location: Milkau, Germany
Contact:

Re: autoupdater

Post by naums »

okay danke..

Ich habe gestern im IRC nach möglichen Ansätzen gesucht, weil die idee mit dem zur Laufzeit bauen... eher mittelmäßig war. Nun wird es also einen Server geben, der sich aktuelle BootCDs holt, die entpackt, Hasht und zum Download bereitstellt. Der Client holt sich die Hashes, vergleicht die mit den bereits installierten und lädt neue Dateien runter. Kein SVN und kein Make mehr auf Clientenseite. Auch die Sache mit dem Modifizierten Builder ist damit Geschichte.

MfG
User avatar
gonzoMD
Posts: 1077
Joined: Fri Oct 20, 2006 7:49 am
Location: Germany
Contact:

Re: autoupdater

Post by gonzoMD »

stellst du den server oder darfst du einen teil der ros infrastruktur nutzen?
naums
Posts: 275
Joined: Sun Feb 21, 2010 9:12 pm
Location: Milkau, Germany
Contact:

Re: autoupdater

Post by naums »

erstmal soll ich nen eigenen aufstellen, dann wirds evtl. /wahrscheinlich übernommen.

Edit: Also ich werde wahrscheinlich zum Testen fürs Erste einen lokalen Pentium 4 PC haben, der die aktuellste BootCD von "localhost" holen wird, entpacken wird, hasht und zum Download bereitstellt. Der Updater wird sich die Files dann downloaden. Im zweiten Schritt, wenn also der Updater schon gut genug funktioniert um ihn quasi im Ernstfall einsetzen zu können, muss ich zusehen, dass ich an nen Testserver rankomme, der dann die og. Funktion ausführt, nur dass er sich die BootCDs(dbg) live holt (einmal pro Tag, 24:00 Uhr). Dann wird das dem Ros-Team zugespielt, die damit rumspielen und die Sache hoffentlich übernehmen.

PS: Ich hoffe ihr versucht grade nicht meine Idee zu kopieren und ein Konkurrenzprogramm zu schreiben, das fände ich sehr assi, und würde dem Ros-Traum wohl den Rücken zukehren müssen.

MfG
User avatar
gonzoMD
Posts: 1077
Joined: Fri Oct 20, 2006 7:49 am
Location: Germany
Contact:

Re: autoupdater

Post by gonzoMD »

Mein Vorschlag: Dienst implementieren, welcher in regelmäßgien Abständen (z.B. alle 6-12h) diese Datei auf eine aktuelle Revision prüft.

Also das hier von PHP nach C umbasteln, mit der aktuell installierten Revision vergleichen.

Danach herausfinden welche Commits seitdem getätigt worden, und die betreffenden Dateien herausfinden.
Eben diese Dateien von deinem Buildserver holen und ersetzen.

Meine Bedenken: wenn ReactOS sich so verhält wie Windows kann es sicherlich ziemlich zickig werden wenn man Ihm beim laufenden Betrieb an die Wäsche (Systemdateien) will.
Mein Lösungsansatz dazu wäre das was ich an Windows am meisten Hasse: Dateien in ein bestimmtes Verzeichnis, nennen wir es toPatch oder so ähnlich, kopieren und um einen Neustart bitten. Wenn der Rechner runterfährt/startet und sich Dateien in diesem Verzeichnis befinden die entsprechenden Dateien patchen.
PascalDragon
Posts: 123
Joined: Wed Aug 04, 2010 7:34 pm

Re: autoupdater

Post by PascalDragon »

gonzoMD wrote:Meine Bedenken: wenn ReactOS sich so verhält wie Windows kann es sicherlich ziemlich zickig werden wenn man Ihm beim laufenden Betrieb an die Wäsche (Systemdateien) will.
Mein Lösungsansatz dazu wäre das was ich an Windows am meisten Hasse: Dateien in ein bestimmtes Verzeichnis, nennen wir es toPatch oder so ähnlich, kopieren und um einen Neustart bitten. Wenn der Rechner runterfährt/startet und sich Dateien in diesem Verzeichnis befinden die entsprechenden Dateien patchen.
Wäre das nicht genau das, wofür MoveFileEx mit MOVEFILE_DELAY_UNTIL_REBOOT gedacht ist? Wenn ich mir den Code in ReactOS soweit anschaue, sollte das sogar bereits funktionieren, nur müsste man es irgendwie ermöglichen nochmal neuzustarten, falls durch das Update was geändert wurde, was beim Systemstart wichtig ist (wie ntoskrnl.exe oder hal.dll - wobei ich gerade nicht weiß, ob die durch MoveFileEx ersetzt werden können...).

Gruß,
Sven
Free Pascal compiler developer
User avatar
gonzoMD
Posts: 1077
Joined: Fri Oct 20, 2006 7:49 am
Location: Germany
Contact:

Re: autoupdater

Post by gonzoMD »

PascalDragon wrote:
gonzoMD wrote:Meine Bedenken: wenn ReactOS sich so verhält wie Windows kann es sicherlich ziemlich zickig werden wenn man Ihm beim laufenden Betrieb an die Wäsche (Systemdateien) will.
Mein Lösungsansatz dazu wäre das was ich an Windows am meisten Hasse: Dateien in ein bestimmtes Verzeichnis, nennen wir es toPatch oder so ähnlich, kopieren und um einen Neustart bitten. Wenn der Rechner runterfährt/startet und sich Dateien in diesem Verzeichnis befinden die entsprechenden Dateien patchen.
Wäre das nicht genau das, wofür MoveFileEx mit MOVEFILE_DELAY_UNTIL_REBOOT gedacht ist? Wenn ich mir den Code in ReactOS soweit anschaue, sollte das sogar bereits funktionieren, nur müsste man es irgendwie ermöglichen nochmal neuzustarten, falls durch das Update was geändert wurde, was beim Systemstart wichtig ist (wie ntoskrnl.exe oder hal.dll - wobei ich gerade nicht weiß, ob die durch MoveFileEx ersetzt werden können...).

Gruß,
Sven
gut, dann habe ich jetzt von dir gelernt, dass solche Methoden bereits bei Windows vorhanden sind, dankeschön :)
hto
Developer
Posts: 2193
Joined: Sun Oct 01, 2006 3:43 pm

Re: autoupdater

Post by hto »

Post Reply

Who is online

Users browsing this forum: Trendiction [Bot] and 11 guests