AndresVargas

Hi!, my nickName is zodman, im a Computer science Engineering. love the FLOSS and FreeSoftware. Python ninja and php coder. On left my love Aisha and me.

Interest links
seen more



Powered by Django.

Razones para ser desarrollador de Foresight Linux parte 1

Facil de empaquetar aplicaciones

Foresight usa el sistema de paquetes conary, el cual te permite empaquetar aplicaciones en recipes(recetas). En muy pocas lineas de codigo. Las herramientas de conary te detectan las dependencias que usan los paquetes. Asi que no es necesario gran conocimiento de Linux para empaquetar.

recipe gnome-do recipe gedit o pueden ser tan flexibles y complejos recipe python

NOTA: las buildRequires(dependencias) se generan automaticamente. Las agregas haciendo copy/paste

No tienes que descargar Fuentes(tar.gz), Agregas la direccion donde se encuentra. Para que se descargue, extraiga, compile segun las instrucciones del recipe. Y detecte dependencias automaticamente.

wikipage: como crear un paquete

Comparte los cambios de tus paquetes

Conary tiene soporte para manejo de versiones. No utiliza git ni svn. Utiliza algo mas simple para llevar los recipe.
Primero creas tu recipe de un paquete.

cvc newpkg app1

Modificas el app1.recipe y te das cuenta que siempre que lo cocinas(cook,construyes) se rompe, no puedes hacer que funcione. Pero uno de tus cuates es mas experimentado, te dice que el puede hacerlo funcionar, tu haces un commit al paquete.

cvc commit -m "app1 broken faild load lib"

este se vera reflejado en el repositorio.

El Cuate puede hacer

cvc co app1

para descargar el recipe que tu creaste y hackearlo hasta hacer que funcione para que al final tu hagas

cvc update app1

y puedas obtener los cambios echos y ver que se le hizo

cvc rdiff app1

wikipage: conary commands

Update a app with conary-lib

Yeah im add a method for a simple: conary update app<=repo@tag:label>

Reading the documentation and seen some code im understand some things....

  • For conary update a package ( called installing a package) need to create a Job
  • With this job its a empty for begining. You must attach some task like (Update)
  • If job created the update must Apply for install it.
  • for update a package needs be a ChangeSpec Format:
    (troveName, (oldVersionSpec, oldFlavor), (newVersionSpec, newFlavor)
  • conary.conary.ConaryClient its the base of conary Structure on Conary API.

From command line:

[zodman@cosmogirl conary-lib]$ conary q iftop
iftop was not found
[zodman@cosmogirl conary-lib]$ sudo python conarypk.py
Update Success of iftop=/zodyrepo.rpath.org@rpl:devel/0.17-3-1
[zodman@cosmogirl conary-lib]$ conary q iftop --labels
iftop=zodyrepo.rpath.org@rpl:devel/0.17-3-1

the new method:

def update(self, name, installLabel= None):
        cli = self.cli
        #get a trove
        troves = self.request_query(name, installLabel)
        for trove in troves:
            trovespec =  self.trove_to_spec( trove )
        try:
            # create a Job
            job = cli.newUpdateJob()
            # Add Update task to Job
            cli.prepareUpdateJob(job, cmdline.parseChangeList(trovespec))
            # Apply the Job
            cli.applyUpdateJob(job)
            # im rulz
            return "Update Success of %s" %  trovespec
        except NoNewTrovesError:
            return "no new Troves Found by %s " % trovespec

    def trove_to_spec(self, trove ):
        return cmdline.toTroveSpec( trove[0], str(trove[1]), None)

Using conary-lib:

    conary = ConaryPk()
    print conary.update("iftop","zodyrepo.rpath.org@rpl:devel")