AUIT+

Magento 1.5.0.1 (stable) Downloader - Was soll das?

Der neue Download Manager 2.0, welcher noch aus der letzten Version geflogen ist, ist auch in der 1.5.0.1 Version von Magento nicht wirklich zu gebrauchen. Dabei habe ich schon lange auf die Funktion gewartet, um einen eigenen Channel aufzubauen.


Die Hauptprobleme:
Fehlerhaftes Entpacken der TGZ Pakete in der Klasse Mage_Archive_Tar, es kann zu leeren bzw. abgeschnittenen Dateien kommen. Ein HOT-Fix ist das Anhängen einer ca. 4KB großen Datei an das ENDE des Archives.

Noch schlimmer ist die fehlerhafte Abhängigkeitsbehandlung von Paketen. Entweder sie wird nicht beachtet, wenn in der Package- Beschreibung package.xml kein MAX-Wert angegeben wird (dies ist die Standard-Umsetzung von Paketen aus der Version 1.0 auf 2.0), oder die Installation erfolgt nicht in der definierten Abhängigkeit der Pakete, sondern so wie es aussieht alphabetisch.


Beispiel für die Standardumsetzung des bekannten Paketes: market_ready_germany/2.0.7/package.xml

Ausschnitt:

<required>
<package>
<name>Locale_Mage_community_de_DE</name>
<channel>community</channel>
<min>1.4.0.0</min>
<max/>
</package>
</required>


Das Ergenis einer Installation des Paketes:

Checking dependencies of packages
Package community/Locale_Mage_community_de_DE failed: Version for 'Locale_Mage_community_de_DE' was not detected
Package community/Mage_Payone failed: Version for 'Mage_Payone' was not detected
Package community/BankPayment failed: Version for 'BankPayment' was not detected
Package community/symmetrics_trustedrating failed: Version for 'symmetrics_trustedrating' was not detected
Package community/TechDivision_Germany failed: Version for 'TechDivision_Germany' was not detected
Package community/symmetrics_cashticket failed: Version for 'symmetrics_cashticket' was not detected
Package community/Mage_Econda failed: Version for 'Mage_Econda' was not detected
Starting to download market_ready_germany-2.0.7.tgz ...
...done: 1,357,658 bytes
Installing package community/market_ready_germany 2.0.7
Package community/market_ready_germany 2.0.7 installed successfully
Package installed:
 community market_ready_germany 2.0.7


Obwohl die abhängigen Pakete nicht gefunden und installiert wurden sind, wird das Haupt-Paket installiert und als für ok befunden.
Schaut man sich den Quell-Code dazu an, dann wird einem alles klar. (Dazu kann sich jeder seine eigene Meinung machen)
                $this->ui()->output("Checking dependencies of packages");
                $packagesToInstall = $packager->getDependenciesList( $channelName, $package, $cache, $config, $argVersionMax, $argVersionMin, $withDepsMode, false, $rest);
                /*
                 * @TODO: process 'failed' results
                 */
                if(count($packagesToInstall['failed'])) {
                    $showError=!count($packagesToInstall['result']);
                    foreach($packagesToInstall['failed'] as $failed){
                        //$failed = array('name'=>$package, 'channel'=>$chanName, 'max'=>$versionMax, 'min'=>$versionMin, 'reason'=>$e->getMessage());
                        $msg="Package {$failed['channel']}/{$failed['name']} failed: ".$failed['reason'];
                        if($showError){
                            $this->doError($command, $msg);
                        }else{
                            $this->ui()->output($msg);
                        }
                    }
                }


Definiert man in der package.xml noch einen MAX-Wert, dann werden sogar die Abhängigkeiten angezeigt.

magento-downloader-15.0.1.png

Aber leider wird jetzt zuerst das Haupt-Paket installiert und danach versucht das abhängige Paket.

Checking dependencies of packages
Installing package snm-portal-local/snm_toolbar 1.2.1
Package snm-portal-local/snm_toolbar 1.2.1 installed successfully
Package installed:
 snm-portal-local snm_toolbar 1.2.1

CONNECT ERROR: Package snm-portal-local/snm_jquery 1.0.4 conflicts with: snm-portal/snm_toolbar 1.2.1
Module "AuIt_Toolbar" requires module "AuIt_Jquery".


Zusammenfassung:
Momentan ist der Downloader nur für Pakete ohne Abhängigkeiten zu gebrauchen, oder man installiert zuerst die abhängigen Pakete.

Beispiel für das market_ready_germany – Modul:

Und diese einzeln installieren oder auf die nächste Magento-Version warten.

Es ist leider wieder eine Version die durch die Releasezyklen durchgepeitscht wurden ist.


Kleiner Nachtrag:

Sollte der Download abbrechen, und nichts geht mehr (Service Temporarily Unavailable 503) nicht verzweifeln, im Root-Ordner liegt eine Datei 'maintenance.flag' diese wird als Mutex während der Installation abgelegt und nicht wieder gelöscht. Also einfach löschen und schauen was sonst nicht  mehr geht. 


Es geht doch! (3 Stunden später)

Es hat mir keine Ruhe gelassen und mit einem kleinen Fix können jetzt auch abhängige Pakete mit der Version 1.5.0.1 installiert werden.


Die Datein gibts im beiliegenden Archiv downloader-fix-magento-1.5.0.1

Der eigentliche Grund ist so trivial, in der Datei  Singleconfig.php wird in der Methode 'versionInRange' die Versionen gescheckt, jedoch ist ein Leer-String aus der XML-Datei mit dem Tag 'MAX' kein boolescher Wert und da wollte es der Programmierer ganz genau machen, was manchmal nach hinten losgeht.


In der Datei install.php habe ich noch schnell eine Lösung für das Abfangen von falschen Paketen eingebaut (sh. Fehler weiter oben). Einfach nach auit in den Dateien suchen, dann findet Ihr die Änderungen.


Aber ACHTUNG, es ist ein fix in den CORE-Files! Übernehme keine Haftung und so weiter.


Eine kleine Anleitung für die Installation mit dem neuen Download-Manager:

  • fix einspielen
  • Downloader öffnen
  • http://connect20.magentocommerce.com/community/market_ready_germany
    eingeben und install drücken
magento-downloader-15.0.1_installation.png

Sollten nicht alle Pakete bei euch angezeigt werden, dann unter "Settings" den Preferred State auf beta stellen.
Wenn man es nicht macht knallt es normalerweise bei der nachfolgenden Installation, da haben wir ja unseren fix drin. Alles drin, dann mit dem Button 'Proceed' die eigentlichen Installation starten.
magento-downloader-15.0.1_installation-finish.png


Eine Frage habe ich doch noch, warum braucht das Modul  von symmetrics GmbH das Modul von TechDivision?

Berger-Seidle-Shop (08.08.11)

Danke für die fix-dateien. Hat wunderbar geklappt. Allerdings ist der Bestellbutton im Checkout verschwunden, sowie die AGBs und Widerrufsbeleherung. Jemand eine Idee?

ds_1984 (18.05.11)

Update:

Eine neuere Marked Ready Germany Version ist erschienen, auch ohne Downloader-Patch wird Marked Ready nun korrekt installiert und auch die richtigen Abhängigkeiten herangezogen :-)

Mein erster Test sah zumindest recht gut aus.

LG - Daniel

ds_1984 (30.04.11)

Ich muss meinen letzten Post etwas revidieren!!!

Da es unterschiedliche Meinungen / Meldungen gab bezüglich 1.5.1.0 Kompatiblität des tollen Patches habe ich noch einmal getestet.

Im Test:
- Magento 1.5.0.1, frisch
- Magento 1.5.0.1, upgedated auf 1.5.1.0 via Connect Manager
- Magento 1.5.1.0, frisch

Bei allen Varianten hat der Patch wunderbar funktioniert, im Beispiel habe ich es mit German Shop versucht was bei Installation als Abhängigkeiten zusätzlich das Sprachpaket DE & mein NoRegion Modul heranzieht.

Es gibt zwar eine kleine Veränderung bezüglich einer nun detailierteren Fehlermeldung wenn man versucht beta Module zu installieren und in Settings noch stable gesetzt ist:

"community/TechDivision_Germany: Extension is 'beta' please check(or change) stability settings on Magento Connect Manager"

ABER: Diese Veränderung in Magento 1.5.1.0 hat keinerlei Auswirkung auf die Funktionalität des Patches!
Von daher: Von meiner Seite grünes Licht, ich hoffe andere können das bestätigen.

Grund der Korrektur meiner letzten Aussage:
Ich nutze auf meinen Systemen APC, den offziell empfohlenen Performance Helfer bei Magento - offenbar kam dieser Opcode Cache nicht ganz hinterher, nach Leerung des APC-Caches funktionierte der Patch auf dem eingesetzten System tatdellos und die Veränderung der Dateien wurde bemerkt vom Download Manager.

Vielen Dank noch einmal Au-IT!!! :-)

LG - Daniel

AU-IT:
Na da bin ich beruhigt, habe schon an mir gezweifelt

ds_1984 (28.04.11)

Also ich habe jetzt mit mehreren frischen Magento Instanzen getestet, ab Magento 1.5.1.0 - sowohl das Downloader wie auch das Full Release wurde eine Sache wirklich behoben - diese vorher nichts sagende Info "not detected..." wenn man den standard Status auf stable hat im Connect Manager was mit Beta installieren möchte, da erscheint dann jetzt eine Info das man bitte die Stabilitätseinstellungen checken soll und ggf. angleichen soll.

ABER: Zum einen funktioniert die korrekte Installation bei Extensions noch immer nicht standardmäßig - etwa bei GermanShop, nur das German Shop Paket und bei Marked Ready das Gleiche. :-(

Der tolle Patch funktioniert wie von Geisterhand ebenfalls nicht mehr in Magento 1.5.1.0... ich halte es zwischenzeitlich für einen Fehler das im BugTracker ein Link auf diesen Blogpost gesetzt wurde! Ich will ja keine Geister beschwören aber....

Auf jeden Fall habe ich langsam einen ganz schönen Hals auf die Leute hinter dem Core-Team, mittlerweile werden man könnte sagen hausgemachte Probleme von Release zu Release gezogen und neue Features gehen vor eine stabile Applikation, hauptsache man bleibt im Gespräch. Das Problem mit dem 1.5er Release ist hinlänglich bekannt und langsam aber sicher muss man anhand der Fakten Absicht unterstellen.

Wie dem auch sei, falls Ihr es für 1.5.0.1 hinbekommen habt mit dem Patch, dann fahrt bloß kein Upgrade auf 1.5.1.0!!!

LG - Daniel

maxxbax (27.04.11)

Hallo,

anscheinend wurde am neuen Release 1.5.1.0 am magento connect manager geschraubt.

Habe heute mal z.B. das German Shop Modul installiert welches ja ebenfalls 3 Abhängigkeiten vereint und dieses wurde wunderbar integriert. Bin gerade noch auf Suche nach vielleicht noch auftretenden Fehlern aber bisher alles einwandfrei.

Wollte euch nur mal informieren ;-)

Grüße, André

AU-IT
Danke für deine Infos, jedoch funktioniert es bei mir noch nicht.

ds_1984 (19.04.11)

Vielen Dank für diesen Blogpost und für den Fix!!!

Zur Frage oben mit der German Shop Abhängigkeit:
Meines Wissens ist diese Extension eigentlich in der package.xml von Marked Ready als Auschluss definiert zwecks Kompatiblität und der Überladung gleicher Klassen usw.

Kann es sein das dieser 1.5er Downloader Ausschlüsse falsch interpretiert und als Abhängigkeiten heran zieht???
Wurde der Fix denn im Bugtracker mal gepostet damit der Fehler Core-seiztig behoben werden kann???

LG - Daniel

AU-IT
Ja hab ich gemeldet, in der 1.5.1rc1 ist noch nichts behoben

sebastian (24.03.11)

Hey,

danke für die Lösung. Habe aber das selbe Problem im Checkout. Wenn ich als Gast oder mich registrieren will, passiert nix mehr. Kann auf den Button klicken, aber passiert nichts...Mhhh einer schon ne Lösung?

mfg
Sebastian

AU-IT
Gib mal den Link zu deiner Seite

erikm (03.03.11)

Thanks a lot, works fine.

HPVD (02.03.11)

Hallo,
klasse Anleitung!
Habe jedoch auch das "Hängen im Checkout"-Problem..
konntet ihr das inzwischen schon lösen?

AU-IT:
Ich habe bisher nur Projekte mit Download-Produkten umgestellt,
und habe da keine Probleme.
Schick mir mal eine E-Mail wo das Problem auftaucht.

DANKE DANKE (01.03.11)

Danke für den Tipp - was für ein ätzender Bug. Ich war schon am verzweifeln.

Michael (01.03.11)

Sehr guter Artikel mit allen relevanten Infos zu dem Problem. Ich finds immer wieder bedankenswert wenn Leute die Lösung solcher Probleme posten!!!

Vielen Dank

Michael

cocapi (28.02.11)

Fantastisch, vielen Dank!

VisionCreation (26.02.11)

Hallo,
echt super genau das habe ich gesucht...hab jedoch genau die Probleme bzgl. CheckOut wie schon meine Vorredner...

Danke nochmals!

Simon (25.02.11)

Danke klappt...

wieso hängt das bei mir jetzt seit dem Update bei

checkout/onepage/ bei Rechnungsinformationen????

ahhhhh

Doddy (16.02.11)

Toller Artikel ! Danke !

Was mich noch interessieren würde: funktioniert market Ready nun mit 1.5.0.1 ??


Au-IT:
Ich habe es zwar nicht weiter getestet, die Installation hat geklappt.

4.5 Sterne von 5 Komments 15.

Write Your Own Review

Magento 1.5.0.1 (stable) Downloader - Was soll das?