Warning, /pim/kitinerary/scripts/README.md is written in an unsupported language. File is not indexed.

0001 # Static extractor executable build
0002 
0003 For use e.g. as part of Nextcloud it can be useful to build a fully static executable binary.
0004 
0005 This is done by the `static-extractor` Gitlab job, the scripts in this folder are the implementation detail of that job.
0006 
0007 ## Supported platforms
0008 
0009 Anything x86_64 with GLIBC 2.17 or newer.
0010 
0011 ## Deployment
0012 
0013 The extractor needs external data in the form of translation catalogs and iso-codes files. Those are provided
0014 in the same archive as the binary, and need to be placed in the same relative location to the binary to be found.
0015 
0016 Alternatively, they can be placed in a path listed in the `XDG_DATA_DIRS` environment variable.
0017 
0018 ## Translations
0019 
0020 When using the iCal output format, translations are relevant. This is done using Gettext and thus follows the
0021 environment variables that influence that (`LANG`, `LANGUAGE`, `LC_ALL`, etc).
0022 
0023 This also implies that Glibc locale data has to be installed on the system, Gettext will not work without those.
0024 
0025 ## Local builds
0026 
0027 If you want to locally reproduce the same build, this can be done by running the commands from the build scripts in the
0028 order specified in `.gitlab-ci.yml` in an environment set up like follows:
0029 
0030 ```
0031 docker run -it --rm centos:centos7
0032 export CI_PROJECT_PATH=pim/kitinerary
0033 export BUILD_ROOT=/builds
0034 export STAGING_ROOT=/builds/staging
0035 ```
0036 
0037 Optionally, map a local folder into `/builds` in the Docker image to retain the checkouts and build results. This
0038 is particularly useful when debugging/optimizing the build itself.
0039 
0040 ## Future Work
0041 
0042 Ideally this would reuse the static build artifacts produced by the CI already anyway, and reuse the
0043 existing dependency mechanism of the CI.