Skip to content

Serendipity Update 2.3.0 auf 2.3.3

Gestern erschien das Update unserer Blogsoftware auf die Version 2.3.3. Das Update verlief wie immer problemlos.

This bugfix release Serendipity 2.3.3 will bring you quite some smaller and larger fixes and minor enhancements backported from our master branch:


  • Update bundled event_mailer plugin to support forcibly sending mails on published blog entries and add the ability to prepend a mail body. Also fixes missing "keep strip tags" configuration option.

  • Media Library: Checkboxes allow you to insert multiple media files in a kind of gallery. Fall back to single-asset view when just one file has been selected. Let checkboxes be selected when clicking on the asset title, and hide the the 'Insert all' button when no assets are selected.

  • Media Library: Use the <video> tag for videos in the library and for inserting them into an entry.

  • Media Library: Allow plugins to skip HTML block insertion to use their own markup.

  • Fix: Media Library: Items that are not images now get the correct link.

  • Fix: Media Library: Prevent renaming an asset into an existing file, resulting in deletion of both from disk and database.

  • Fix: Media Library: Remember directory from last upload.

  • Fix: Media Library: Missing variable initialisation when removing empty folders.

  • Fix: Stop generation of default page every time when serving JS (functions_routing.php).

  • Fix: Don't allow requesting an archive page that doesn't exist.
    Thanks to @lotharsm!

  • Fix: Add valid HTTP referrer when trying to delete a trackback from the frontend.

  • Fix: Update bundled plugin plugin_comments to wrap text at word boundaries only, removing spurious whitespace in comment output.

  • Fix: Update bundled plugin event_bbcode to get roman numerals working.
    Thanks to Fabien Chabreuil!

  • Fix: Force positive limits for number of entries shown on title page and in RSS feed and fix potential SQL error with limit set to 0 in serendipity_fetchEntries().

  • Fix: Escape version string in update notifier to avoid potential for XSS.


You can download the release file and unzip it to your installation as usual, or update from within Serendipity using the Serendipity Autoupdate Plugin (serendipity_event_autoupdate).

clamav-inofficial-sigs? Fangfrisch!

Screenshot
Nach der jüngsten Diskussion auf der ClamAV Mailingliste über verschiedene Sicherheitsrisiken, die bei der Verwendung des ClamAV Unofficial Signatures Updater script über das ich hier mal berichtet hatte, auftreten können, hat Ralph Seichter "Fangfrisch" als sichere Alternative entwickelt. Es war zunächst für den persönlichen Gebrauch gedacht, aber es funktioniert so gut, dass er auch eine ausführliche Dokumentation dazu geschrieben hat, in der Hoffnung, dass andere auch Fangfrisch benutzen.

Der auf Version > 3.7 basierende Python-Code funktioniert zuverlässig auf diversen Servern, daher ist die Zeit reif für einen öffentlichen Beta-Test. Ralph Seichter ist dankbar für ein Feedback.

Ich teste das hier auf einem nicht öffentlichen Server unter Raspbian Stretch.

OnePlus Handy gebrickt? No Problem.

Screenshot: Msmdownloadtool
Vor einigen Wochen wurde endlich LineAgeOS 16 für das OnePlus 6T veröffentlicht. Die Installation hatte ich seither vor mir her geschoben, obwohl ich das Handy voriges Jahr bereits gerootet hatte: Eine Konvertierung der Benutzerdaten über Systemgrenzen hinweg ist trotz Tools wie Titanium Backup nach wie vor nicht ganz trivial. Aber machbar, dachte ich mir und bin dann zur Tat geschritten. Da der root Zugriff unter unter dem Hersteller Betriebssystem OxygenOS Dank TWRP und Magisk zwar einwandfrei funktionierte, jedoch nach jedem Upgrade wiederholt aktiviert werden musste, dachte ich mir, daß ich dann eigentlich gleich LineAgeOS installieren könnte. Also Backup anfertigen, ins Recovery booten und dann erst LineAgeOS, dann OpenGapps und Magisk installieren. Dabei ging irgendetwas schief - möglichweise war das TWRP von Bluespark nicht ganz unschuldig daran, soweit ich mich entsinne, hatte sich dieses nur in einen der beiden Slots installieren lassen. Jedenfalls scheiterte der Versuch, das offizielle TWRP zu installieren mit der Meldung:

FAILED (remote: Failed to load/authenticate boot image: Load Error)

Nicht nur das, fortan weigerte sich das Mistding hartnäckig, überhaupt in Fastboot oder ins Recovery zu booten geschweige denn, TWRP zu flashen oder via fastboot zu starten. Also keine Chance, das Handy irgendwie zum Laufen zu bewegen. Toll. Verzweiflung macht sich breit. Ein gescheitertes Update führte in der Vergangenheit schließlich oft genug dazu, das teure Telefon zu "bricken" d.h. es war nur noch als teurer Briefbeschwerer und dem sozialen Umfeld zur Mahnung zu gebrauchen. Ich gebe zu, sogar einmal kurz die Supportseite angeklickt zu haben, um das Teil ggf. zur Reparatur einzuschicken. Aber nur für ca. 5 Sekunden. ;-)

Mit den entsprechenden Suchbegriffen bin ich jedenfalls bei xda-developers fündig geworden, wo es für diverse Geräte Unbrick Tools gibt, so auch für das OnePlus 6T. Solange sich das Gerät noch einschalten lässt, ermöglicht dieses (Windows)-Programm eine Wiederbelebung des Zombies. (Angeblich läuft das Programm auch in einer virtuellen Windows Maschine oder unter WINE, das habe ich jedoch nicht probiert, da ich zufällig noch einen Windows Rechner herumstehen habe.)

Das MsmDownloadTool v4.0.59 ist gute 2 Gigabyte groß, denn es enthält OxygenOS v9.0.13. Nach dem Start präsentiert sich das Programm sehr aufgeräumt. Zuvor sollte allerdings das Handy via Datenkabel mit dem Rechner verbunden sein und in der Systemsteuerung solltem QUSB_BULK oder unter Ports > Qualcomm angezeigt werden, was für den OnePlus Chipsatz steht.

Nach dem Start und einigen nicht sonderlich transparenten Aktionen, während derer an einen Kaffee trinken gehen kann, wird das Handy auf den Auslieferungszustand unter OxygenOS v9.0.13 zurückgesetzt, d.h. alle Daten sind weg. Sofern man kein Backup gemacht. Ach ja, und dieses auf einen entsprechenden, externen Datenträger gespeichert hat. Nicht nur wegen der fehlenden transparenten Aktionen bei der Wiederherstellung würde ich auf jeden Fall als erstes entweder TWRP flashen, /Data und /System wipen und das Originalbetriebssystem von OnePlus oder gleich LineAgeOS installieren. Das geht dann "einfach".

Und der Blutdruck sinkt. ;-)

OnePlus 6T: LineAgeOS 16 veröffentlicht

Gestern Nacht wurde endlich die erste offizielle Nightly Version von LineAgeOS 16 für das OnePlus 6T (fajita) veröffentlicht. Ich werde selbiges wohl die Tage mal auf mein Gerät bügeln, zwar gibt es mit OxygenOS keine Probleme bisher, jedoch nervt es schon ein wenig, daß nach jedem Update neu gerootet werden muss.

Serendipity Update 2.1.6 auf 2.3.0

Nach dem Update auf die gestern Nacht erschienene Version Serendipity 2.1.6 haben wir das Blog auf die Serendipity Version 2.3.0 aktualisiert, die nach 2 jähriger Entwicklungszeit fertig gestellt wurde.

Serendipity 2.3 focuses on

  • PHP 7.2 and 7.3 support - minimal PHP version is now PHP 7.0
  • Smarty upgrade to 3.1.33
  • Updates to the media manager and some bug fixes
    • New function to add multiple images to an entry at once, creating a gallery
    • Use figure/figcaption markup for media manager images with captions
    • Ability to create responsive image thumbnails
    • Set responsiveimages as default plugin
    • Add rewrite to absolute url for srcsets to the feed generation
  • Using voku/simple-cache for internal cache as bundled lib, which will allow to cache with memcached and redis instead of just on the filesystem
  • Adding a maintenance mode option
  • Improving the nl2br plugin (thanks to Stephan Brunker!)
  • Allowing to receive multiple trackbacks and pingbacks (thanks to @Mitch!)
  • Changing (installation) defaults: disable entryproperties cache and enable internal cache, enable stable-archive option

Other changes include:

  • Security fixes for XSS in Editor Preview and Media Library by interpreted EXIF tags (thanks to Hanno Boeck!)
  • Fallback for $lang variable when configuration failed to load which evades some unuseful error messages (thanks @HQJaTu!)
  • Drop deprecated serendipity_purgeEntry function
  • Bootstrap4 adaptations
  • Fixes for plugin drag'n'drop
  • Multiple minor bug fixes to core, bundled plugins and bundled themes.

"Verbindung zu Verschlüsselungsdienst fehlgeschlagen (...)" bei OxygenOS und k9 Mail & OpenkeyChain

Screenshot
Bei dem Problem wird ein rotes Schloß rechts oben im Screen und eine Fehlermeldung am unteren Rand angezeigt.
Ein lästiges Problem, das bei der Verschlüsselung von Mails in k9 Mail / OpenKeyChain unter OxygenOS 9.0.15 bei den OnePlus 6T Handys auftritt, ist die Meldung:

"Verbindung zu Verschlüsselungsdienst fehlgeschlagen. Überprüfen Sie die Einstellungen oder tippen Sie auf das Verschlüsselungs-Symbol um es erneut zu versuchen"

oder

"Zugang zu Verschlüsselungsdienst verweigert. Tippen Sie auf das Verschlüsselungs-Symbol um es erneut zu versuchen."

bzw. "Cannot connect to crypto provider, check your settings or click crypto icon to retry!"

Ein funktionierender Workaround ist, die AkkuOptimierung für OpenkeyChain zu deaktivieren. Entweder über das Programmicon / (i) / Akku oder über Einstellungen / Akku / Akku-Optimierung / OpenkeyChain / "Nicht optimieren" bzw. (Settings > Apps & Notifications > Special App Access > Battery Optimisation > OpenKeychain > "Don't Optimize").

So läuft OpenkeyChain im Hintergrund weiter, wobei der Stromverbrauch getrost vernachlässigt werden kann. Darauf muss man auch erst mal kommen...



Mein öffentlicher PGP Schlüssel ist unter der ID: 0xD96D6E68 von jedem PGP Keyserver zu beziehen, oder hier, ebenso wie der Fingerprint.

Mini UNO Card Game Box

Here is a box for the popular card game UNO in the "mini" version. This issue has flown to me in Thailand, unfortunately I've never seen it anywhere else. Meanwhile, the original box is somewhat scratched, so that something new had ago. Because of the unusual format was unfortunately no scaling of existing designs such as (thing: 145436) possible, which is why I then just designed the box from scratch.

Maybe someone can use the box, for easier opening a small "overpressure" opening is built in.

So, here ist is, printed with my AnyCubic i3 MEGA, with Filament from Alicia3DP: RED PLA. This Filament from Spain is very cheap, but can be processed well.

I suggest 15% infill, 0.20mm Height of Layer, 1,06% Flow, 220° Nozzle, 60° Heatbed and 100% Cooling. (I use an Titan Extruder and Sunon Fans, you'll try it with your Standard PLA Settings).
For the thin walls, I recommend to set Simplify 3D in the advanced options for External and internal Thin Wall Type to "perimeters only". Otherwise, there may be problems with the lettering.

Sources: thing:3785199. Due to recent problems with thingiverse currently downloadable only here: Case Bottom and Case Top.

Some of the links are Affiliate. If you buy something, I get a small commission. The price you pay is the same. Thank you.

Who thinks he has to complain because I link to evil Amazon: I am a organized trade unionist and have always advocated trade union organization of the working class, especially at Amazon. There are no "good" or "bad" capitalists. The total shit must be eliminated. We need a society liberated from the exploitation and suppression of man by man.

That being said, you do not mind that I give my ideas and the time I need for free use, right?

Raspberry PI mit SSD und S.M.A.R.T.

Für verschiedene Zwecke haben wir diverse Raspberry PIs im Einsatz. Zum Beispiel als 3D Druckserver mit OctoPrint. Normalerweise wird ein Raspberry mit microSDHC Speicherkarten betrieben. Diese kommen jedoch früher oder später meist an Grenzen, die einem nicht so in die Lebensplanung passen. Höchste Zeit also, auf eine SSD zu setzen, entweder gleich von Anfang an, oder eben wenn es klemmt:

Seit einiger Zeit kann der Raspberry ja auch direkt von der SSD booten, so daß die microSDHC Karten eigentlich nur dafür benötigt werden, das dafür notwendige Bit mittels program_usb_boot_mode=1 in der /boot/config.txt zu setzten.

Danach kann man gleich die z.B. durch etcher mit dem Betriebssystem der Wahl geflashten SSD anschließen und den Rechenzwerg starten. Oder man migriert sein existierendes System via dd von der microSDHC Karte auf die neue SSD. Ich habe beim ersten Versuch mit einer Kombination aus beidem gearbeitet, d.h. zuerst die SSD geflasht, dann die einzelnen dadurch entstandenen Partitionen mittels sudo dd if/dev/sdX of=/dev/sdX status=progress von der SDHC auf die SSD kopiert. Bei der Gelegenheit habe ich, um jeglichen Kalamitäten beim Bootvorgang aus dem Weg zu gehen, die /etc/fstab auf die Verwendung von UUIDs umgestellt, was nicht nur eine einfache Übung sondern wegen der Änderung der Laufwerksbezeichnungen durch den Austausch in jedem Fall notwendig ist.

Gute Erfahrungen habe ich mit den SSDs von SanDisk gemacht, die mit günstigen SATA2USB Adaptern an den Raspberry angeschlossen werden können. Sicherlich gibt es auch schnellere SSDs, das Geld ist jedoch angesichts diverser Beschränkungen des Raspberrys besser anderswo angelegt. Wichtig ist für mich hier vor allem, daß die Platte ohne aktiven USB Hub, d.h. nur mit der vom Raspberry zur Verfügung gestellten maximalen Spannung von 1,2A läuft.

Der SATA2USB Adapter meldet sich nach der Eingabe von sudo smartctl /dev/sdX mit der Id "Unknown USB bridge [0x152d:0x0578 (0x3202)]" und ist dementsprechend ein JMicron JMS567, der auf alle weiteren Aufrufe mittels sudo smartctl -a -d sat /dev/sdX korrekt angesprochen werden kann.

smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.19.60-v7+] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     SanDisk SSD PLUS 240GB
Serial Number:    19172C804389
LU WWN Device Id: 5 001b44 8b814e836
Firmware Version: UF5000RL
User Capacity:    240.065.183.744 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Mon Jul 29 11:26:28 2019 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x00)    Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (  32)    The self-test routine was interrupted
                    by the host with a hard or soft reset.
Total time to complete Offline 
data collection:         (  120) seconds.
Offline data collection
capabilities:              (0x15) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Abort Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    No Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      (  42) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       47
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       52
165 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       107
166 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       2
167 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
168 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       4
169 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       296
170 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
171 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
173 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       2
174 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       47
184 End-to-End_Error        0x0032   100   100   ---    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   ---    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   057   047   000    Old_age   Always       -       43 (Min/Max 18/47)
199 UDMA_CRC_Error_Count    0x0032   100   100   ---    Old_age   Always       -       0
230 Unknown_SSD_Attribute   0x0032   100   100   000    Old_age   Always       -       128851640350
232 Available_Reservd_Space 0x0033   100   100   005    Pre-fail  Always       -       100
233 Media_Wearout_Indicator 0x0032   100   100   ---    Old_age   Always       -       391
234 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       817
241 Total_LBAs_Written      0x0030   100   100   000    Old_age   Offline      -       383
242 Total_LBAs_Read         0x0030   100   100   000    Old_age   Offline      -       418
244 Unknown_Attribute       0x0032   000   100   ---    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

Selective Self-tests/Logging not supported
Auch wenn nicht alle S.M.A.R.T. Tests durchgeführt werden können, ist es doch möglich, die wichtigsten Test durchzuführen, die einem Auskunft über ein eventuell baldiges Ableben des Datenträgers geben können, hier mal ein 2 minütiger Kurztest mittels sudo smartctl -t short -d sat /dev/sdX nach 47 Stunden Laufzeit der Platte, den man sich mittels sudo smartctl -a -d sat /dev/sdX ansehen kann:
(...)
SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%        47         -

Selective Self-tests/Logging not supported
Weitere Tests werden dann entsprechend in der Ausgabe ergänzt, die aktuellen Ergebnisse stehen dann immer an erster Stelle der Ausgabe.

HINWEIS:
Alle gemachten Angaben sind ohne Gewähr auf Funktion und Richtigkeit. Für eventuell entstehende Schäden übernehmen wir keinerlei Haftung. Sämtliche Veränderungen geschehen auf Eure Verantwortung und Gefahr.

Irgendwie muss ich das alles finanzieren, daher sind die allermeisten Links Affiliate. D.h.: Solltet Ihr über diese Links zu einem Onlinehändler geraten und dort etwas bestellen, bekomme ich eine kleine Provision, für Euch ändert das am Preis natürlich nichts.

Den ClamAV Virenscanner aufbohren

Auf einem Mailserver hier läuft der Open Source Virenscanner Clamav. Von Haus aus - verglichen mit kommerziellen Virenscannern - nicht mit einer besonders hohen Erkennungsrate gesegnet, lässt sich dieser jedoch mit Virenkennungen von Drittanbietern aufrüsten. Seit einigen Jahren ist für mich dabei der ClamAV Unofficial Signatures Updater von eXtremeSHOK, über den ich bei Alex gestolpert bin, eindeutiger Favorit. Auch wenn die aktuelle Version von 2017 ist, seinen Job macht es stabil und richtig: Die gewählten Virenkennungen lädt es nach wie vor bei diversen Anbietern herunter, es bleibt ClamAV überlassen, diese anzuwenden:

Bei den Kennungen für yara löst ein Eintrag jedoch Fehler aus:

LibClamAV Error: yyerror(): /var/lib/clamav/maldoc_somerules.yar line 235 undefined identifier "uint32be"
LibClamAV Warning: cliloadyara: failed to parse or load 1 yara rules from file /var/lib/clamav/maldocsomerules.yar, successfully loaded 14 rules.

Nun kann man entweder die betreffende Datei löschen und gut ist es oder einfach den fehlerhaften Eintrag bearbeiten. Ich habe bei mir letzteres getan und erhalte mir somit die Kennungen. Einfach mit einem Editor /var/lib/clamav/maldoc_somerules.yar öffnen, nach uint32be suchen und diese Zeile löschen oder einkommentieren.

Nach dem Abspeichern den Dienst zum erneuten Laden der Virenkennungtsdatenbank veranlassen:

sudo service clamav-daemon reload-database

Das editieren des Eintrags bringt nichts, die fehlerhafte Definition wird mit dem nächsten Update wieder installiert. Wie es aussieht hilft zur Zeit nur der Tipp von Vladki77:
Edit /etc/clamav-unofficial-sigs/master.conf and set:
yararulesproject_enabled="no"
enable_yararules="no"
And delete *.yar and *.yara from /var/lib/clamav/

Sehr schade, sobald sich da (hoffentlich) etwas ändert, vermerke ich das hier.

Alex hat auch zusammengefasst, wie die Erkennungsrate von Spamassassin deutlich erhöht werden kann.
cronjob