| @@ -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 | |
3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} | | 3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} |
4 | MOZ_BRANCH= 116.0 | | 4 | MOZ_BRANCH= 116.0 |
5 | MOZ_BRANCH_MINOR= | | 5 | MOZ_BRANCH_MINOR= |
6 | | | 6 | |
7 | DISTNAME= firefox-${FIREFOX_VER}.source | | 7 | DISTNAME= firefox-${FIREFOX_VER}.source |
8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} | | 8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} |
9 | PKGREVISION= 1 | | 9 | PKGREVISION= 1 |
10 | CATEGORIES= www | | 10 | CATEGORIES= www |
11 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} | | 11 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} |
12 | MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/} | | 12 | MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/} |
13 | EXTRACT_SUFX= .tar.xz | | 13 | EXTRACT_SUFX= .tar.xz |
14 | | | 14 | |
15 | NODEJSKIT= nodejs-output-116.0.tgz | | 15 | NODEJSKIT= nodejs-output-116.0.tgz |
16 | DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT} | | 16 | DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT} |
17 | SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL} | | 17 | SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL} |
18 | | | 18 | |
19 | MAINTAINER= ryoon@NetBSD.org | | 19 | MAINTAINER= ryoon@NetBSD.org |
20 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ | | 20 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ |
21 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) | | 21 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) |
22 | LICENSE= mpl-1.1 | | 22 | LICENSE= 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 | |
49 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} | | 49 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} |
50 | | | 50 | |
51 | MOZILLA_DIR= # empty | | 51 | MOZILLA_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 |
55 | CONFIGURE_ARGS+= --enable-application=browser | | 55 | CONFIGURE_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 |
59 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS | | 59 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS |
60 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS | | 60 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS |
61 | # Do not use uselocale() in third_party/pipewire. | | 61 | # Do not use uselocale() in third_party/pipewire. |
62 | CFLAGS.NetBSD+= -D__LOCALE_C_ONLY | | 62 | CFLAGS.NetBSD+= -D__LOCALE_C_ONLY |
63 | | | 63 | |
64 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} | | 64 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} |
65 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib | | 65 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib |
66 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 | | 66 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 |
67 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 | | 67 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 |
68 | LDFLAGS.Linux+= -lnspr4 | | 68 | LDFLAGS.Linux+= -lnspr4 |
69 | LDFLAGS.SunOS+= -lm | | 69 | LDFLAGS.SunOS+= -lm |
70 | | | 70 | |
71 | # XXX not sure how to test this! likely unnecessary | | 71 | # XXX not sure how to test this! likely unnecessary |
72 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container | | 72 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container |
73 | # Should revisit to complete mprotect support. | | 73 | # Should revisit to complete mprotect support. |
74 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox | | 74 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox |
75 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin | | 75 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin |
76 | | | 76 | |
77 | # Avoid ld "invalid section index" errors. | | 77 | # Avoid ld "invalid section index" errors. |
78 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections | | 78 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections |
79 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections | | 79 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections |
80 | BUILDLINK_TRANSFORM.SunOS+= rm:-pie | | 80 | BUILDLINK_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 |
83 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager | | 83 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager |
84 | | | 84 | |
85 | SUBST_CLASSES+= dfly_malloc_h | | 85 | SUBST_CLASSES+= dfly_malloc_h |
86 | SUBST_STAGE.dfly_malloc_h= pre-configure | | 86 | SUBST_STAGE.dfly_malloc_h= pre-configure |
87 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd | | 87 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd |
88 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' | | 88 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' |
89 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c | | 89 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c |
90 | | | 90 | |
| | | 91 | SUBST_CLASSES+= paths |
| | | 92 | SUBST_STAGE.paths= pre-configure |
| | | 93 | SUBST_FILES.paths= ../firefox.sh |
| | | 94 | SUBST_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 | |
94 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py | | 99 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py |
95 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py | | 100 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py |
96 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py | | 101 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py |
97 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py | | 102 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py |
98 | | | 103 | |
99 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja | | 104 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja |
100 | | | 105 | |
101 | MOZILLA= ${PKGBASE} | | 106 | MOZILLA= ${PKGBASE} |
102 | | | 107 | |
103 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) | | 108 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) |
104 | MOZILLA_NAME= Firefox | | 109 | MOZILLA_NAME= Firefox |
105 | MOZILLA_BRANDING= official | | 110 | MOZILLA_BRANDING= official |
106 | .else | | 111 | .else |
107 | MOZILLA_NAME= Browser | | 112 | MOZILLA_NAME= Browser |
108 | MOZILLA_BRANDING= unofficial | | 113 | MOZILLA_BRANDING= unofficial |
109 | .endif | | 114 | .endif |
110 | | | 115 | |
111 | pre-configure: | | 116 | pre-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 |
127 | build-list: | | 132 | build-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 | |
131 | NODE_LIST= "${WRKDIR}/node.list" | | 136 | NODE_LIST= "${WRKDIR}/node.list" |
132 | NO_NODE_LIST= "${WRKDIR}/no-node.list" | | 137 | NO_NODE_LIST= "${WRKDIR}/no-node.list" |
133 | NODE_FILES= "${WRKDIR}/node.flist" | | 138 | NODE_FILES= "${WRKDIR}/node.flist" |
134 | | | 139 | |
135 | .PHONY: maintainer-files | | 140 | .PHONY: maintainer-files |
136 | maintainer-files: | | 141 | maintainer-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 | |
154 | pre-patch: | | 159 | pre-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 | |
160 | post-build: | | 165 | post-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 | |
167 | INSTALLATION_DIRS+= share/applications | | 172 | INSTALLATION_DIRS+= share/applications |
168 | | | 173 | |
| | | 174 | post-extract: |
| | | 175 | ${CP} ${FILESDIR}/firefox.sh ${WRKDIR}/firefox.sh |
| | | 176 | |
169 | post-install: | | 177 | post-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" |