Login
Login-Name Passwort


 
Newsletter
Do, 5. Juli 2007, 18:16

Lang überfällige Verbesserungen in BINS

Mit zwei Patches aus der BINS-Mailingliste werden die beiden größten Probleme des Bildergalerie-Generators BINS beseitigt.

BINS ist vermutlich nicht sonderlich bekannt, daher sei kurz erwähnt, dass es sich um ein Perl-Skript handelt, das aus einer Sammlung von Bildern eine HTML-Bildergalerie macht. Hat man beispielsweise seine Fotos von der Digitalkamera in eine wie auch immer geartete Verzeichnishierarchie abgelegt, kann man mit einem einzigen Befehl auf der Kommandozeile die Galerie generieren. Dabei kann man Templates verwenden, wodurch man beispielsweise auch Seiten generieren kann, die auf jeden überflüssigen Schnickschnack verzichten. Dabei kann BINS auch die EXIF-Daten der Bilder verwenden, automatisch die Bilder verkleinern und kopieren und Beschreibungen zu jedem Bild berücksichtigen.

Da die Beschreibungen optional sind, genügt es, ein einziges Mal die Konfigurationsdatei anzupassen, danach muss man sich um nichts mehr kümmern. Man könnte die Generierung und die anschließende Kopie auf den Webserver gar Cron-gesteuert erledigen lassen. Ich habe kein anderes Programm gefunden, das für mich ähnlich ideal arbeitet.

Leider ist die letzte Version von BINS bereits 2005 erschienen, und in eine der letzten Versionen hat sich ein Fehler eingeschlichen, der zu einem riesigen Speicherbedarf führt. Bei kleineren Galerien ist das noch kein Problem, bei tausenden von Bildern aber kaum noch handhabbar. Der Autor des Programms ist nicht mehr auffindbar, so dass es bisher keine Lösung dafür gab. Doch im Februar 2007 veröffentlichte ein Anwender auf der BINS-Mailingliste einen Patch, der das Problem behebt. Kurz darauf stellte er einen weiteren Patch vor, der es möglich machen soll, beim Hinzufügen von neuen Bildern nur die betroffenen Dateien neu zu generieren und damit sehr viel Zeit zu sparen.

Ich selbst habe auch einen Patch beigesteuert, der einige system-Aufrufe durch Aufrufe äquivalenter Funktionen in Perl ersetzt. Damit sollte etwas Zeit gespart werden. Zudem lieferten die externen Aufrufe mitunter Fehler, was allerdings auch mit dem Speicherverbrauch der unmodifizierten Version zusammenhängen könnte. Ich habe die Patches aus der Mailingliste extrahiert und auf die letzte Debian-Version von BINS diese drei Patches angewandt (zuerst mit meinem Patch, dann mit dem Speicherleck-Patch). Das Resultat finden Sie in diesem Archiv. Sie benötigen eine Originalinstallation von BINS, in der sie nur die Datei /usr/bin/bins austauschen. Sie können auch Ihr Original selbst patchen. Sollte es dabei einen Fehler geben, der ungefähr lautet: »1 out of 9 hunks FAILED -- saving rejects to file bins.rej«, dann könnte die Ursache ein leicht abweichender Identifikations-String (»$Id: bins,v 1.182 2005/08/22 23:52:33 jerome Exp«) sein. Ändern Sie diesen in der Datei oder im Patch, so dass es passt.

Das Feature, nur einen neu hinzugekommenen Teil der Verzeichnishierarchie neu zu generieren, ist experimentell und scheint bei mir nicht zu funktionieren. Um es zu nutzen, muss man lediglich die Option -j angeben:

 bins -j archiv/a1/a2/a3 archiv public

Dabei muss der Pfad archiv/a1/a2/a3 ein Unterverzeichnis des Quellverzeichnisses (hier: archiv) sein.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten