Notizie: scarica ora l'ultima versione disponibile di SeaMonkey!

Autore Topic: [Linux] Problema compilazione e localizzazione  (Letto 4016 volte)

0 Utenti e 2 Visitatori stanno visualizzando questo topic.

Offline Trotto@81

  • Post: 363
[Linux] Problema compilazione e localizzazione
« il: 26 Aprile 2013 18:05:59 »
Forse avrò sbagliato sezione, ma solo compilando Firefox in italiano con il tarball reperibile al seguente indirizzo http://hg.mozilla.org/releases/l10n/mozilla-beta/it/tags la compilazione fallisce miseramente.
Fino alla 20.0.1 tutto filava liscio. Dalla 21.0beta1 ricevo sempre lo stesso errore.
Compilo su Slackware 14 a 64 bit e il sorgente per la localizzazione lo seleziono sempre tramite i tags relativi alle specifiche versioni.
Codice: [Seleziona]
    /tmp/mozilla-beta/obj/_virtualenv/bin/python /tmp/mozilla-beta/toolkit/mozapps/installer/packager.py -DMOZ_GLUE_IN_PROGRAM -DNO_NSPR_10_SUPPORT -DAB_CD=it -DMOZ_APP_NAME=firefox -DPREF_DIR=defaults/preferences -DMOZ_ENABLE_GNOME_COMPONENT=1 -DMOZ_GTK2=1 -DJAREXT= -DMOZ_CHILD_PROCESS_NAME=plugin-container -DMOZ_JSDEBUGGER -DNECKO_WIFI -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -DBINPATH=bin \
            --format omni \
            --removals /tmp/mozilla-beta/browser/installer/removed-files.in \
             \
             \
             \
            --optimizejars \
             \
            package-manifest ../../dist ../../dist/firefox \

    Error: /tmp/mozilla-beta/obj/browser/installer/package-manifest:31: Missing file(s): bin/dictionaries/*
    Traceback (most recent call last):
      File "/tmp/mozilla-beta/toolkit/mozapps/installer/packager.py", line 366, in <module>
        main()
      File "/tmp/mozilla-beta/toolkit/mozapps/installer/packager.py", line 320, in main
        copier.add(mozpack.path.join(binpath, 'removed-files'), removals)
      File "/usr/lib64/python2.7/contextlib.py", line 24, in __exit__
        self.gen.next()
      File "/tmp/mozilla-beta/python/mozbuild/mozpack/errors.py", line 129, in accumulate
        raise AccumulatedErrors()
    mozpack.errors.AccumulatedErrors
    make[1]: *** [stage-package] Errore 1
    make[1]: Leaving directory `/tmp/mozilla-beta/obj/browser/installer'
    make: *** [install] Errore 2
E' possibile segnalare la cosa affinchè venga risolta?
« Ultima modifica: 26 Aprile 2013 18:07:53 da Trotto@81 »

Offline iacchi

  • Amministratore
  • Post: 6368
    • iacchiblog
Re: [Linux] Problema compilazione e localizzazione
« Risposta #1 il: 26 Aprile 2013 18:10:27 »
Intanto sposto nella sezione Firefox.
Potresti postare il file mozconfig che usi? In ogni caso i sorgenti ti consiglio di prenderli dalla cartella releases dell'ftp mozilla, come questa: http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/21.0b5/
Ti invito anche a leggere questo: http://www.mozillaitalia.org/home/2010/09/09/compilare-i-programmi-mozilla-in-italiano-su-linux/

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #2 il: 26 Aprile 2013 18:16:32 »
Il sorgente di Firefox lo prendo sempre da ftp, lo stesso che tu hai riportato.
Lo Slackbuild che uso è quello ufficiale di Slackware. Aggiungo solo due righe per la localizzazione e relativi sorgenti.
Codice: [Seleziona]
#!/bin/sh

# Copyright 2008, 2009, 2010, 2011, 2012  Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Thanks to the folks at the Mozilla Foundation for permission to
# distribute this, and for all the great work!  :-)

VERSION=$(basename $(ls firefox-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)
RELEASEVER=$(echo $VERSION | cut -f 1 -d r | cut -f 1 -d b)
BUILD=${BUILD:-1}

CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-mozilla-firefox

# Figure out if this is a beta, or a release:
if echo $VERSION | grep -q b ; then # we think it is a beta
  if bzgrep -q mozilla-beta/ $CWD/firefox-$VERSION.source.tar.bz2 ; then
    MOZVERS=${MOZVERS:-beta}
  else # blindly assume it is a release
    MOZVERS=${MOZVERS:-release}
  fi
else # release, no "b" in the tarball version:
  MOZVERS=${MOZVERS:-release}
fi

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) export ARCH=i486 ;;
    arm*) export ARCH=arm ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
       *) export ARCH=$( uname -m ) ;;
  esac
fi

# Try to be gentle to the compiler, no optimizations:
if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O -fPIC"
  LIBDIRSUFFIX="64"
elif [ "$ARCH" = "arm" ]; then
  SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "armel" ]; then
  SLKCFLAGS="-O2 -march=armv4t"
  LIBDIRSUFFIX=""
fi

NUMJOBS=${NUMJOBS:-" -j10 "}

rm -rf $PKG
mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX}

cd $TMP
rm -rf mozilla-$MOZVERS
tar xvf $CWD/firefox-$VERSION.source.tar.bz2 || exit 1
cd mozilla-$MOZVERS || exit 1

# Fix a long standing bug that's prevented staying current on GTK+.
# Thanks to the BLFS folks.  :-)
cat << EOF >> layout/build/Makefile.in

ifdef MOZ_ENABLE_CANVAS
EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender
endif

EOF

# Localizzazione
# http://hg.mozilla.org/releases/l10n/mozilla-aurora/it/file/daa5fef44051
LCV=it-75392dd778c9

( cd $TMP
  mkdir l10n
  cd l10n
  tar xvf $CWD/$LCV.tar.bz2
  mv $LCV it
)

# Patch mimeTypes.rdf
# Uncomment this if you want to use the patch; otherwise, we overwrite the
# mimeTypes.rdf inside the package directory later
# zcat $CWD/mozilla-firefox-mimeTypes-fix.diff.gz | patch -p1 || exit 1

chown -R root:root .
find . \
  \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
  -exec chmod 755 {} \; -o \
  \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
  -exec chmod 644 {} \;

if gcc --version | grep -q "gcc (GCC) 4.7.0" ; then
 # Enable compiling with gcc-4.7.0:
 sed -i '/fcntl.h/a#include <unistd.h>' \
   ipc/chromium/src/base/{file_util_linux,message_pump_libevent,process_util_posix}.cc &&
 sed -i '/sys\/time\.h/a#include <unistd.h>' ipc/chromium/src/base/time_posix.cc &&
 sed -i 's#\"PRIxPTR#\" PRIxPTR#' layout/base/tests/TestPoisonArea.cpp &&
 sed -i 's# ""##' browser/base/Makefile.in
fi

# Mozilla devs enforce using an objdir for building
# and launching configure with the absolute path
# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir
mkdir obj
cd obj
export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_PHOENIX="1" &&
export CFLAGS="$SLKCFLAGS" &&
export CXXFLAGS="$SLKCFLAGS" &&
export MOZ_MAKE_FLAGS="$NUMJOBS" &&
$TMP/mozilla-$MOZVERS/configure \
  --enable-official-branding \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER \
  --with-system-zlib \
  --enable-application=browser \
  --enable-default-toolkit=cairo-gtk2 \
  --enable-startup-notification \
  --enable-crypto \
  --enable-svg \
  --enable-canvas \
  --enable-logging \
  --enable-xft \
  --enable-webm \
  --enable-xinerama \
  --enable-optimize \
  --enable-reorder \
  --enable-strip \
  --enable-cpp-rtti \
  --enable-single-profile \
  --disable-ldap \
  --disable-accessibility \
  --disable-crashreporter \
  --disable-debug \
  --disable-tests \
  --disable-pedantic \
  --disable-installer \
  --disable-mailnews \
  --disable-composer \
  --disable-profilesharing \
  --with-l10n-base=$TMP/l10n \
  --enable-ui-locale=it
  # Complains about missing APNG support in Slackware's libpng:
  #--with-system-png \
  #--build=$MACHTYPE \
  #--target=$MACHTYPE \

# This option breaks mozilla-12.0:
# --enable-system-cairo \
#

#make -f client.mk build MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1
make MOZ_MAKE_FLAGS="$NUMJOBS" $NUMJOBS || exit 1
make install DESTDIR=$PKG || exit 1

# Exit obj directory:
cd ..

# We don't need these (just symlinks anyway):
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$RELEASEVER

# Nor these:
rm -rf $PKG/usr/include

( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
  #mv defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig || exit 1
  if [ -d defaults/profile ]; then
    zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1
  fi
  # OK, this patch is useless on 7.x.  We'll float without it and see what happens.
  # Perhaps it won't make a difference or should be worked around elsewhere.
  #zcat $CWD/firefox.moz_plugin_path.diff.gz \
  #  | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
  #  | patch -p1 --verbose --backup --suffix=.orig || exit 1
  # Clean up if the above patch was successful:
  #rm -f firefox.orig
) || exit

mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
mkdir -p $PKG/usr/share/applications
cat $CWD/mozilla-firefox.desktop > $PKG/usr/share/applications/mozilla-firefox.desktop
mkdir -p $PKG/usr/share/pixmaps
cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png

# These files/directories are usually created if Firefox is run as root,
# which on many systems might (and possibly should) be never.  Therefore, if we
# don't see them we'll put stubs in place to prevent startup errors.
( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
  if [ -d extensions/talkback\@mozilla.org ]; then
    if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then
      echo > extensions/talkback\@mozilla.org/chrome.manifest
    fi
  fi
  if [ ! -d updates ]; then
    mkdir -p updates/0
  fi
)

# Need some default icons in the right place:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default
install -m 644 other-licenses/branding/firefox/default16.png \
  $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/icons/
install -m 644 other-licenses/branding/firefox/default16.png \
  $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default/
( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
  install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/
)

# Copy over the LICENSE
install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/

mkdir $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $TMP/mozilla-firefox-it-$VERSION-$ARCH-$BUILD.txz

Offline iacchi

  • Amministratore
  • Post: 6368
    • iacchiblog
Re: [Linux] Problema compilazione e localizzazione
« Risposta #3 il: 26 Aprile 2013 18:32:51 »
Non è che puoi provare a fare la build seguendo le indicazioni della pagina che ti ho detto prima, invece di questo script che hai postato? Così vediamo se è un problema inerente allo script o ai sorgenti di FF.

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #4 il: 26 Aprile 2013 19:30:38 »
Facciamo una bella cosa, sempre che funzioni. Elimino tutte le opzioni passate al configure lasciando solo quelle base indicate nel tuo link, più quelle relative alla traduzione. Non vorrei sembrare presuntuso, ma quella guida è pure lacunosa. Mancano le indicazioni relative al toolkit grafico e altre indicazioni senza la quale nemmeno si avvia la compilazione. La sostanza non cambia.
Nella versione dello slackbuild con mozconfig per via del PGO la questione non cambiava.
Faccio subito una prova e ti aggiorno.
« Ultima modifica: 26 Aprile 2013 19:33:32 da Trotto@81 »

Offline iacchi

  • Amministratore
  • Post: 6368
    • iacchiblog
Re: [Linux] Problema compilazione e localizzazione
« Risposta #5 il: 26 Aprile 2013 19:36:26 »
Sono due anni che compilo seguendo quella guida (che tra l'altro ho scritto io) e continuo tuttora a farlo. Le indicazioni relative al toolkit grafico, come molte altre, non importa specificarle perché verranno direttamente assunte quelle predefinite, a meno che tu non voglia tentare delle configurazioni particolari (e se ho capito bene non è il tuo caso).

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #6 il: 26 Aprile 2013 19:38:04 »
Manca anche l'indicazione per la OBJ dir senza la quale la compilazione fallisce a priori.
Sia chiaro che non voglio screditare il tuo lavoro, è comunque un'ottima guida in italiano. Questo non è poco.
Faccio queste prove e vediamo se dipende dalla lingua, anche se ne sono certo dato che senza compila alla perfezione.
« Ultima modifica: 26 Aprile 2013 19:42:21 da Trotto@81 »

Offline iacchi

  • Amministratore
  • Post: 6368
    • iacchiblog
Re: [Linux] Problema compilazione e localizzazione
« Risposta #7 il: 26 Aprile 2013 19:44:52 »
Manca anche l'indicazione per la OBJ dir senza la quale la compilazione fallisce a priori.

Questo è il parametro di configurazione relativo alla obj-dir: mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release che è elencato nella guida. Poi fai un po' come vuoi, insomma.

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #8 il: 26 Aprile 2013 19:46:59 »
Provo prima lo script modificato e poi la tua guida. Appena finisco ti faccio sapere.

Offline fabrixx

  • Post: 5894
Re: [Linux] Problema compilazione e localizzazione
« Risposta #9 il: 27 Aprile 2013 07:28:15 »
Che riporta package-manifest in questa posizione ?

Citazione
mozilla-beta/obj/browser/installer/package-manifest:31:

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #10 il: 27 Aprile 2013 09:58:30 »
Che riporta package-manifest in questa posizione ?

Citazione
mozilla-beta/obj/browser/installer/package-manifest:31:
Compilo come indicato nella guida del sito e verifico se mi da sempre lo stesso problema.
« Ultima modifica: 27 Aprile 2013 10:02:52 da Trotto@81 »

Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #11 il: 27 Aprile 2013 11:13:00 »
Alla riga 31 riporta semplicemente "bin/dictionaries/*"
Leggendo le note iniziali del file sono andato a controllare in "mozilla-beta/obj/dist/bin" notando l'assenza della directory dictionaries. Può essere questo il problema?
Sotto uno stralcio del manifest.
Codice: [Seleziona]
[it]
bin/browser/chrome/it
bin/browser/chrome/it.manifest
bin/chrome/it
bin/chrome/it.manifest
bin/browser/defaults/profile/bookmarks.html
bin/browser/defaults/profile/chrome/*
bin/browser/defaults/profile/localstore.rdf
bin/browser/defaults/profile/mimeTypes.rdf
bin/dictionaries/*
bin/hyphenation/*
bin/browser/defaults/preferences/firefox-l10n.js
bin/browser/searchplugins/*
bin/update.locale
bin/updater.ini
« Ultima modifica: 27 Aprile 2013 11:23:30 da Trotto@81 »

Offline fabrixx

  • Post: 5894
Re: [Linux] Problema compilazione e localizzazione
« Risposta #12 il: 27 Aprile 2013 12:19:41 »
Puoi provare a metterli in quella cartella che non trova

Inviato dal mio GT-I8160P con Tapatalk 2


Offline Trotto@81

  • Post: 363
Re: [Linux] Problema compilazione e localizzazione
« Risposta #13 il: 27 Aprile 2013 12:22:09 »
Dove li trovo questi dizionari in modo da automatizzare la cosa tramite script?
Non dovrebbe essere tutto automatizzato come per le versioni precedenti?
« Ultima modifica: 27 Aprile 2013 13:32:45 da Trotto@81 »

Offline fabrixx

  • Post: 5894
Re: [Linux] Problema compilazione e localizzazione
« Risposta #14 il: 27 Aprile 2013 23:37:44 »
Ho provato a compilare firefox 21b5 seguendo la guida nel link con le opportune modifiche a file/percorsi e qualche dipendenza extra.

Al momento mi fermo qui (dopo quasi un ora di compilazione):
Codice: [Seleziona]
/usr/bin/ld: final link failed: Memory exhausted
Ho letto solo qualcosa sull'errore domani vedrò se posso risolvere anche se non sono molto ottimista.

Ciao  :)


0 Utenti e 2 Visitatori stanno visualizzando questo topic.