#
|
# This file and its contents are supplied under the terms of the
|
# Common Development and Distribution License ("CDDL"), version 1.0.
|
# You may only use this file in accordance with the terms of version
|
# 1.0 of the CDDL.
|
#
|
# A full copy of the text of the CDDL should have accompanied this
|
# source. A copy of the CDDL is also available via the Internet at
|
# http://www.illumos.org/license/CDDL.
|
#
|
|
#
|
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
# Copyright 2015 OpenSXCE.org Martin Bochnig <opensxce@mail.ru>
|
# Copyright 2013-2017 Alexander Pyhalov
|
# Copyright 2019 Geoffrey Weiss
|
# Copyright 2019 Michal Nowak
|
# Copyright 2021 Carsten Grzemba
|
# Copyright 2023-2024 Niklas Poslovski
|
#
|
|
USE_PARALLEL_BUILD= yes
|
include ../../../make-rules/shared-macros.mk
|
|
COMPONENT_NAME = librewolf
|
COMPONENT_MAJOR_VERSION = 123.0.1
|
COMPONENT_MINOR_VERSION = 1
|
COMPONENT_VERSION = $(COMPONENT_MAJOR_VERSION).$(COMPONENT_MINOR_VERSION)
|
HUMAN_VERSION = $(COMPONENT_MAJOR_VERSION)-$(COMPONENT_MINOR_VERSION)
|
COMPONENT_SUMMARY= LibreWolf Web browser
|
COMPONENT_PROJECT_URL = https://librewolf.net
|
COMPONENT_SRC_NAME = $(COMPONENT_NAME)-$(HUMAN_VERSION)
|
COMPONENT_SRC = $(COMPONENT_SRC_NAME)
|
COMPONENT_ARCHIVE = $(COMPONENT_SRC_NAME).source.tar.gz
|
COMPONENT_ARCHIVE_HASH= sha256:d6d05b17df53fe5d526b9abef7d408556596fdaa7ea09af2af05245cb5fe59b9
|
COMPONENT_ARCHIVE_URL = https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$(HUMAN_VERSION)/$(COMPONENT_ARCHIVE)
|
COMPONENT_FMRI= web/browser/librewolf
|
COMPONENT_CLASSIFICATION = Applications/Internet
|
|
RUST_VERSION= 1.75.0
|
|
CONFIGURE_DEFAULT_DIRS= no
|
|
include $(WS_MAKE_RULES)/common.mk
|
|
ENV = /usr/bin/env
|
RUSTUP_HOME = $(BUILD_DIR)/.rust_up
|
CARGO_HOME = $(BUILD_DIR)/.cargo
|
|
PATH= $(CARGO_HOME)/bin:$(PATH.gnu)
|
|
MOZCONFIG= $(SOURCE_DIR)/mozconfig
|
GNU_ARCH= x86_64-unknown-illumos
|
|
ifdef DEBUG
|
# disable code optimization
|
CFLAGS =
|
CXXFLAGS =
|
|
MOZCONFIG_DEBUG = $(MOZCONFIG)
|
MOZCONFIG_NON_DEBUG = /dev/null
|
else
|
MOZCONFIG_DEBUG = /dev/null
|
MOZCONFIG_NON_DEBUG = $(MOZCONFIG)
|
endif
|
|
CONFIGURE_ENV=
|
CONFIGURE_OPTIONS=
|
|
# clang or gcc
|
CC_TYPE = gcc
|
COMPILER.gcc= gcc
|
COMPILER.clang= clang
|
COMPILER = $(COMPILER.$(CC_TYPE))
|
|
CXXFLAGS += -Wno-invalid-offsetof -fpermissive
|
# xpcom uses DEF XP_SOLARIS
|
CXXFLAGS += -DXP_SOLARIS
|
# type problem compiling ffvpx with clang
|
CFLAGS += -D__int8_t_defined
|
|
FIREFOX_LIBDIR = $(CONFIGURE_LIBDIR.$(BITS))
|
|
COMPONENT_PRE_CONFIGURE_ACTION += \
|
echo "ac_add_options PKG_CONFIG=/usr/bin/amd64/pkg-config" >> $(MOZCONFIG) ; \
|
echo "ac_add_options CC_TYPE=$(CC_TYPE)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options CC=$(CC)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options CXX=$(CXX)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --prefix=/usr" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --libdir=$(FIREFOX_LIBDIR)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --disable-debug-symbols" >> $(MOZCONFIG_NON_DEBUG) ; \
|
echo "ac_add_options --disable-install-strip" >> $(MOZCONFIG_DEBUG) ; \
|
echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --enable-js-shell" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --enable-pulseaudio" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --host=$(GNU_ARCH)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --target=$(GNU_ARCH)" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --without-wasm-sandboxed-libraries" >> $(MOZCONFIG) ; \
|
echo "ac_add_options --disable-alsa" >> $(MOZCONFIG) ; \
|
# echo "ac_add_options --enable-bootstrap" >> $(MOZCONFIG) ; \
|
# echo "ac_add_options --with-wasi-sysroot=" >> $(MOZCONFIG) ; \
|
|
LD_SECEXT_OPTIONS += $(SSBD_ENABLE)
|
|
# 28395728
|
LD_MAP_NOEXBSS.sparc=
|
|
# libmozgtk needs to link to gtk3 and others
|
LD_Z_IGNORE=
|
|
# missing symbols from gtk3 during Firefox start
|
LD_B_DIRECT=
|
|
# hope to get args data in stacks of core dumps
|
LD_OPTIONS += -msave-args
|
|
# use a local installed rust since the system version may not be compatible
|
COMPONENT_PRE_CONFIGURE_ACTION += ( \
|
export RUSTUP_HOME=$(RUSTUP_HOME); \
|
export CARGO_HOME=$(CARGO_HOME); \
|
export RUSTUP_INIT_SKIP_PATH_CHECK=yes; \
|
curl https://sh.rustup.rs -sSf | bash -s -- -y --no-modify-path; \
|
source $(CARGO_HOME)/env; \
|
rustup install $(RUST_VERSION); \
|
rustup default $(RUST_VERSION)-x86_64-unknown-illumos; \
|
rustup show; \
|
cargo install --root=$(CARGO_HOME) --vers 0.26.0 cbindgen; \
|
);
|
|
ENV += CFLAGS="$(CFLAGS)"
|
ENV += CXXFLAGS="$(CXXFLAGS)"
|
ENV += PKG_CONFIG=/usr/bin/amd64/pkg-config
|
ENV += RUSTUP_HOME=$(RUSTUP_HOME)
|
ENV += CARGO_HOME=$(CARGO_HOME)
|
|
COMPONENT_BUILD_ARGS += $(JOBS:%=-j%)
|
|
CONFIGURE_ENV = $(ENV)
|
COMPONENT_BUILD_ENV = $(ENV)
|
COMPONENT_INSTALL_ENV += HOME=/tmp
|
|
COMPONENT_POST_BUILD_ACTION = \
|
(cd $(@D)/browser/installer ; $(ENV) $(COMPONENT_BUILD_ENV) \
|
$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
|
|
COMPONENT_POST_INSTALL_ACTION = \
|
for file in `find $(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox/ -name "*.so"`; do \
|
/usr/bin/elfedit -e 'dyn:value -s RUNPATH "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \
|
/usr/bin/elfedit -e 'dyn:value -s RPATH "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \
|
done ; \
|
unzip -c $(PROTOUSRLIBDIR64)/$(COMPONENT_NAME)/omni.ja chrome/toolkit/content/global/license.html \
|
| LC_ALL=en_US.UTF-8 lynx --display_charset=utf-8 -stdin --dump -nolist > $(COMPONENT_NAME).license ;
|
|
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master
|
|
COMPONENT_TEST_DIR = $(@D)/js/src
|
COMPONENT_TEST_TARGETS=check-jit-test
|
COMPONENT_TEST_TRANSFORMS = \
|
'-e "/^PASSED ALL/,/Failed:/p" ' \
|
'-e "/^FAILURES:/,/Failed:/p" ' \
|
'-e "/.*/d" '
|
|
# the license file is dynamically build, thus we need to remove it:
|
clean::
|
$(RM) $(COMPONENT_LICENSE_FILE)
|
|
# Build dependencies
|
PYTHON_REQUIRED_PACKAGES += runtime/python
|
PYTHON_REQUIRED_PACKAGES += library/python/psutil
|
REQUIRED_PACKAGES += developer/build/autoconf-213
|
REQUIRED_PACKAGES += library/audio/pulseaudio
|
REQUIRED_PACKAGES += system/header/header-audio
|
REQUIRED_PACKAGES += developer/lang/rustc
|
REQUIRED_PACKAGES += gnome/config/gconf
|
REQUIRED_PACKAGES += database/sqlite-3
|
REQUIRED_PACKAGES += library/http-parser
|
REQUIRED_PACKAGES += web/browser/lynx
|
|
# Auto-generated dependencies
|
REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG)
|
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
|
REQUIRED_PACKAGES += library/c++/harfbuzz
|
REQUIRED_PACKAGES += library/desktop/atk
|
REQUIRED_PACKAGES += library/desktop/cairo
|
REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
|
REQUIRED_PACKAGES += library/desktop/gtk3
|
REQUIRED_PACKAGES += library/desktop/pango
|
REQUIRED_PACKAGES += library/glib2
|
REQUIRED_PACKAGES += library/graphics/pixman
|
REQUIRED_PACKAGES += library/zlib
|
REQUIRED_PACKAGES += system/library
|
REQUIRED_PACKAGES += system/library/fontconfig
|
REQUIRED_PACKAGES += system/library/freetype-2
|
REQUIRED_PACKAGES += system/library/libdbus
|
REQUIRED_PACKAGES += system/library/math
|
REQUIRED_PACKAGES += x11/library/libx11
|
REQUIRED_PACKAGES += x11/library/libxcb
|
REQUIRED_PACKAGES += x11/library/libxext
|
REQUIRED_PACKAGES += x11/library/libxrandr
|