Libremakepkg (Español)
Libremakepkg es un script que:
- Chequea dependencias no libres en el PKGBUILD
- Monta ${SRCDEST} ${PKGDEST} ${SRCPKGDEST} ${WORKDIR}, y opcionalmente copia etc/makepkg.conf etc/pacman.conf etc/mtab para el chroot (Este paso es llamado buildenv en el script)
- Actualiza el chroot de donde estás construyendo (opción -u)
- Limpia el chroot de forma que ningun paquete es configurado automaticamente como una dependencia (opção-c) y
- Finalmente usa makechrootpkg para construir el paquete.
El paquete será colocado en ${PKGDEST}.
Contents
1 Uso
# pacman -Sy devtools
1.1 ¿Cuáles son las opciones del libremakepkg?
Libremakepkg tendrá siempre una lista actualizada de opciones que pueden ser listados usando:
$ libremakepkg -h
1.2 Construyendo con libremakepkg
Para construir con libremakepkg deberás cambiar para el directorio de donde PKGBUILD está y tienes que ejecutar
$ cd /dir/with/PKGBUILD # libremakepkg [options]
Si ninguna opción fue pasado para libremakepkg, buildenv irá construir el paquete sin actualización o limpieza. Esto es útil si una compilación anterior falló y tu alteraste el PKGBUILD para que funcione esta vez.
2 ¿Porque Buildenv?
buildenv está destinado a fullpkg, capaz de adicionar paquetes a un repositorio local y instalarlos también.
3 ¿Como es hecha la limpieza?
makechrootpkg tiene una opción de limpieza con rsync de chroot "raiz" a chroot "copia", y usa el chroot "copia" para la construcción de los paquetes. Cuando estábamos "Porteando paquetes para MIPS" nosotros creamos un script que controlaba las dependencias y construian paquetes (fullpkg). Descubrimos en ese momento que la limpieza por rsync era lenta e ineficiente. Entonces proyectamos un nuevo método de limpieza en un sistema limpio, que usa pacman y una lista de paquetes.
El método de limpieza en el libremakepkg:
- copia la lista de paquetes para el chroot (/etc/libretools.d/cleansystem
- usa comm para comparar paquetes instalados en el sistema y en el "cleansystem"
- remueve todos los paquetes que no están en el "cleansystem".
4 Estoy teniendo problemas con libremakepkg
Relate el problema para el bug tracker. Use [libretools] en el inicio del título para el problema que tu estás teniendo.