• [^] # Re: firefow 3.0 beta 5

    Posté par . En réponse à la dépêche Fedora 9 : une version sulfureuse. Évalué à 6.

    Désolé pour le double-post, j'ai répondu trop vite...

    > Regarde la page concernant l'installation sur Fedora7
    Pour le fun, regardons wicd.redhat.patch:

    --- ./opt/wicd/daemon.py.sdg 2007年07月08日 23:56:54.000000000 -0400
    +++ ./opt/wicd/daemon.py 2007年09月16日 18:30:30.000000000 -0400
    @@ -51,8 +51,8 @@

    class FlushWriter:
    def __init__(self):
    - print os.getcwd()
    - self.file = open('data/wicd.log','w')
    + if not PIDFile: print os.getcwd()
    + self.file = open('/var/log/wicd.log','w')
    self.file.write(self.__getPrettyTime() + ' :: ')


    Changement de la location de wicd.log. Pourquoi était-ce un répertoire relatif avant ? Je suppose que c'est parce que l'auteur ne sait pas faire l'equivalent de gcc -DDATADIR=... à l'installation pour python. C'est très compréhensible, je n'ai pas trouvé de doc potable là dessus.


    @@ -122,8 +122,8 @@

    DoAutoConnect = True

    - if len(sys.argv) > 1:
    - if sys.argv[1] == "--do-not-scan":
    + for opt in sys.argv[1:]:
    + if opt == "--do-not-scan":
    print "--do-not-scan detected, not autoconnecting..."
    DoAutoConnect = False

    Ne pas obliger --do-not-scan à ne pas être la première option: quel comportement ubuntu-centriste inacceptable !


    @@ -766,6 +766,11 @@
    ## fork from the parent terminal

    if True: #for easy disabling
    + for opt in sys.argv[1:]:
    + if opt.startswith('-P'):
    + PIDFile = opt[2:]
    + break
    + else: PIDFile = None
    try:
    pid = os.fork()
    if pid > 0:

    Ajout d'une option pour choisir le fichier PID. N'a de sens qu'avec la suite du patch


    @@ -783,7 +788,10 @@
    try:
    pid = os.fork()
    if pid > 0:
    - print "wicd daemon: pid " + str(pid)
    + if PIDFile:
    + print >>open(PIDFile,'wt'),str(pid)
    + else:
    + print "wicd daemon: pid " + str(pid)
    sys.exit(0)
    except OSError, e:
    print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror)

    Ajout de la gestion d'un lock par fichier de PID. Ne pas en avoir est tellement ubuntu-centriste que c'en est gerbant...


    --- ./etc/init.d/wicd.sdg 2007年03月30日 09:14:30.000000000 -0400
    +++ ./etc/init.d/wicd 2007年09月16日 18:30:53.000000000 -0400

    Puisque tu as déjà fait plein de paquets pour Fedora, je ne t'apprendrais rien si je te dis que c'est la stratégie de la majorité des projets libres: l'auteur fournit le script d'init pour SA distribution. Pour les autres, soit il y a des contributions et l'auteur se fait un plaisir de les intégrer, soit il n'y en a pas et c'est le boulot du packageur.

    Je viens également de regarder les sources, et je viens de voir dapper.py et edgy.py. Quoi, me serais-je fourvoyé ? Regardons de plus prêt:
    $ head -n 3 dapper.py
    ########
    ## DO NOT RUN THIS FILE DIRECTLY
    ## USE TRAY.PY INSTEAD
    $ head -n 3 edgy.py
    ########
    ## DO NOT RUN THIS FILE DIRECTLY
    ## USE TRAY.PY INSTEAD
    $ cat tray.py
    [coupage d'une partie inintéressante]
    import gtk
    if gtk.gtk_version[0] >= 2 and gtk.gtk_version[1] >= 10:
    import edgy
    else:
    import dapper

    Donc il se trouve que pour l'icone de notification, il gère GTK < 2.10 dans dapper.py et GTK >= 2.10 dans edgy.py. OK, il a fait le crime de lèse majesté de mal nommer deux fichiers. Quelle horreur !