Hi, since the update to enigmail 1.2, thunderbird and seamonkey are built twice, once for themselves and once for the corresponding enigmail extension. This is a bit awkward as it makes the build longer.. so here's a basic diff which integrates enigmail into thunderbird port, so that it's built/packaged as a subpackage of thunderbird. @pkgpath/@conflict markers allow for seamless upgrades.
I'd like feedback on the diff itself, it seems to work fine after some testing here. If the feedback is positive, of course i'll do the same for seamonkey, and then garbage collect mail/enigmail. Landry
? .git ? .gitignore ? enigmail.jar ? enigmail.jar2 ? make-xpi ? make-xpi2 Index: Makefile =================================================================== RCS file: /cvs/ports/mail/mozilla-thunderbird/Makefile,v retrieving revision 1.130 diff -u -r1.130 Makefile --- Makefile 24 Jul 2011 07:10:12 -0000 1.130 +++ Makefile 26 Jul 2011 11:36:17 -0000 @@ -2,6 +2,7 @@ COMMENT-main = Mozilla e-mail, rss and usenet client COMMENT-lightning = Mozilla Thunderbird calendar extension +COMMENT-enigmail = Mozilla Thunderbird GnuPG extension BROKEN-sparc64 = https://bugzilla.mozilla.org/show_bug.cgi?id=577056 # Don't forget to bump mail/thunderbird-i18n after updates. @@ -12,11 +13,18 @@ MOZILLA_PROJECT = thunderbird MOZILLA_CODENAME = mail -MULTI_PACKAGES = -main -lightning +MULTI_PACKAGES = -main -lightning -enigmail PKGNAME-main = ${PKGNAME} PKGNAME-lightning = lightning-1.0beta4 +PKGNAME-enigmail = enigmail-1.2 +REVISION-enigmail = 0 EPOCH-lightning = 0 +MASTER_SITES0 = http://www.mozilla-enigmail.org/download/source/ +DISTFILES += ${MOZILLA_PROJECT}-${MOZILLA_VERSION}.source.tar.bz2 \ + enigmail-1.2.tar.gz:0 +EXTRACT_CASES = enigmail-*.tar.gz) ${GZIP_CMD} -dc ${FULLDISTDIR}/$$archive | tar -C comm-${MOZILLA_BRANCH}/mailnews/extensions/ -xf -;; + # need to be in synch with SO_VERSION in mail/enigmail/thunderbird SO_VERSION = 18.0 # NOTE: Must bump minor version if any shlib's are removed from the @@ -24,7 +32,7 @@ # bumped and/or SO_VERSION changes, remember to update enigmail's # SO_VERSION and LIB_DEPENDS to match. -MOZILLA_LIBS = ldap60 ldif60 mozalloc prldap60 xpcom xul calbasecomps +MOZILLA_LIBS = ldap60 ldif60 mozalloc prldap60 xpcom xul calbasecomps enigmime ipc #.if ${FLAVOR:L:Mdebug} #MOZILLA_LIBS += addrbook bayesflt fts3tok mailview mime mimeemitter msgbase \ @@ -65,6 +73,10 @@ c m stdc++ nspr4 plc4 plds4 BUILD_DEPENDS += archivers/unzip #to unzip xpi +RUN_DEPENDS-enigmail = security/gnupg +LIB_DEPENDS-enigmail = ${LIB_DEPENDS-lightning} +WANTLIB-enigmail = ${WANTLIB-lightning} + # build lightning xpi CONFIGURE_ARGS += --enable-calendar \ --enable-official-branding @@ -74,10 +86,22 @@ MOZILLA_AUTOCONF_DIRS = ldap/sdks/c-sdk mozilla mozilla/js/src MOZILLA_SUBST_FILES += config/autoconf.mk.in +ENIGMAIL_DIR = ${WRKSRC}/mailnews/extensions/enigmail + +post-build: + # build enigmail + cd ${ENIGMAIL_DIR} && ./makemake -r + cd ${ENIGMAIL_DIR} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} + cd ${MOB}/chrome/enigmail && zip -r ../enigmail.jar . + cd ${ENIGMAIL_DIR} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} xpi + +GNU_ARCH = ${MACHINE_ARCH:S/amd64/x86_64/} # guid for gdata-provider comes from em:id in install.rdf GUIDS = gdata-provider {a62ef8ec-5fdc-40c2-873c-223b8a6925cc} \ lightning {e2fda1a4-762b-4020-b5ad-a41df1933103} \ - calendar-timezones calendar-timezo...@mozilla.org + calendar-timezones calendar-timezo...@mozilla.org \ + ../bin/enigmail-1.2-openbsd-${GNU_ARCH} {847b3a00-7ab1-11d4-8f02-006008948af5} + EXTDIR = ${PREFIX}/lib/${_MOZ_PROJECT_SHORT}-${MOZILLA_VERSION}/extensions/ post-install: .for xpi guid in ${GUIDS} Index: distinfo =================================================================== RCS file: /cvs/ports/mail/mozilla-thunderbird/distinfo,v retrieving revision 1.45 diff -u -r1.45 distinfo --- distinfo 24 Jul 2011 07:10:12 -0000 1.45 +++ distinfo 26 Jul 2011 11:36:17 -0000 @@ -1,5 +1,10 @@ +MD5 (mozilla/enigmail-1.2.tar.gz) = +LoVFkrcHA6DKFghRkYa7A== MD5 (mozilla/thunderbird-5.0.source.tar.bz2) = C7rOpUtLj8T/IOc7MnjBug== +RMD160 (mozilla/enigmail-1.2.tar.gz) = hoxzqihWaJXUtsa5y/RgLXXfCnM= RMD160 (mozilla/thunderbird-5.0.source.tar.bz2) = aOgwcei6AKIPBW1kvpyGHcuOYOo= +SHA1 (mozilla/enigmail-1.2.tar.gz) = BfuAqZVE+Vv6JTHmzVysjPHnh4A= SHA1 (mozilla/thunderbird-5.0.source.tar.bz2) = OSw+DvcLYsKaVD+IsrjVpRv+aac= +SHA256 (mozilla/enigmail-1.2.tar.gz) = 5eUWhdCetah70h+AtLZO64111kJLIc/q6nucFnI8nMQ= SHA256 (mozilla/thunderbird-5.0.source.tar.bz2) = uxhY3ETh6fkrRKHq+UVhkNVbSFz2VDUmaEgwCsK3xd4= +SIZE (mozilla/enigmail-1.2.tar.gz) = 1326482 SIZE (mozilla/thunderbird-5.0.source.tar.bz2) = 86637589 Index: patches/patch-mailnews_extensions_enigmail_genxpi =================================================================== RCS file: patches/patch-mailnews_extensions_enigmail_genxpi diff -N patches/patch-mailnews_extensions_enigmail_genxpi --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-mailnews_extensions_enigmail_genxpi 26 Jul 2011 11:36:17 -0000 @@ -0,0 +1,32 @@ +$OpenBSD$ +Remove ABI=xxx marker and xpcomAbi from lib naming. +--- mailnews/extensions/enigmail/genxpi.orig Sun Jul 24 20:58:41 2011 ++++ mailnews/extensions/enigmail/genxpi Sun Jul 24 20:58:42 2011 +@@ -62,7 +62,7 @@ cd "$cwd" + if [ "$xpcomAbi" = "" ] ; then + xpcomAbi="unknown" + fi +-platform=${osArch}_${xpcomAbi} ++platform=${osArch} + # Pepare install.rdf + sed 's/<!-- targetPlatform placeholder -->/<em:targetPlatform>'${platform}'<\/em:targetPlatform>/' < ${srcDir}/package/install.rdf > ${targetDir}/install.rdf.t1 + +@@ -74,14 +74,14 @@ if [ ${platform} = OS2_x86-gcc3 ]; then + enigDllFile=platform/${platform}/components/${enigmimeDll} + ipcDllFile=platform/${platform}/components/${ipcDll} + else +- enigDllFile=platform/${platform}/components/${libPrefix}enigmime-${xpcomAbi}${dllSuffix} +- ipcDllFile=platform/${platform}/components/${libPrefix}ipc-${xpcomAbi}${dllSuffix} ++ enigDllFile=platform/${platform}/components/${libPrefix}enigmime${dllSuffix} ++ ipcDllFile=platform/${platform}/components/${libPrefix}ipc${dllSuffix} + fi + + # Prepare chrome.manifest + cat ${srcDir}/package/chrome.manifest | \ +-sed 's/##ENIGMIMEDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${enigDllFile}`' ABI='${platform}'/' | \ +-sed 's/##IPCDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${ipcDllFile}`' ABI='${platform}'/' \ ++sed 's/##ENIGMIMEDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${enigDllFile}`'/' | \ ++sed 's/##IPCDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${ipcDllFile}`'/' \ + > ${targetDir}/chrome.manifest + + # Prepare languages other than en-US Index: pkg/DESCR-enigmail =================================================================== RCS file: pkg/DESCR-enigmail diff -N pkg/DESCR-enigmail --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/DESCR-enigmail 26 Jul 2011 11:36:17 -0000 @@ -0,0 +1,2 @@ +Enigmail is an extension to Mozilla Thunderbird which allows users to +access the authentication and encryption features provided by GnuPG. Index: pkg/PLIST-enigmail =================================================================== RCS file: pkg/PLIST-enigmail diff -N pkg/PLIST-enigmail --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ pkg/PLIST-enigmail 26 Jul 2011 11:36:17 -0000 @@ -0,0 +1,32 @@ +@comment $OpenBSD$ +@conflict enigmail-<=1.2 +@pkgpath mail/enigmail/thunderbird +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/chrome/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/chrome.manifest +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/chrome/enigmail.jar +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/enigMsgCompFields.js +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/enigmail.js +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/enigmail.xpt +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/enigmime.xpt +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/enigprefs-service.js +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/components/ipc.xpt +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/defaults/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/defaults/pref/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/defaults/pref/enigmail.js +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/defaults/preferences/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/defaults/preferences/enigmail.js +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/install.rdf +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/modules/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/modules/commonFuncs.jsm +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/modules/enigmailCommon.jsm +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/modules/subprocess.jsm +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/platform/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/platform/OpenBSD/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/platform/OpenBSD/components/ +@lib lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/platform/OpenBSD/components/libenigmime.so.${LIBenigmime_VERSION} +@lib lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/platform/OpenBSD/components/libipc.so.${LIBipc_VERSION} +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/wrappers/ +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/wrappers/gpg-agent-wrapper.sh +lib/${MOZILLA_PROJECT}-${MOZILLA_VERSION}/extensions/{847b3a00-7ab1-11d4-8f02-006008948af5}/wrappers/gpg-wrapper.sh