Patch RavadaVDI

Par défaut, le fichier généré par RavadaVDI n’embarque pas le mot de passe généré aléatoirement pour l’ouverture d’une session SPICE. De plus, la longueur du mot de passe (4 caractères) est beaucoup trop courte.

Le script suivant (ravada-patch.sh) permet de corriger ces deux problèmes sur RavadaVDI (version 1.8.0): il n’est plus nécessaire de saisir le mot de passe, sa longueur est portée à 16 caractères.

#!/bin/bash

dpkg -l patch >/dev/null 2>/dev/null || apt -y install patch

systemctl stop rvd_front.service
systemctl stop rvd_back.service

# Set spice passwords to 16 chars
files=$(grep -r "password = Ravada::Utils::random_name(4)" /usr/share/perl5/Ravada/* |grep password |awk '{print $1}' |cut -d: -f1)
for file in ${files} ; do
sed -i 's/password = Ravada::Utils::random_name(4)/password = Ravada::Utils::random_name(16)/g' ${file}
done

# Put spice passwords in ".vv" files, do no start viewer in fullscreen
[ -f Domain.pm.orig ] || cp /usr/share/perl5/Ravada/Domain.pm Domain.pm.orig
patch /usr/share/perl5/Ravada/Domain.pm Domain.pm.patch || cp Domain.pm.orig /usr/share/perl5/Ravada/Domain.pm

systemctl start rvd_back.service
systemctl start rvd_front.service

Le patch (Domain.pm.patch):

1861a1862,1863
> # Keep password for ".vv" file
> our $ppass="";
1864c1866,1868
< return $self->_data('spice_password');
---
> #return $self->_data('spice_password');
> our $ppass = $self->_data('spice_password');
> return $ppass;
1940c1944,1946
< $ret .="password=%s\n" if $self->spice_password();
---
> # Put password in ".vv" file
> #$ret .="password=%s\n" if $self->spice_password();
> $ret .="password=$ppass\n" if $self->spice_password();
1941a1948
> # Do not start in fullscreen
1943c1950
< "fullscreen=1\n"
---
> "fullscreen=0\n"

Les commentaires sont fermés