# [skype] Une "vieille" ebuild? (résolu)

## El_Goretto

Bonjour,

Aujourd hui, çà peut plus durer.  :Smile: 

J'ai mis à jour skype ya 2 semaines (de la 1.0 à la 1.2, grossièrement), et c'est devenu impossible. Il refuse tout simplement de fonctionner avec arts (cf message en bas) et me sort un "Erreur E/S audio" lorsque arts est en marche, à chaque tentative d'appel.

Comme la vie est bien faite, il n'y a plus le choix entre une ebuild stable (la 1.0 que j'avais) et la ~arch qui est maintenant la seule disponible dans portage... Argh.

Je me demandais si quelqu'un parmi vous avait encore cette superbe 1.0.x ebuild, ou si vous pouviez m'indiquer ou trouver un overlay qui gardent une historique de portage (je crois avoir vu passer le sujet à un moment).

D'avance merki...

```
$ skype

Running artsd found

Starting artsd wrapped skype

==========================================

Running wrapped Skype failed, trying not-wrapped mode...

==========================================

```

----------

## El_Goretto

Tiens, çà faisait longtemps que je ne m'étais pas amusé à trouver la réponse qqs minute après mon post désespéré (qui m'a pris plus d'une semaine de recherche...)

J'ai du user de mes grandes compétences en allemand (hahaha, hum), et je suis tombé sur un post de forum qui m'a aidé, et voici la solution:

Un mec malin a remarqué qu'il y avait un log de skype dans son home.

```
$ cat ~/.Skype/skype.log

=====  ven sep 9 11:50:50 CEST 2005  =====

Starting artsd wrapped skype

MALLOC_CHECK_=0 artsdsp -m /opt/skype/skype.bin --resources-path /opt/skype/

/usr/bin/skype: line 52: MALLOC_CHECK_=0: command not found
```

On va ensuite dans /usr/bin/skype à la ligne 31 et soit on fait du remplacement de ligne (pas terrible):

```
#skypecmd="MALLOC_CHECK_=0 artsdsp -m ${skypecmd}"

skypecmd="artsdsp -m ${skypecmd}"
```

Soit on corrige cette ligne 52, mais je ne sais pas comment, vu que je ne vois pas ce qui cloche:

```
${skypecmd} ${progopts} >> ${logfile} 2>> ${logfile}
```

----------

## yoyo

 *El_Goretto wrote:*   

> Je me demandais si quelqu'un parmi vous avait encore cette superbe 1.0.x ebuild, ou si vous pouviez m'indiquer ou trouver un overlay qui gardent une historique de portage (je crois avoir vu passer le sujet à un moment).

 Pour le reste je ne sais pas, mais pour récupérer une vieille version d'ebuild, tu as toujours les snapshots de portage ...

EDIT : mouais les plus vieux datent du 01/09/2005 donc c'est pas gagné ... Peut-être un snapshot de LiveCD ...

EDIT bis : il y a plein d'ebuilds de skype (dont de vieux ebuilds) sur bugzilla : lien kivabien.

Enjoy !

----------

## TGL

yoyo, vite, édite encore un coup, t'as oublié le CVS :p

----------

## yoyo

 *TGL wrote:*   

> yoyo, vite, édite encore un coup, t'as oublié le CVS :p

 Tu crois que ça va se voir ??   :Rolling Eyes: 

Mais bon :  *El_Goretto wrote:*   

>  qui m'a pris plus d'une semaine de recherche...

 Pourquoi faire simple quand on peu faire compliqué ...   :Laughing: 

----------

## El_Goretto

 *yoyo wrote:*   

>  *TGL wrote:*   yoyo, vite, édite encore un coup, t'as oublié le CVS :p Tu crois que ça va se voir ??  

 

 :Smile: 

Waaahou.

Toutes les ebuilds de portage sont stockés là? Enoooooorme  :Smile:  Et paf le bookmark.

Et sinon pour la culture, quelqu'un de plus compétent que moi en shell script saurait pourquoi 

```
[1]  ${skypecmd} ${progopts} >> ${logfile} 2>> ${logfile}
```

 qui doit donner et donne 

```
[2] MALLOC_CHECK_=0 artsdsp -m /opt/skype/skype.bin --resources-path /opt/skype/
```

 est mal interprétée sous forme [1], alors que [2] dans un terminal est correctement exécutée?

pour ceux qui veulent le script de lancement de skype sans l'installer:

```
#!/bin/bash

#

# Wrapper script to run Skype with sound wrapper when possible

logfile="${HOME}/.Skype/skype.log"

progname="skype"

progpath="/opt/${progname}/"

progopts="--resources-path ${progpath}"

shellcheck1=` which artsshell 2> /dev/null `

shellcheck2=` which esd 2> /dev/null `

artsdcheck=` ps x | grep artsd | grep -v grep `

## We use ps ax for esd as esd can be used globaly for all users.

esdcheck=` ps ax | grep "esd ." | grep -v grep `

skypecmd="${progpath}${progname}.bin"

wrapsound="yes"

[ "$1" == "oss" ] && wrapsound="no"

[ -d "$(dirname "${logfile}")" ] || mkdir "$(dirname "${logfile}")"

echo "===== " `date` " =====" > ${logfile}

if [[ -z ${shellcheck1} && -z ${shellcheck2} ]]

then

        echo "No installed artsshell or esd found"

        echo "Assuming you're running no sound daemon"

        echo "Starting ${progname} without a sound wrapper" | tee --append "${logfile}"

else

        if [[ ${wrapsound} == "yes" && ${shellcheck1} == $(artsc-config --arts-prefix)/bin/artsshell && -n ${artsdcheck} ]]

        then

                echo "Running artsd found"

                echo "Starting artsd wrapped ${progname}" | tee --append "${logfile}"

                skypecmd="MALLOC_CHECK_=0 artsdsp -m ${skypecmd}"              #  <<<<<<----------------------

        elif [[ ${wrapsound} == "yes" && ${shellcheck2} == /usr/bin/esd && -n ${esdcheck} ]]

        then

                echo "Running esd found"

                echo "Starting esd wrapped ${progname}" | tee --append "${logfile}"

                skypecmd="esddsp ${skypecmd}"

        else

                if [ ${wrapsound} == "yes" ]

                then

                        echo "No running artsd or esd found"

                else

                        echo "Use of sound-daemon disabled"

                fi

                echo "Starting ${progname} without sound daemon" | tee --append "${logfile}"

        fi

fi

#Going to "homedir"

cd ${progpath}

echo "${skypecmd} ${progopts}" >> ${logfile}

echo "=========================================="

${skypecmd} ${progopts} >> ${logfile} 2>> ${logfile}              #  <<<<<<----------------------

if [[ $? -ne 0 ]] ; then

        echo "Running wrapped Skype failed, trying not-wrapped mode..."

        echo "=========================================="

        skypecmd="${progpath}${progname}.bin"

        ${skypecmd} ${progopts} >> ${logfile} 2>&1

fi

exit $?
```

----------

## Enlight

faut un eval pour le [1], non?

----------

## TGL

 *El_Goretto wrote:*   

> Et sinon pour la culture, quelqu'un de plus compétent que moi en shell script saurait pourquoi 
> 
> ```
> [1]  ${skypecmd} ${progopts} >> ${logfile} 2>> ${logfile}
> ```
> ...

 

Il faudrait un "eval" devant :

```
eval ${skypecmd} ${progopts} >> ${logfile} 2>> ${logfile}
```

Le truc c'est que le shell ne fait ses évaluation récursivement, il fait juste une passe. Dans le cas [2], la passe sert à se rendre compte que MALLOC=0 est une variable d'environnement à placer localement pour la commande qui suit, et que c'est artsdsp la vrai commande à lancer. Mais dans le cas [1], l'évaluation elle sert déjà à remplacer ${skypecmd} par "MALLOC=0 artsdsp ...", et donc il en manque une 2ème derrière, ce qui fait que le shell prend MALLOC=... pour la commande à lancer.

Avec un "eval", tu forces une évaluation des variables de ta ligne, avant de la laisser encore interpréter par le shell. En gros, "eval ${skypecmd} ..." devient un "MALLOC=0 artsdsp ..." tout frais, prêt à à être interprété comme sur la ligne de commande.

EDIT: Donne moi le G... Donne moi le R... Donne moi le I... Donne moi deux L... Donne moi le É... G,R,I,2 L et É... 

GRILLÉ !  \o/ ouais \o/

----------

## El_Goretto

Ok, merci beaucoup pour l'éclaircissement, je ne savais pas pour la "non récursivité" de l'interprétation.

Du coup, çà vaut peut être la peine de signaler la chose? Ca se fait sur bugzilla gentoo, après inscription, on remplit un formulaire en vérifiant que ca fait pas doublon, et c'est tout?

--

edit:

TGL: grillé, peut être, mais ma petite tête aime bien comprendre  :Smile: 

----------

## Enlight

 :Mr. Green:   :Mr. Green:   :Mr. Green: 

mais bon ton explication est carrément classe!

----------

## TGL

 *El_Goretto wrote:*   

> Du coup, çà vaut peut être la peine de signaler la chose? Ca se fait sur bugzilla gentoo, après inscription, on remplit un formulaire en vérifiant que ca fait pas doublon, et c'est tout?

 

Ça aurait été ça oui, mais là en l'occurrence tu vas trouver un doublon :

https://bugs.gentoo.org/show_bug.cgi?id=81255 (dernier commentaire)

----------

## El_Goretto

Je viens juste de tomber dessus, je m'apprétais à le signaler et paf, grilled  :Smile: 

----------

