Fehlschlag bei pg_config is required to build psycopg2

Dem Wunsch, eine PostgeSQL Datenbankunterstützung für eine Filamentdatenbank bei einer frischen OctoPrint Installation nachzurüsten wurde abgelehnt.  oprint/bin/pip install psycopg2 ergibt:

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple

Collecting psycopg2

  Using cached psycopg2-2.8.6.tar.gz (383 kB)

    ERROR: Command errored out with exit status 1:

     command: /home/pi/oprint/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eaezo9u5/psycopg2_570f9f228a2746e5b69eb4577ade54b4/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eaezo9u5/psycopg2_570f9f228a2746e5b69eb4577ade54b4/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-42q59a0p

         cwd: /tmp/pip-install-eaezo9u5/psycopg2_570f9f228a2746e5b69eb4577ade54b4/

    Complete output (23 lines):

    running egg_info

    creating /tmp/pip-pip-egg-info-42q59a0p/psycopg2.egg-info

    writing /tmp/pip-pip-egg-info-42q59a0p/psycopg2.egg-info/PKG-INFO

    writing dependency_links to /tmp/pip-pip-egg-info-42q59a0p/psycopg2.egg-info/dependency_links.txt

    writing top-level names to /tmp/pip-pip-egg-info-42q59a0p/psycopg2.egg-info/top_level.txt

    writing manifest file '/tmp/pip-pip-egg-info-42q59a0p/psycopg2.egg-info/SOURCES.txt'



    Error: pg_config executable not found.



    pg_config is required to build psycopg2 from source.  Please add the directory

    containing pg_config to the $PATH or specify the full executable path with the

    option:



        python setup.py build_ext --pg-config /path/to/pg_config build ...



    or with the pg_config option in 'setup.cfg'.



    If you prefer to avoid building psycopg2 from source, please install the PyPI

    'psycopg2-binary' package instead.



    For further information please check the 'doc/src/install.rst' file (also at

    <https://www.psycopg.org/docs/install.html>).



    ----------------------------------------

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Was sich nicht sofort daraus erschließt: Es fehlten ein paar Bibliotheken: sudo apt-get install libpq-dev python-dev. Danach lässt sich die Datenbankunterstützung problemlos nachrüsten.

#efail: PGP in HTML Mails angreifbar

Mit PGP verschlüsselte eMails im HTML Format sind angreifbar. Dies haben Forscher heute nachgewiesen. Leider sind HTML kodierte Mails sehr verbreitet, obwohl dieses Format ursprünglich eigentlich für das Web und nicht für Mails vorgesehen war. Aber so kann man doch so schön formatierte Mails und anklickbare Links versenden... Eben drum.

Die als #eFail kursierende Sicherheitslücke bezieht sich jedoch wohl nur auf dieses Mailformat und ist vor allem in der Kombination unsichere Mailserver / uralte Mails praktisch gefährlich.  Daher lautet die Devise nicht: "PGP ist schlecht also deaktivieren und niemals verschlüsselte Mails versenden" sondern HTML in Mails deaktivieren, und für  Admins: Ungesicherte Mailserver absichern. Letzteres gibt es offensichtlich immer noch...

Siehe dazu: spiegel.de, netzpolitik.org, heise.de

Nachrichtenansicht HTML deaktivieren in

Thunderbird

Outlook

KeePass2 Plugins unter Ubuntu 16.04 kompilieren

Seit Ubuntu 12.04 ein Problem. Da inzwischen 16.04 lts aktuell ist und ich das jedesmal bei der Installation eines neuen Clients vergesse, leihe ich mal die Gedächtnisstütze bei tuxinaut aus.

Wer Keepass2 Plugins nutzen möchte und folgende Fehlermeldung auftritt:

The following plugin is incompatible with the current KeePass version: /usr/lib/keepass2/OtpKeyProv.plgx

Liegt das daran das mono das Plugin nicht kompilieren kann. Abhilfe schafft das Paket mono-complete zu installieren.

sudo apt-get install -y mono-complete

Tool des Tages: Ubuntu tweak

Mit Ubuntu tweak lassen sich neben zahlreichen Pimp up My System auch Repositories (neudeutsh für Weichwarequellen) für (k)ubuntu komfortabel einbauen. Wer mal eben schnell sein System frisieren will (oder dieses - bei Fehlbedienung - ebenso schnell zerstören will) baut die Quelle für Ubuntu tweak in seine sources.list ein.

Dazu mittels "sudo [editorderwahl] /etc/apt/sources.list um folgenden Eintrag erweitern:

deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu jaunty main #Ubuntu
Tweak: http://ppa.launchpad.net/tualatrix/ppa/ubuntu jaunty main

Anschließend den PGP Schlüssel importieren, damit #Zensursula & Co keine bösartige Software unterjubeln kann:

sudo gpg --recv-keys 6AF0E1940624A220|gpg --export 6AF0E1940624A220 |apt-key add -

Das eigentliche Paket installieren mit:

sudo apt-get install ubuntu-tweak


Das Tool steht dann unter "Anwendungen/Systemwerkzeuge" zur Verfügung.

Softwaretipp: phpMyVisites

Vor einigen Tagen ging mein kostenloser Besucherzähler flöten. Das ist schon ärgerlich, daher bin ich auzf der Suche nach einem brauchbaren Script, damit ich die Statistiken zukünftig selber machen kann. Über die Seite von Klaus Frey bin ich auf phpMyVisites gestoßen. Das ist ein recht interessantes PHP / MySQL gestütztes Script, das aussagekräftige Statistiken erstellt. Kosten tut es auch nichts, wobei sich die Entwickler über Spenden freuen.

Einmal Big Brother sein.

Petitionen und Unterschriftensammlungen mit "Petitionsverwaltung"

Für die Sammlung von Unterschriften für die Solidaritätserklärung mit den streikenden Bahnern habe ich das Freeware PHP Script "Petitionsverwaltung" von "Grace-Script" verwendet.

Das Script erlaubt die Sammlung von Unterschriften, die wahlweise sofort oder erst durch den Administrator freigeschaltet werden können und deren Aufbereitung und Ausgabe als HTML oder auch als CSV Datei. Die sehr weitgehende Konfigurierbarkeit und Transparenz des Codes haben mich dazu veranlasst, diesem Script den Vorzug vor phpPetition zu geben.

Stefan Warnat, der Programmierer des Scripts hat sich zudem sehr engagiert um meine Fragen zu notwendigen Anpassungen gekümmert, wofür ich mich bei ihm herzlich bedanken will.

Gegenüber dem Originalcode wurde folgendes geändert:

Statt der im Original zentrierten Ausrichtung des Textes und der Eingabemaske wollte ich eine linksbündige Ausrichtung:

Dazu muss in der Datei cache/felder.html die Anweisung text-align:center; in text-align:left; geändert werden:
.beschreibung { text-align:left; width:300; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;}
.text { width:200; text-align:left; font-family:Verdana, Arial, Helvetica, sans-serif;}
.titel { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:13px; text-align:left;}


Diese Ausrichtung muss dort auch noch etwas weiter unten im Code eingetragen werden:

<table width='500' border=0 align='left'>

Wenn man schon dabei ist, trägt man noch mehrfach <br /> am Ende der Datei ein, damit der Text nach der Eingabemaske nicht rechts neben dieser ausgegeben wird:

</table></form><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />

In der Datei: entry.php werden alle Anweisungen, insbesondere:
<table border=0 align="center">

auch geändert:

<table border=0 align="left">

Bei mir wurde nach geleisteter Unterschrift der Browser nicht zur Hauptseite zuürck geleitet. Das kann am Server liegen. In "eintragen.php" besteht die Möglichkeit, die Zielseite auch manuell eintzutragen:

Die Angabe <?=$req[back_url] ?> durch die Adresse der Zielseite mit der zu ersetzen. So zum Beispiel:

<meta http-equiv="refresh" content="5; url=http://www.trueten.de">

In dem obigen Beispiel wird nach 5 Sekunden auf meine Hauptseite weitergeleitet.

Die Sortierung der Unterschriften nach alphabetischer Reihenfolge funktioniert auch in MySQL nur, wenn der Server auf den Zeichenssatz latin1_german1_ci eingerichtet ist. Wer die Möglichkeit hat, das selber zu konfigurieren kann das laut MySQL FAQ recht einfach machen, indem er diesen Zeichensatz in /etc/my.conf einträgt:
[mysqld]
[...]
set-variable = default-character-set=german1 # Version 3.23
bzw.
set-variable = default-character-set=latin1_de # Version 4

Nachträgliche Codierungen können jedoch auch zu Problemen wie zerhackten Sonderzeichen in Tabellen führen, die man nicht ändern möchte. Mit phpMyadmin kann man das aber auch für einzelne Tabellen einrichten. Funktioniert problemlos.

Mailrouting mit Postfix

Ab und zu versende ich größere Dateien, für die ich einen anderen Mailserver verwende. Ebenso geht Spam, der nicht erkannt wurde direkt an ein Lernscript, das spamassasin auf dessen zukünftige Erkennung trainiert. Dazu verwende ich dann jeweils andere Empfägeradressen: Spam geht beispielsweise an spam@mailempfängerdomain_2, Mail an Nutzer im Intranet an mailempfängerdomain_1. Der Rest der Welt wird über smtp_Server_3 mit meinen Erkenntnissen versorgt ;-)

Diese Verteilung bzw. Routing unterschiedlich addressierter Mail funktioniert mit Postfix ziemlich einfach:
Datei /etc/postfix/transport mit folgendem Inhalt anlegen:

# /etc/postfix/transport
# Mails für alle Empfänger in *.mailempfängerdomain_1 gehen über smtp_Server_1
.mailempfängerdomain_1 smtp:smtp_Server_1
# Mails für alle Empfänger in mailempfängerdomain_2 gehen über smtp_Server_2
mailempfängerdomain_2 smtp:smtp_Server_2
# Der Rest geht hierhin
* smtp: smtp:smtp_Server_3


/etc/postfix/main.cf um folgende Einträge ergänzen:

# /etc/postfix/main.cf
# Alle Domains eintragen, für die geroutet wird:
relay_domains = mailempfängerdomain_1, mailempfängerdomain_2
# Routing
transport_maps = hash:/etc/postfix/transport


Anschließend die Befehle ausführen:
postmap /etc/postfix/transport
postfix reload


Logfiles kontrollieren, fertig.

Preiswerter (Web)Server durch Router - Hack

Server auf PC-Basis haben einen hohen Energieverbrauch. Preiswerte Router, in die ein zusätzlicher USB-Port eingebaut wird, erfüllen denselben Zweck und sparen Strom. Da der Speicher des Routers nun erweitert werden kann, ergeben sich weitere interessante Anwendungen. Der ELEKTOR Artikel zeigt, wie´s geht.

Information

Links zum Thema:
Routerumbau
Der Hack
Bezugsquelle für den Sweex-Router in Deutschland

Website des Herstellers:
Zum Sweex Router

Nach Angaben eines Lesers ist der Router „Edimax BR-6104K“ zum Sweex LB000021 baugleich. Noch besser: Der „Edimax BR6104KP“ ist ebenfalls baugleich – er hat die notwendigen USB-Ports aber bereits fertig on-board!
Bezugsquelle:
ab199.de

Newsoffice - Alternative zu GoogleGroups

Ein kostenloser persönlicher Newsserver mit Web Oberfläche, eine brauchbare Alternative zu googlegroups steht unter http://www.newsoffice.de zur Verfügung.

Was ist das Newsoffice ?
Das Newsoffice ist ein Sammelpunkt für verschiede Newsgruppen. Jeder kann ohne Anmeldung in den Newsgruppen stöbern und viele Meinungen lesen. Angemeldete User haben zudem die Möglichkeit umfassend in Newsgruppen zu lesen und schreiben.

Was bietet Newsoffice nicht ?
Newsoffice.de bietet den Nutzern kein umfassendes News-Archiv an. Wer in alten Newsbeständen blättern möchte, empfehlen wir die Datenbank von Google. Wenn Sie jedoch einen aktuellen Überblick über das Newsangebot haben wollen, sind sie bei uns richtig.

Warum kein offenes Newsinterface ? (Schreibrecht erst nach Anmeldung)
Bei einem unkontrollierten Newsinterface besteht die Gefahr, daß Nutzer diesen Dienst für ungewollte Werbesendungen mißbrauchen. Im Gegenzug werden meist auch die "redlichen" Nutzer solcher Dienste von anderen Lesern ignoriert. So hat keiner etwas von solch einem Dienst. Solche Dienste stellen so oft eher ein Ärgernis da.

Was benötige ich für eine Anmeldung ?
Sie benötigen für eine Anmeldung nur eine E-Mailadresse. Zusätzlich besteht die Möglichkeit einen externen Newsserver anzusprechen (z.B.. Firmenserver) In jedem Fall gelten die Bedingungen und AGB's dieses Anbieters auch über die Nutzung unseres Angebotes.

Welchen Vorteil bietet mir Newsoffice.de ? (nach Anmeldung)
Bei Nutzung unseres Dienstes wird keine Werbung an die Postings angehängt. Eine Signatur können Sie nach Belieben speichern. Ebenso können Sie ein "Killfile" anlegen. Ungewünschte Artikel von ungeliebten Zeitgenossen verschwinden so aus Ihrer Übersicht. Darüberhinaus gibt es eine Viren- und Spamgeprüfte E-Mailadresse. Wir versuchen den Newszugriff so komfortabel wie möglich zu gestalten.

Konvertieren von MPC Dateien nach MP3

Lege als root mit einem Editor Deiner Wahl die Datei /usr/local/bin/mpc2mp3 mit folgendem Inhalt an:

#! /bin/bash

for i in "$1"/*.mpc ;
do
FILENAME=`ls "$i" | gawk -F. '{print $1}'` ;
nice -20 mppdec "$FILENAME.mpc" "$FILENAME.wav" ;
nice -20 lame -h -b 160 "$FILENAME.wav" "$FILENAME.mp3" ;
rm "$FILENAME.wav"
done

Mit chmod ugo+x /usr/local/bin/mpc2mp3 machen wir die Datei für alle ausführbar.

Jetzt brauchst Du noch die mppc und lame encoder für Deine Distribution.

Einen statisch gelinkten mppc für alle gängigen Linuxe

Lame gibt es hier oder z.B. bei Debian kompatiblen Distributionen mit "apt-get install lame"

So, das obige Script wird im Verzeichnis oberhalb der .mpc Dateien ausgeführt z.B.:
user@rechner:/tmp$ mpc2mp3 burn
MPC Decoder SV7 1.95e 3DNow/SSE (C) 1999-2003 Buschmann/Klemm/Piecha/Wolf

decoding of file 'burn/01 - EinDateiname.mpc'
to file 'burn/01 - EinDateiname.wav'

ID3Tag der Datei und (Datum)
[01] Albumtitel (EAC secure)

177.9 kbps, 15:50.75, SV 7.0, Profile 'Standard' (Beta 1.14)

15:50.73 (runtime: 4.49 s speed: 211.74x)
LAME version 3.96.1 (http://lame.sourceforge.net/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE
Using polyphase lowpass filter, transition band: 17960 Hz - 18494 Hz
Encoding burn/01 - EinDateiname.wav
to burn/01 - EinDateiname.mp3
Encoding as 44.1 kHz 160 kbps j-stereo MPEG-1 Layer III (8.8x) qval=2
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
36395/36397 (100%)| 1:43/ 1:43| 2:42/ 2:42| 9.1707x| 0:00
average: 160.0 kbps LR: 25284 (69.47%) MS: 11113 (30.53%)

Writing LAME Tag...done
ReplayGain: -4.9dB


Fertig! Die .wav Dateien werden anschließend gelöscht, die *.mpc bleibt erhalten.