Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:building_the_standalone_client [2011/04/17 21:14]
rmzelle [Building the Standalone Client]
dev:building_the_standalone_client [2017/11/12 19:53] (current)
Line 1: Line 1:
-====== Building ​the Standalone Client ======+<​html><​p id="​zotero-5-update-warning"​ style="​color:​ red; font-weight:​ bold">​We’re 
 +in the process of updating the documentation for 
 +<a href="​https://​www.zotero.org/​blog/​zotero-5-0">​Zotero 5.0</​a>​. Some documentation 
 +may be outdated in the meantime. Thanks for your understanding.</​p></​html>​
  
-After initial inquiry in a Zotero [[http://​forums.zotero.org/​discussion/​15700/​how-to-migrate-from-firefox/​|forum thread]], and some trial-and-error,​ I was able to build the Zotero Standalone client from source using the [[building_the_standalone_client#​bash scriptlet|bash scriptlet]] shown below). The main things I needed to learn were: 
  
-  - Location of the source: https://www.zotero.org/​svn/​standalone/​trunk/​ +See [[dev/client coding/Building the Standalone Client]].
-  - Location of build script: the root directory of the source contains the ''​build_sa''​ bash script +
-  - Build prerequisites +
-    - Tools: ''​subversion'',​ ''​bash''​ and ''​perl''​ +
-    - Non-source inputs: XULRunner. ''​build_sa''​ mentions a requirement for XULRunner runtime 2.0.*. However, Ubuntu does not package a 2.x XULRunner before 11.04, which is currently pre-release. For now, Pre-release xulrunner-2.x runtimes can be obtained from http://​ftp.mozilla.org/​pub/​mozilla.org/​xulrunner/​nightly/​latest-trunk/​. ''​build_sa''​ states implicitly that it requires separate runtimes for each target architecture,​ and expects to find each such runtime in a directory with a conventional name (see bash scriptlet below). +
-  - Build control: ''​build_sa''​ uses no config file, takes no arguments, and is non-interactive. ''​build_sa''​ will build one or more of the target OSs (''​linux'',​ ''​mac''​ or ''​win32''​),​ but it decides which architectures are built for each. +
-  - Location of the build: ''​${BUILD_PATH}/​Zotero_${BUILD_ARCH}/​zotero''​ (found with ''​ls -alt ${BUILD_PATH} $(find -executable -type f) | grep -ve '​.so$'''​). +
- +
-===== Bash Scriptlet ===== +
- +
-I automated a build on 64-bit Ubuntu with the following bash scriptlet:​ +
- +
-<​code>​START="​$(date)"​ +
-# edit following vars as desired for your build +
-DOWNLOAD_ROOT="/​tmp/​xulrunner"​ +
-BUILD_ARCH="​linux-x86_64"​ +
-BUILD_ROOT="​${HOME}/​bin/​zotero/​standalone"​ +
-BUILD_DIR="​20101228"​ +
-BUILD_PATH="​${BUILD_ROOT}/​${BUILD_DIR}"​ +
-BUILD_SCRIPT="​build_sa"​ +
-BUILD_SCRIPT_BAK="​${BUILD_SCRIPT}.0"​ +
-XULR_SOURCE_ROOT="​http://​ftp.mozilla.org/​pub/​mozilla.org/​xulrunner/​nightly/​latest-trunk"​ +
-XULR_TARGET_PATH="​${BUILD_PATH}/​xulrunner_${BUILD_ARCH}"​ +
-XULR_VERSION="​2.0b9pre.en-US"​ +
-XULR_CHECKSUMS_NAME="​xulrunner-${XULR_VERSION}.${BUILD_ARCH}.checksums"​ +
-XULR_CHECKSUMS_SOURCE="​${XULR_SOURCE_ROOT}/​${XULR_CHECKSUMS_NAME}"​ +
-XULR_CHECKSUMS_TARGET="​${DOWNLOAD_ROOT}/​${XULR_CHECKSUMS_NAME}"​ +
-XULR_ARCHIVE_NAME="​xulrunner-${XULR_VERSION}.${BUILD_ARCH}.tar.bz2"​ +
-XULR_ARCHIVE_SOURCE="​${XULR_SOURCE_ROOT}/​${XULR_ARCHIVE_NAME}"​ +
-XULR_ARCHIVE_TARGET="​${DOWNLOAD_ROOT}/​${XULR_ARCHIVE_NAME}"​ +
-ZOTERO_SOURCE_ROOT="​https://​www.zotero.org/​svn/​standalone/​trunk/"​ +
-ZOTERO_TARGET_EXEC="​${BUILD_PATH}/​Zotero_${BUILD_ARCH}/​zotero"​ +
- +
-# setup xulrunner +
-# download xulrunner +
-mkdir -p ${DOWNLOAD_ROOT} +
-wget -O ${XULR_CHECKSUMS_TARGET} ${XULR_CHECKSUMS_SOURCE} +
-wget -O ${XULR_ARCHIVE_TARGET} ${XULR_ARCHIVE_SOURCE} +
-# verify xulrunner +
-pushd ${DOWNLOAD_ROOT} +
-# sha512sum -c < ${XULR_CHECKSUMS_TARGET} +
-# fails with +
-# > sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# I tried (offline) some other invocations,​ which similarly all failed +
-# $ sha512sum -c < /​tmp/​xulrunner/​xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ pushd ${DOWNLOAD_ROOT} +
-# $ sha512sum -c < ${XULR_CHECKSUMS_NAME} +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ sha512sum -c < xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ sha512sum -c xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: xulrunner-2.0b9pre.en-US.linux-x86_64.checksums:​ no properly formatted SHA512 checksum lines found +
-# unpack xulrunner +
-tar xjf ${XULR_ARCHIVE_NAME} +
-mkdir -p ${BUILD_PATH} +
-# ASSERT: archives expand to ./​xulrunner +
-mv ./xulrunner ${XULR_TARGET_PATH} +
-popd +
- +
-# setup sources, including script +
-# checkout sources +
-pushd ${BUILD_ROOT} +
-svn co ${ZOTERO_SOURCE_ROOT} ${BUILD_DIR} +
-popd +
-pushd ${BUILD_PATH} +
-# backup unhacked build script +
-cp ${BUILD_SCRIPT} ${BUILD_SCRIPT_BAK} +
-chmod 444 ${BUILD_SCRIPT_BAK} +
-# hack build script to build only linux +
-chmod 755 ${BUILD_SCRIPT} +
-sed -si '​s/​BUILD_MAC=1/​BUILD_MAC=0/​g'​ ${BUILD_SCRIPT} +
-sed -si '​s/​BUILD_WIN32=1/​BUILD_WIN32=0/​g'​ ${BUILD_SCRIPT} +
-sed -si '​s/​BUILD_LINUX=0/​BUILD_LINUX=1/​g'​ ${BUILD_SCRIPT} +
-diff -u ${BUILD_SCRIPT_BAK} ${BUILD_SCRIPT} +
- +
-# CHECK: you should see stdout like +
-# --- build_sa.0 ​ 2010-12-28 16:​45:​21.000000000 -0500 +
-# +++ build_sa ​   2010-12-28 16:​45:​21.000000000 -0500 +
-# @@ -1,7 +1,7 @@ +
-#  #​!/​bin/​bash +
-# -BUILD_MAC=1 +
-# +BUILD_MAC=0 +
-#  BUILD_WIN32=0 +
-# -BUILD_LINUX=0 +
-# +BUILD_LINUX=1 +
- +
-# build +
-BUILD_START="​$(date)"​ +
-./​${BUILD_SCRIPT} +
-echo -e "​build ​  ​end=$(date)"​ +
-echo -e "build start=${BUILD_START}"​ +
- +
-# run the built sa +
-${ZOTERO_TARGET_EXEC} & +
-echo -e " ​ end=$(date)"​ +
-echo -e "​start=${START}"</​code>​ +
- +
-The (penultimate) build step produced the output +
- +
-<​code>​Getting latest Zotero revision +
-Got Zotero r7528 +
-Building ​translators.zip +
-Building styles.zip +
-Retrieving Zotero OpenOffice.org Integration +
-Building Zotero_linux-i686 +
-# several errors here, as I did not have the xulrunner for this arch +
-Building Zotero_linux-x86_64</​code>​ +
- +
-The run step puts up a Zotero window similar to that normally seen in Firefox. When initially run separately from the terminal, it produced the output +
- +
-<​code>​$ ./​Zotero_linux-x86_64/​zotero & +
-ERROR: There is no such extension deployed: org.Zotero.integration.openoffice +
-unopkg failed.</​code>​ +
- +
-but I have not observed that subsequently. +
- +
-Unfortunately I don't currently know how to test the build (much less on how to use it with Chrome) aside from the following smoketest: if I +
-  - Run the executable (e.g., ''​${ZOTERO_TARGET_EXEC}'',​ ''​./​Zotero_linux-x86_64/​zotero''​). +
-  - Wait for the Zotero window, then select "​Zotero Quick Start" in the center column. +
-  - Hit button=View in the right column. +
- +
-a browser launches and and opens the [[/​support/​quick_start_guide|quick start guide]]. That's comforting, but I'd prefer to know: +
- +
-  - Is there a more extensive test suite? E.g., what do the Zotero development team do pre-commit?​ +
-  - How to load up my own (backed up) Zotero data (from my Firefox profile, or wherever else it might be) and do actual work?+
dev/building_the_standalone_client.txt · Last modified: 2017/11/12 19:53 (external edit)