DPKG-SOURCE(1)

NOMBRE
dpkg-source, dpkg-gencontrol, dpkg-shlibdeps, dpkg-genchanges, dpkg-buildpackage, dpkg-distaddfile, dpkg-parsechangelog - Herramientas para los paquetes fuente de Debian.

SINOPSIS
dpkg-source -x fichero.dsc
dpkg-source -b [opciones] directorio [directorio-origen|'']
dpkg-gencontrol [opciones]
dpkg-shlibdeps opciones
dpkg-genchanges [opciones]
dpkg-buildpackage [opciones]
dpkg-distaddfile [opciones] fichero sección prioridad
dpkg-parsechangelog [opciones]

DESCRIPCIÓN
dpkg-source empaqueta y desempaqueta ficheros fuente de Debian. dpkg-gencontrol lee información desde un árbol de fuentes Debian desempaquetado y genera un fichero de control (por omisión ubicado en debian/tmp/DEBIAN/control); también añade una entrada para el paquete binario en debian/files. dpkg-shlibdeps calcula las dependencias de bibliotecas compartidas de los ejecutables suministrados sus argumentos. Las dependencias se añaden al fichero de variables de sustitución debian/substvars como nombres variables shlibs:campodependencia donde campodependencia es un nombre de campo de dependencia. Cualquier otra variable que empiece con shlibs: se elimina del fichero. dpkg-shlibdeps leerá la información de las dependencias de bibliotecas compartidas de debian/shlibs.local, /etc/dpkg/shlibs.override, el área shlibs del fichero de control del paquete que contiene el fichero que objdump informa como satisfactorio para la dependencia de la biblioteca, o bien /etc/dpkg/shlibs.default. Se usará el primero de ellos. Véase el manual de empaquetamiento de Debian para más detalles sobre el formato de los ficheros de dependencias de bibliotecas compartidas. dpkg-genchanges lee información desde un árbol de fuentes Debian desempaquetado y construido, así como de los ficheros que ha generado y crea un archivo de control de subida de Debian (fichero .changes ). dpkg-buildpackage es un script de control que puede ser usado para automatizar la construcción de un paquete. dpkg-distaddfile añade una entrada para un fichero dado a debian/files. dpkg-parsechangelog lee y procesa el registro de cambios de un árbol de fuentes Debian desempaquetado y muestra la información ahí contenida en la salida estándar en un formato legible por la máquina. Ninguna de estas órdenes permite combinar múltiples opciones en una sola. Tampoco permiten que el valor de una opción se especifique como argumento aparte.

OPCIONES COMUNES
Muchos de estos programas comparten opciones; éstas se describen aquí, junto con los programas que las aceptan.

-h  Muestra la versión y el modo de uso del programa, incluyendo un resumen de las opciones disponibles. Esta opción es aceptada por todas las herramientas para los paquetes fuente de Debian.

-vversión
    En dpkg-buildpackage, dpkg-genchanges y dpkg-parsechangelog provoca que se use la información de los cambios de todas las versiones estrictamente posteriores a versión . En dpkg-gencontrol establece la versión del paquete binario que se generará.

-Cdescripcióndecambios
    Lee la descripción de los cambios del fichero descripcióndecambios en vez de usar la información contenida en el fichero de cambios (changelog) del árbol de fuentes. Aceptada por dpkg-buildpackage y dpkg-genchanges.

-mdirecciónresponsable
    Utiliza direcciónresponsable como el nombre y dirección de correo del responsable de este paquete, en lugar de usar la información de control del árbol de fuentes. Aceptada por dpkg-buildpackage y dpkg-genchanges.

-edirecciónresponsable
    Utiliza direcciónresponsable como el nombre y dirección de correo del responsable de esta subida, en lugar de usar la información de cambios del árbol de fuentes. Aceptada por dpkg-buildpackage y dpkg-genchanges.

-si, -sa, -sd
    Estas opciones controlan si el fichero de fuentes original se incluye en la subida generada por dpkg-buildpackage y dpkg-genchanges en caso de que se produzca alguna fuente (por ejemplo, si no se han usado -b o -B). Por omisión, o si se especifica -si, el fichero de fuentes original se incluirá si el número de versión acaba en -0 o -1, por ejemplo, si la parte del número de versión que corresponde a la revisión de Debian es 0 o 1. -sa fuerza la inclusión de la fuente original; -sd fuerza su exclusión e incluye sólo el diff.

-Vnombre=valor
    Establece una variable de sustitución de salida. Aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges. Más abajo encontrará una exposición sobre la sustitución de salida.

-Tfichvarsust
    Lee (o, para dpkg-shlibdeps, escribe) las variables de sustitución en fichvarsust ; por omisión, éste es debian/substvars. Esta opción es aceptada por dpkg-source, dpkg-gencontrol, dpkg-shlibdeps y dpkg-genchanges.

-Dcampo=valor
    Sobreescribe o añade un campo del fichero de control de salida. Esta opción es aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges.

-Ucampo
    Elimina un campo del fichero de control de salida. Esta opción es aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges.

-b|-B|-S
    Para dpkg-genchanges y dpkg-buildpackage, -b y -B especifica que van a producirse únicamente binarios. -b indica que no se construya y/o distribuya ningún fichero fuente y -B que tampoco se distribuya ningún fichero del paquete binario independiente de la arquitectura. -S especifica que sólo debería subirse la fuente y que no es necesario construir ningún paquete binario. La diferencia entre -b y -B es usada sólo por dpkg-buildpackage; dpkg-genchanges sólo produce un archivo .changes para todos aquellos ficheros generados por los objetivos binary-* del paquete en construcción. -b le dice a dpkg-source que construya un paquete fuente (en vez de extraer uno) - vea más abajo.

-cficherocontrol
    Especifica el fichero de control del paquete fuente principal del que leer la información. Por omisión es debian/control. Esta opción es aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges.

-lficherocambios
    Especifica el fichero de cambios del que leer la información. Por omisión es debian/changelog. Esta opción es aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges.

-fficherolistaficheros
    Lee o escribe la lista de ficheros para subir aquí, en lugar de usar debian/files. Esta opción es aceptada por dpkg-gencontrol, dpkg-genchanges y dpkg-distaddfile.

-Fformatocambios
    Especifica el formato del fichero de cambios. Por omisión el formato se lee de una línea especial cerca del final del fichero de cambios (vea el manual de empaquetamiento de Debian) o, en caso de que eso falle, usa debian, el formato estándar descrito en el manual de empaquetamiento de Debian. Esta opción es aceptada por dpkg-source, dpkg-gencontrol y dpkg-genchanges.

-W  Esta opción convierte determinados errores en avisos. Sólo la usa dpkg-source, pero dpkg-buildpackage la reconoce y la pasa a dpkg-source.

-E  Esta opción niega una opción -W establecida previamente. Actualmente sólo es aceptada por dpkg-buildpackage y dpkg-source.

OPCIONES DE DPKG-SOURCE
Cuando se usan las opciones comunes -c y -l con rutas relativas, éstas se interpretan empezando en el directorio superior del árbol de fuentes.

-x  Extrae un paquete fuente. Se debe suministrar un argumento que no sea una opción, el nombre del fichero de control de fuente de Debian (.dsc). Ninguna opción es útil con dpkg-source -x. dpkg-source lee los nombres de los demás ficheros que componen el paquete fuente del fichero de control; se asume que están en el mismo directorio que el .dsc. Los permisos y propietarios de los ficheros del paquete extraído serán los mismos que se esperarían si los ficheros hubiesen sido simplemente creados - 0777 para directorios y ejecutables y 0666 para el resto de ficheros, ambos modificados según el umask del extractor; si el directorio superior tiene activado el bit setgid, los directorios extraídos lo tendrán también, y todos los ficheros y directorios heredarán su grupo de permisos.

-b  Construye: empaqueta un árbol de fuentes. Se deben proporcionar uno o dos argumentos que no sean opciones. El primero se tomará como el nombre del directorio que contiene el árbol de fuentes descomprimido. Si hay un segundo argumento, debe ser el nombre del directorio de fuentes o del fichero tar original o la cadena vacía si el paquete es específico de Debian y por tanto carece de diffs "debianizantes". Si no se proporciona un segundo argumento, entonces dpkg-source buscará el archivo tar original paquete_versióndeldesarrolladorppal.orig.tar.gz o el directorio de fuentes original directorio.orig o la cadena vacía (sin fuentes originales y por tanto sin diff), en función de los argumentos.

-i[<regexp>]
    Puede especificar una expresión regular de Perl para indicar aquellos ficheros que desee excluir de la lista de ficheros para el diff (esta lista es generada con una orden find). Por sí mismo, -i activa la opción con un filtro predeterminado que elimina los ficheros y directorios de control de los sistemas de control de versiones más comunes, los ficheros de respaldo, los ficheros swap y los directorios que se generan como resultado de las operaciones de Libtool. Esta opción es muy útil para eliminar ficheros extraños que se incluyen en el .diff.gz, (como "debian/BUGS_TODO/*" o "debian/RCS/*,v"). Por ejemplo, si mantiene un paquete que sigue a través de CVS remoto, donde no tiene permisos de acceso para escribir los ficheros de control de Debian ni para crear etiquetas para cvs-buildpackage(1), es necesario realizar una copia/actualización adicional en un directorio que se mantenga limpio, para generar el .orig.tar.gz. Ese directorio contendrá ficheros CVS/Entries que tienen fechas distintas de los que están en su directorio de trabajo, haciendo por tanto que sean incluidos de manera innecesaria en cada .diff.gz, a menos que utilice la opción -i.

-I<nombredefichero>
    Si se especifica esta opción, el nombre de fichero se pasará como parámetro a la opción --exclude de tar para generar el fichero .orig.tar.gz o .tar.gz. Por ejemplo, -ICVS hará que tar se salte los directorios CVS cuando genere el fichero .tar.gz. La opción puede ser repetida varias ocasiones para permitir la expulsión de varios nombres de fichero.

-sa,-sp,-su,-sk,-sA,-sP,-sU,-sK,-ss con -b
    Si se especifican -sk o -sp, dpkg-source espera la fuente original como un archivo tar, por omisión paquete_versióndesarrolladorppal.orig.tar.gz. La fuente original se dejará en el sitio como un archivo tar, o será copiada al directorio actual en caso de no estar ya ahí presente. Si se usa -sp en lugar de -sk, se eliminará de nuevo posteriormente. Si se especifican -su o -sr, se espera que la fuente original sea un directorio, por omisión paquete-versióndeldesarrolladorppal.orig y dpkg-source creará un fichero de fuentes nuevo a partir de él. Si se usa -sr , dpkg-source eliminará dicho directorio tras la operación . Si se especifica -ss, dpkg-source esperará que la fuente original esté disponible tanto como directorio como fichero tar. Usará el directorio para crear el diff y el fichero tar para crear el .dsc. Esta opción debe usarse con precaución - si el directorio y el archivo tar no coinciden se generará un fichero fuente inválido. Si se especifica -sn, dpkg-source no buscará ninguna fuente original y no generará un diff. El segundo argumento, en caso de haberlo, debe ser la cadena vacía. Esta opción se usa en paquetes específicos de Debian que no tienen fuentes del desarrollador principal y por tanto carecen de diffs "debianizantes". Si se especifican -sa o -sA, dpkg-source buscará la fuente original como directorio o como fichero tar - el segundo argumento, de haberlo, puede ser cualquiera de las dos cosas o la cadena vacía (equivalente a usar -sn). Si se encuentra un fichero tar, se desempaquetará para crear el diff y será eliminado posteriormente (equivalente a -sp); si se encuentra un directorio, se empaquetará para crear la fuente original y será eliminado posteriormente (equivalente a -sr); si no se encuentra ninguno de los dos, se asume que el paquete no tiene diffs "debianizantes", únicamente un fichero de fuentes (equivalente a -sn). Si se encuentran ambos, dpkg-source ignorará el directorio, sobreescribiéndolo, si se especificó -sA (equivalente a -sP), o ocurrirá un error si se especificó -sa. -sA es la opción predeterminada. -sa, -sp, -sk, -su y -sr no sobreescriben directorios o ficheros tar existentes. Si esto es lo que se desea, debe utilizar -sA, -sP, -sK, -sU y -sR en su lugar.

-sp,-su,-sn con -x
    En todos los casos cualquier árbol de fuentes original será eliminado. Si se usa -sp a la hora de extraer, la fuente original (si la hay) se dejará como un fichero tar. Si no se encuentra en el directorio actual o si existe un fichero pero es diferente, se copiará ahí. Ésta es la acción por omisión. -su desempaqueta el archivo de fuentes original. -sn se asegura de que la fuente original ni se copia al directorio actual ni se desempaqueta. Cualquier árbol de fuentes original existente en el directorio actual es eliminado.

OPCIONES DE DPKG-GENCONTROL
dpkg-gencontrol no acepta ningún argumento que no sea de opción.

-ppaquete
    Genera información para el paquete binario paquete. Si el archivo de control de la fuente lista sólo un paquetes binario, esta opción puede ser omitida; de otra manera, es esencial seleccionar el paquete binario del cual se desea generar información.

-nnombrefichero
    Asume que el nombre de fichero del paquete será nombrefichero en vez del habitual, paquete_versión_arquitectura.deb.

-is, -ip, -isp
    Incluye los campos de Sección y Prioridad para este paquete obtenidos del fichero principal de control de la fuente en el fichero de control del paquete binario que se está generando. Habitualmente esta información no se incluye aquí, sino solamente en el fichero .changes. -isp incluye ambos campos, -is sólo la Sección y -ip sólo la Prioridad.

-Pdirectoriocreaciónpaquete
    Le dice a dpkg-source que el paquete está siendo creado en directoriocreaciónpaquete en vez de debian/tmp. Se usa para encontrar el valor por omisión de la variable de substitución y campo del fichero de control Installed-Size - Tamaño-Instalado - (usando du), y para establecer la ruta del fichero de salida.

-O  Muestra el fichero de control por la salida estándar, en lugar de debian/tmp/DEBIAN/control (o directoriocreaciónpaquete/DEBIAN/control si se usó la opción -P.

OPCIONES DE DPKG-SHLIBDEPS
dpkg-shlibdeps interpreta cualquier argumento que no sea una opción como nombre de un fichero ejecutable, igual que si se hubiesen proporcionado como -eejecutable.

-eejecutable
    Incluye dependencias apropiadas para las bibliotecas compartidas requeridas por ejecutable.

-dcampodependencia
    Añade dependencias al campo campodependencia del fichero de control. (Las dependencias para este campo se colocan en la variable shlibs:campodependencia). La opción -dcampodependencia tiene efecto para todos los ejecutables después de dicha opción, hasta el siguiente -dcampodependencia. Por omisión, el campodependencia es Depends. Si la misma dependencia (o un conjunto de alternativas) aparece en más de uno de los nombres de campo de dependencias reconocidos: Pre-Depends, Depends, Recommends, Enhances o Suggests, entonces dpkg-shlibdeps eliminará automáticamente la dependencia de todos los campos, exceptuando aquel que contenga las dependencias más importantes.

-pprefijodevariable
    Provoca que las variables de sustitución empiecen por prefijodevariable: en vez de shlibs:. Asimismo, cualquier variable de sustitución ya existente que empiece por prefijodevariable: (en vez de shlibs:) será eliminada del fichero de variables de sustitución.

-Lficherodeshlibslocal
    Provoca que dpkg-shlibs lea la información sobre dependencias con bibliotecas compartidas desde ficherodeshlibslocal en vez de debian/shlibs.local.

-O  Provoca que las propiedades de las variables de sustitución sean mostradas por la salida estándar, en lugar de añadirse al archivo de variables de sustitución (por omisión debian/substvars).

OPCIONES DE DPKG-GENCHANGES
dpkg-genchanges no acepta ningún argumento que no sea una opción.

-udirectoriosubidaficheros
    Busca archivos para subir en directoriosubidaficheros en lugar de en .. (dpkg-genchanges necesita encontrar estos ficheros para poder incluir sus tamaños y sumas de verificación en el fichero .changes).

-q  Habitualmente dpkg-genchanges producirá mensajes informativos en la salida de error estándar, por ejemplo acerca de cuántos de los ficheros fuente de los paquetes se están subiendo. -q suprime dichos mensajes.

OPCIONES DE DPKG-BUILDPACKAGE
dpkg-buildpackage no acepta ningún argumento que no sea una opción.

-kllave-id
    Especifica una llave-ID que se usa cuando se firman los paquetes.

-rorden-para-obtener-root
    Cuando dpkg-buildpackage necesite ejecutar parte del proceso de construcción como root, añade el prefijo orden-para-obtener-root a la orden que ejecute en caso de especificarse alguna. orden-para-obtener-root debe ser el nombre de un programa que esté en el PATH y tomará como argumentos el nombre del proceso a ejecutar, así como los argumentos que éste toma. orden-para-obtener-root no debe contener espacios ni tampoco caracteres especiales del intérprete de órdenes. La orden-para-obtener-root será típicamente fakeroot, sudo, super o really. su no se puede usar, ya que requiere la opción -c para lanzar un proceso e incluso en ese caso sólo puede invocar el intérprete de órdenes del usuario con la opción -c en vez de pasar los argumentos individualmente al proceso que debe lanzarse.

-porden-para-firmar
    Cuando dpkg-buildpackage necesite ejecutar GPG o PGP para firmar el fichero fuente de control (.dsc) o un fichero .changes, ejecutará orden-para-firmar (buscando en su PATH si es necesario) en lugar de pgp. orden-para-firmar recibirá todos los argumentos que obtendría pgp. Si orden-para-firmar toma los argumentos en formato GPG en vez de PGP, debe usar la opción -sgpg orden-para-firmar no debe contener espacios ni tampoco caracteres especiales del intérprete de órdenes.

-tc Limpia el árbol de fuentes (usando orden-para-obtener-root debian/rules clean) después de que el paquete se haya creado.

-us, -uc
    No firma el paquete ni el fichero .changes, respectivamente.

-aarquitectura
    Especifica la arquitectura de Debian para la cual construimos el paquete. La arquitectura de la máquina en la que construimos el paquete es detectada automáticamente y es también la arquitectura de destino por omisión para la máquina.

-i[<regexp>]
    Se pasa sin cambios a dpkg-source.

-I<fichero>
    Se pasa sin cambios a dpkg-source. Puede repetirse en varias ocasiones.

-D  Verifica las dependencias y los conflictos; aborta el proceso si alguna no es satisfecha.

-d  No revisa dependencias ni conflictos.

-nc No limpia las fuentes (implica -b).

ARGUMENTOS DE DPKG-DISTADDFILE
dpkg-distaddfile no acepta argumentos que no sean opciones comunes. Toma 3 argumentos que no sean opciones: el nombre de fichero, la sección y la prioridad para el fichero .changes. El nombre del fichero debe ser especificado relativo al directorio donde dpkg-genchanges espera encontrar los archivos, habitualmente .., en lugar de ser relativo al directorio donde se ejecuta dpkg-distaddfile.

ARGUMENTOS DE DPKG-PARSECHANGELOG
dpkg-parsechangelog no acepta argumentos que no sean opciones comunes.

SUSTITUCIÓN DE VARIABLES
Antes de que dpkg-source, dpkg-gencontrol y dpkg-genchanges escriban su información de control (al fichero .dsc de control en el caso de dpkg-source y a la salida estándar en el de dpkg-gencontrol y dpkg-genchanges) realizan algunas sustituciones de variables en el fichero de salida. Una variable de sustitución tiene la forma ${nombre-de-variable}. Los nombres de variable consisten en caracteres alfanuméricos, guiones y dos puntos (:), y comienzan siempre por un alfanumérico. La sustitución de variables se lleva a cabo repetidamente hasta que no queda ninguna; el texto completo del campo tras la sustitución es revisado de nuevo en busca de más sustituciones. Después de que todas las sustituciones hayan tenido lugar, cada aparición de la cadena ${} (que no es una sustitución legal) se reemplaza por un símbolo $. Las variables pueden establecerse usando la opción común -V. También pueden especificarse en el fichero debian/substvars (u otro fichero especificado usando la opción -T). Este fichero consiste en líneas de la forma nombre = valor . Los caracteres en blanco al final de cada línea, las líneas vacías y las líneas que comiencen con el símbolo # (comentarios) son ignorados. De manera adicional, las siguientes variables estándar están disponibles:

Arch
    La arquitectura de construcción actual (de dpkg --print-architecture).

Source-Version
    La versión del paquete fuente (del fichero de cambios).

Installed-Size
    El tamaño total de los ficheros del paquete instalado. Este valor se copia en el campo del fichero de control correspondiente; establecerlo modifica el valor de dicho campo. Si la variable no está establecida, dpkg-gencontrol usará du -k debian/tmp para hallar el valor predeterminado.

Extra-Size
    Espacio en disco adicional usado cuando se instala el paquete. Si esta variable está establecida, su valor se añade al de la variable Installed-Size (tanto si se establece manualmente como si se usa el valor predeterminado) antes de copiarse al campo Installed-Size del fichero de control.

F:nombrecampo
    El valor del campo de salida nombrecampo (que debe darse siguiendo la convención de mayúsculas/minúsculas). Establecer estas variables no tiene ningún efecto excepto en aquellos lugares donde se expandan explícitamente.

Format
    El formato del fichero .changes generado por esta versión de los scripts de empaquetamiento de fuentes. Si establece esta variable el contenido del campo Format en el fichero .changes cambiará igualmente.

Newline, Space, Tab
    Estas variables contienen cada una el carácter cuyo nombre especifican en inglés. Nota del traductor: Newline = Terminación de línea, Space = Espacio, Tab = Tabulador.

shlibs:campodedependencia
    Las variables con nombres de esta forma son generadas por dpkg-shlibdeps - vea más arriba.

dpkg:UpstreamVersion
    La versión de desarrollador principal de dpkg.

dpkg:Version
    La versión completa de dpkg.

Si se hace referencia a una variable que no existe, se genera un aviso y se asume un valor vacío.

FICHEROS

debian/control
    El fichero de información de control de fuentes principal, que da información independiente de la versión sobre el paquete fuente y los paquetes binarios que puede producir.

debian/changelog
    El fichero de cambios, usado para obtener información dependiente de la versión acerca del paquete fuente, como la urgencia y la distribución de una subida, los cambios realizados desde una versión en concreto y el propio número de versión de la fuente.

debian/files
    La lista de ficheros generados que forman parte de la subida al servidor en preparación. dpkg-gencontrol añade aquí los supuestos nombres de fichero de paquetes binarios cuyos ficheros de control genera; dpkg-distaddfile puede utilizarse para añadir ficheros adicionales. dpkg-genchanges lee los datos de aquí cuando produce un fichero .changes.

debian/substvars
    Lista de variables de sustitución y sus valores.

debian/shlibs.local
    Información acerca de redefinición de dependencias de bibliotecas compartidas específicas del paquete.

/etc/dpkg/shlibs.override
    Información acerca de redefinición de dependencias de bibliotecas compartidas para cada sistema.

/etc/dpkg/shlibs.default
    Información acerca de las dependencias predeterminadas con bibliotecas compartidas para cada sistema.

FALLOS
El punto en el cual se produce la sustitución de campos, comparado con ciertos parámetros de los campos de salida estándar, no está claro. Las entradas de paquetes binarios en el fichero debian/files pasan por la sustitución de variables dos veces. Esto no debería importar, ya que $, { y } no son caracteres legales en nombres de paquete o números de versión. Debería ser posible especificar espacios y caracteres especiales del intérprete de órdenes en los argumentos iniciales de orden-para-obtener-root y orden-para-firmar.

VÉASE TAMBIÉN
Manual de empaquetamiento de Debian ,
Manual de normativa de Debian ,
dpkg-deb(1), dpkg(8), dselect(8), gpg(1), pgp(1).

AUTOR
Las herramientas y esta página del manual fueron escritas por Ian Jackson.

COPYRIGHT
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Esto es software libre, vea la Licencia Pública General de GNU en su versión 2 o superior para las condiciones de copia. NO hay GARANTÍA. Vea /usr/share/doc/dpkg/copyright y /usr/share/common-licenses/GPL para más detalles. Está página fue traducida por Bruno Barrera C. <bruno.barrera@igloo.cl> y Carlos Izquierdo <gheesh@ertis.net> y revisada por Rubén Porras <nahoo@inicia.es>.