Posted
over 9 years
ago
by
Jsfrncscg
Ciclos de Desarrollo:
← Revisión anterior
Revisión de 15:18 16 feb 2016
Línea 7:
Línea 7:
* [[Canaima 5]] * [[Canaima 5]]
* [[Hoja de ruta para Canaima 5]] * [[Hoja de ruta para Canaima 5]]
-* [[Breve Guia
... [More]
de Empaquetamiento]]+* [[Breve Guía de Empaquetamiento]]
= Fichas de los Proyecto de Canaima GNU/Linux = = Fichas de los Proyecto de Canaima GNU/Linux =
[Less]
|
Posted
over 9 years
ago
by
Jsfrncscg
Breve Guia de Empaquetamiento trasladada a Breve Guía de Empaquetamiento
|
Posted
over 9 years
ago
by
Jsfrncscg
Breve Guia de Empaquetamiento trasladada a Breve Guía de Empaquetamiento
|
Posted
over 9 years
ago
by
Jsfrncscg
Ciclos de Desarrollo:
← Revisión anterior
Revisión de 15:17 16 feb 2016
Línea 7:
Línea 7:
* [[Canaima 5]] * [[Canaima 5]]
* [[Hoja de ruta para Canaima 5]] * [[Hoja de ruta para Canaima 5]]
-* [[Receta de
... [More]
Empaquetamiento]]+* [[Breve Guia de Empaquetamiento]]
= Fichas de los Proyecto de Canaima GNU/Linux = = Fichas de los Proyecto de Canaima GNU/Linux =
[Less]
|
Posted
over 9 years
ago
by
Jsfrncscg
Ciclos de Desarrollo:
← Revisión anterior
Revisión de 15:17 16 feb 2016
Línea 7:
Línea 7:
* [[Canaima 5]] * [[Canaima 5]]
* [[Hoja de ruta para Canaima 5]] * [[Hoja de ruta para Canaima 5]]
-* [[Receta de
... [More]
Empaquetamiento]]+* [[Breve Guia de Empaquetamiento]]
= Fichas de los Proyecto de Canaima GNU/Linux = = Fichas de los Proyecto de Canaima GNU/Linux =
[Less]
|
Posted
over 9 years
ago
by
Jsfrncscg
Ciclos de Desarrollo:
← Revisión anterior
Revisión de 15:17 16 feb 2016
Línea 7:
Línea 7:
* [[Canaima 5]] * [[Canaima 5]]
* [[Hoja de ruta para Canaima 5]] * [[Hoja de ruta para Canaima 5]]
-* [[Receta de
... [More]
Empaquetamiento]]+* [[Breve Guia de Empaquetamiento]]
= Fichas de los Proyecto de Canaima GNU/Linux = = Fichas de los Proyecto de Canaima GNU/Linux =
[Less]
|
Posted
over 9 years
ago
by
Jsfrncscg
Receta de Empaquetamiento trasladada a Breve Guia de Empaquetamiento
|
Posted
over 9 years
ago
by
Jsfrncscg
Receta de Empaquetamiento trasladada a Breve Guia de Empaquetamiento
|
Posted
over 9 years
ago
by
Jsfrncscg
← Revisión anterior
Revisión de 15:15 16 feb 2016
Línea 31:
Línea 31:
= Procedimiento = = Procedimiento =
-1. Obtener el código fuente de un paquete, por ejemplo:
... [More]
[http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon canaima-cinnamon], ya sea descargando su código fuente usando apt-get+==== 1. Obtener el código fuente de un paquete ====
+
+Por ejemplo, se desea realizar una modificación u aporte para el paquete [http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon canaima-cinnamon], ya sea descargando su código fuente usando apt-get
<pre>$ apt-get source canaima-cinnamon </pre> <pre>$ apt-get source canaima-cinnamon </pre>
Línea 37:
Línea 39:
o clonandolo desde su respectivo repositorio git o clonandolo desde su respectivo repositorio git
-<pre>$ git clone </pre>+<pre>$ git clone http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon</pre>
-2. Se realizan las modificaciones deseadas. El procedimiento estándar es similar a:+==== 2. Se realizan las modificaciones deseadas ====
+
+El procedimiento estándar es similar a:
* Modificar las fuentes * Modificar las fuentes
* Agregar los cambios en git <pre>$ git add . </pre> * Agregar los cambios en git <pre>$ git add . </pre>
-* Hacer commit de los cambios <pre>$ git commit </pre>+* Hacer commit de los cambios <pre>$ git commit -m "<descripcion-de-los-cambios-realizados>" </pre>
-3. Se actualiza el changelog del paquete+==== 3. Construir el paquete binario ====
+
+Existen varias alternativas para construir los paquetes binarios, dependiendo de las necesidades o el contexto en el que estemos realizando el empaquetamiento. A continuación se muestran 2 formas igualmente validas para construirlos
+
+===== 3.1 Dejando que git-buildpackage cree las fuentes (recomendado) =====
+
+Se actualiza el changelog del paquete, indicando el numero de versión correspondiente
<pre> $ gbp dch --new-version="X.Y" --release --auto --id-length=7 --full --commit --git-author </pre> <pre> $ gbp dch --new-version="X.Y" --release --auto --id-length=7 --full --commit --git-author </pre>
-4. Construir el paquete+Y se construye el o los paquetes usando el siguiente comando
<pre>$ gbp buildpackage --git-pbuilder --git-dist=jessie --git-arch=amd64 --git-upstream-tree=master -us -uc </pre> <pre>$ gbp buildpackage --git-pbuilder --git-dist=jessie --git-arch=amd64 --git-upstream-tree=master -us -uc </pre>
-* La opcion --git-upstream-tree permite indicar la rama a partir de la cual se construira la fuente+* La opción '''--git-upstream-tree''' permite indicar la rama a partir de la cual se construirá la fuente automáticamente
-* Las opciones -us -uc indican que se salta el paso de firma del paquete usando una llave GPG previamente configurada [https://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/]+
-= Operaciones Comunes =+===== 3.2 Construyendo las fuentes "a mano" =====
+
+Antes de realizar el empaquetamiento se exportaran las siguientes variables de entorno que serán usadas mas adelante
+
+* PKGNAME: Nombre del paquete tal como aparece en el archivo changelog
+* VERSION: Versión del paquete tal como aparece en el archivo changelog
+* ORIGVER: Versión original del paquete tal como viene de la fuente (upstream)
+
+<pre>
+$ export PKGNAME=$(dpkg-parsechangelog | grep-dctrl -esSource . | awk -F' ' '{print $2}')
+$ export VERSION=$(dpkg-parsechangelog | grep-dctrl -esVersion . | awk -F' ' '{print $2}')
+$ export ORIGVER=$(echo $VERSION | sed 's/-.*//g')
+</pre>
+
+Seguidamente se actualiza la versión del changelog con el siguiente comando:
+
+<pre>
+gbp dch --new-version="$VERSION" --release --auto --id-length=7 --full --commit --git-author
+</pre>
+
+Se crea el paquete fuente con:
+
+<pre>
+tar --anchored --exclude-vcs --exclude "./debian" -cvzf ../$(echo $PKGNAME"_"$ORIGVER).orig.tar.gz --directory=$(pwd) ./
+</pre>
+
+Y por ultimo se construye el o los paquetes binarios, si se dispone de una llave GPG correctamente configurada en el directorio del usuario:
+
+<pre> git buildpackage -kE78DAA2E -tc --git-tag --git-retag </pre>
+
+en caso contrario:
+
+<pre> git buildpackage -us -uc -tc --git-tag --git-retag </pre>
+
+* La opción '''--git-retag''' evita los fallos al agregar una [https://git-scm.com/book/es/v1/Fundamentos-de-Git-Creando-etiquetas '''etiqueta'''] si ya existe una con la misma versión
+* En ambas alternativas, las opciones [https://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/ '''-us -uc'''] indican que se salta el paso de firma del paquete con la llave GPG
+
+
+= Breve receta para versionar usando parches =
+
+==== 1. Exportar variables de entorno ====
+
+<pre>$ export QUILT_PATCHES="debian/patches" </pre>
+
+==== 2. Quitar parches ====
+
+<pre>$ rm -rf .pc/ </pre>
+
+==== 3. Cambiar nombre del paquete en el changelog ====
+
+<pre>$ gbp dch -N <nuevo-nombre-paquete> --auto --release --git-author --id-length=7 --commit </pre>
+
+==== 4. Crear el paquete fuente (orig.tar.gz) ====
+
+<pre>$ tar --anchored --exclude="debian" -czf <ubicacion-donde-se-exporta-el-fuente> <ubicacion-del-contenido-de-la fuente> </pre>
+
+==== 5. Construir el paquete ====
+
+<pre>$ gbp -tc -us -uc --git-tag </pre>
+
+ó
+
+<pre>$ gbp -tc -us -uc --git-tag --git-retag -j5 </pre>
+
+para usar más poder de procesamiento durante la construcción
+
+= Otras operaciones Comunes =
==== Modificar el nombre del autor del ultimo commit ==== ==== Modificar el nombre del autor del ultimo commit ====
Línea 72:
Línea 147:
==== Borrar todo lo que no este versionado antes del ultimo commit ==== ==== Borrar todo lo que no este versionado antes del ultimo commit ====
-<pre> $git clean -fd </pre>+<pre> $ git clean -fd </pre>
+
+= Como crear un proyecto y subirlo al repositorio de Canaima =
+
+(Por hacer)
[Less]
|
Posted
over 9 years
ago
by
Jsfrncscg
← Revisión anterior
Revisión de 15:15 16 feb 2016
Línea 31:
Línea 31:
= Procedimiento = = Procedimiento =
-1. Obtener el código fuente de un paquete, por ejemplo:
... [More]
[http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon canaima-cinnamon], ya sea descargando su código fuente usando apt-get+==== 1. Obtener el código fuente de un paquete ====
+
+Por ejemplo, se desea realizar una modificación u aporte para el paquete [http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon canaima-cinnamon], ya sea descargando su código fuente usando apt-get
<pre>$ apt-get source canaima-cinnamon </pre> <pre>$ apt-get source canaima-cinnamon </pre>
Línea 37:
Línea 39:
o clonandolo desde su respectivo repositorio git o clonandolo desde su respectivo repositorio git
-<pre>$ git clone </pre>+<pre>$ git clone http://gitlab.canaima.softwarelibre.gob.ve/canaima-cnti/canaima-cinnamon</pre>
-2. Se realizan las modificaciones deseadas. El procedimiento estándar es similar a:+==== 2. Se realizan las modificaciones deseadas ====
+
+El procedimiento estándar es similar a:
* Modificar las fuentes * Modificar las fuentes
* Agregar los cambios en git <pre>$ git add . </pre> * Agregar los cambios en git <pre>$ git add . </pre>
-* Hacer commit de los cambios <pre>$ git commit </pre>+* Hacer commit de los cambios <pre>$ git commit -m "<descripcion-de-los-cambios-realizados>" </pre>
-3. Se actualiza el changelog del paquete+==== 3. Construir el paquete binario ====
+
+Existen varias alternativas para construir los paquetes binarios, dependiendo de las necesidades o el contexto en el que estemos realizando el empaquetamiento. A continuación se muestran 2 formas igualmente validas para construirlos
+
+===== 3.1 Dejando que git-buildpackage cree las fuentes (recomendado) =====
+
+Se actualiza el changelog del paquete, indicando el numero de versión correspondiente
<pre> $ gbp dch --new-version="X.Y" --release --auto --id-length=7 --full --commit --git-author </pre> <pre> $ gbp dch --new-version="X.Y" --release --auto --id-length=7 --full --commit --git-author </pre>
-4. Construir el paquete+Y se construye el o los paquetes usando el siguiente comando
<pre>$ gbp buildpackage --git-pbuilder --git-dist=jessie --git-arch=amd64 --git-upstream-tree=master -us -uc </pre> <pre>$ gbp buildpackage --git-pbuilder --git-dist=jessie --git-arch=amd64 --git-upstream-tree=master -us -uc </pre>
-* La opcion --git-upstream-tree permite indicar la rama a partir de la cual se construira la fuente+* La opción '''--git-upstream-tree''' permite indicar la rama a partir de la cual se construirá la fuente automáticamente
-* Las opciones -us -uc indican que se salta el paso de firma del paquete usando una llave GPG previamente configurada [https://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/]+
-= Operaciones Comunes =+===== 3.2 Construyendo las fuentes "a mano" =====
+
+Antes de realizar el empaquetamiento se exportaran las siguientes variables de entorno que serán usadas mas adelante
+
+* PKGNAME: Nombre del paquete tal como aparece en el archivo changelog
+* VERSION: Versión del paquete tal como aparece en el archivo changelog
+* ORIGVER: Versión original del paquete tal como viene de la fuente (upstream)
+
+<pre>
+$ export PKGNAME=$(dpkg-parsechangelog | grep-dctrl -esSource . | awk -F' ' '{print $2}')
+$ export VERSION=$(dpkg-parsechangelog | grep-dctrl -esVersion . | awk -F' ' '{print $2}')
+$ export ORIGVER=$(echo $VERSION | sed 's/-.*//g')
+</pre>
+
+Seguidamente se actualiza la versión del changelog con el siguiente comando:
+
+<pre>
+gbp dch --new-version="$VERSION" --release --auto --id-length=7 --full --commit --git-author
+</pre>
+
+Se crea el paquete fuente con:
+
+<pre>
+tar --anchored --exclude-vcs --exclude "./debian" -cvzf ../$(echo $PKGNAME"_"$ORIGVER).orig.tar.gz --directory=$(pwd) ./
+</pre>
+
+Y por ultimo se construye el o los paquetes binarios, si se dispone de una llave GPG correctamente configurada en el directorio del usuario:
+
+<pre> git buildpackage -kE78DAA2E -tc --git-tag --git-retag </pre>
+
+en caso contrario:
+
+<pre> git buildpackage -us -uc -tc --git-tag --git-retag </pre>
+
+* La opción '''--git-retag''' evita los fallos al agregar una [https://git-scm.com/book/es/v1/Fundamentos-de-Git-Creando-etiquetas '''etiqueta'''] si ya existe una con la misma versión
+* En ambas alternativas, las opciones [https://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/ '''-us -uc'''] indican que se salta el paso de firma del paquete con la llave GPG
+
+
+= Breve receta para versionar usando parches =
+
+==== 1. Exportar variables de entorno ====
+
+<pre>$ export QUILT_PATCHES="debian/patches" </pre>
+
+==== 2. Quitar parches ====
+
+<pre>$ rm -rf .pc/ </pre>
+
+==== 3. Cambiar nombre del paquete en el changelog ====
+
+<pre>$ gbp dch -N <nuevo-nombre-paquete> --auto --release --git-author --id-length=7 --commit </pre>
+
+==== 4. Crear el paquete fuente (orig.tar.gz) ====
+
+<pre>$ tar --anchored --exclude="debian" -czf <ubicacion-donde-se-exporta-el-fuente> <ubicacion-del-contenido-de-la fuente> </pre>
+
+==== 5. Construir el paquete ====
+
+<pre>$ gbp -tc -us -uc --git-tag </pre>
+
+ó
+
+<pre>$ gbp -tc -us -uc --git-tag --git-retag -j5 </pre>
+
+para usar más poder de procesamiento durante la construcción
+
+= Otras operaciones Comunes =
==== Modificar el nombre del autor del ultimo commit ==== ==== Modificar el nombre del autor del ultimo commit ====
Línea 72:
Línea 147:
==== Borrar todo lo que no este versionado antes del ultimo commit ==== ==== Borrar todo lo que no este versionado antes del ultimo commit ====
-<pre> $git clean -fd </pre>+<pre> $ git clean -fd </pre>
+
+= Como crear un proyecto y subirlo al repositorio de Canaima =
+
+(Por hacer)
[Less]
|