You are not logged in.
I was hoping to do the equivalent of what heftig did for aurora and compile firefox nightly into its own package. First things first is getting the source code to succesfully compile at all before worrying about how its packaged. Here's my PKGBUILD:
# $Id$
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Nightly: Jonny Barnes <jonny@jonnybarnes.uk>
pkgname=firefox-nightly
pkgver=34.0a1+20140806+gf822655
pkgrel=1
pkgdesc="Nightly version of the popular Firefox web browser"
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
url="http://www.mozilla.com/en-US/firefox/channel/"
depends=('gtk3' 'gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types'
'dbus-glib' 'alsa-lib' 'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake'
'xorg-server-xvfb' 'libpulse' 'gst-plugins-base-libs'
'inetutils' 'autoconf2.13' 'git')
optdepends=('networkmanager: Location detection via available WiFi networks'
'gst-plugins-good: h.264 video'
'gst-libav: h.264 video')
install=firefox-nightly.install
options=('!emptydirs' '!makeflags' '!strip')
source=(git+https://github.com/mozilla/gecko-dev
mozconfig firefox-nightly.desktop vendor.js
firefox-install-dir.patch)
sha256sums=('SKIP'
'dba05c2f04f8f086f9f08d9b962f7324ea6354ff7524ad806f743167314054eb'
'46c2de250e708295e43c87b5118cda1be2417f854c997ef54d4b92291b73416d'
'9907a80763e6a0f239bcc5634dbfbc2de8842ee76e84b5d2ad7a26f06e1242a6'
'1305f33fa009021679f9da1ee3ac13fb4f299e036e402c45a804189031f39e22')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
pkgver() {
cd gecko-dev
echo $(cat browser/config/version.txt)+$(date +%Y%m%d)+g$(git rev-parse --short HEAD)
}
prepare() {
cd gecko-dev
cp ../mozconfig .mozconfig
## patch -Np1 -i ../firefox-install-dir.patch
echo -n "$_google_api_key" >google-api-key
echo "ac_add_options --with-google-api-keyfile=\"$PWD/google-api-key\"" >>.mozconfig
# easiest to just delete this folder and recreate, not doing so causes an error when the ln command is run
if [[ -d "$srcdir/path" ]]; then
rm -rf "$srcdir/path"
fi
mkdir "$srcdir/path"
# WebRTC build tries to execute "python" and expects Python 2
ln -s /usr/bin/python2 "$srcdir/path/python"
# Use gold, as Mozilla can use some of its features, such as safe ICF
ln -s /usr/bin/ld.gold "$srcdir/path/ld"
if [[ $_multilib == 1 ]]; then
# Multilib i686
echo "ac_add_options --target=i686-pc-linux-gnu" >>.mozconfig
else
# Only works when not cross-compiling
echo "ac_add_options --enable-dmd" >>.mozconfig
fi
# Name it Firefox Nightly
sed -i '/^MOZ_APP_BASENAME=/s/Firefox/Firefox Nightly/' \
browser/confvars.sh
# Point all the URLs back to firefox, not firefox nightly
#sed -i 's/%APP%/firefox/g' \
# browser/app/profile/firefox.js
}
build() {
cd gecko-dev
# _FORTIFY_SOURCE causes configure failures
export CFLAGS="$CFLAGS $CPPFLAGS"
unset CPPFLAGS
export PATH="$srcdir/path:$PATH"
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/firefox-nightly"
export PYTHON="/usr/bin/python2"
# Do PGO
xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \
make -f client.mk build MOZ_PGO=1
}
package() {
cd gecko-dev
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
install -Dm644 ../vendor.js "$pkgdir/usr/lib/firefox-nightly/browser/defaults/preferences/vendor.js"
for i in 16 32 48; do
install -Dm644 browser/branding/nightly/default$i.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/firefox-nightly.png"
done
install -Dm644 browser/branding/nightly/content/icon64.png \
"$pkgdir/usr/share/icons/hicolor/64x64/apps/firefox-nightly.png"
install -Dm644 browser/branding/nightly/mozicon128.png \
"$pkgdir/usr/share/icons/hicolor/128x128/apps/firefox-nightly.png"
install -Dm644 browser/branding/nightly/content/about-logo.png \
"$pkgdir/usr/share/icons/hicolor/192x192/apps/firefox-nightly.png"
install -Dm644 browser/branding/nightly/content/about-logo@2x.png \
"$pkgdir/usr/share/icons/hicolor/384x384/apps/firefox-nightly.png"
install -Dm644 ../firefox-nightly.desktop \
"$pkgdir/usr/share/applications/firefox-nightly.desktop"
# Use system-provided dictionaries
rm -rf "$pkgdir"/usr/lib/firefox-nightly/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/firefox-nightly/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/firefox-nightly/hyphenation"
#workaround for now
#https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox-nightly "$pkgdir/usr/lib/firefox-nightly/firefox-nightly-bin"
}and here's my mozconfig:
. $topsrcdir/browser/config/mozconfig
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
ac_add_options --with-branding=browser/branding/nightly
ac_add_options --enable-update-channel=nightly
# System libraries
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --enable-system-cairo
# Features
ac_add_options --enable-startup-notification
ac_add_options --enable-gstreamer=1.0
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-installer
ac_add_options --disable-tests
# For Nightly
ac_add_options --enable-profiling
# Compiling
ac_add_options --enable-optimize="-O2"
# Keep symbols
STRIP_FLAGS="--strip-debug"
# PGO
mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 $(MAKE) -C $(MOZ_OBJDIR) pgo-profile-run'
# 4-core CPU
mk_add_options MOZ_MAKE_FLAGS=-j4
# vim:set ft=sh:Then I always get this error:
cp -p ../../dist/bin/-bin
cp: missing destination file operand after ‘../../dist/bin/-bin’
Try 'cp --help' for more information.
Makefile:65: recipe for target 'libs' failed
make[6]: *** [libs] Error 1
make[6]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu/browser/app'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/recurse.mk:92: recipe for target 'browser/app/libs' failed
make[5]: *** [browser/app/libs] Error 2
make[5]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/recurse.mk:42: recipe for target 'libs' failed
make[4]: *** [libs] Error 2
make[4]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/rules.mk:548: recipe for target 'default' failed
make[3]: *** [default] Error 2
make[3]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/client.mk:386: recipe for target 'realbuild' failed
make[2]: *** [realbuild] Error 2
make[2]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/client.mk:221: recipe for target 'profiledbuild' failed
make[1]: *** [profiledbuild] Error 2
make[1]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev'
client.mk:168: recipe for target 'build' failed
make: *** [build] Error 2
==> ERROR: A failure occurred in build().
Aborting...Anyone any idea what's going wrong?
Offline
Have you tried using https://aur.archlinux.org/packages/firefox-nightly/ ? Oooops, this aur package is precompiled.
Last edited by karol (2014-08-06 21:03:25)
Offline
GTK3 builds are experimental and can break at any time. There are Mozilla builds at http://ftp.mozilla.org/pub/mozilla.org/ … t/?C=S;O=D and you can see the state of the official build tree at https://treeherder.mozilla.org/ui/#/jobs?repo=elm
The most important bit for an external build is the first B in each line, Green means that the builds were created and past build tests. Orange means that there were test failures, this may or may not result in build failures for external builders. A red B shows build failures and likely any GTK3 build based off that changeset will fail.
There was a red build failure over the weekend I would suggest re-pulling to the latest code and clearing your object directory. I had a GTK3 successful build on F20 earlier today. If helpful I can get the GCC and .mozconfig data.
Offline
So I've deleted the obj* directory, and edited out the gkt3 and cairo lines in mozconfig and I get the exact same error. Here it is with the previous couple of lines included. Do you know whats wrong?
make[6]: Entering directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu/browser/app'
rm -f '../../dist/bin/browser/defaults/preferences/firefox.js'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu/_virtualenv/bin/python -m mozbuild.action.preprocessor --depend .deps/firefox.js.pp -DFIREFOX_ICO='"../../dist/branding/firefox.ico"' -DDOCUMENT_ICO='"../../dist/branding/document.ico"' -DNEWWINDOW_ICO='"../../dist/branding/newwindow.ico"' -DNEWTAB_ICO='"../../dist/branding/newtab.ico"' -DPBMODE_ICO='"../../dist/branding/pbmode.ico"' -DAPP_VERSION='34.0a1' -DXPCOM_GLUE -DMOZ_GLUE_IN_PROGRAM -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -DHAVE_X86_AVX2='1' -DHAVE_64BIT_BUILD='1' -DMOZ_ENABLE_PROFILER_SPS='1' -DMOZ_PROFILING='1' -DMOZILLA_VERSION='"34.0a1"' -DMOZILLA_VERSION_U='34.0a1' -DMOZILLA_UAVERSION='"34.0"' -DXP_LINUX='1' -DD_INO='d_ino' -DMOZ_DEBUG_SYMBOLS='1' -DSTDC_HEADERS='1' -DHAVE_SSIZE_T='1' -DHAVE_ST_BLKSIZE='1' -DHAVE_SIGINFO_T='1' -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE='1' -DHAVE_VISIBILITY_ATTRIBUTE='1' -DHAVE_DIRENT_H='1' -DHAVE_GETOPT_H='1' -DHAVE_SYS_BITYPES_H='1' -DHAVE_MEMORY_H='1' -DHAVE_UNISTD_H='1' -DHAVE_GNU_LIBC_VERSION_H='1' -DHAVE_NL_TYPES_H='1' -DHAVE_MALLOC_H='1' -DHAVE_X11_XKBLIB_H='1' -DHAVE_CPUID_H='1' -DHAVE_SYS_QUOTA_H='1' -DHAVE_SYS_SYSMACROS_H='1' -DHAVE_LINUX_QUOTA_H='1' -DHAVE_LINUX_IF_ADDR_H='1' -DHAVE_LINUX_RTNETLINK_H='1' -DHAVE_SYS_TYPES_H='1' -DHAVE_NETINET_IN_H='1' -DHAVE_BYTESWAP_H='1' -DHAVE_SYS_CDEFS_H='1' -DHAVE_DLOPEN='1' -DHAVE_DLADDR='1' -DHAVE_MEMMEM='1' -DFUNCPROTO='15' -DHAVE_LIBXSS='1' -D_REENTRANT='1' -DHAVE_STAT64='1' -DHAVE_LSTAT64='1' -DHAVE_TRUNCATE64='1' -DHAVE_LOCALTIME_R='1' -DHAVE_CLOCK_MONOTONIC='1' -DHAVE_RES_NINIT='1' -DHAVE_LANGINFO_CODESET='1' -DVA_COPY='va_copy' -DHAVE_VA_COPY='1' -DHAVE_VA_LIST_AS_ARRAY='1' -DHAVE_THREAD_TLS_KEYWORD='1' -DMALLOC_H='<malloc.h>' -DHAVE_STRNDUP='1' -DHAVE_POSIX_MEMALIGN='1' -DHAVE_MEMALIGN='1' -DHAVE_VALLOC='1' -DHAVE_MALLOC_USABLE_SIZE='1' -DHAVE_I18N_LC_MESSAGES='1' -DHAVE_LOCALECONV='1' -DTARGET_XPCOM_ABI='"x86_64-gcc3"' -DNS_ATTR_MALLOC='__attribute__((malloc))' -DNS_WARN_UNUSED_RESULT='__attribute__((warn_unused_result))' -DNIGHTLY_BUILD='1' -DMOZ_UPDATE_CHANNEL='default' -DEARLY_BETA_OR_EARLIER='1' -DMOZ_PHOENIX='1' -DMOZ_BUILD_APP='browser' -DMOZ_X11='1' -DMOZ_WIDGET_GTK2='1' -DMOZ_WIDGET_GTK='2' -DMOZ_PDF_PRINTING='1' -DMOZ_ENABLE_XREMOTE='1' -DMOZ_INSTRUMENT_EVENT_LOOP='1' -DMOZ_ENABLE_STARTUP_NOTIFICATION='1' -DNS_PRINTING='1' -DNS_PRINT_PREVIEW='1' -DMOZ_DISTRIBUTION_ID='"org.mozilla"' -DMOZ_ENABLE_GIO='1' -DMOZ_ENABLE_GCONF='1' -DMOZ_ENABLE_DBUS='1' -DACCESSIBILITY='1' -DMOZ_WEBRTC='1' -DMOZ_WEBRTC_ASSERT_ALWAYS='1' -DMOZ_WEBRTC_SIGNALING='1' -DMOZ_PEERCONNECTION='1' -DMOZ_SCTP='1' -DMOZ_SRTP='1' -DMOZ_SAMPLE_TYPE_FLOAT32='1' -DMOZ_WEBSPEECH='1' -DMOZ_RAW='1' -DATTRIBUTE_ALIGNED_MAX='64' -DMOZ_WEBM='1' -DMOZ_FFMPEG='1' -DMOZ_FMP4='1' -DMOZ_EME='1' -DMOZ_MEDIA_NAVIGATOR='1' -DMOZ_VPX='1' -DMOZ_VPX_ERROR_CONCEALMENT='1' -DVPX_X86_ASM='1' -DMOZ_WAVE='1' -DMOZ_VORBIS='1' -DMOZ_OPUS='1' -DMOZ_WEBM_ENCODER='1' -DMOZ_GSTREAMER='1' -DGST_API_VERSION='"1.0"' -DENABLE_SYSTEM_EXTENSION_DIRS='1' -DMOZ_WEBGL='1' -DMOZ_WEBGL_CONFORMANT='1' -DMOZ_GAMEPAD='1' -DMOZ_CRASHREPORTER_ENABLE_PERCENT='100' -DLIBJPEG_TURBO_X64_ASM='1' -DMOZ_WEBAPP_RUNTIME='1' -DMOZ_GMP_SANDBOX='1' -DMOZ_FEEDS='1' -DMOZ_SAFE_BROWSING='1' -DMOZ_URL_CLASSIFIER='1' -DGL_PROVIDER_GLX='1' -DMOZ_LOGGING='1' -DMOZ_DMD='1' -DMOZ_MEMORY='1' -DMOZ_MEMORY_LINUX='1' -DJSGC_INCREMENTAL='1' -DJSGC_USE_EXACT_ROOTING='1' -DJSGC_GENERATIONAL='1' -DMOZ_PAY='1' -DMOZ_ACTIVITIES='1' -DHAVE___CXA_DEMANGLE='1' -DMOZ_DEMANGLE_SYMBOLS='1' -DHAVE__UNWIND_BACKTRACE='1' -DJS_DEFAULT_JITREPORT_GRANULARITY='3' -DMOZ_OMNIJAR='1' -DMOZ_USER_DIR='".mozilla"' -DHAVE_FT_BITMAP_SIZE_Y_PPEM='1' -DHAVE_FT_GLYPHSLOT_EMBOLDEN='1' -DHAVE_FT_LOAD_SFNT_TABLE='1' -DHAVE_FONTCONFIG_FCFREETYPE_H='1' -DMOZ_TREE_PIXMAN='1' -DHAVE_STDINT_H='1' -DHAVE_INTTYPES_H='1' -DMOZ_TREE_CAIRO='1' -DMOZ_ENABLE_SKIA='1' -DUSE_SKIA='1' -DUSE_SKIA_GPU='1' -DMOZ_XUL='1' -DMOZ_PROFILELOCKING='1' -DENABLE_MARIONETTE='1' -DBUILD_CTYPES='1' -DMOZ_PLACES='1' -DMOZ_SOCIAL='1' -DMOZ_SERVICES_COMMON='1' -DMOZ_SERVICES_CRYPTO='1' -DMOZ_SERVICES_HEALTHREPORT='1' -DMOZ_SERVICES_METRICS='1' -DMOZ_SERVICES_SYNC='1' -DMOZ_JSDOWNLOADS='1' -DMOZ_MACBUNDLE_ID='org.mozilla.nightly' -DMOZ_B2G_VERSION='"1.0.0"' -DMOZ_B2G_OS_NAME='""' -DMOZ_APP_UA_NAME='""' -DMOZ_APP_UA_VERSION='"34.0a1"' -DFIREFOX_VERSION='34.0a1' -DMOZ_TELEMETRY_DISPLAY_REV='2' -DMOZ_DATA_REPORTING='1' -DMOZ_DLL_SUFFIX='".so"' -DHAVE_POSIX_FADVISE='1' -DHAVE_POSIX_FALLOCATE='1' -DXP_UNIX='1' -DMOZ_ACCESSIBILITY_ATK='1' -DATK_MAJOR_VERSION='2' -DATK_MINOR_VERSION='12' -DATK_REV_VERSION='0' -DA11Y_LOG='1' -DEXPOSE_INTL_API='1' -DENABLE_INTL_API='1' -DU_STATIC_IMPLEMENTATION='1' -DU_USING_ICU_NAMESPACE='0' -DMOZ_STATIC_JS='1' -DNDEBUG -DTRIMMED '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/browser/app/profile/firefox.js' -o '../../dist/bin/browser/defaults/preferences/firefox.js'
cp -p ../../dist/bin/-bin
cp: missing destination file operand after ‘../../dist/bin/-bin’
Try 'cp --help' for more information.
Makefile:64: recipe for target 'libs' failed
make[6]: *** [libs] Error 1
make[6]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu/browser/app'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/recurse.mk:92: recipe for target 'browser/app/libs' failed
make[5]: *** [browser/app/libs] Error 2
make[5]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/recurse.mk:42: recipe for target 'libs' failed
make[4]: *** [libs] Error 2
make[4]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/config/rules.mk:547: recipe for target 'default' failed
make[3]: *** [default] Error 2
make[3]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/obj-x86_64-unknown-linux-gnu'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/client.mk:386: recipe for target 'realbuild' failed
make[2]: *** [realbuild] Error 2
make[2]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev'
/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev/client.mk:221: recipe for target 'profiledbuild' failed
make[1]: *** [profiledbuild] Error 2
make[1]: Leaving directory '/mnt/storage/archive/firefox-nightly-arch/src/gecko-dev'
client.mk:168: recipe for target 'build' failed
make: *** [build] Error 2
==> ERROR: A failure occurred in build().
Aborting...Offline