From 63055b78ace4d65d934c883bf17693ae1d05bcd1 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Wed, 7 May 2014 18:06:29 +0200 Subject: [PATCH] Stage support for mozilla --- Mk/bsd.gecko.mk | 111 +++++++-------------------------------------------- www/firefox/Makefile | 14 ++----- www/libxul/Makefile | 4 +- 3 files changed, 20 insertions(+), 109 deletions(-) diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk index e69fe46..794aab5 100644 --- a/Mk/bsd.gecko.mk +++ b/Mk/bsd.gecko.mk @@ -36,10 +36,6 @@ Gecko_Pre_Include= bsd.gecko.mk # dependencies. Experimental deps use '+' like # 'USE_MOZILLA= +speex +theora'. # -# GECKO_PLIST_PRE_FILES Manual add files in the plist if it needs. -# -# GECKO_PLIST_PRE_DIRS Manual directories in the plist if it needs. -# # MOZILLA_PLIST_DIRS List of directories to descend into when installing # and creating the plist # @@ -77,11 +73,6 @@ Gecko_Pre_Include= bsd.gecko.mk # PORT_MOZCONFIG Defaults to ${FILESDIR}/mozconfig.in, but can be # set to a generic mozconfig included with the port # -# NOGECKO_INSTALL Don't install the built gecko (most likely for -# testing) -# -# NOGECKO_PLIST Don't create a dynamically-generated playlist -# # NOMOZCONFIG Don't drop a customized .mozconfig into the build # directory. Options will have to be specified in # CONFIGURE_ARGS instead @@ -94,18 +85,13 @@ MOZILLA_VER?= ${PORTVERSION} MOZILLA_BIN?= ${PORTNAME}-bin MOZILLA_EXEC_NAME?=${MOZILLA} MOZ_RPATH?= ${MOZILLA} -USE_GNOME+= desktopfileutils -USES+= compiler:c++11-lib gmake iconv perl5 pkgconfig +USES+= compiler:c++11-lib gmake iconv perl5 pkgconfig desktop-file-utils USE_PERL5= build USE_XORG= xext xrender xt -NO_STAGE= yes - MOZILLA_SUFX?= none MOZSRC?= ${WRKSRC} WRKSRC?= ${WRKDIR}/mozilla -FAKEDIR?= ${WRKDIR}/fake -PLIST?= ${WRKDIR}/plist PLISTD?= ${WRKDIR}/plist_dirs PLISTF?= ${WRKDIR}/plist_files @@ -129,7 +115,7 @@ MOZ_PKGCONFIG_FILES?= ${MOZILLA}-gtkmozembed ${MOZILLA}-js \ MOZ_EXPORT+= ${CONFIGURE_ENV} \ LIBS="${LIBS}" PERL="${PERL}" -MOZ_OPTIONS+= --prefix="${FAKEDIR}" +MOZ_OPTIONS+= --prefix="${PREFIX}" CPPFLAGS+= -isystem${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -Wl,-rpath,${PREFIX}/lib/${MOZILLA} @@ -436,7 +422,6 @@ MOZ_SED_ARGS+= -e's|@CPPFLAGS@|${CPPFLAGS}|g' \ -e 's|@LDFLAGS@|${LDFLAGS}|g' \ -e 's|@LIBS@|${LIBS}|g' \ -e 's|@LOCALBASE@|${LOCALBASE}|g' \ - -e 's|@FAKEDIR@|${FAKEDIR}|g' \ -e 's|@PERL@|${PERL5}|g' \ -e 's|@MOZDIR@|${PREFIX}/lib/${MOZILLA}|g' \ -e 's|%%PREFIX%%|${PREFIX}|g' \ @@ -444,7 +429,6 @@ MOZ_SED_ARGS+= -e's|@CPPFLAGS@|${CPPFLAGS}|g' \ -e 's|%%LDFLAGS%%|${LDFLAGS}|g' \ -e 's|%%LIBS%%|${LIBS}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ - -e 's|%%FAKEDIR%%|${FAKEDIR}|g' \ -e 's|%%PERL%%|${PERL5}|g' \ -e 's|%%MOZILLA%%|${MOZILLA}|g' \ -e 's|%%MOZILLA_BIN%%|${MOZILLA_BIN}|g' \ @@ -602,103 +586,36 @@ post-configure: gecko-post-configure gecko-post-configure: @${ECHO_CMD} "#define JNIIMPORT" >> ${MOZSRC}/mozilla-config.h -pre-install: gecko-moz-pis-pre-install gecko-pre-install port-pre-install gecko-create-plist +pre-install: gecko-moz-pis-pre-install +post-install-script: gecko-create-plist -.if !target(port-pre-install) -port-pre-install: - @${DO_NADA} -.endif +gecko-create-plist: port-post-install -gecko-pre-install: -.if !defined(NOGECKO_PLIST) - @${RM} -rf ${FAKEDIR} ${PLIST} ${PLISTD} ${PLISTF} - @${TOUCH} -f ${PLIST} ${PLISTD} ${PLISTF} - @cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \ - ${MAKEFILE} ${MAKE_ARGS} prefix=${FAKEDIR} ${INSTALL_TARGET} -.if defined(MOZILLA_SUFX) && ${MOZILLA_SUFX}!="none" - ${MV} ${FAKEDIR}/bin/${MOZILLA_EXEC_NAME:S/${MOZILLA_SUFX}//} ${FAKEDIR}/bin/${MOZILLA} -.if exists(${FAKEDIR}/bin/${MOZILLA_EXEC_NAME:S/${MOZILLA_SUFX}//}-config) - ${MV} ${FAKEDIR}/bin/${MOZILLA_EXEC_NAME:S/${MOZILLA_SUFX}//}-config ${FAKEDIR}/bin/${MOZILLA}-config -.endif -.for pc in ${MOZ_PKGCONFIG_FILES:S|${MOZILLA_SUFX}||} - ${SED} -e 's|Requires: ${MOZILLA:S/${MOZILLA_SUFX}//}|Requires: ${MOZILLA}|' \ - ${FAKEDIR}/lib/pkgconfig/${pc}.pc > ${FAKEDIR}/lib/pkgconfig/${pc:S/${MOZILLA:S,${MOZILLA_SUFX},,}/${MOZILLA}/}.pc -.endfor - @${REINPLACE_CMD} -e 's|${MOZILLA_BIN}|${MOZILLA:S/${MOZILLA_SUFX}//}|; \ - s|$${progbase}-bin|${MOZILLA:S/${MOZILLA_SUFX}//}-bin|' \ - -e 's|${FAKEDIR}|${PREFIX}|g' \ - -i '' $$(${REALPATH} ${FAKEDIR}/bin/${MOZILLA}*) -.else - @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ - -i '' $$(${REALPATH} ${FAKEDIR}/bin/${MOZILLA_EXEC_NAME}*) -.endif +.if !target(port-post-install) +port-post-install: + @${DO_NADA} .endif gecko-create-plist: -.if !defined(NOGECKO_PLIST) # Create the plist -.for f in ${GECKO_PLIST_PRE_FILES} - ${ECHO_CMD} ${f} >> ${PLISTF} -.endfor -.for f in ${GECKO_PLIST_PRE_DIRS} - ${ECHO_CMD} "@dirrm ${f}" >> ${PLISTD} -.endfor - ${MKDIR} ${FAKEDIR}/libdata - ${MV} -f ${FAKEDIR}/lib/pkgconfig ${FAKEDIR}/libdata/ || ${TRUE} - ${RM} -f ${FAKEDIR}/lib/pkgconfig + ${RM} -f ${PLISTF} ${PLISTD} .for dir in ${MOZILLA_PLIST_DIRS} - @cd ${FAKEDIR}/${dir} && ${FIND} -H -s * ! -type d | \ + @cd ${STAGEDIR}${PREFIX}/${dir} && ${FIND} -H -s * ! -type d | \ ${SED} -e 's|^|${dir}/|' >> ${PLISTF} && \ ${FIND} -d * -type d | \ ${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLISTD} .endfor -.for pcfile in ${MOZ_PKGCONFIG_FILES} - ${ECHO_CMD} "libdata/pkgconfig/${pcfile}.pc" >> ${PLISTF} - @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ - -e 's|${MOZILLA}-nspr = ${PORTVERSION}|nspr|' \ - ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc -.endfor - ${CAT} ${PLISTF} | ${SORT} >> ${PLIST} - ${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST} - ${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST} - ${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST} -.endif # !defined(NOGECKO_PLIST) - -do-install: gecko-do-install - -gecko-do-install: -.if !defined(NOGECKO_INSTALL) -.for dir in ${MOZILLA_PLIST_DIRS} -.if !exists(${PREFIX}/${dir}) - ${MKDIR} ${PREFIX}/${dir} -.endif - ${TAR} cf - -C${FAKEDIR}/${dir} -s'|${FAKEDIR}|${PREFIX}|s' . | \ - ${TAR} xof - -C${PREFIX}/${dir} -.endfor -.for pcfile in ${MOZ_PKGCONFIG_FILES} - ${INSTALL_DATA} ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc \ - ${PREFIX}/libdata/pkgconfig/${pcfile}.pc -.endfor -.endif # !defined(NOGECKO_INSTALL) + ${CAT} ${PLISTF} | ${SORT} >> ${TMPPLIST} + ${CAT} ${PLISTD} | ${SORT} -r >> ${TMPPLIST} gecko-moz-pis-pre-install: .if defined(MOZ_PIS_SCRIPTS) - ${MKDIR} ${FAKEDIR}/${MOZ_PIS_DIR} + ${MKDIR} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .for moz in ${MOZ_PIS_SCRIPTS} - ${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${FAKEDIR}/${MOZ_PIS_DIR} + ${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${STAGEDIR}${PREFIX}/${MOZ_PIS_DIR} .endfor .endif -post-install: gecko-post-install - -gecko-post-install: -.if !defined(PACKAGE_BUILDING) && !defined(NO_MOZPKGINSTALL) - @if [ -e ${PKGINSTALL} ] ; then \ - ${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL; \ - fi -.endif - @-update-desktop-database - .endif .endif # HERE THERE BE TACOS -- adamw diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 4a37b24..f2117c6 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -43,9 +43,8 @@ USE_QT4= # empty QT_NONSTANDARD= yes ALL_TARGET= default GNU_CONFIGURE= yes -USE_BZIP2= yes USE_GL= gl -USES= dos2unix +USES= dos2unix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp NO_MOZPKGINSTALL=yes @@ -100,14 +99,9 @@ pre-configure: (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) -port-pre-install: - ${ECHO_CMD} 'share/applications/${MOZILLA}.desktop' >> ${PLISTF} - ${ECHO_CMD} 'share/pixmaps/${FIREFOX_ICON}' >> ${PLISTF} - post-install: - ${MKDIR} ${PREFIX}/share/pixmaps - ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${PREFIX}/share/applications/ - ${LN} -sf ${FIREFOX_ICON_SRC} ${PREFIX}/share/pixmaps/${FIREFOX_ICON} - @${CAT} ${PKGMESSAGE} + ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps + ${INSTALL_DATA} ${WRKDIR}/${MOZILLA}.desktop ${STAGEDIR}${PREFIX}/share/applications/ + ${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON} .include diff --git a/www/libxul/Makefile b/www/libxul/Makefile index 37db744..bf64f76 100644 --- a/www/libxul/Makefile +++ b/www/libxul/Makefile @@ -38,7 +38,7 @@ WANT_PERL= yes ALL_TARGET= default GNU_CONFIGURE= yes USE_GL= gl -USES= dos2unix tar:bzip2 +USES= dos2unix pathfix tar:bzip2 DOS2UNIX_FILES= media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp MAKE_ENV= SKIP_GRE_REGISTRATION=1 mozappdir=${PREFIX}/lib/${MOZILLA} LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} @@ -50,7 +50,7 @@ USE_GECKO= gecko OBJDIR_BUILD= # in-tree build broken after bug 789837 MOZILLA_EXEC_NAME=xulrunner USE_MOZILLA= # empty -MOZILLA_PLIST_DIRS= bin include lib share/idl +MOZILLA_PLIST_DIRS= bin include lib share/idl libdata PLIST_DIRSTRY= share/idl MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \ mozilla-plugin -- 1.9.2