Wed Aug 16 10:41:36 2023 UTC ()
Substitute PREFIX in NetBSD wrapper

Fix my previous workaround for NetBSD GL issue to correctly
substitute PREFIX rather than hard coded /usr/pkg


(abs)
diff -r1.565 -r1.566 pkgsrc/www/firefox/Makefile
diff -r1.4 -r1.5 pkgsrc/www/firefox/files/firefox.sh

cvs diff -r1.565 -r1.566 pkgsrc/www/firefox/Makefile (switch to unified diff)

--- pkgsrc/www/firefox/Makefile 2023/08/14 05:25:29 1.565
+++ pkgsrc/www/firefox/Makefile 2023/08/16 10:41:35 1.566
@@ -1,188 +1,196 @@ @@ -1,188 +1,196 @@
1# $NetBSD: Makefile,v 1.565 2023/08/14 05:25:29 wiz Exp $ 1# $NetBSD: Makefile,v 1.566 2023/08/16 10:41:35 abs Exp $
2 2
3FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} 3FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
4MOZ_BRANCH= 116.0 4MOZ_BRANCH= 116.0
5MOZ_BRANCH_MINOR=  5MOZ_BRANCH_MINOR=
6 6
7DISTNAME= firefox-${FIREFOX_VER}.source 7DISTNAME= firefox-${FIREFOX_VER}.source
8PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} 8PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
9PKGREVISION= 1 9PKGREVISION= 1
10CATEGORIES= www 10CATEGORIES= www
11MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} 11MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
12MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/} 12MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}
13EXTRACT_SUFX= .tar.xz 13EXTRACT_SUFX= .tar.xz
14 14
15NODEJSKIT= nodejs-output-116.0.tgz 15NODEJSKIT= nodejs-output-116.0.tgz
16DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT} 16DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT}
17SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL} 17SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL}
18 18
19MAINTAINER= ryoon@NetBSD.org 19MAINTAINER= ryoon@NetBSD.org
20HOMEPAGE= https://www.mozilla.org/en-US/firefox/ 20HOMEPAGE= https://www.mozilla.org/en-US/firefox/
21COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) 21COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//})
22LICENSE= mpl-1.1 22LICENSE= mpl-1.1
23 23
24# -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: ------- 24# -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: -------
25# 25#
26# This package works around a (stupid) build time dependency on nodejs 26# This package works around a (stupid) build time dependency on nodejs
27# (which is not available for all architectures and unnecessary for the 27# (which is not available for all architectures and unnecessary for the
28# real build). To do this, it places some additional burden on the 28# real build). To do this, it places some additional burden on the
29# maintainer. 29# maintainer.
30# 30#
31# While working on the package, please make sure you have 31# While working on the package, please make sure you have
32# 32#
33# FIREFOX_MAINTAINER=yes 33# FIREFOX_MAINTAINER=yes
34# 34#
35# set in your build environment. 35# set in your build environment.
36# When the package is ready for commit (but before commit), do: 36# When the package is ready for commit (but before commit), do:
37# 37#
38# make maintainer-files 38# make maintainer-files
39# 39#
40# This will do another round (depending on state of your work dir at this 40# This will do another round (depending on state of your work dir at this
41# moment) of one or two builds and generate a cache of all output that 41# moment) of one or two builds and generate a cache of all output that
42# nodejs generates during a build. 42# nodejs generates during a build.
43# 43#
44# When this is done, just commit the results (they will be in the files/ 44# When this is done, just commit the results (they will be in the files/
45# directory). 45# directory).
46# 46#
47# ----------------------------------------------------------------------- 47# -----------------------------------------------------------------------
48 48
49WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} 49WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//}
50 50
51MOZILLA_DIR= # empty 51MOZILLA_DIR= # empty
52 52
53# Note: In --enable-chrome-format=flat case, 53# Note: In --enable-chrome-format=flat case,
54# when updating remember to conditionalise about-background.png in PLIST 54# when updating remember to conditionalise about-background.png in PLIST
55CONFIGURE_ARGS+= --enable-application=browser 55CONFIGURE_ARGS+= --enable-application=browser
56 56
57#CFLAGS+= -I${PREFIX}/include/nspr 57#CFLAGS+= -I${PREFIX}/include/nspr
58# for lang/gcc6 58# for lang/gcc6
59CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS 59CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
60CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS 60CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS
61# Do not use uselocale() in third_party/pipewire. 61# Do not use uselocale() in third_party/pipewire.
62CFLAGS.NetBSD+= -D__LOCALE_C_ONLY 62CFLAGS.NetBSD+= -D__LOCALE_C_ONLY
63 63
64LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} 64LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE}
65LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib 65LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib
66LDFLAGS.DragonFly+= -lplc4 -lnspr4 66LDFLAGS.DragonFly+= -lplc4 -lnspr4
67LDFLAGS.FreeBSD+= -lplc4 -lnspr4 67LDFLAGS.FreeBSD+= -lplc4 -lnspr4
68LDFLAGS.Linux+= -lnspr4 68LDFLAGS.Linux+= -lnspr4
69LDFLAGS.SunOS+= -lm 69LDFLAGS.SunOS+= -lm
70 70
71# XXX not sure how to test this! likely unnecessary 71# XXX not sure how to test this! likely unnecessary
72NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container 72NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container
73# Should revisit to complete mprotect support. 73# Should revisit to complete mprotect support.
74NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox 74NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox
75NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin 75NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin
76 76
77# Avoid ld "invalid section index" errors. 77# Avoid ld "invalid section index" errors.
78BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections 78BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections
79BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections 79BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections
80BUILDLINK_TRANSFORM.SunOS+= rm:-pie 80BUILDLINK_TRANSFORM.SunOS+= rm:-pie
81 81
82# Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366 82# Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366
83BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager 83BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager
84 84
85SUBST_CLASSES+= dfly_malloc_h 85SUBST_CLASSES+= dfly_malloc_h
86SUBST_STAGE.dfly_malloc_h= pre-configure 86SUBST_STAGE.dfly_malloc_h= pre-configure
87SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd 87SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd
88SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' 88SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g'
89SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c 89SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c
90 90
 91SUBST_CLASSES+= paths
 92SUBST_STAGE.paths= pre-configure
 93SUBST_FILES.paths= ../firefox.sh
 94SUBST_VARS.paths= PREFIX MOZILLA
 95
91.include "mozilla-common.mk" 96.include "mozilla-common.mk"
92.include "options.mk" 97.include "options.mk"
93 98
94CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py 99CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py
95CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py 100CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py
96CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py 101CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py
97CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py 102CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py
98 103
99CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja 104CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja
100 105
101MOZILLA= ${PKGBASE} 106MOZILLA= ${PKGBASE}
102 107
103.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) 108.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
104MOZILLA_NAME= Firefox 109MOZILLA_NAME= Firefox
105MOZILLA_BRANDING= official 110MOZILLA_BRANDING= official
106.else 111.else
107MOZILLA_NAME= Browser 112MOZILLA_NAME= Browser
108MOZILLA_BRANDING= unofficial 113MOZILLA_BRANDING= unofficial
109.endif 114.endif
110 115
111pre-configure: 116pre-configure:
112# As of 106.0, .in template files are not patched. 117# As of 106.0, .in template files are not patched.
113# cd ${WRKSRC} && autoconf 118# cd ${WRKSRC} && autoconf
114# cd ${WRKSRC}/js/src && autoconf 119# cd ${WRKSRC}/js/src && autoconf
115 cd ${WRKSRC} && mkdir ${OBJDIR} 120 cd ${WRKSRC} && mkdir ${OBJDIR}
116 cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars 121 cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
117# Do not fetch Rust Cargo file via network during build 122# Do not fetch Rust Cargo file via network during build
118.if !defined(FIREFOX_MAINTAINER) 123.if !defined(FIREFOX_MAINTAINER)
119 mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR} 124 mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR}
120.endif 125.endif
121 126
122.if defined(FIREFOX_MAINTAINER) 127.if defined(FIREFOX_MAINTAINER)
123# Create files needed only by the firefox maintainer when updating 128# Create files needed only by the firefox maintainer when updating
124# the package 129# the package
125# XXX - manually removing the .*_done files is wrong! 130# XXX - manually removing the .*_done files is wrong!
126.PHONY: build-list 131.PHONY: build-list
127build-list: 132build-list:
128 cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \ 133 cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \
129 find . -type f | sort > ${OUT:Q} 134 find . -type f | sort > ${OUT:Q}
130 135
131NODE_LIST= "${WRKDIR}/node.list" 136NODE_LIST= "${WRKDIR}/node.list"
132NO_NODE_LIST= "${WRKDIR}/no-node.list" 137NO_NODE_LIST= "${WRKDIR}/no-node.list"
133NODE_FILES= "${WRKDIR}/node.flist" 138NODE_FILES= "${WRKDIR}/node.flist"
134 139
135.PHONY: maintainer-files 140.PHONY: maintainer-files
136maintainer-files: 141maintainer-files:
137 rm -f ${FILESDIR}/node-wrapper.sh 142 rm -f ${FILESDIR}/node-wrapper.sh
138 V=$$( node -v ) && \ 143 V=$$( node -v ) && \
139 printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \ 144 printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \
140 > ${FILESDIR}/node-wrapper.sh && \ 145 > ${FILESDIR}/node-wrapper.sh && \
141 chmod 0755 ${FILESDIR}/node-wrapper.sh 146 chmod 0755 ${FILESDIR}/node-wrapper.sh
142 rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done 147 rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done
143 ${MAKE} MAINTAINER_INTERNAL=yes build 148 ${MAKE} MAINTAINER_INTERNAL=yes build
144 ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list 149 ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list
145 ${MAKE} OUT="${NODE_LIST}" build-list 150 ${MAKE} OUT="${NODE_LIST}" build-list
146 ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \ 151 ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \
147 ${AWK} \ 152 ${AWK} \
148 '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \ 153 '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \
149 > "${NODE_FILES}" 154 > "${NODE_FILES}"
150 cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \ 155 cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \
151 -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz 156 -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz
152.endif 157.endif
153 158
154pre-patch: 159pre-patch:
155 for f in $$(find ${WRKSRC}/third_party/libwebrtc -name moz.build -type f) ; \ 160 for f in $$(find ${WRKSRC}/third_party/libwebrtc -name moz.build -type f) ; \
156 do \ 161 do \
157 ${AWK} -f ${FILESDIR}/replace-moz.build.awk $$f > $$f.new; mv $$f.new $$f ; \ 162 ${AWK} -f ${FILESDIR}/replace-moz.build.awk $$f > $$f.new; mv $$f.new $$f ; \
158 done 163 done
159 164
160post-build: 165post-build:
161 ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \ 166 ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \
162 -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \ 167 -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \
163 -e 's|@FIREFOX_ICON@|${MOZILLA}|g' \ 168 -e 's|@FIREFOX_ICON@|${MOZILLA}|g' \
164 < ${FILESDIR}/desktop.in \ 169 < ${FILESDIR}/desktop.in \
165 > ${WRKDIR}/desktop 170 > ${WRKDIR}/desktop
166 171
167INSTALLATION_DIRS+= share/applications 172INSTALLATION_DIRS+= share/applications
168 173
 174post-extract:
 175 ${CP} ${FILESDIR}/firefox.sh ${WRKDIR}/firefox.sh
 176
169post-install: 177post-install:
170.if ${OPSYS} == "NetBSD" && ${X11_TYPE} == "native" 178.if ${OPSYS} == "NetBSD" && ${X11_TYPE} == "native"
171 ${INSTALL_SCRIPT} ${FILESDIR}/firefox.sh ${DESTDIR}${PREFIX}/bin/${MOZILLA} 179 ${INSTALL_SCRIPT} ${WRKDIR}/firefox.sh ${DESTDIR}${PREFIX}/bin/${MOZILLA}
172.else 180.else
173 ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA} 181 ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA}
174 ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \ 182 ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \
175 ${DESTDIR}${PREFIX}/bin/${MOZILLA} 183 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
176 ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA} 184 ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
177.endif 185.endif
178 ${INSTALL_DATA} ${WRKDIR}/desktop \ 186 ${INSTALL_DATA} ${WRKDIR}/desktop \
179 ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop 187 ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
180.for i in 16 22 24 32 48 64 128 256 188.for i in 16 22 24 32 48 64 128 256
181 ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps 189 ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps
182 ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \ 190 ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \
183 ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png 191 ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png
184.endfor 192.endfor
185 193
186.include "../../graphics/hicolor-icon-theme/buildlink3.mk" 194.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
187.include "../../sysutils/desktop-file-utils/desktopdb.mk" 195.include "../../sysutils/desktop-file-utils/desktopdb.mk"
188.include "../../mk/bsd.pkg.mk" 196.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.5 pkgsrc/www/firefox/files/firefox.sh (switch to unified diff)

--- pkgsrc/www/firefox/files/firefox.sh 2023/08/07 19:37:23 1.4
+++ pkgsrc/www/firefox/files/firefox.sh 2023/08/16 10:41:35 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1#!/bin/sh 1#!/bin/sh
2if [ -f /usr/X11R7/lib/libEGL.so ] && [ -z "$LD_PRELOAD" ] && \ 2if [ -f /usr/X11R7/lib/libEGL.so ] && [ -z "$LD_PRELOAD" ] && \
3 nm /usr/X11R7/lib/libGL.so | grep -Fq "B _glapi_tls_Dispatch"; then 3 nm /usr/X11R7/lib/libGL.so | grep -Fq "B _glapi_tls_Dispatch"; then
4 # Workaround for PR#57445/50277 for netbsd-9 & netbsd-10 pre 2023-08-05 4 # Workaround for PR#57445/50277 for netbsd-9 & netbsd-10 pre 2023-08-05
5 # This may not avoid a crash 100% of the time, but changes at least some 5 # This may not avoid a crash 100% of the time, but changes at least some
6 # cases of 100% crash on startup to "have not yet seen crash on startup" 6 # cases of 100% crash on startup to "have not yet seen crash on startup"
7 echo "Applying libEGL LD_PRELOAD workaround for NetBSD" >&2 7 echo "Applying libEGL LD_PRELOAD workaround for NetBSD" >&2
8 export LD_PRELOAD=/usr/X11R7/lib/libEGL.so 8 export LD_PRELOAD=/usr/X11R7/lib/libEGL.so
9 # Note that there is an _additional_ issue with firefox >= 111 that 9 # Note that there is an _additional_ issue with firefox >= 111 that
10 # needs to be addressed, and that is worked around by disabling webgl 10 # needs to be addressed, and that is worked around by disabling webgl
11 # by default, but it's not even worth looking at that on a system without 11 # by default, but it's not even worth looking at that on a system without
12 # the fixed libGL 12 # the fixed libGL
13fi 13fi
14exec /usr/pkg/lib/firefox/firefox "$@" 14exec @PREFIX@/lib/@MOZILLA@/@MOZILLA@ "$@"