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
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
|
# extensions
%define numbertext_version 0.9.5
# Urls
%define external_url https://dev-www.libreoffice.org/src/
%define tarball_url https://dev-builds.libreoffice.org/pre-releases/src/
# LTO needs newer toolchain stack only
%bcond_with lto
%bcond_without system_gpgme
%bcond_without system_curl
%bcond_with firebird
Name: libreoffice
Version: 7.5.0.2
Release: 3
Summary: A Free Office Suite (Framework)
License: LGPL-3.0-or-later AND MPL-2.0
Group: Productivity/Office/Suite
URL: https://www.documentfoundation.org/
Source0: %{tarball_url}/libreoffice-%{version}.tar.xz
Source1: %{tarball_url}/libreoffice-%{version}.tar.xz.asc
Source2: %{tarball_url}/libreoffice-help-%{version}.tar.xz
Source3: %{tarball_url}/libreoffice-help-%{version}.tar.xz.asc
Source4: %{tarball_url}/libreoffice-translations-%{version}.tar.xz
Source5: %{tarball_url}/libreoffice-translations-%{version}.tar.xz.asc
# prebuilt extensions
Source402: %{external_url}/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_%{numbertext_version}.oxt
# used extensions sources
Source450: %{external_url}/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
Source452: %{external_url}/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
# GPGME bundle list
Source1000: %{external_url}/gpgme-1.18.0.tar.bz2
Source1001: %{external_url}/libgpg-error-1.43.tar.bz2
Source1002: %{external_url}/libassuan-2.5.5.tar.bz2
# Internal bundled stuff we can't remove
# To build this we would pull cygwin; not worth it
Source2001: https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
# hsqldb simply does not work with new system version, but luckily we migrate to firebird
Source2002: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
# Heavily patched and not possible to use system one
Source2003: %{external_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
Source2004: %{external_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
# Needed for wiki-published and always taken as bundled
Source2005: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
# Needed for integration tests
Source2006: https://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar
Source2007: https://dev-www.libreoffice.org/extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar
# PDFium is bundled everywhere
Source2008: %{external_url}/pdfium-5408.tar.bz2
# Single C file with patches from LO
Source2009: %{external_url}/dtoa-20180411.tgz
# Skia is part of chromium and bundled everywhere as by google only way is monorepo way
Source2010: %{external_url}/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
Source2012: %{external_url}/libcmis-0.5.2.tar.xz
Source2013: %{external_url}/dragonbox-1.1.3.tar.gz
# do not use the broken help; unopkg complained about it when registering extensions
# FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files
Patch2: nlpsolver-no-broken-help.diff
Patch3: mediawiki-no-broken-help.diff
# Build with java 8
#atch101: 0001-Revert-java-9-changes.patch
# try to save space by using hardlinks
Patch990: install-with-hardlinks.diff
# save time by relying on rpm check rather than doing stupid find+grep
Patch991: libreoffice-no-destdircheck.patch
Patch996: system-libxml-icu74.patch
BuildRequires: %{name}-share-linker
BuildRequires: ant
BuildRequires: autoconf
BuildRequires: gawk
BuildRequires: bison
BuildRequires: bsh
BuildRequires: apache-commons-logging
BuildRequires: cups-devel
BuildRequires: curl-devel
BuildRequires: dejavu-fonts
BuildRequires: doxygen >= 1.8.4
BuildRequires: flex >= 2.6.0
BuildRequires: fontforge
BuildRequires: glm-devel
BuildRequires: abseil-cpp-devel
BuildRequires: google-crosextra-carlito-fonts
BuildRequires: gperf >= 3.1
BuildRequires: graphviz
BuildRequires: hyphen-devel
BuildRequires: junit
BuildRequires: cppunit-devel >= 1.14.0
BuildRequires: liberation-fonts
BuildRequires: libexif
BuildRequires: libjpeg-devel
BuildRequires: libwebp-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: lpsolve-devel
BuildRequires: make
BuildRequires: openldap-devel
%ifarch %{java_arches}
BuildRequires: pentaho-reporting-flow-engine
%endif
BuildRequires: pkgconfig
BuildRequires: python3-lxml
BuildRequires: sac
BuildRequires: unixODBC-devel
BuildRequires: unzip
BuildRequires: xml-commons-apis
BuildRequires: xz
BuildRequires: zip
BuildRequires: perl(Archive::Zip)
BuildRequires: perl(Digest::MD5)
BuildRequires: pkgconfig(apr-util-1)
BuildRequires: pkgconfig(atk) >= 2.28
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(dbus-1) >= 0.60
BuildRequires: pkgconfig(epoxy) >= 1.2
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glib-2.0) >= 2.40
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(graphite2) >= 0.9.3
BuildRequires: pkgconfig(gssrpc)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.20
BuildRequires: pkgconfig(harfbuzz) >= 0.9.42
BuildRequires: pkgconfig(harfbuzz-icu) >= 0.9.42
BuildRequires: pkgconfig(hunspell)
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libabw-0.1)
BuildRequires: pkgconfig(libcdr-0.1) >= 0.1
BuildRequires: pkgconfig(libclucene-core)
BuildRequires: pkgconfig(libe-book-0.1) >= 0.1.2
BuildRequires: pkgconfig(libeot) >= 0.01
BuildRequires: pkgconfig(libepubgen-0.1)
BuildRequires: pkgconfig(libetonyek-0.1) >= 0.1.10
BuildRequires: pkgconfig(libexttextcat) >= 3.4.1
BuildRequires: pkgconfig(libfreehand-0.1)
BuildRequires: pkgconfig(liblangtag)
BuildRequires: pkgconfig(libmspub-0.1) >= 0.1
BuildRequires: pkgconfig(libmwaw-0.3) >= 0.3.21
BuildRequires: pkgconfig(libnumbertext) >= 1.0.6
BuildRequires: pkgconfig(libodfgen-0.1) >= 0.1.4
BuildRequires: pkgconfig(libopenjp2)
BuildRequires: pkgconfig(liborcus-0.17)
BuildRequires: pkgconfig(libpagemaker-0.0)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpq)
BuildRequires: pkgconfig(libqxp-0.0)
BuildRequires: pkgconfig(librevenge-0.0) >= 0.0.1
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libstaroffice-0.0) >= 0.0.6
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libvisio-0.1) >= 0.1
BuildRequires: pkgconfig(libwpd-0.10) >= 0.10
BuildRequires: pkgconfig(libwpg-0.3)
BuildRequires: pkgconfig(libwps-0.4) >= 0.4.11
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(libzmf-0.0)
BuildRequires: pkgconfig(mdds-2.0) >= 2.0.0
BuildRequires: pkgconfig(mythes)
BuildRequires: pkgconfig(nspr) >= 4.8
BuildRequires: pkgconfig(nss) >= 3.9.3
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(redland) redland
BuildRequires: pkgconfig(sane-backends)
BuildRequires: pkgconfig(serf-1) >= 1.3.9
BuildRequires: pkgconfig(xmlsec1-nss) >= 1.2.28
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(zxing)
Requires: liberation-fonts
Requires: libreoffice-branding >= 6.0
Requires: libreoffice-icon-themes = %{version}
# We need at least english to launch ourselves
Requires: libreoffice-l10n-en = %{version}
Requires: python3
Recommends: dejavu-fonts
Recommends: google-crosextra-carlito-fonts
Provides: %{name}-draw-extensions = %{version}
Obsoletes: %{name}-draw-extensions < %{version}
Provides: %{name}-impress-extensions = %{version}
Obsoletes: %{name}-impress-extensions < %{version}
Provides: %{name}-base-extensions = %{version}
Obsoletes: %{name}-base-extensions < %{version}
Provides: %{name}-kde = %{version}
Obsoletes: %{name}-kde < %{version}
Provides: %{name}-l10n-prebuild = %{version}
Obsoletes: %{name}-l10n-prebuild < %{version}
Provides: %{name}-mono = %{version}
Obsoletes: %{name}-mono < %{version}
Provides: %{name}-ure = %{version}
Obsoletes: %{name}-ure < %{version}
Provides: %{name}-icon-theme-crystal = %{version}
Obsoletes: %{name}-icon-theme-crystal < %{version}
Provides: %{name}-icon-theme-oxygen = %{version}
Obsoletes: %{name}-icon-theme-oxygen < %{version}
ExclusiveArch: aarch64 %{ix86} x86_64 riscv64
BuildRequires: boost-devel
BuildRequires: pkgconfig(poppler) pkgconfig(poppler-cpp)
BuildRequires: gcc >= 7
BuildRequires: gcc-c++ >= 7
# genbrk binary is required
BuildRequires: icu
BuildRequires: java-11-devel
BuildRequires: Box2D-devel
BuildRequires: mariadb-connector-c-devel
BuildRequires: pkgconfig(icu-i18n)
BuildConflicts: java < 9
BuildConflicts: java-devel < 9
BuildConflicts: java-headless < 9
%if %{with system_gpgme}
BuildRequires: gpgme-devel gpgme-pp
%endif
%if %{with firebird}
BuildRequires: pkgconfig(fbclient)
%endif
Provides: %{name}-kde4 = %{version}
Obsoletes: %{name}-kde4 < %{version}
Provides: %{name}-qt5 = %{version}
Obsoletes: %{name}-qt5 < %{version}
%description
LibreOffice is a comprehensive office package featuring a word
processor, a spreadsheet, a presentation program, and much more. This
package provides only the basic framework. You have to install the
additional modules to get the required functionality, see packages:
- libreoffice-base
- libreoffice-calc
- libreoffice-draw
- libreoffice-impress
- libreoffice-math
- libreoffice-writer
Some optional features are provided by extra packages, for example:
- libreoffice-mailmerge
- libreoffice-filters
- libreoffice-qt5
- libreoffice-gnome
Non-English localizations are provided by extra packages as well, for
example:
- libreoffice-l10n-de
- libreoffice-l10n-fr
- libreoffice-l10n-it
%package branding-upstream
Summary: Original Branding for LibreOffice
Group: Productivity/Office/Suite
Supplements: libreoffice
Conflicts: libreoffice-branding
Provides: libreoffice-branding = %{version}
BuildArch: noarch
%description branding-upstream
This package includes the original branding for the LibreOffice office suite.
%package icon-themes
Summary: LibreOffice Icon Themes
Group: Productivity/Office/Suite
Requires(post): %{name}-share-linker
Requires(postun):%{name}-share-linker
Supplements: libreoffice
Provides: %{name}-icon-theme-breeze = %{version}
Obsoletes: %{name}-icon-theme-breeze < %{version}
Provides: %{name}-icon-theme-galaxy = %{version}
Obsoletes: %{name}-icon-theme-galaxy < %{version}
Provides: %{name}-icon-theme-hicontrast = %{version}
Obsoletes: %{name}-icon-theme-hicontrast < %{version}
Provides: %{name}-icon-theme-sifr = %{version}
Obsoletes: %{name}-icon-theme-sifr < %{version}
Provides: %{name}-icon-theme-tango = %{version}
Obsoletes: %{name}-icon-theme-tango < %{version}
BuildArch: noarch
%description icon-themes
This package provides all of the LibreOffice icon themes.
%package glade
Summary: Support for creating LibreOffice dialogs in glade
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
BuildArch: noarch
%description glade
%{name}-glade contains a catalog of LibreOffice-specific widgets for
glade and ui-previewer tool to check the visual appearance of dialogs.
%package gdb-pretty-printers
Summary: Additional support for debugging with gdb
Group: Productivity/Office/Suite
Requires: gdb
Requires: libreoffice = %{version}
Requires: python3-six
Supplements: libreoffice-debuginfo = %{version}
BuildArch: noarch
%description gdb-pretty-printers
This package provides gdb pretty printers for package %{name}.
%package base
Summary: LibreOffice Base
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%ifarch %{java_arches}
Requires: pentaho-reporting-flow-engine
%endif
Supplements: %{name}
Obsoletes: %{name}-base-drivers-mysql
# default database connector
%if %{with firebird}
Requires: %{name}-base-drivers-firebird
%else %ifarch %{java_arches}
Requires: jre >= 1.8
%endif
%description base
This module allows you to manage databases, create queries and reports
to track and manage your information by using LibreOffice office
suite.
%package calc
Summary: LibreOffice Calc
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description calc
This module allows you to perform calculation, analyze information and
manage lists in spreadsheets by using LibreOffice office suite.
%package draw
Summary: LibreOffice Draw
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description draw
This module allows you to create and edit drawings, flow charts, and
logos by using LibreOffice office suite.
%package math
Summary: LibreOffice Math
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description math
This module allows you to create and edit scientific formulas and
equations by using LibreOffice office suite.
%package impress
Summary: LibreOffice Impress
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description impress
This module allows you to create and edit presentations for slideshows,
meeting and Web pages by using LibreOffice office suite.
%package writer
Summary: LibreOffice Writer and Web
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description writer
This module allows you to create and edit text and graphics in letters,
reports, documents and Web pages by using LibreOffice office suite.
%package base-drivers-postgresql
Summary: PostgreSQL Database Driver for LibreOffice
Group: Productivity/Office/Suite
Requires: postgresql
%description base-drivers-postgresql
This package allows to access PostgreSQL databases from LibreOffice Base.
%package base-drivers-firebird
Summary: Firebird Database Driver for LibreOffice
Group: Productivity/Office/Suite
Requires: firebird
%description base-drivers-firebird
This package allows to access Firebird databeses from LibreOffice Base.
%package filters-optional
Summary: Additional Import and Export Filters for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-calc = %{version}
Requires: %{name}-draw = %{version}
Requires: %{name}-impress = %{version}
Requires: %{name}-math = %{version}
Requires: %{name}-writer = %{version}
Supplements: %{name}
%description filters-optional
This package includes some additional import and export filters for
LibreOffice:
- AportisDoc (Palm)
- Pocket Excel
- Pocket Word
- DocBook
- XHTML
%package mailmerge
Summary: Mail Merge Functionality for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-pyuno = %{version}
Supplements: %{name}
%description mailmerge
This module allows you to create form letters or send E-mail messages
to many recipients using LibreOffice office suite.
%package pyuno
Summary: Python UNO Bridge for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description pyuno
The Python-UNO bridge allows to use the standard LibreOffice API
from the well known Python scripting language. It can be used to
develop UNO components in python, thus python UNO components may be run
within the LibreOffice process and can be called from Java, C++ or
the built in StarBasic scripting language. You can create and invoke
scripts with the office scripting framework (OOo 2.0 and later) with
it. For example, it is used for the mail merge functionality.
You can find the more information at
http://udk.openoffice.org/python/python-bridge.html
%package librelogo
Summary: LibreLogo scripting language
Group: Productivity/Office/Suite
Requires: %{name}-pyuno = %{version}
Requires: %{name}-writer = %{version}
%description librelogo
Enables LibreLogo scripting in Writer. LibreLogo is a Logo-like
programming language with interactive vectorgraphics for education and
DTP.
%package gnome
Summary: GNOME Extensions for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%description gnome
This package contains some GNOME extensions and GTK2 interface for LibreOffice.
%package gtk3
Summary: Gtk3 interface for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-gnome = %{version}
Supplements: (libreoffice and gnome-session)
Supplements: (libreoffice and mate-session-manager)
Supplements: (libreoffice and xfce4-session)
%description gtk3
This package contains Gtk3 interface rendering option for LibreOffice.
%package qt5
Summary: Qt5/KDE Frameworks interface for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: packageand(libreoffice:plasma5-workspace)
Provides: %{name}-kde4 = %{version}
Obsoletes: %{name}-kde4 < %{version}
%description qt5
This package contains Qt5/KDE Frameworks interface rendering options for LibreOffice.
%package sdk
Summary: LibreOffice SDK
Group: Documentation/HTML
Requires: %{name} = %{version}
Requires: gcc-c++
Requires: make
Requires: zip
Recommends: java-devel >= 9.0
Provides: libreoffice-ure-devel = %{version}
Obsoletes: libreoffice-ure-devel < %{version}
%description sdk
This package contains the files needed to build plugins/add-ons for
LibreOffice. It includes header files, IDL files, needed build
tools, etc.
The documentation is in the package libreoffice-sdk-doc
%package sdk-doc
Summary: LibreOffice SDK Documentation
Group: Development/Libraries/Other
Suggests: %{name}-sdk = %{version}
Enhances: %{name}-sdk = %{version}
Provides: libreoffice-ure-devel-doc = %{version}
Obsoletes: libreoffice-ure-devel-doc < %{version}
%description sdk-doc
This package includes documentation and examples for the LibreOffice
Software Development Kit (SDK).
%ifarch %{java_arches}
%package calc-extensions
Summary: LibreOffice Calc Extensions
Group: Productivity/Office/Suite
Requires: libreoffice-calc = %{version}
# pyuno is needed for the numbertext extension
Requires: libreoffice-pyuno = %{version}
Requires(pre): libreoffice = %{version}
# the watchWindow extension is written in java
Requires: jre >= 1.8
%description calc-extensions
This package provides extensions for LibreOffice Calc:
- Convert Text to Number
- New Functions NUMBERTEXT and MONEYTEXT
- Solver for Nonlinear Programming
%package writer-extensions
Summary: LibreOffice Writer Extensions
Group: Productivity/Office/Suite
Requires: libreoffice-writer = %{version}
Requires(pre): libreoffice = %{version}
# the wiki extension is written in java
Requires: jre >= 1.8
%description writer-extensions
This package provides extensions for LibreOffice Writer:
- MediaWiki Publisher
%endif
%package -n libreofficekit
Summary: A library providing access to LibreOffice functionality
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%description -n libreofficekit
LibreOfficeKit can be used to access LibreOffice functionality
through C/C++, without any need to use UNO.
%package -n libreofficekit-devel
Summary: Development files for libreofficekit
Group: Productivity/Office/Suite
Requires: libreofficekit = %{version}
%description -n libreofficekit-devel
The libreofficekit-devel package contains libraries and header files for
developing applications that use libreofficekit.
# Symlink autocorr files for various conversion items
%define make_autocorr_aliases(l:) \
%{?-l: \
for lang in %{*}; do \
ln -sf acor_%{-l*}.dat %{buildroot}%{_libdir}/%{name}/share/autocorr/acor_$lang.dat \
done \
} \
%{!?-l:%{error:-l must be present}}
# Symlinking macro for /usr/lib64 and /usr/share packing
# As argument takes name of the package
%define _link_noarch_files() \
%posttrans %{1} \
rpm -ql %{name}-%{1} > %{_datadir}/libreoffice/%{1}_list.txt || true \
if [ -f %{_datadir}/libreoffice/%{1}_list.txt ] ; then \
%{_bindir}/libreoffice-share-linker %{_datadir}/libreoffice/%{1}_list.txt || true \
fi \
\
%postun %{1} \
if [ "$1" = "0" -a -f %{_datadir}/libreoffice/%{1}_list.txt -a -x %{_bindir}/libreoffice-share-linker ]; then \
%{_bindir}/libreoffice-share-linker --unlink %{_datadir}/libreoffice/%{1}_list.txt || true \
rm -f %{_datadir}/libreoffice/%{1}_list.txt 2> /dev/null || true \
fi \
%{nil}
# Crazy magic for the auto help/lang generating.
%define _langpack_common(g:l:j:) \
%if "%{-l*}" != "en-US" \
%dir %{_datadir}/libreoffice/program/resource \
%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}} \
%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES \
%{_datadir}/%{name}/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES/*.mo \
%endif \
%dir %{_datadir}/%{name}/share/registry \
%dir %{_datadir}/%{name}/share/registry/res \
%{_datadir}/%{name}/share/registry/Langpack-%{-l*}.xcd \
%if "%{-l*}" != "en-US" \
%{_datadir}/%{name}/share/registry/res/registry_%{-l*}.xcd \
%endif \
%{_datadir}/%{name}/share/registry/res/fcfg_langpack_%{-l*}.xcd \
%dir %{_datadir}/%{name}/share/wizards \
%{_datadir}/%{name}/share/wizards/resources_%{-j:%{-j*}}%{!-j:%{-l*}}.properties \
%{nil}
# Defines a language pack subpackage.
#
# It's necessary to define language code (-l) and language name (-n).
# Additionally, it's possible
# * to require autocorr, hunspell, hyphen or mythes package or font for
# given language,
# * to obsolete openoffice.org-langpack package,
# * to provide libreoffice-langpack-loc package, where loc is glibc
# locale--this is necessary for yum to pick it automatically,
# * to require other, unrelated, packages,
# * to specify file serving as file list.
# For these, lower case character argument takes an argument specifying
# language, upper case character argument uses language from -l.
#
# All remaining arguments are considered to be files and added to the file
# list.
#
# c: additional config file (just the name stem)
# E the package does not contain any files (i.e., has empty filelist)
# i: additional language added to this package
# L: internal (LibreOffice) language code, used in file names
# l: language code, e.g., cs
# g: glibc/java locale
# j: java locale
# k: glibc locale for the additional language -i
# o: java locale for the additional language -i
# Mm: hunspell dependency
# n: language name, e.g., Czech
# p: Provides: of libreoffice-l10n
# q: Provides: of libreoffice-l10n if one provide is not enough
# r: comma-separated list of additional requires
# S:s: script classification (cjk, ctl). -S is only a marker, as it does
# not add any .xcd into the package (the file does not exist for at
# least one CTL-using locale, si)
# T has help files
# Xx: has autotext definitions
#
# Example:
# libreoffice-l10n-cs: langpack for Czech lang. Requiring myspell-cs_CZ:
# %%langpack -l cs -n Czech -m cs_CZ
%define langpack(c:Ei:g:j:k:L:l:Mm:n:o:p:q:r:S:s:TXx:) \
%define project LibreOffice \
%define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \
%define _langpack_lang %{-L:%{-L*}}%{!-L:%{lang}} \
%define pkgname l10n-%{lang} \
%define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \
\
%package %{pkgname} \
Summary: %{langname} localization files for %{project} \
Group: Productivity/Office/Suite \
Requires: %{name} = %{version} \
Requires: %{name}-share-linker \
Provides: locale(libreoffice:%{lang}) \
BuildArch: noarch \
%{-m:Requires: hunspell-%{-m*}}%{!-m:%{-M:Requires: hunspell-%{lang}}} \
%{-r:Requires: %{-r*}} \
%{-p: \
Provides: %{name}-l10n-%{-p*} = %{version} \
Obsoletes: %{name}-l10n-%{-p*} < %{version} \
} \
%{-q: \
Provides: %{name}-l10n-%{-q*} = %{version} \
Obsoletes: %{name}-l10n-%{-q*} < %{version} \
} \
Provides: %{name}-help-%{lang} = %{version} \
Obsoletes: %{name}-help-%{lang} < %{version} \
%{-L: \
Provides: %{name}-help-%{-L*} = %{version} \
Obsoletes: %{name}-help-%{-L*} < %{version} \
} \
%{-p: \
Provides: %{name}-help-%{-p*} = %{version} \
Obsoletes: %{name}-help-%{-p*} < %{version} \
} \
%{-q: \
Provides: %{name}-help-%{-q*} = %{version} \
Obsoletes: %{name}-help-%{-q*} < %{version} \
} \
\
%description %{pkgname} \
Provides %{langname} translations and additional resources (help files, etc.) for %{project}. \
\
%files %{pkgname} \
%{-T: \
%dir %{_datadir}/libreoffice/help/%{_langpack_lang} \
%{_datadir}/libreoffice/help/%{_langpack_lang}/* \
%if "%{-L*}" == "en-US" \
%{_datadir}/libreoffice/help/*.js \
%{_datadir}/libreoffice/help/*.css \
%{_datadir}/libreoffice/help/*.html \
%{_datadir}/libreoffice/help/media* \
%endif \
} \
%{!-E: \
%define autotextdir %{_datadir}/%{name}/share/autotext \
%dir %{autotextdir} \
%{expand:%%_langpack_common -l %{_langpack_lang} %{-g:-g %{-g*}} %{-j:-j %{-j*}}} \
%{-x:%{autotextdir}/%{-x*}}%{!-x:%{-X:%{autotextdir}/%{_langpack_lang}}} \
%{-c:%{_datadir}/%{name}/share/registry/%{-c*}.xcd} \
%{-s:%{_datadir}/%{name}/share/registry/%{-s*}_%{_langpack_lang}.xcd} \
%{-i:%{expand:%%_langpack_common -l %{-i*} %{-k:-g %{-k*}} %{-o:-j %{-o*}}}} \
} \
\
%{expand:%%_link_noarch_files %{pkgname}} \
%{nil}
%langpack -l af -n Afrikaans -m af_ZA -X
%langpack -l am -n Amharic -T -X
%langpack -l ar -n Arabic -s ctl -m ar -T -X
%langpack -l as -n Assamese -X
%langpack -l ast -n Asturian -T -X
%langpack -l be -n Belarusian -m be_BY -X
%langpack -l bg -n Bulgarian -X -m bg_BG -T
%langpack -l bn -n Bengali -m bn_BD -T -X
%langpack -l bn_IN -n Bengali_India -T -p bn-IN -m bn_IN -L bn-IN -g bn_IN -j bn_IN -X
%langpack -l bo -n Tibetian -T -s ctl -m bo -X
%langpack -l br -n Breton -m br_FR -X
%langpack -l brx -n Bodo -X
%langpack -l bs -n Bosnian -T -X
%langpack -l ca -n Catalan -M -X -T
%langpack -l ca_valencia -n Valencian -m ca_ES_valencia -T -L ca-valencia -g ca@valencia -j ca_valencia -X
%langpack -l ckb -n Central_Kurdish
%langpack -l cs -n Czech -X -m cs_CZ -T
%langpack -l cy -n Welsh -X
%langpack -l da -n Danish -X -m da_DK -T
%langpack -l de -n German -X -M -T
%langpack -l dgo -n Dogri -X
%langpack -l dsb -n Lower_Sorbian -X -T
%langpack -l dz -n Dzongkha -s ctl -T -X
%langpack -l el -n Greek -m el_GR -T -X
%langpack -l en -n English -L en-US -X -M -g en_US -T -j en_US
%langpack -l en_GB -n English_GB -M -T -X -L en-GB -g en_GB -j en_GB
%langpack -l en_ZA -n English_ZA -M -T -X -L en-ZA -g en_ZA -j en_ZA
%langpack -l eo -n Esperanto -T -X
%langpack -l es -n Spanish -M -X -T
%langpack -l et -n Estonian -m et_EE -T -X
%langpack -l eu -n Basque -T -X
%langpack -l fa -n Farsi -s ctl -X
%langpack -l fi -n Finnish -r libreoffice-voikko -X -T
%langpack -l fr -n French -X -m fr_FR -T
%langpack -l fur -n Friulian
%langpack -l fy -n Frisian -X
%langpack -l ga -n Irish -X
%langpack -l gd -n Gaelic -m gd_GB -X
%langpack -l gl -n Galician -M -T -X
%langpack -l gu -n Gujarati -s ctl -p gu-IN -m gu_IN -T -X
%langpack -l gug -n Paraguayan_GuaranĂ -M -X
%langpack -l he -n Hebrew -s ctl -m he_IL -T -X
%langpack -l hi -n Hindi -s ctl -p hi-IN -m hi_IN -T -X
%langpack -l hr -n Croatian -m hr_HR -X -T
%langpack -l hsb -n Upper_Sorbian -X -T
%langpack -l hu -n Hungarian -X -m hu_HU -T
%langpack -l it -n Italian -X -m it_IT -T
%langpack -l id -n Indonesian -T -M -X
%langpack -l is -n Icelandic -T -X -M
%langpack -l ja -n Japanese -s cjk -X -T
%langpack -l ka -n Georgian -T -X
%langpack -l kab -n Kabyle -X
%langpack -l kk -n Kazakh -X
%langpack -l kn -n Kannada -X
%langpack -l km -n Khmer -T -X -s ctl -c ctlseqcheck_km
%langpack -l kmr_Latn -n Kurdish -M -g kmr@latin -L kmr-Latn -j kmr_Latn -X
%langpack -l ko -n Korean -s cjk -X -T
%langpack -l kok -n Konkani -X
%langpack -l ks -n Kashmiri -X
%langpack -l lb -n Luxembourgish -X
%langpack -l lo -n Lao -T -s ctl -m lo_LA -c ctlseqcheck_lo -X
%langpack -l lt -n Lithuanian -m lt_LT -X -T
%langpack -l lv -n Latvian -m lv_LV -T -X
%langpack -l mai -n Maithili -X
%langpack -l mk -n Macedonian -T -X
%langpack -l ml -n Malayalam -X
%langpack -l mn -n Monglolian -X
%langpack -l mni -n Manipuri -X
%langpack -l mr -n Marathi -X
%langpack -l my -n Burnese -s ctl -X
%langpack -l nb -n Bokmal -M -m no -T -X
%langpack -l ne -n Nepali -T -s ctl -m ne_NP -X
%langpack -l nl -n Dutch -X -m nl_NL -T
%langpack -l nn -n Nynorsk -m nn_NO -T -X
%langpack -l nr -n Southern_Ndebele -X
%langpack -l nso -n Northern_Sotho -X
%langpack -l oc -n Occitan -m oc_FR -X
%langpack -l om -n Oromo -T -X
%langpack -l or -n Odia -s ctl -X
%langpack -l pa -n Punjabi -s ctl -L pa-IN -p pa-IN -g pa_IN -j pa_IN -x pa-IN
%langpack -l pl -n Polish -X -m pl_PL -T
%langpack -l pt_BR -n Brazilian_Portuguese -m pt_BR -L pt-BR -p pt-BR -X -g pt_BR -j pt_BR -T
%langpack -l pt_PT -n Portuguese -m pt_PT -L pt -x pt -p pt -q pt-PT -T
%langpack -l ro -n Romanian -M -X -T
%langpack -l ru -n Russian -X -m ru_RU -T
%langpack -l rw -n Kinyarwanda -X
%langpack -l sa_IN -n Sanskrit -L sa-IN -g sa_IN -j sa_IN -x sa-IN
%langpack -l sat -n Santali -X
%langpack -l sd -n Sindhi -X
%langpack -l si -n Sinhalese -S ctl -m si_LK -T -X
%langpack -l sid -n Sidamo -T -X
%langpack -l sk -n Slovak -X -m sk_SK -T
%langpack -l sl -n Slovenian -X -m sl_SI -T
%langpack -l sq -n Albanian -T -m sq_AL -X
%langpack -l sr -n Serbian -i sr-Latn -M -j sr -g sr -k sr@latin -o sr_Latn -x sr-Latn
%langpack -l ss -n Swati -X
%langpack -l st -n Southern_Sotho -X
%langpack -l sv -n Swedish -X -m sv_SE -T
%langpack -l sw_TZ -n Swahili -M -L sw-TZ -g sw_TZ -j sw_TZ -x sw-TZ
%langpack -l szl -n Silesian -X
%langpack -l ta -n Tamil -s ctl -T -X
%langpack -l te -n Telugu -m te_IN -X
%langpack -l tg -n Tajik -T -X
%langpack -l th -n Thai -s ctl -c ctlseqcheck_th -m th_TH -X
%langpack -l tn -n Tswana -X
%langpack -l tr -n Turkish -X -T -m tr_TR
%langpack -l ts -n Tsonga -X
%langpack -l tt -n Tatar -X
%langpack -l ug -n Uyghur -T -X
%langpack -l uk -n Ukrainian -m uk_UA -T -X
%langpack -l uz -n Uzbek -X
%langpack -l vi -n Vietnamese -T -X -M
%langpack -l ve -n Venda -X
%langpack -l vec -n Venetian -X
%langpack -l xh -n Xhosa -X
%langpack -l zh_CN -n Simplified_Chinese -p zh-CN -s cjk -L zh-CN -x zh-CN -q zh-Hans -g zh_CN -j zh_CN -T
%langpack -l zh_TW -n Traditional_Chinese -p zh-TW -s cjk -L zh-TW -x zh-TW -q zh-Hant -g zh_TW -j zh_TW -T
%langpack -l zu -n Zulu -m zu_ZA -X
%prep
%setup -q -b2 -b4
%patch2
%patch3
%patch990 -p1
%patch991 -p1
%patch996 -p1
# Disable some of the failing tests (some are random)
# Following two tests are really flaky
sed -i -e /CppunitTest_dbaccess_hsqldb_test/d dbaccess/Module_dbaccess.mk
sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk
# Fails due to diff caused by fonts
sed -i -e /CppunitTest_sw_rtfimport/d sw/Module_sw.mk
# only due to the above
sed -i -e /CppunitTest_sw_uiwriter/d sw/Module_sw.mk
# The gpg files are not loaded properly
sed -i -e /CPPUNIT_TEST\(testODFEncryptedGPG\)/d xmlsecurity/qa/unit/signing/signing.cxx
# breaks on LTO https://bugs.documentfoundation.org/show_bug.cgi?id=126442
sed -i -e /CppunitTest_sw_apitests/d sw/Module_sw.mk
# Do not generate doxygen timestamp
echo "HTML_TIMESTAMP = NO" >> odk/docs/cpp/Doxyfile
echo "HTML_TIMESTAMP = NO" >> odk/docs/idl/Doxyfile
%build
# Strip lto from %_lto_cflags as the project has --enable-lto option
%define _lto_cflags %{nil}
# do not eat all memory
# make sure that JAVA_HOME is set correctly
if [ -f %{_sysconfdir}/profile.d/alljava.sh ]; then
. %{_sysconfdir}/profile.d/alljava.sh
elif [ -f %{_distconfdir}/profile.d/alljava.sh ]; then
. %{_distconfdir}/profile.d/alljava.sh
else
export JAVA_HOME=/usr/lib/jvm/java-11
fi
# use RPM_OPT_FLAGS, ...
# remove big debugsymbols as we simply consume too much space
%if %{with lto}
ARCH_FLAGS="`echo %{optflags} -flifetime-dse=1 | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g'`"
%else
ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g'`"
%endif
CFLAGS="$ARCH_FLAGS"
CXXFLAGS="$ARCH_FLAGS"
export ARCH_FLAGS CFLAGS CXXFLAGS
# Fake the epoch stuff in generated zip files
export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%%s)
# Colada does not have .pc file and configure creator was really lazy
export OPENCOLLADA_CFLAGS='-I/usr/include/COLLADABaseUtils -I/usr/include/COLLADAFramework -I/usr/include/COLLADASaxFrameworkLoader -I/usr/include/GeneratedSaxParser'
export OPENCOLLADA_LIBS='-lOpenCOLLADABaseUtils -lOpenCOLLADAFramework -lOpenCOLLADASaxFrameworkLoader -lGeneratedSaxParser'
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: For your own distribution, please get your own set of keys.
google_api_key=""
google_default_client_id=""
google_default_client_secret=""
# do not run configure in autogen but use macro later
export NOCONFIGURE=yes
./autogen.sh
%configure \
--with-parallelism=%{_smp_mflags} \
--enable-eot \
%if %{with lto}
--enable-lto \
%endif
--enable-mergelibs \
--docdir=%{_docdir}/%{name} \
--with-compat-oowrappers \
--with-system-headers \
--with-system-libs \
--with-system-jars \
--with-system-dicts \
--with-system-libpng \
--without-system-libcmis \
--without-system-libfixmath \
--without-system-dragonbox \
--with-tls=nss \
--disable-openssl \
--with-lang=ALL \
--disable-fetch-external \
--with-external-tar="$RPM_SOURCE_DIR" \
--disable-epm \
--disable-online-update \
--enable-gstreamer-1-0 \
--enable-gtk3 \
--disable-kf5 \
--disable-qt5 \
--enable-introspection \
--with-doxygen \
--enable-release-build \
--enable-split-app-modules \
--enable-split-opt-features \
--enable-cairo-canvas \
--enable-largefile \
--enable-python=system \
--enable-randr \
--without-fonts \
--without-myspell-dicts \
--with-webdav=serf \
%ifarch %{java_arches}
--with-jdk-home=$JAVA_HOME \
--with-beanshell-jar=%{_datadir}/java/bsh.jar \
--with-ant-home=%{_datadir}/ant \
%else
--without-java \
%endif
--with-external-dict-dir=%{_datadir}/hunspell \
--with-external-hyph-dir=%{_datadir}/hyphen \
--with-external-thes-dir=%{_datadir}/mythes \
--with-help=html \
--without-export-validation \
--enable-odk \
%if %{with system_gpgme}
--with-system-gpgmepp \
%else
--without-system-gpgmepp \
%endif
%if %{with firebird}
--enable-firebird-sdbc \
%else
--disable-firebird-sdbc \
%endif
--enable-evolution2 \
--enable-dbus \
--enable-ext-ct2n \
--enable-ext-nlpsolver \
--enable-ext-numbertext \
--enable-ext-wiki-publisher \
--disable-scripting-beanshell \
--enable-scripting-javascript \
--enable-build-opensymbol \
--disable-ccache \
--disable-coinmp \
--enable-symbols \
--with-gdrive-client-secret="${google_default_client_secret}" \
--with-gdrive-client-id="${google_default_client_id}" \
%ifarch riscv64
--disable-skia
%endif
# no coinormp packages for coinmp
# just call make here as we added the jobs in configure
make verbose=t build
%check
export LANG=C.UTF-8
# Run tests only on x86_64 and aarch64 as they are resource hogs
%ifarch %{java_arches}
# safeguard jarfires that can get magically overriden by the make
mkdir savejar
cp %{buildroot}%{_libdir}/%{name}/program/classes/*.jar savejar/
make
cp savejar/*.jar %{buildroot}%{_libdir}/%{name}/program/classes/
%endif
%install
make verbose=t DESTDIR=%{buildroot} distro-pack-install
# Do not pollute build log
set +x
# Split out gtk3 interface to -gtk3 subpackage
grep -v "%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so" file-lists/gnome_list.txt > tmplist
mv tmplist file-lists/gnome_list.txt
# Remove firebird connector from main package filelist
%if %{with firebird}
grep -v "%{_libdir}/libreoffice/program/libfirebird_sdbclo.so" file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
%endif
# Remove the libanimcore from impress and put it to base (needed by draw too)
grep -v "%{_libdir}/libreoffice/program/libanimcorelo.so" file-lists/impress_list.txt > tmplist
mv tmplist file-lists/impress_list.txt
echo "%{_libdir}/libreoffice/program/libanimcorelo.so" >> file-lists/common_list.txt
################
# update desktop files
builddir=`pwd`
cd %{buildroot}%{_datadir}/applications
for desktop in * ; do
# relative link is needed
relative_target=`readlink $desktop | sed "s|%{_libdir}|../../%{_lib}|"`
# create the link
ln -sf $relative_target $desktop
done
cd -
################
# compat stuff for noarch packages
mkdir -p %{buildroot}/%{_datadir}/%{name}/program
echo "%dir %{_libdir}/%{name}" >>file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}" >>file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}/program" >>file-lists/common_list.txt
################
# helper script for noarch packages
# add missing directories to the file list
for dir in `find %{buildroot}/%{_datadir}/icons/hicolor -type d` ; do
dir=`echo $dir | sed -e "s|%{buildroot}||"`
echo "%dir $dir" >>file-lists/common_list.txt
done
#################################
# Move split noarch data to share
#################################
for i in %{buildroot}%{_libdir}/%{name}/program/resource/*/*/*.mo \
%{buildroot}%{_libdir}/%{name}/share/registry/res/fcfg_langpack_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/res/registry_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/Langpack-*.xcd \
%{buildroot}%{_libdir}/%{name}/share/config/images*.zip \
%{buildroot}%{_libdir}/%{name}/share/registry/{cjk,ctl}_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/ctlseqcheck_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/wizards/*.properties \
; do
trg="`dirname "$i" | sed 's|%{_libdir}|%{_datadir}|'`"
mkdir -p "$trg"
mv "$i" "$trg"
grep -v "`echo "$i"| sed 's|%{buildroot}||'`" file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
done
# help files are luckily in just one folder
mkdir -p %{buildroot}/%{_datadir}/%{name}/help/
grep -v '%{_libdir}/%{name}/help' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}/help" >>file-lists/common_list.txt
mv %{buildroot}/%{_libdir}/%{name}/help/ %{buildroot}/%{_datadir}/%{name}/
mkdir -p %{buildroot}/%{_libdir}/%{name}/help/
echo "%dir %{_libdir}/%{name}/help" >>file-lists/common_list.txt
for file in idxcaption.xsl idxcontent.xsl main_transform.xsl ; do
mv "%{buildroot}/%{_datadir}/%{name}/help/$file" "%{buildroot}/%{_libdir}/%{name}/help/$file"
echo "%{_libdir}/%{name}/help/$file" >> file-lists/common_list.txt
done
# autotext is another self contained dir
mkdir -p %{buildroot}/%{_datadir}/%{name}/share/autotext/
grep -v '%{_libdir}/%{name}/share/autotext' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
mv %{buildroot}/%{_libdir}/%{name}/share/autotext/ %{buildroot}/%{_datadir}/%{name}/share/
# translations of java apps should be in lang pkgs too
grep -v '%{_libdir}/%{name}/share/wizards' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
# the sr is dupe of sr_Latn
rm -rf %{buildroot}%{datadir}/%{name}/share/wizards/resources_sr.properties
################
# branding split
################
# create symlinks for all brandings to noarch pkg
mkdir -p %{buildroot}/%{_datadir}/%{name}/program/shell
echo "%{_datadir}/%{name}/program/shell" >> file-lists/branding_upstream.txt
for file in sofficerc \
intro.png \
intro-highres.png \
shell/about.svg \
shell/logo.svg \
shell/logo_inverted.svg; do
mv "%{buildroot}%{_libdir}/%{name}/program/$file" "%{buildroot}%{_datadir}/%{name}/program/$file"
ln -sf "%{_datadir}/%{name}/program/$file" "%{buildroot}/%{_libdir}/%{name}/program/$file"
echo "%{_datadir}/%{name}/program/$file" >> file-lists/branding_upstream.txt
done
# Fix autocorr names for various language mutations
%make_autocorr_aliases -l en-GB en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT
%make_autocorr_aliases -l en-US en-PH
%make_autocorr_aliases -l en-ZA en-NA en-ZW
%make_autocorr_aliases -l af-ZA af-NA
%make_autocorr_aliases -l de de-DE de-AT de-BE de-CH de-LI de-LU
%make_autocorr_aliases -l es es-ES es-AR es-BO es-CL es-CO es-CR es-CU es-DO es-EC es-GT es-HN es-MX es-NI es-PA es-PE es-PR es-PY es-SV es-US es-UY es-VE
%make_autocorr_aliases -l fr fr-FR fr-BE fr-CA fr-CH fr-LU fr-MC
%make_autocorr_aliases -l it it-IT it-CH fur_IT lld_IT sc_IT vec_IT
%make_autocorr_aliases -l nl-NL nl-AW
%make_autocorr_aliases -l sv-SE sv-FI
pushd %{buildroot}%{_libdir}/%{name}/share/autocorr
files=""
for file in acor*.dat; do
files="$files $file"
done
popd
for file in $files; do
echo "%{_libdir}/%{name}/share/autocorr/$file" >> file-lists/common_list.txt
done
# we don't bother with serbian non-latin autocorr (as the lang logic allows us to dynamically allocate
# just one autotext filler and it does not make sense to have special case just for serbian
rm -r %{buildroot}%{_datadir}/libreoffice/share/autotext/sr/
# Install appdata files, so we're shown in gnome-software (and other, future app stores)
install -m 0755 -d %{buildroot}%{_datadir}/metainfo
for appdata in base calc draw impress writer; do
cp sysui/desktop/appstream-appdata/libreoffice-${appdata}.appdata.xml %{buildroot}%{_datadir}/metainfo/libreoffice-${appdata}.appdata.xml
echo "%{_datadir}/metainfo/libreoffice-${appdata}.appdata.xml" >>file-lists/${appdata}_list.txt
done
rm -f %{buildroot}%{_datadir}/metainfo/org.libreoffice.kde.metainfo.xml
# Remove pointless readmes
rm -rf %{buildroot}%{_libdir}/%{name}/readmes/
# Prepare uno path detection, can't be patched in because it breaks tests
echo "import sys, os" > uno.py
echo "sys.path.append('%{_libdir}/%{name}/program')" >> uno.py
echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:%{_libdir}/libreoffice/program/fundamentalrc')" >> uno.py
cat %{buildroot}%{_libdir}/%{name}/program/uno.py >> uno.py
cp uno.py %{buildroot}%{_libdir}/%{name}/program/uno.py
# Generate python cache files
%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/program/
%ifarch %{java_arches}
%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/share/extensions/
%endif
%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/share/Scripts/python/
%py_byte_compile %{__python3} %{buildroot}/%{_libdir}/libreoffice/sdk/examples/python/
# Move python cache to respective filelist
for i in file-lists/*.txt; do
if [ `cat "${i}" | grep '\.py$' |wc -l` -gt 0 ]; then
cat "${i}" | grep '\.py$' > pyfiles.txt
for j in `cat pyfiles.txt`; do
# python3 has __pycache__ dir while py2 does not
pydir="${j%/*}"
pyname="${j##*/}"
if compgen -G "%{buildroot}${pydir}/__pycache__/${pyname%.*}*.pyc" > /dev/null; then
echo "%dir ${pydir}/__pycache__/" >> "${i}"
echo "${pydir}/__pycache__/${pyname%.*}*.pyc" >> "${i}"
fi
done
fi
done
rm pyfiles.txt
# Symlink gtk3 libreofficekit to libdir
ln -s %{_libdir}/%{name}/program/liblibreofficekitgtk.so %{buildroot}%{_libdir}/liblibreofficekitgtk.so
# Libreofficekit headers
mkdir -p %{buildroot}%{_includedir}/LibreOfficeKit/
install -m 0644 include/LibreOfficeKit/* %{buildroot}%{_includedir}/LibreOfficeKit/
# typelib data
mkdir -p %{buildroot}%{_libdir}/girepository-1.0/
install -m 0644 workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.typelib %{buildroot}%{_libdir}/girepository-1.0/
mkdir -p %{buildroot}%{_datadir}/gir-1.0/
install -m 0644 workdir/CustomTarget/sysui/share/libreoffice/LOKDocView-0.1.gir %{buildroot}%{_datadir}/gir-1.0/
# Symlink uno.py and unohelper.py so that python can find them
# This is done after the cache files generating on purpose
mkdir -p %{buildroot}%{python3_sitelib}
ln -s %{_libdir}/libreoffice/program/uno.py %{buildroot}%{python3_sitelib}/uno.py
ln -s %{_libdir}/libreoffice/program/unohelper.py %{buildroot}%{python3_sitelib}/unohelper.py
ln -s %{_libdir}/libreoffice/program/officehelper.py %{buildroot}%{python3_sitelib}/officehelper.py
echo "%{python3_sitelib}/uno.py" >> file-lists/pyuno_list.txt
echo "%{python3_sitelib}/unohelper.py" >> file-lists/pyuno_list.txt
echo "%{python3_sitelib}/officehelper.py" >> file-lists/pyuno_list.txt
# move glade catalog to system glade dir
install -m 0755 -d %{buildroot}%{_datadir}/glade/catalogs
mv %{buildroot}%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade/catalogs
install -m 0755 -d %{buildroot}%{_datadir}/glade3/catalogs
ln -s %{_datadir}/glade/catalogs/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade3/catalogs
grep -v '%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
# install gdb pretty printers
export DESTDIR=%{buildroot}
export SRCDIR="./"
./solenv/bin/install-gdb-printers -a %{_datadir}/gdb/auto-load%{_libdir}/%{name} -c -i %{_libdir}/%{name} -p %{_datadir}/libreoffice/gdb
# Why would the mysql lib which is only USED by base not be IN THE BASE PACKAGE?!?
grep -v "%{_libdir}/libreoffice/program/libmysqlclo.so" file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
echo "%{_libdir}/libreoffice/program/libmysqlclo.so" >> file-lists/base_list.txt
# Remove empty files
%ifarch %{java_arches}
rm %{buildroot}%{_libdir}/libreoffice/share/extensions/*/help/*.done
rm %{buildroot}%{_libdir}/libreoffice/share/extensions/*/help/*/*.ht_
rm %{buildroot}%{_libdir}/libreoffice/share/extensions/wiki-publisher/help/sa-IN/help.key_
rm %{buildroot}%{_libdir}/libreoffice/share/extensions/nlpsolver/locale/NLPSolverCommon_en_US.default
%endif
%post
/sbin/ldconfig
%preun
uno_cache="%{_libdir}/%{name}/share/uno_packages/cache/uno_packages/"
if [ "$1" = "0" ] ; then
test -d "$uno_cache" && rm -rf "$uno_cache"/*
fi
exit 0
%postun
/sbin/ldconfig
%_link_noarch_files icon-themes
%files -f file-lists/common_list.txt
# ignore helper files for brp-symlink check
%exclude %{_datadir}/%{name}/program/sofficerc
%exclude %{_datadir}/%{name}/program/*.png
%exclude %{_datadir}/%{name}/program/shell/*.svg
%files -n libreofficekit
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/LOKDocView-0.1.typelib
%{_libdir}/liblibreofficekitgtk.so
%dir %{_libdir}/libreoffice/share/libreofficekit
%{_libdir}/libreoffice/share/libreofficekit/handle_image_end.png
%{_libdir}/libreoffice/share/libreofficekit/handle_image_middle.png
%{_libdir}/libreoffice/share/libreofficekit/handle_image_start.png
%files -n libreofficekit-devel
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/LOKDocView-0.1.gir
%dir %{_includedir}/LibreOfficeKit
%{_includedir}/LibreOfficeKit/*
%files glade
%dir %{_datadir}/glade
%dir %{_datadir}/glade/catalogs
%{_datadir}/glade/catalogs/libreoffice-catalog.xml
%dir %{_datadir}/glade3
%dir %{_datadir}/glade3/catalogs
%{_datadir}/glade3/catalogs/libreoffice-catalog.xml
%files gdb-pretty-printers
%{_datadir}/gdb/auto-load/%{_libdir}/%{name}
%{_datadir}/libreoffice/gdb
%files -f file-lists/base_list.txt base
%files -f file-lists/calc_list.txt calc
%files -f file-lists/draw_list.txt draw
%files -f file-lists/math_list.txt math
%files -f file-lists/impress_list.txt impress
%files -f file-lists/writer_list.txt writer
%files -f file-lists/postgresql_list.txt base-drivers-postgresql
%if %{with firebird}
%files base-drivers-firebird
%{_libdir}/libreoffice/program/libfirebird_sdbclo.so
%endif
%files -f file-lists/filters_list.txt filters-optional
%files -f file-lists/mailmerge_list.txt mailmerge
%files -f file-lists/pyuno_list.txt pyuno
%exclude %{_libdir}/libreoffice/share/Scripts/python/LibreLogo
%exclude %{_libdir}/libreoffice/share/registry/librelogo.xcd
%files librelogo
%{_libdir}/libreoffice/share/registry/librelogo.xcd
%{_libdir}/libreoffice/share/Scripts/python/LibreLogo
%files -f file-lists/gnome_list.txt gnome
%files gtk3
%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so
%files -f file-lists/sdk_list.txt sdk
%dir %{_libdir}/libreoffice/sdk/lib
%files -f file-lists/sdk_doc_list.txt sdk-doc
%ifarch %{java_arches}
%files calc-extensions
%{_libdir}/%{name}/share/extensions/nlpsolver
%{_libdir}/%{name}/share/extensions/numbertext
%files writer-extensions
%{_libdir}/%{name}/share/extensions/wiki-publisher
%endif
%files icon-themes
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/share
%dir %{_datadir}/%{name}/share/config
%{_datadir}/%{name}/share/config/images_*.zip
%files -f file-lists/branding_upstream.txt branding-upstream
%changelog
* Fri Jan 5 2024 Eustace <eusteuc@outlook.com> - 7.5.0.2-3
- Package init
|