Archives de catégorie : Linux

Client Signal sous Fedora

Aucune version de Signal n’est packagée officiellement pour Fedora (ou dérivés RedHat). Voici un script pour récupérer le dernier .deb et le convertir en .rpm (après quelques correctifs), pour ensuite être installé sous Fedora:

#!/bin/bash

DISTRIB=xenial

LAST_VERSION=`curl -s https://updates.signal.org/desktop/apt/dists/$DISTRIB/main/binary-amd64/Packages | grep ^Version: | grep -v beta | awk '{print $2}' | sort -V -r | head -n1`
if [ -z $LAST_VERSION ]; then
    echo "No version found"
    exit 1
fi

CURRENT_VERSION=`rpm -q --qf "%{VERSION}\n" signal-desktop`
if [ $? -ne 0 ]; then
    CURRENT_VERSION=0.0.0
fi

echo Current version: $CURRENT_VERSION
echo Available version: $LAST_VERSION

if [[ $CURRENT_VERSION = $LAST_VERSION ]]; then
    echo Up to date
    exit 0
fi

TMP_DIR=/tmp/signal-desktop_${LAST_VERSION}_amd64
TMP_FILE=${TMP_DIR}.deb
WORK_DIR=$TMP_DIR/signal-desktop-${LAST_VERSION}

echo Temporary file: $TMP_FILE
echo Temporary directory: $TMP_DIR
echo RPM working directory: $WORK_DIR

mkdir -p $TMP_DIR
test -f $TMP_FILE || curl https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${LAST_VERSION}_amd64.deb -s -o $TMP_FILE

test -d $WORK_DIR || (cd $TMP_DIR && sudo alien -r -g $TMP_FILE)
if [ $? -ne 0 ]; then
    exit 1
fi

sudo sed -i 's/^Summary: $/Summary: signal-desktop/' $TMP_DIR/signal-desktop-${LAST_VERSION}/signal-desktop-${LAST_VERSION}-2.spec
(cd $TMP_DIR && sudo rpmbuild --buildroot $WORK_DIR -bb $WORK_DIR/signal-desktop-${LAST_VERSION}-2.spec && sudo dnf install ../signal-desktop-${LAST_VERSION}-2.x86_64.rpm)
if [ $? -ne 0 ]; then
    exit 1
fi

rm $TMP_FILE
sudo rm -R $TMP_DIR
exit 0

xivoclient pour Fedora

DRAFT

Pour convertir les paquets .deb de xivoclient en .rpm, il faut les paquets alien et rpmrebuild.

Télécharger la dernière version du .deb depuis ce lien.

Exécuter les commandes suivantes:

$ fakeroot alien -r xivoclient-16.10-amd64.deb
xivoclient-16.10-2.x86_64.rpm generated
$ rpmrebuild -pe xivoclient-16.10-amd64.deb

VIm s’ouvre et laisse apparaître les dépendances. Il faut supprimer les lignes suivantes:

Requires: libmysqlclient_r.so.16()(64bit)
Requires: libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
%dir %attr(0755, root, root) "/"
%dir %attr(0755, root, root) "/usr/bin"

rpmrebuild demande confirmation et affiche ensuite le chemin vers le nouveau .rpm:

Voulez-vous continuer ? (y/N) y
[...]
result: /home/mcstf/rpmbuild/RPMS/x86_64/xivoclient-16.10-2.x86_64.rpm

SNMP est trop verbeux dans les logs ?

Si vos syslog et daemon.log sont spammés des annotations de connections de vos serveurs de monitoring, supervision, métrologie… Voici comment rentre snmpd un peut moins bavard:

# This file controls the activity of snmpd and snmptrapd

# MIB directories. /usr/share/snmp/mibs is the default, but
# including it here avoids some strange problems.
export MIBDIRS=/usr/share/snmp/mibs

# snmpd control (yes means start daemon).
SNMPDRUN=yes

# snmpd options (use syslog, close stdin/out/err).
#Par défaut il log tout
#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'
#Ne plus rien loguer
#SNMPDOPTS='-Lnd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'
#Loguer selon le niveau de gravitée:
SNMPDOPTS='-LS3d -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'
#Voici les différents levels:
#0 or ! for LOG_EMERG,
#1 or a for LOG_ALERT,
#2 or c for LOG_CRIT,
#3 or e for LOG_ERR,
#4 or w for LOG_WARNING,
#5 or n for LOG_NOTICE,
#6 or i for LOG_INFO, and
#7 or d for LOG_DEBUG.

# snmptrapd control (yes means start daemon). As of net-snmp version
# 5.0, master agentx support must be enabled in snmpd before snmptrapd
# can be run. See snmpd.conf(5) for how to do this.
TRAPDRUN=no

# snmptrapd options (use syslog).
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'

# create symlink on Debian legacy location to official RFC path
SNMPDCOMPAT=yes

Split domain avec Exim4

DRAFT

Ajouter un transport (l’ordre ne compte pas):

bluemind:
    driver = smtp
    hosts = 192.168.101.160
    hosts_override

Ajouter un router (après les aliases et avant les forward/delivery):

teclib:
    debug_print = "R: teclib for $local_part@$domain"
    driver = accept
    transport = bluemind
    condition = ${lookup {$local_part@$domain} lsearch {/etc/exim4/hubusers}{1}{0}}

Le fichier /etc/exim4/hubusers contiendra la liste des emails à transférer vers l’autre serveur:

test@domain.fr
test2@domain.com