Bug 1518166 - Include libotr and dependencies from build artifacts.

Copy libotr libraries from $MOZ_FETCHES_DIR to objdir/dist/bin during the
libs phase of the build process.
Update package-manifest.in accordingly do it's included in the final package.

This step is configured so that it only runs when building on Taskcluster.
It's expected that distributions packaging their own builds will have libotr
own libotr package and will not need to have it bundled.

--HG--
extra : rebase_source : 3984421242743d268ce965b90b37226af80072af
extra : histedit_source : 987102e2527e1e0cc89b0be95ee68db08705d380
This commit is contained in:
Rob Lemley 2020-01-23 17:20:44 -05:00
Родитель 5607c7aa2f
Коммит 16d0359290
6 изменённых файлов: 88 добавлений и 0 удалений

Просмотреть файл

@ -170,6 +170,10 @@ ifdef CLANG_CL
DEFINES += -DCLANG_CL
endif
ifdef TB_LIBOTR_PREBUILT
DEFINES += -DTB_LIBOTR_PREBUILT
endif
libs::
$(MAKE) -C $(commtopobjdir)/mail/locales langpack

Просмотреть файл

@ -221,6 +221,24 @@
; Thunderbird specific
@RESPATH@/@PREF_DIR@/all-im.js
; OTR libraries
#ifdef TB_LIBOTR_PREBUILT
#ifdef XP_WIN
@BINPATH@/libotr-5.dll
@BINPATH@/libgcrypt-20.dll
@BINPATH@/libssp-0.dll
#ifdef _AMD64_
@BINPATH@/libgpg-error6-0.dll
#else
@BINPATH@/libgpg-error-0.dll
#endif
#elif defined(XP_MACOSX)
@BINPATH@/libotr.5.dylib
#elif defined(XP_LINUX)
@BINPATH@/libotr.so.5
#endif
#endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Chrome Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Просмотреть файл

@ -21,6 +21,8 @@ if CONFIG['MAKENSISU']:
if CONFIG['MOZ_BUNDLED_FONTS']:
DIRS += ['/%s/browser/fonts' % CONFIG['mozreltopsrcdir']]
DIRS += ['../third_party']
TEST_DIRS += [
'test/browser',
'test/marionette',

Просмотреть файл

@ -80,6 +80,22 @@ with only_when(target_is_linux & compile_environment):
set_config('MOZ_NO_PIE_COMPAT',
depends_if('MOZ_NO_PIE_COMPAT')(lambda _: True))
@depends('MOZ_AUTOMATION')
@imports(_from='os', _import='environ')
@imports(_from='six', _import='ensure_text')
def pkg_libotr(automation):
if automation:
fetch_dir = environ.get('MOZ_FETCHES_DIR', None)
if fetch_dir:
log.info('Including libotr from {}'.format(fetch_dir))
return ensure_text(fetch_dir)
log.info('TB_LIBOTR_PREBUILT is set, but MOZ_FETCHES_DIR is invalid.')
set_config('TB_LIBOTR_PREBUILT', pkg_libotr)
set_config('MOZ_TELEMETRY_EXTRA_HISTOGRAM_FILES', ['/comm/mail/components/telemetry/Histograms.json'])
set_config('MOZ_TELEMETRY_EXTRA_SCALAR_FILES', ['/comm/mail/components/telemetry/Scalars.yaml'])
set_config('MOZ_TELEMETRY_EXTRA_EVENT_FILES', ['/comm/mail/components/telemetry/Events.yaml'])

38
third_party/Makefile.in поставляемый Normal file
Просмотреть файл

@ -0,0 +1,38 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include $(moztopsrcdir)/config/config.mk
include $(moztopsrcdir)/config/rules.mk
print-%: ; @echo $* is $($*)
origin-%: ; @echo $* origin $(origin $*)
ifdef TB_LIBOTR_PREBUILT
ifeq (WINNT,$(OS_ARCH))
ifdef HAVE_64BIT_BUILD
OTR_LIBS := libgpg-error6-0.dll
else
OTR_LIBS := libgpg-error-0.dll
endif
OTR_LIBS += libgcrypt-20.dll \
libotr-5.dll \
libssp-0.dll
endif
ifeq (Darwin,$(OS_ARCH))
OTR_LIBS := libotr.5.dylib
endif
ifeq (Linux,$(OS_ARCH))
OTR_LIBS := libotr.so.5
endif
OTR_LIB_PATHS := $(foreach otrlib,$(OTR_LIBS),$(TB_LIBOTR_PREBUILT)/$(otrlib))
libs:: $(OTR_LIB_PATHS)
$(NSINSTALL) -t -m 755 $(OTR_LIB_PATHS) $(DIST)/bin
endif ## TB_LIBOTR_PREBUILT

10
third_party/moz.build поставляемый Normal file
Просмотреть файл

@ -0,0 +1,10 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
if CONFIG['TB_LIBOTR_PREBUILT']:
DEFINES['TB_LIBOTR_PREBUILT'] = CONFIG['TB_LIBOTR_PREBUILT']
if CONFIG['HAVE_64BIT_BUILD']:
DEFINES['HAVE_64BIT_BUILD'] = True