-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/07/2009 11:15 AM, Miquel A. Noguera wrote:
On Domingo, 6 de Diciembre de 2009 23:00:17 Carlos E. R. escribió:
Antes tenía que hacer una trampa, y ahora tengo que hacer dos. :-(
(lo explico si alguien lo quiere)
Si porfa.
Suelo empaquetar cuatro cosillas que uso habitualmente con el checkmail y me interesa estar al tanto.
A ver. Lo hago con el ejemplo con el que trabajo, poedit. Lo primero que pasa es esto: ========================= Installation results =========================== Making install in src make[1]: Entering directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src' Making install in icons make[2]: Entering directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src/icons' make[3]: Entering directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src/icons' make[3]: Nothing to be done for `install-exec-am'. test -z "/usr/local/share/icons/hicolor/16x16/apps" || /bin/mkdir -p "/usr/local/share/icons/hicolor/16x16/apps" /bin/mkdir: cannot create directory `/usr/local/share/icons': No such file or directory make[3]: *** [install-icons16DATA] Error 1 make[3]: Leaving directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src/icons' make[2]: *** [install-am] Error 2 make[2]: Leaving directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src/icons' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/cer/Compilaciones/Translators/poedit-1.4.3/src' make: *** [install-recursive] Error 1 **** Installation failed. Aborting package creation. El programa falla al crear los directorios, no se porqué. Hay un bugzilla sobre eso,el Bug 432497 (¡VOTADLO! ¡Porfa!), que consta como resuelto pero no es cierto. Lo acabo de reabrir. La solución es: a) ir creando uno a uno los directorios sobre los que falla, que es pesadísimo. b) instalar un rpm del mismo que tratamos de compilar, de la vez anterior (que desinstalaremos justo antes de ir a instalar el nuevo). De esta manera se crean todos los directorios y ficheros que busca. c) Ejecutar "make install", lo cual instala el programa. Así que yo hago: bombadillo:/home/cer/Compilaciones/Translators/poedit-1.4.3 # rpm --install /usr/src/packages/RPMS/i386/poedit-1.4.3-1.i386.rpm El siguiente fallo es más complejo de ver. El resultado es: Building RPM package... FAILED! *** Failed to build the package Do you want to see the log file? [y]: Mirais el log, y veis: Building target platforms: i386 Building for target i386 Processing files: poedit-1.4.3-1.i386 error: File not found: /usr/src/packages/BUILDROOT/poedit-1.4.3-1.i386/usr error: File not found: /usr/src/packages/BUILDROOT/poedit-1.4.3-1.i386/usr/local .... Está buscando lo que va a meter en el rpm en el directorio /usr/src/packages/BUILDROOT/poedit-1.4.3-1.i386/, que efectivamente, no existe. Si en el fichero /etc/checkinstallrc cambiais: # Inspect the file list before creating the package CK_INSPECT=1 # Review the .spec file before creating a .rpm REVIEW_SPEC=1 os abrirá un editor de texto con la lista de ficheros que va a meter, y con el fichero .spec temporal que usa para la creación. Inciso. Si quereis usar un editor distinto del vi que se usa por defecto, como yo, crear un fichero "/etc/bash.bashrc.local": export EDITOR=/usr/bin/mcedit y luego volver a hacer login como root en el terminal (ctrl.d, su -) Seguimos. Con el cambio en el checkinstall hecho,lo volveis a intentar. Al llegar a ver el fichero spec,, veis: Summary: poEdit is cross-platform gettext catalogs (.po files) editor. It is built Name: poedit Version: 1.4.3 Release: 1 License: GPL Packager: checkinstall-1.6.1 Group: Applications/System.......... BuildRoot: /var/tmp/checkinstall.0qISC2/package Provides: poedit Requires: ,/bin/sh Veamos. El summary lo toma de la primera linea del fichero creado por mi description-pak en el directorio de la compilación. Ojo, para que no lo borre al terminar, necesitais: # Automatic deletion of "description-pak"? DEL_DESC=0 Más. La linea "requires" está mal, la podeis borrar. Hace años que sale mal. Lo importante ahora es la linea del "BuildRoot": ahí está lo que ha creado, no en "/usr/src/packages/BUILDROOT". De hecho, si ahora copiais todo lo que cuelga de "/var/tmp/checkinstall.0qISC2/package" en "/usr/src/packages/BUILDROOT/poedit-1.4.3-1.i386/", y salís del editor, checkinstall crea el rpm sin problemas. Ese es el hack. la solución correcta, o cómoda al menos, es otra. Editais el "/usr/sbin/checkinstall" y cambiais esta linea: $RPMBUILD -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log por esta otra: $RPMBUILD --buildroot $BUILDROOT -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log ¡Eso es lo que está roto y es imposible de arreglar, leches! ¿Tan difícil es? Es que.. es que son de lo que no hay. :-( (Bug 561317) Ya de paso, haceis este cambio: cat > "$SPEC_PATH" << EOF Summary: $SUMMARY Name: $NAME Version: $VERSION Release: $RELEASE License: $LICENSE Packager: checkinstall-$CHECKINSTALL_VERSION Group: $PKG_GROUP BuildRoot: $BROOTPATH Provides: $PROVIDES #Requires: ${REQUIRES}/bin/sh %description EOF cat description-pak >> "$SPEC_PATH" con la linea de "requires" comentada. - -- Cheers / Saludos, Carlos E. R. (from 11.2 "Emerald" GM (bombadillo)) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAksc8lMACgkQU92UU+smfQVsVACgijKulG4ClwqTsdSLTo9bqZhI noQAn3lv+5Ugio3ANIR8YcH67zM0cWl9 =73b2 -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org