View | Details | Raw Unified | Return to bug 251117 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (+181 lines)
Line 0 Link Here
1
# $FreeBSD$
2
3
PORTNAME=	palemoon
4
DISTVERSION=	29.4.3
5
CATEGORIES=	www
6
MASTER_SITES=	http://archive.palemoon.org/source/
7
DISTFILES=	palemoon-${DISTVERSION}.source.tar.xz
8
DIST_SUBDIR=	MoonchildProductions
9
10
MAINTAINER=	olce.freebsd.ports@certner.fr
11
COMMENT=	Open-source web browser
12
13
LICENSE=	MPL20 MISC
14
LICENSE_COMB=	multi
15
LICENSE_NAME_MISC=	Miscellaneous free and open-source licenses
16
LICENSE_FILE=	${WRKSRC}/LICENSE
17
LICENSE_FILE_MISC=	${WRKSRC}/platform/toolkit/content/license.html
18
LICENSE_PERMS_MISC=	dist-mirror pkg-mirror auto-accept
19
20
ONLY_FOR_ARCHS=	amd64 i386
21
ONLY_FOR_ARCHS_REASON=Upstream only cares about i386/amd64
22
23
# Common deps & build options
24
BUILD_DEPENDS=	autoconf-2.13:devel/autoconf213 \
25
		yasm:devel/yasm \
26
		zip:archivers/zip \
27
28
LIB_DEPENDS=	libdbus-1.so:devel/dbus \
29
		libdbus-glib-1.so:devel/dbus-glib \
30
		libfontconfig.so:x11-fonts/fontconfig \
31
		libfreetype.so:print/freetype2
32
33
USES=		pkgconfig perl5 gmake gnome xorg desktop-file-utils
34
USE_PERL5=	build
35
# XXX
36
# GTK3 support currently needs gtk20 and gconf2 to pass old-configure (and
37
# maybe more).
38
# See also: https://repo.palemoon.org/MoonchildProductions/UXP/issues/1638.
39
USE_GNOME=	cairo gdkpixbuf2 glib20 pango \
40
		gtk30 gtk20:build gconf2:build
41
USE_XORG=	xt x11 xcb xext xrender
42
43
# We require GCC (see also GCC_DEFAULT below), but we need to make sure that
44
# there are no runtime dependencies to libstdc++, i.e., that libc++'s headers
45
# and libraries are used during compilation and link.
46
USES+=		compiler:gcc-c++11-lib
47
48
# Put this here pending creation of USES=gtar
49
BUILD_DEPENDS+=	gtar:archivers/gtar
50
BINARY_ALIAS+=	tar=${LOCALBASE}/bin/gtar
51
52
USES+=		python:2.7,build
53
# BUILD_DEPENDS+=	tauthon:lang/tauthon
54
# BINARY_ALIAS+=	python=${LOCALBASE}/bin/tauthon \
55
# 		python2=${LOCALBASE}/bin/tauthon \
56
# 		python2.7=${LOCALBASE}/bin/tauthon
57
58
BUNDLE_LIBS=	yes
59
60
## Options
61
62
# Official branding is enabled in compliance with Pale Moon's redistribution
63
# license (see https://www.palemoon.org/redist.shtml), point 8b, as explicitly
64
# confirmed by the owner (Moonchild; see
65
# https://forum.palemoon.org/viewtopic.php?f=5&t=25625), provided options are
66
# not modified beyond what is necessary to get a stable build on FreeBSD. So DO
67
# NOT CHANGE default options without the maintainer's approval.
68
69
OPTIONS_SINGLE+=	SOUND
70
OPTIONS_SINGLE_SOUND=	ALSA PULSEAUDIO SNDIO
71
OPTIONS_DEFAULT+=	ALSA
72
73
OPTIONS_DEFINE+=	SYNC
74
OPTIONS_DEFAULT+=	SYNC
75
76
OPTIONS_DEFINE+=	SYSTEM_MALLOC
77
78
ALSA_BUILD_DEPENDS=	${PREFIX}/include/alsa/asoundlib.h:audio/alsa-lib
79
ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
80
PULSEAUDIO_BUILD_DEPENDS=${LOCALBASE}/include/pulse/pulseaudio.h:audio/pulseaudio
81
PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
82
SNDIO_BUILD_DEPENDS=	${PREFIX}/include/sndio.h:audio/sndio
83
SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
84
85
SYNC_DESC=		Pale Moon Sync service (see https://www.palemoon.org/sync/)
86
87
SYSTEM_MALLOC_DESC=	Use system's jemalloc instead of bundled one
88
89
.include <bsd.port.pre.mk>
90
91
# We require GCC, and even a specific version of it. 10 is the last version I
92
# tested and validated, and the last version endorsed upstream. It is also the
93
# current default in ports, a nice conjunction that cannot always be
94
# maintained. Version bumps *MUST* be validated by the maintainer (after
95
# thorough testing, and following upstream's recommendations).
96
GCC_DEFAULT=	10
97
98
## Vars and targets
99
100
WRKSRC=		${WRKDIR}/palemoon-source
101
102
DOT_MOZCONFIG=	${WRKSRC}/.mozconfig
103
PM_BUILD_DIR=	${WRKSRC}/pmbuild
104
105
PALEMOON_DESKTOP=${WRKSRC}/palemoon/branding/official/palemoon.desktop
106
107
# Extract only -O options
108
PM_OPTIMIZE=${CFLAGS:M-O*}
109
110
.for VAR in PM_BUILD_DIR PM_OPTIMIZE
111
PM_MOZCONFIG_REINPLACE_ARGS+=-e 's!%%${VAR}%%!${${VAR}}!'
112
.endfor
113
114
# Taken from bsd.gecko.mk. See comment there.
115
.if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE)
116
MAKE_JOBS_NUMBER=	1
117
.endif
118
.if defined(MAKE_JOBS_NUMBER)
119
MOZ_MAKE_FLAGS+=	-j${MAKE_JOBS_NUMBER}
120
.endif
121
122
# Prepare '.mozconfig' for 'configure'
123
pre-configure:
124
	${CP} ${FILESDIR}/dot.mozconfig ${DOT_MOZCONFIG}
125
	${REINPLACE_CMD} ${PM_MOZCONFIG_REINPLACE_ARGS} ${DOT_MOZCONFIG}
126
.if ${PORT_OPTIONS:MALSA}
127
	${ECHO_CMD} ac_add_options --enable-alsa >> ${DOT_MOZCONFIG}
128
	${ECHO_CMD} ac_add_options --disable-pulseaudio >> ${DOT_MOZCONFIG}
129
.endif
130
.if ${PORT_OPTIONS:MSNDIO}
131
	${ECHO_CMD} ac_add_options --enable-sndio >> ${DOT_MOZCONFIG}
132
	${ECHO_CMD} ac_add_options --disable-pulseaudio >> ${DOT_MOZCONFIG}
133
.endif
134
.if ! ${PORT_OPTIONS:MSYNC}
135
	${ECHO_CMD} ac_add_options --disable-sync >> ${DOT_MOZCONFIG}
136
.endif
137
.if ${PORT_OPTIONS:MSYSTEM_MALLOC}
138
	${ECHO_CMD} ac_add_options --disable-jemalloc >> ${DOT_MOZCONFIG}
139
.else
140
	${ECHO_CMD} ac_add_options --enable-jemalloc >> ${DOT_MOZCONFIG}
141
.endif
142
.if defined(MOZ_MAKE_FLAGS)
143
	${ECHO_CMD} mk_add_options MOZ_MAKE_FLAGS=${MOZ_MAKE_FLAGS:Q} \
144
		>> ${DOT_MOZCONFIG}
145
.endif
146
# Add build variables
147
.for VAR in CPP CXXCPP CC CXX CPPFLAGS CFLAGS CXXFLAGS LDFLAGS \
148
	LD AS AR RANLIB OBJDUMP NM
149
.if defined(${VAR})
150
# Remove -rpath options to GCC's directory, we don't need them (no dependencies
151
# on libs compiled with gfortran, see
152
# https://wiki.freebsd.org/libgcc%20problem) and we don't want them (triggering
153
# a link to a different libgcc_s depending on whether GCC is installed at
154
# runtime).
155
	${ECHO_CMD} export ${VAR}=\"${${VAR}:N*-rpath*lib/gcc*}\" >> ${DOT_MOZCONFIG}
156
.endif
157
.endfor
158
159
# Running 'mach configure' separately is "strongly discouraged" (see Mozilla's
160
# doc on build options configuration). But this does not seem relevant to Pale
161
# Moon.
162
do-configure:
163
	cd ${WRKSRC} && ${SETENV} PATH=${PATH} ./mach configure
164
165
do-build:
166
	cd ${WRKSRC} && ${SETENV} PATH=${PATH} ./mach build
167
# Going through the package route (the only one documented upstream)
168
	cd ${WRKSRC} && ${SETENV} PATH=${PATH} ./mach package
169
170
do-install:
171
	${TAR} -C ${STAGEDIR}${PREFIX}/lib \
172
		-xf ${PM_BUILD_DIR:Q}/dist/palemoon*.tar* \
173
		palemoon
174
	${RLN}  ${STAGEDIR}${PREFIX}/lib/palemoon/palemoon \
175
		${STAGEDIR}${PREFIX}/bin/palemoon
176
	${INSTALL_DATA} ${PALEMOON_DESKTOP} \
177
		${STAGEDIR}${PREFIX}/share/applications/palemoon.desktop
178
	${RLN}  ${STAGEDIR}${PREFIX}/lib/palemoon/browser/icons/mozicon128.png \
179
		${STAGEDIR}${PREFIX}/share/pixmaps/palemoon.png
180
181
.include <bsd.port.mk>
(-)distinfo (+3 lines)
Line 0 Link Here
1
TIMESTAMP = 1639501074
2
SHA256 (MoonchildProductions/palemoon-29.4.3.source.tar.xz) = 77e70d8b7ba061ff6157294d9bf188c304f8554c23601d704f6086dac4a3fb3f
3
SIZE (MoonchildProductions/palemoon-29.4.3.source.tar.xz) = 200937300
(-)files/dot.mozconfig (+30 lines)
Line 0 Link Here
1
# Standard build options for Pale Moon
2
# See http://developer.palemoon.org/build/linux/
3
4
# The 'configure' ports step replaces %%VAR%% with content of Makefile's VAR
5
# and appends lines to this file.
6
7
mk_add_options MOZ_OBJDIR=%%PM_BUILD_DIR%%
8
9
ac_add_options --enable-application=palemoon
10
ac_add_options --enable-optimize="-w %%PM_OPTIMIZE%%"
11
ac_add_options --enable-default-toolkit=cairo-gtk3
12
ac_add_options --enable-strip
13
ac_add_options --enable-devtools
14
ac_add_options --disable-eme
15
ac_add_options --disable-webrtc
16
ac_add_options --disable-gamepad
17
ac_add_options --disable-tests
18
ac_add_options --disable-debug
19
ac_add_options --disable-necko-wifi
20
ac_add_options --disable-updater
21
ac_add_options --with-pthreads
22
23
ac_add_options --enable-official-branding
24
export MOZILLA_OFFICIAL=1
25
26
# Don't bother compressing, mach's package is just intermediate file
27
export MOZ_PKG_FORMAT=TAR
28
29
# Below this line, build options depending on port options, as well as make and
30
# build flags, will be appended.
(-)files/patch-mach (+60 lines)
Line 0 Link Here
1
--- mach.orig	2021-11-10 12:12:26 UTC
2
+++ mach
3
@@ -15,28 +15,26 @@ MCP_XZ=`which xz 2>/dev/null`
4
 MCP_TAR_BASEDIR="s/^./$MCP_APP-source/"
5
 MCP_TAR_FILENAME="$MCP_APP-$MCP_VERSION.source.tar.xz"
6
 MCP_TAR_COMMAND="tar cfJv ../$MCP_TAR_FILENAME . --transform $MCP_TAR_BASEDIR --exclude-vcs --warning=no-file-changed"
7
-MCP_TAR_EXCLUDES=(
8
-  "$MCP_APP/branding/beta"
9
-  "$MCP_APP/branding/unstable"
10
-  "platform/db/mork"
11
-  "platform/docs"
12
-  "platform/ldap"
13
-  "platform/libs/gmp-clearkey"
14
-  "platform/mailnews"
15
-  "platform/python/psutil/*.so"
16
-  "platform/python/psutil/*.pyd"
17
-  "platform/python/psutil/build"
18
-  "platform/xulrunner"
19
-  ".mozconfig"
20
-  ".gitattributes"
21
-  ".gitignore"
22
-  ".gitmodules"
23
-  "*.pyc"
24
-  "*.pyo"
25
-  "*.rej"
26
-  "*.orig"
27
-  "*.source.tar.xz"
28
+MCP_TAR_EXCLUDES="$MCP_APP/branding/beta \
29
+  $MCP_APP/branding/unstable \
30
+  platform/db/mork \
31
+  platform/docs \
32
+  platform/ldap \
33
+  platform/libs/gmp-clearkey \
34
+  platform/mailnews \
35
+  platform/python/psutil/*.so \
36
+  platform/python/psutil/*.pyd \
37
+  platform/python/psutil/build \
38
+  platform/xulrunner \
39
+  .mozconfig \
40
+  .gitattributes \
41
+  .gitignore \
42
+  .gitmodules \
43
+  *.pyc \
44
+  *.pyo \
45
+  *.rej \
46
+  *.orig \
47
+  *.source.tar.xz"
48
-)
49
 
50
 if [ "$1" == "source" ]; then
51
   if [ -z "$MCP_XZ" ]; then
52
@@ -44,7 +43,7 @@ if [ "$1" == "source" ]; then
53
     exit 1
54
   fi
55
 
56
-  for _value in "${MCP_TAR_EXCLUDES[@]}"; do
57
+  for _value in ${MCP_TAR_EXCLUDES}; do
58
     MCP_TAR_COMMAND+=" --exclude=${_value}"
59
   done
60
 
(-)files/patch-platform_old-configure.in (+11 lines)
Line 0 Link Here
1
--- ./platform/old-configure.in.orig	2021-02-05 18:43:01 UTC
2
+++ ./platform/old-configure.in
3
@@ -5305,7 +5305,7 @@ ac_configure_args="$_SUBDIR_CONFIG_ARGS"
4
 
5
 # --with-system-nspr will have been converted into the relevant $NSPR_CFLAGS
6
 # and $NSPR_LIBS.
7
-ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr\S* *//'`"
8
+ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr[^[:space:]]* *//'`"
9
 
10
 if test "$_INTL_API" = no; then
11
     ac_configure_args="$ac_configure_args --without-intl-api"
(-)pkg-descr (+17 lines)
Line 0 Link Here
1
Pale Moon(TM) offers you a browsing experience in a browser completely built
2
from its own, independently developed source that has been forked off from
3
Firefox/Mozilla code a number of years ago, with carefully selected features
4
and optimizations to improve the browser's stability and user experience, while
5
offering full customization and a growing collection of extensions and themes
6
to make the browser truly your own.
7
8
Some of the main features:
9
- Based on the Unified XUL Platform (UXP) containing our own optimized layout
10
  and rendering engine (Goanna).
11
- Safe: Forked from mature Mozilla code and regularly updated with the latest
12
  security patches.
13
- Secure: Additional security features and security-aware development
14
- Zero ads; no telemetry, spyware or data gathering
15
- Familiar, efficient, fully customizable interface
16
17
WWW: https://www.palemoon.org/
(-)pkg-plist (+57 lines)
Line 0 Link Here
1
bin/palemoon
2
lib/palemoon/application.ini
3
lib/palemoon/browser/blocklist.xml
4
lib/palemoon/browser/chrome.manifest
5
lib/palemoon/browser/chrome/icons/default/default16.png
6
lib/palemoon/browser/chrome/icons/default/default32.png
7
lib/palemoon/browser/chrome/icons/default/default48.png
8
lib/palemoon/browser/components/components.manifest
9
lib/palemoon/browser/components/libbrowsercomps.so
10
lib/palemoon/browser/defaults/profile/chrome/userChrome-example.css
11
lib/palemoon/browser/defaults/profile/chrome/userContent-example.css
12
lib/palemoon/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
13
lib/palemoon/browser/icons/mozicon128.png
14
lib/palemoon/browser/palemoon.res
15
lib/palemoon/browser/searchplugins/bing.xml
16
lib/palemoon/browser/searchplugins/duckduckgo-palemoon.xml
17
lib/palemoon/browser/searchplugins/ecosia.xml
18
lib/palemoon/browser/searchplugins/ekoru.xml
19
lib/palemoon/browser/searchplugins/twitter.xml
20
lib/palemoon/browser/searchplugins/wikipedia.xml
21
lib/palemoon/browser/searchplugins/yahoo.xml
22
lib/palemoon/browser/ua-update.json
23
lib/palemoon/chrome.manifest
24
lib/palemoon/defaults/pref/channel-prefs.js
25
lib/palemoon/dependentlibs.list
26
lib/palemoon/dictionaries/en-US.aff
27
lib/palemoon/dictionaries/en-US.dic
28
lib/palemoon/gtk2/libmozgtk.so
29
lib/palemoon/icudt58l.dat
30
lib/palemoon/libfreebl3.chk
31
lib/palemoon/libfreebl3.so
32
lib/palemoon/liblgpllibs.so
33
lib/palemoon/libmozavcodec.so
34
lib/palemoon/libmozavutil.so
35
lib/palemoon/libmozgtk.so
36
lib/palemoon/libmozsqlite3.so
37
lib/palemoon/libnspr4.so
38
lib/palemoon/libnss3.so
39
lib/palemoon/libnssckbi.so
40
lib/palemoon/libnssutil3.so
41
lib/palemoon/libplc4.so
42
lib/palemoon/libplds4.so
43
lib/palemoon/libsmime3.so
44
lib/palemoon/libsoftokn3.chk
45
lib/palemoon/libsoftokn3.so
46
lib/palemoon/libssl3.so
47
lib/palemoon/libxul.so
48
lib/palemoon/palemoon
49
lib/palemoon/palemoon-bin
50
lib/palemoon/palemoon.res
51
lib/palemoon/platform.ini
52
lib/palemoon/plugin-container
53
lib/palemoon/precomplete
54
lib/palemoon/removed-files
55
lib/palemoon/run-mozilla.sh
56
share/applications/palemoon.desktop
57
share/pixmaps/palemoon.png

Return to bug 251117