forked from flathub/org.sil.FieldWorks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathorg.sil.FieldWorks.yml
793 lines (780 loc) · 33.6 KB
/
org.sil.FieldWorks.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
# FieldWorks Flatpak package build specification
#
# Copyright (c) 2021 SIL International. MIT License.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
app-id: org.sil.FieldWorks
# org.gnome.Platform provides some pieces that we would need to manually specify
# if we use org.freedesktop.Platform.
runtime: org.gnome.Platform
runtime-version: "3.36"
sdk: org.gnome.Sdk
finish-args:
- --socket=x11
- --share=ipc
# FieldWorks can synchronize project data over the network with other users.
- --share=network
# FieldWorks allows playing sound files and playing and recording in audio
# writing systems.
- --socket=pulseaudio
# FieldWorks can import language and dictionary data, restore from backup
# files, and link to pictures or other media to appear in a dictionary.
# Users need to save project data, project backups, Encoding Converter
# configurations, and configuration and settings of FieldWorks and included
# components.
# Users need to be able to export dictionaries to arbitrary locations.
- --filesystem=host
# FieldWorks writes temporary reports to /tmp, to open in a browser to show
# the user, such as regarding the import process. Use the same /tmp as the
# host, so the host browser can find the files.
- --filesystem=/tmp
# As a language-documentation tool, FieldWorks allows a user to assign
# specific keyboard input methods to specific writing systems, and then
# automatically switches between those keyboards when the user moves between
# fields for the different writing systems. For example, writing a lexeme form
# in the vernacular language, and then using the analysis language in the
# gloss field. This feature uses the desktop environment's list of defined
# keyboard input methods, as well as notifying the desktop environment about
# what keyboard was switched to.
# Allow interacting with Gnome Shell keyboard switcher.
- --talk-name=org.gnome.Shell
# Allow launching of keyboard configuration tools, such as Keyman
# Configration, and gnome-control-center to the input sources area.
# Allow querying ibus preload-engines list of keyboards.
# Allow applying user keyboard mapping modifications.
- --talk-name=org.freedesktop.Flatpak
# FieldWorks uses FlexBridge to synchronize data over the network or by USB
# Flash Drives. FlexBridge queries for avaliable USB Flash Drives using
# the system bus.
- --system-talk-name=org.freedesktop.Udisks2
command: fieldworks-flex
rename-desktop-file: fieldworks-applications.desktop
rename-icon: fieldworks-flex
modules:
- name: fieldworks
buildsystem: simple
build-options:
env:
PREFIX: "/app"
PERL5LIB: "/app/perl-modules/lib/perl5"
MONO_PREFIX: "/app"
MONO_SILPKGDIR: "/app"
NUGET_DEST: "fw/packages"
FW_ROOT_PATH: "/run/build/fieldworks/fw"
INSTALLATION_PREFIX: "/app"
RUNMODE: "PACKAGING"
# BUILD_CONFIG settings include Debug and Release.
BUILD_CONFIG: "Release"
# BUILD_TYPE settings include d and r.
BUILD_TYPE: r
build-commands:
- |
set -xueo pipefail
# Apply outstanding FwBuildTasks code changes, if any.
cd ${FW_ROOT_PATH}/Build/Src/FwBuildTasks
${FW_ROOT_PATH}/Build/run-in-environ msbuild
cd ${FW_ROOT_PATH}
Build/run-in-environ make \
BUILD_TYPE=${BUILD_TYPE} \
BUILD_CONFIG=${BUILD_CONFIG} \
disableDownloads=true \
build-package-for-flatpak
perl -pi -e \
'/<runtime>/ and s/^/ <dllmap dll="libdl.so" target="libdl.so.2" \/>\n/' \
$(find "${FW_ROOT_PATH}" -name SIL.LCModel.Core.dll.config)
cd ${FW_ROOT_PATH}
Build/run-in-environ make \
BUILD_TYPE=${BUILD_TYPE} \
BUILD_CONFIG=${BUILD_CONFIG} \
disableDownloads=true \
install-for-flatpak
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: git
dest: fw
url: https://github.com/sillsdev/FieldWorks.git
# Branch support/9.0
commit: 72ef5ff294561540a685ac70784fafe248d99661
- type: git
# liblcm is cloned for use during localization. But the actual liblcm
# assemblies used are fetched separately.
dest: liblcm
url: https://github.com/sillsdev/liblcm.git
# Branch master
commit: 6a6ed9bbe8433352769d6909079fe54b77368b99
- type: git
dest: libcom
url: https://github.com/sillsdev/libcom.git
# Branch develop
tag: fieldworks-9.0.17
commit: 035225805e477061e9a2d72180a96bcaa7cc1952
- type: git
dest: fw/DistFiles/Helps
url: https://github.com/sillsdev/FwHelps.git
# Branch support/9.0
tag: FieldWorks9.0.17
commit: 02c9b5b0fd293e883b4d19be8439905595189ac1
- type: git
dest: fw/Localizations
url: https://github.com/sillsdev/FwLocalizations.git
# Branch develop
tag: FieldWorks9.0.17
commit: 6d09370772ecd99f3efbe776c55c6561d1b7af88
- type: file
url: https://github.com/sillsdev/FwLocalizations/releases/download/v9.1.9-beta-2-g5e94970/crowdin.zip
sha512: 84e809b7452e6b16d9a44c21080da4ef5a7eb6d6613f2702bb131400ddf0197446cc2382c51147fd423838de7fed71797fbe05b1b4e4e0d5a2819e3c16916f9f
dest: fw/Downloads/
dest-filename: Crowdin.zip
# FW nuget dependencies
# Preview updates via FieldWorks.git:
# git log -p -- Build/nuget-{common,linux}/packages.config
# To regenerate input sources:
# ./compose-nuget-sources fieldworks-sources-nuget-linux.yml . ../fw/Build/nuget-linux/packages.config
# ./compose-nuget-sources fieldworks-sources-nuget-common.yml . ../fw/Build/nuget-common/packages.config
- fieldworks-sources-nuget-common.yml
- fieldworks-sources-nuget-linux.yml
- type: shell
# Extract nuget packages. The 'type: archive', 'archive-type: zip' had
# some trouble working, so manually extract.
commands:
- |
for package in *.nupkg; do
mkdir -p "${NUGET_DEST}/$(basename "${package}" .nupkg)" &&
unzip "${package}" \
-d "${NUGET_DEST}/$(basename "${package}" .nupkg)"
done
# FW dependencies
# Find updates via FieldWorks.git with a command like:
# git log -p FieldWorks9.0.13..FieldWorks9.0.16 -- Build/mkall.targets
# Manually apply changes by editing fieldworks-sources-urls-input.yml.
# Regenerate input sources:
# ./compose-url-sources fieldworks-sources-urls-input.yml fieldworks-sources-urls.yml
- fieldworks-sources-urls.yml
modules:
- name: libboost
buildsystem: simple
build-options:
prefix: /app
config-opts:
- --prefix=/app
build-commands:
- ./bootstrap.sh
- ./b2 install variant=release --prefix=/app
cleanup:
# Don't ship.
- "*"
sources:
- type: archive
url: https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2
sha512: b7937d50c4512cf13cadd0ca829de36cf2cbc6fb788f45b1d4565ad0753e2b206c545125a5862016c2f16016f2e4a6b687928963b466fff17c3e0a4437142c20
- name: dbus-glib
# For Gecko.
cleanup:
- "/share/gtk-doc"
- "/include"
- "*.a"
sources:
- type: git
url: https://gitlab.freedesktop.org/dbus/dbus-glib.git
tag: dbus-glib-0.110
commit: ffeb6909967ff79585a7ede85227da94f04ecb01
- name: libxklavier
buildsystem: autotools
cleanup:
- "/include"
- "*.a"
sources:
- type: git
url: https://gitlab.freedesktop.org/archived-projects/libxklavier.git
tag: libxklavier-5.4
commit: 396955bd2ba2db34a42b3807b03155fcc11dfe50
- type: patch
# From https://sources.debian.org/patches/libxklavier/5.4-4/0001-autogen.sh-Drop-intltool-requirement.patch/
path: patches/libxklavier/0001-autogen.sh-Drop-intltool-requirement.patch
- name: gtkmm2.4
config-opts:
- --disable-documentation
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: archive
url: https://download.gnome.org/sources/gtkmm/2.24/gtkmm-2.24.5.tar.xz
sha256: 0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09fc4dd2f5fe6b72
modules:
- shared-modules/gtk2/gtk2.json
- name: atkmm1.6
buildsystem: meson
config-opts:
- -Dbuild-documentation=false
- -Dbuild-demos=false
- -Dbuild-tests=false
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: git
url: https://gitlab.gnome.org/GNOME/atkmm.git
tag: "2.28.1"
commit: 5d8721c5619b0d9c904f669f712db1d9ca7107f9
modules:
- name: glibmm
buildsystem: meson
config-opts:
- -Dbuild-documentation=false
- -Dbuild-demos=false
- -Dbuild-tests=false
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
- "*.la"
sources:
- type: git
url: https://gitlab.gnome.org/GNOME/glibmm.git
tag: "2.64.2"
commit: e775940669cb6d93f37ddc2b4cd7da446dfa482c
modules:
- name: libsigc++-2.0
config-opts:
- --disable-documentation
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: git
url: https://github.com/libsigcplusplus/libsigcplusplus.git
tag: "2.10.2"
commit: 06fabac512bf81164d5b01f877927cb39e9db864
modules:
- name: mm-common
buildsystem: meson
cleanup:
- "*"
sources:
- type: archive
url: https://download.gnome.org/sources/mm-common/1.0/mm-common-1.0.2.tar.xz
sha256: a2a99f3fa943cf662f189163ed39a2cfc19a428d906dd4f92b387d3659d1641d
- name: pangomm
buildsystem: meson
config-opts:
- -Dbuild-documentation=false
- -Dbuild-demos=false
- -Dbuild-tests=false
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: git
url: https://gitlab.gnome.org/GNOME/pangomm.git
tag: "2.42.1"
commit: 7dfc6c3372faaa4a7c492d08f09881b02095145b
modules:
- name: cairomm
config-opts:
- --disable-documentation
- --disable-demos
- --disable-tests
cleanup:
- "/include"
- "/lib/*/include"
- "*.a"
sources:
- type: git
url: https://github.com/freedesktop/cairomm.git
# Branch cairomm-1-12
commit: e9ef515b7b8db5b4f024ddfefe5dfc03f2b8ccea
- name: wget
buildsystem: autotools
cleanup:
# Don't ship.
- "*"
sources:
- type: archive
url: https://ftp.gnu.org/gnu/wget/wget-1.20.3.tar.gz
sha512: e8b82b40e270296228094a78d47f81580bdbdea9e6b93fd61b37dccb39430aeb9bda5397dc53a31c952a61629383c7e2a8c8abf414c8a4dd369af6ecf2717e6c
- name: gnome-desktop
# For keyboarding
buildsystem: meson
config-opts:
- -Ddesktop_docs=false
- -Ddebug_tools=false
- -Dudev=disabled
sources:
- type: git
url: https://gitlab.gnome.org/GNOME/gnome-desktop.git
# Branch gnome-3-36
commit: d0bd232482302a28ff444c27c91b0bf82bb7f365
- name: mono5-sil
cleanup:
# Not cleaning away lib/mono/4.5/mcs* because mcs.exe is used in SFM import.
- "/include"
- "*.a"
- "/bin/gtk-demo"
- "/bin/monodis"
- "/bin/monograph"
- "/bin/pedump"
- "/lib/mono/2*"
- "/lib/mono/3*"
- "/lib/mono/4.5/dim"
- "/lib/mono/4.5/Microsoft.CodeAnalysis.*"
- "/lib/mono/gac/Microsoft.Build.Engine"
- "/lib/mono/gac/Microsoft.Build"
- "/lib/mono/gac/monodoc"
- "/lib/mono/msbuild"
- "/lib/mono/xbuild-frameworks"
- "/lib/mono/xbuild"
- "/lib/monodoc"
sources:
- type: git
url: https://github.com/sillsdev/mono.git
# Past sil/5.16.0.179
commit: 2672d16f8b3006a574a0108b6c324d7a090678b5
- type: archive
# Update URL by doing: cd .../path/to/mono-repo && .../determine-monolite-url
url: https://download.mono-project.com/monolite/monolite-linux-1051600011-latest.tar.gz
sha512: b48bb273f5a9107f9bb9795d47277aeaaeb458588a6e011676bb9a152b83759f305cf1031a5e74a62145854ef17026cb1aa20ea9adb5e6b15f275b9d6af585db
dest: mcs/class/lib/monolite-linux/1051600011
- type: patch
# mono uses a hard-coded path to ping. Help it find ping in /app.
path: patches/mono/mono-ping-path.patch
modules:
- name: python-2.7
# Build Python 2 without cleaning away parts that we still need,
# like shared-modules/python2.7 does.
config-opts:
- --enable-shared
- --with-system-expat
- --with-system-ffi
- --enable-unicode=ucs4
post-install:
- chmod 644 ${FLATPAK_DEST}/lib/libpython2.7.so.1.0
cleanup:
- "/lib/python2.7/test"
- "/lib/python2.7/unittest"
- "/lib/python2.7/distutils/tests"
- "/lib/python2.7/idlelib/idle_test"
- "/lib/python2.7/lib2to3"
- "/include"
- "*.a"
- "*.o"
sources:
- type: archive
url: https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
sha256: b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43
- name: gtk-sharp
config-opts:
- --disable-gtk-doc
- --disable-man
cleanup:
- "/lib/monodoc"
- "/include"
- "*.a"
sources:
- type: git
url: https://github.com/sillsdev/gtk-sharp.git
# Branch develop
commit: fcf1dd40d4892be309dd450bcda2026ddece4480
- type: script
commands:
- NOCONFIGURE=1 ./bootstrap-2.12
- name: mono5-sil-msbuild
# It was challenging to build msbuild from source. Other projects
# appear to fetch binaries rather than build msbuild. Following that.
buildsystem: simple
build-commands:
# Extract opt/mono5-sil/* into /app/
- |
for package in *.deb; do
mkdir "${package}-dir" &&
(cd "${package}-dir" && ar x ../"${package}") &&
tar -C /app -x -f "${package}-dir"/data.tar.xz \
--strip-components=3 ./opt/mono5-sil
done
# Use same-character-count path to /app since some binary files are
# going to be modified too.
- perl -pi -e 's#/opt/mono5-sil#/./././././app#g' /app/bin/*
cleanup:
# Can't clean '*' because that seems to result in /app/bin/mono being
# absent.
- "/lib/mono/msbuild"
- "/lib/mono/xbuild"
sources:
- type: file
url: http://linux.lsdev.sil.org/ubuntu/pool/main/m/mono5-sil-msbuild/mono5-sil-msbuild_15.8+xamarinxplat.2018.07.31.22.43-0xamarin5+ubuntu1804b1_all.deb
sha256: 758274d8bc438f325fc5fc808c0482ab50eb2bdaf02f61747888e190760753de
- name: libgdiplus
build-options:
prefix: /app
env:
MONO_PREFIX: /app
config-opts:
- --with-pango
cleanup:
- "/include"
- "*.a"
sources:
- type: git
url: https://github.com/sillsdev/libgdiplus
tag: merge/5.6.0
commit: b9c581ba87da89651d5ec56c5da0960ab739a63a
modules:
- name: giflib
buildsystem: simple
build-commands:
# Skip building documentation
- perl -pi -e 's#doc/Makefile##' configure.ac
- ./autogen.sh --prefix=/app
- make
- make install
cleanup:
- "/include"
- "*.a"
sources:
- type: git
url: https://github.com/mirrorer/giflib.git
commit: fa37672085ce4b3d62c51627ab3c8cf2dda8009a
# Note that libgdiplus needs giflib to have GifQuantizeBuffer.
# Some giflibs need adjustment to have that built in.
- name: icu-fw
# FW ICU should install to paths like
# /app/lib/fieldworks/lib/libicuuc.so . The FieldWorks build expects
# icu-config to be in icu-bin, such as in _init.mak.lnx and environ.
config-opts:
- --prefix=/app/lib/fieldworks
- --bindir=/app/lib/fieldworks/icu-bin
- --sbindir=/app/lib/fieldworks/icu-bin
subdir: source
cleanup:
- "/lib/*/include"
sources:
- type: git
url: https://github.com/sillsdev/icu.git
# Branch FieldWorks54
tag: v54.1.31-fw
commit: f648b14cd744202c24648c5f76847621721e1ae9
- name: encoding-converters
buildsystem: autotools
build-options:
prepend-ld-library-path: /app/lib/fieldworks/lib
env:
FIELDWORKS: "1"
PYTHON_VERSION: "2.7"
EC_DOWNLOAD_NUGETEXE: "false"
EC_DOWNLOAD_DEPS: "true"
# Even tho `pkg-config --libs python-2.7` gives
# '-L/app/lib -lpython2.7', we end up using
# '-L/app/lib/python2.7 -lpython2.7' and failing to find
# -lpython2.7. Override.
PYTHON_LDFLAGS: "-L/app/lib -lpython2.7"
REGROOT: "/app/share/encoding-converters"
config-opts:
- --prefix=/app
sources:
- type: git
url: https://github.com/silnrsi/encoding-converters-core.git
# Using branch master
commit: aee4ff72bd3894eba96de7978990061e36b4784c
- type: shell
# Encoding Converters expects a shared directory where multiple
# applications and even users can write shared data to. Previously
# the FieldWorks .deb package used /var/lib/fieldworks. Install
# initial files to PREFIX/share/encoding-converters and
# XDG_DATA_HOME will be used for an EC area to share among
# applications.
commands:
- |
set -xueo pipefail
# Adjust prefix of PluginDir and RootDir in registry file.
# Note: EncCnvtrs/AutoConfigDialog.cs wants to find a help file
# in a path specified by the RootDir registry key, but it
# doesn't look like that help file is even being installed for
# Linux. So it may not matter what the RootDir registry key
# value is set to, but set it to /app/lib/fieldworks in case.
perl -pi -e 's|/usr|/app|g' values.xml
perl -pi -e \
's|/usr/lib/fieldworks/icu-bin/icu-config|/app/lib/fieldworks/icu-bin/icu-config|' \
Makefile.in
- type: file
url: https://api.nuget.org/v3-flatcontainer/geckofx45.64.linux/45.0.21/geckofx45.64.linux.45.0.21.nupkg
sha512: d34f7175793bdfc4dcfa0b404bf7d6f2a27ba29389623a23c4d6383281fedf7f8014474775f4321af21ad9eab2817e5309934b81b918296fb518c23064272dfe
dest: nuget-sources/
dest-filename: Geckofx45.64.Linux.45.0.21.nupkg
- type: file
url: https://api.nuget.org/v3-flatcontainer/geckofx45.32.linux/45.0.21/geckofx45.32.linux.45.0.21.nupkg
sha512: 677c1dea32bd8631e859a7ddb2e72971a5db5561e9bc3ddced9a5bd451395f78719d3001b1cea908025707bb34175ecbc698c9ca965a44535bb4e9c83687832f
dest: nuget-sources/
dest-filename: Geckofx45.32.Linux.45.0.21.nupkg
- type: file
url: https://api.nuget.org/v3-flatcontainer/nunit/2.6.4/nunit.2.6.4.nupkg
sha512: e0510c05364d512d810d8bc5741462cb8eeef06b45101f81106f5489fd9f9987d07050320d4306c41c9bc76fe186735a8e3544be0b496dc416617cf0bdb99600
dest: nuget-sources/
dest-filename: NUnit.2.6.4.nupkg
- type: file
url: https://dist.nuget.org/win-x86-commandline/v3.4.4/nuget.exe
sha512: 3b404655c39cfc39334c8437ff2c7d6007e23262daa7bb34863fdd6f2e7da9a89ab97176a52b1e8a99327fde3e9decc29c450664492af73680f5a715a72aacf3
dest: build/
# Use local nuget packages
- type: inline
dest-filename: nuget.config
contents: |
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalNugetPackages" value="nuget-sources" />
</packageSources>
<disabledPackageSources>
<add key="nuget.org" value="true" />
</disabledPackageSources>
</configuration>
modules:
- name: teckit
cleanup:
- "/include"
- "*.a"
sources:
- type: git
url: https://github.com/silnrsi/teckit
tag: v2.5.10
commit: 1c510d4de7ff844207b1273e856fd27a15b3486d
- name: flexbridge
buildsystem: simple
build-options:
env:
PREFIX: /app
MONO_PREFIX: /app
MONO_SILPKGDIR: /app
CONFIGURATION: Release
XDG_DATA_HOME: xdg-data-home
build-commands:
- |
set -xueo pipefail
pushd nuget-specific
for package in *.nupkg; do
mkdir -p "../packages/$(basename "${package}" .nupkg)"
unzip "${package}" \
-d "../packages/$(basename "${package}" .nupkg)"
done
popd
# Use the same version of geckofx used by FieldWorks (in
# FieldWorks.git Build/nuget-linux/packages.config ).
perl -pi -e 's#.*Geckofx60.32.*##' src/FLExBridge/FLExBridge.csproj
perl -pi -e \
's#.*Geckofx60.64.*#<PackageReference Include="Geckofx45.64.Linux" Version="45.0.36" />#' \
src/FLExBridge/FLExBridge.csproj
make process_l10ns
msbuild \
-p:Configuration=${CONFIGURATION} \
-p:DisableGitVersionTask=true \
-p:GitVersion_SemVer=1.0.0 \
-p:Version=1.0.0 \
-p:WriteVersionInfoToBuildLog=false \
build/FLExBridge.proj
# Fix path on fixutf8 extension
perl -ni -e 'print unless /^fixutf8/' Mercurial/mercurial.ini
tee --append Mercurial/mercurial.ini <<< \
"fixutf8=/app/lib/flexbridge/MercurialExtensions/fixutf8/fixutf8.py"
# Help hg find python (in /app).
perl -pi -e 's#/usr/bin/python#/usr/bin/env python#' Mercurial/hg
make install-core
sources:
- type: git
url: https://github.com/sillsdev/flexbridge.git
# Branch develop
commit: 7dbc684697944d59fad7f091f5266f99d1a289a9
- type: file
# To update: Choose a new l10n artifact at
# https://github.com/sillsdev/flexbridge/releases , possibly after
# running the localizations GHA.
url: https://github.com/sillsdev/flexbridge/releases/download/l10n-v3.3.0-38-gf6ef2ba8/FieldWorksL10ns.zip
sha512: d395f26be1ef1777351e5515e34a3f7004d126590b00049aa5ec03d7ab392af60a26bce31a6af16a9eefdb5e79854f8bf24d40a61aed214558b3f35041b53149
dest: l10n/
- type: file
url: https://dist.nuget.org/win-x86-commandline/v5.9.0/nuget.exe
sha512: 980b62387ce9540eff0d49ef6dd5b4da121a8648646a465bc6445534e9ec0d7605483fad933b26f9b0b3797db4d4b1ec82ed354b3daf13e1dcc0818292815dca
dest: build/
# These nuget packages are installed by build/FLExBridge.proj by
# directly running nuget.exe. To update: Check on what current
# packages and versions are needed with
# `grep NuGetCommand build/FLExBridge.proj`. Then manually edit the
# yml to change or add.
# Note that attempting to install
# SIL.Windows.Forms.GeckoBrowserAdapter results in it trying to
# identify dependencies to install, and works differently than the
# other nuget installations that use a similar command. A solution is
# to write the GeckoBrowserAdapter nuget file to dest nuget-sources,
# rather than nuget-specific. The dependencies may not need special
# handling, but if they start to, then note that the dependencies
# don't seem to be mentioned in the .nupkg file itself, nor on the
# nuget.org web site, but can be determined by running in flexbridge
# `msbuild build/FLExBridge.proj -t:RestoreBuildTasks` and observing
# how it resolves dependencies.
- flexbridge-sources-nuget-specific.yml
# Use local nuget packages
- type: inline
dest-filename: nuget.config
contents: |
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalNugetPackages" value="nuget-sources" />
</packageSources>
<disabledPackageSources>
<add key="nuget.org" value="true" />
</disabledPackageSources>
</configuration>
# Regenerate: Set flexbridge git dir to newer code. Then run (in the
# directory with the flatpak manifest):
# .../flatpak-builder-tools/dotnet/flatpak-dotnet-generator.py flexbridge-sources-nuget.yml $(find $HOME/fwrepo/flexbridge -name \*.csproj -o -name \*.proj)
# Also, to work with FW 9.0 which uses geckofx45, adjust the output to use geckofx45 rather than 60.
- flexbridge-sources-nuget.yml
# Dependencies specified from FLExBridge.dep
# Determine what is needed by running in the flexbridge repo:
# msbuild -t:DownloadDependencies build/FLExBridge.proj && cat build/FLExBridge.files
- flexbridge-sources-deps.yml
- type: inline
dest-filename: gitversion.properties
contents: |
BuildVersion=1.0.0
modules:
- name: ping
# FlexBridge uses .NET/Mono Ping to check connectivity. Mono's Ping
# uses the ping utility.
buildsystem: meson
config-opts:
- -DBUILD_ARPING=false
- -DBUILD_CLOCKDIFF=false
- -DBUILD_RARPD=false
- -DBUILD_RDISC=false
- -DENABLE_RDISC_SERVER=false
- -DBUILD_TRACEPATH=false
- -DBUILD_NINFOD=false
- -DBUILD_MANS=false
- -DSKIP_TESTS=true
sources:
- type: git
url: https://github.com/iputils/iputils.git
tag: "20211215"
commit: "1d1e7c43210d8af316a41cb2c53d612a4c16f34d"
- name: xchm
# Help file viewer
cleanup:
- "/include"
- "*.a"
- "/share/icons"
- "/share/applications"
sources:
- type: git
url: https://github.com/rzvncj/xCHM
# Version 1.31 is used in Ubuntu 20.04.
tag: "1.31"
commit: e983d11fd546c961501f736b2c6f93178c92fa97
- type: patch
# xchm would otherwise need to write to files ~/.xchmXXXXXX and
# ~/.xchm. This won't be needed after upgrading to a newer xchm
# version and wxWidgets v3.1.1+.
path: patches/xchm/no-config.patch
modules:
- name: chmlib
cleanup:
- "/include"
- "*.a"
sources:
- type: git
url: https://github.com/jedwing/CHMLib
# Latest commit, from 2009-07-03.
commit: 2bef8d063ec7d88a8de6fd9f0513ea42ac0fa21f
- type: script
commands:
- autoreconf --install
- name: wxWidgets
cleanup:
- "/include"
- "/lib/wx/include"
- "*.a"
sources:
- type: git
url: https://github.com/wxWidgets/wxWidgets
# v3.0.4 is used in Ubuntu 20.04.
# v3.1.1+ is needed for xchm to write to XDG_CONFIG_HOME.
# However, v3.1.0 appears to introduce a problem rendering the
# chm html. v3.0.5.1 still worked, rendering the html.
tag: v3.0.4
commit: 721d62adde3f8ba8704a9cf56efeb050f652dfbf
- name: setxkbmap
# Needed by ibusdotnet for keyboarding.
sources:
- type: archive
url: https://xorg.freedesktop.org/releases/individual/app/setxkbmap-1.3.2.tar.gz
sha512: 5e07285c16fb8822fec90ce8393c9f484fa19defa3d9db927a70dd1b525706b78901af5fff58fa99c947236f99c0010e34f1968f65e42ed6ba89a5c3925451fe
- name: xkeyboard-config
# Used by setxkbmap
sources:
- type: archive
url: https://xorg.freedesktop.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.34.tar.gz
sha512: 8ddb21da44dd22dedd3206990c54ce3f91cd3081f4fc8c4a49f6f0b49d91a865df530c1d30a7ca0054526462cfb7aab24b13c07d5370af7d2041f270684944af
# FieldWorks is used to describe languages using various writing
# systems. Include some fonts.
- name: fonts-sil-doulos
# From https://software.sil.org/doulos/download/previous-versions/
buildsystem: simple
build-commands:
- mkdir -p /app/share/fonts/truetype/doulos
- cp -a *.ttf /app/share/fonts/truetype/doulos
sources:
- type: archive
url: https://software.sil.org/downloads/r/doulos/DoulosSIL-5.000.zip
sha512: 3698b3f330d34cfa2be93f9dfc87c113a0b3e174a40ce9c2277bb452161cda61aab4688338ab3aeaaaa3cc684cedc58bbb3f066392e3911246a230d1a9fb02f3
- name: fonts-sil-charis
# From https://software.sil.org/charis/download/previous-versions/
buildsystem: simple
build-commands:
- mkdir -p /app/share/fonts/truetype/charis
- cp -a *.ttf /app/share/fonts/truetype/charis
sources:
- type: archive
url: https://software.sil.org/downloads/r/charis/CharisSIL-5.000.zip
sha512: f85da6c9b93c0ef81617241219b208ca262c12fcecae1d447163b7aff31ea8bfc3f09636dcfc0a322c86201a0d551288884e4017fded5bb71bbb54c8093faaed
- name: fonts-sil-galatia
# From https://software.sil.org/galatia/#downloads
buildsystem: simple
build-commands:
- mkdir -p /app/share/fonts/truetype/galatia
- cp -a *.ttf /app/share/fonts/truetype/galatia
sources:
- type: archive
url: https://software.sil.org/downloads/r/galatia/GalatiaSIL-2.1.zip
sha512: ff408660ab892d04e81db24f4395ffb1e3732921a2277173dfcc1b080338c68d22aa004f3838959ece724114ff0e5cf3be101c41341ec5ba22a1736458e25672
- name: fonts-sil-ezra
# From https://software.sil.org/ezra/
buildsystem: simple
build-commands:
- mkdir -p /app/share/fonts/truetype/ezra
- cp -a *.ttf /app/share/fonts/truetype/ezra
sources:
- type: archive
url: https://software.sil.org/downloads/r/ezra/EzraSIL-2.51.zip
sha512: 404f273a078ce89b84c1fcb91a7d9b729a80934b1327eb62d6625db245fcd4e96400c5fb5350014011771bfeac3191481b6c95e724232355b031f46eb51aab15