userdocs / qbittorrent-nox-static

A bash script which builds a fully static qbittorent-nox binary with current dependencies to use on any Linux OS
https://userdocs.github.io/qbittorrent-nox-static
Apache License 2.0
1.09k stars 106 forks source link

fatal error: layout/LETypes.h: No such file or directory #11

Closed IceCodeNew closed 4 years ago

IceCodeNew commented 4 years ago

I'm wondering it's -DU_LAYOUTEX_IMPLEMENTATION causing this problem. And I'm unable to get fully understand what purpose does this option serve.


OS: Alpine Linux (edge) Script used: https://github.com/userdocs/qbittorrent-nox-static/blob/ddaf7ce182bf840073943efce3c213e89c68b09c/qbittorrent-nox-static-musl.sh (latest version at this point) Modifications or changes: nothing

log:

``` ar r ../lib/libicui18n.a ucln_in.ao fmtable.ao format.ao msgfmt.ao umsg.ao numfmt.ao unum.ao decimfmt.ao dcfmtsym.ao fmtable_cnv.ao choicfmt.ao datefmt.ao smpdtfmt.ao reldtfmt.ao dtfmtsym.ao udat.ao dtptngen.ao udatpg.ao nfrs.ao nfrule.ao nfsubs.ao rbnf.ao numsys.ao unumsys.ao ucsdet.ao ucal.ao calendar.ao gregocal.ao timezone.ao simpletz.ao olsontz.ao astro.ao taiwncal.ao buddhcal.ao persncal.ao islamcal.ao japancal.ao gregoimp.ao hebrwcal.ao indiancal.ao chnsecal.ao cecal.ao coptccal.ao dangical.ao ethpccal.ao coleitr.ao coll.ao sortkey.ao bocsu.ao ucoleitr.ao ucol.ao ucol_res.ao ucol_sit.ao collation.ao collationsettings.ao collationdata.ao collationtailoring.ao collationdatareader.ao collationdatawriter.ao collationfcd.ao collationiterator.ao utf16collationiterator.ao utf8collationiterator.ao uitercollationiterator.ao collationsets.ao collationcompare.ao collationfastlatin.ao collationkeys.ao rulebasedcollator.ao collationroot.ao collationrootelements.ao collationdatabuilder.ao collationweights.ao collationruleparser.ao collationbuilder.ao collationfastlatinbuilder.ao listformatter.ao ulistformatter.ao strmatch.ao usearch.ao search.ao stsearch.ao translit.ao utrans.ao esctrn.ao unesctrn.ao funcrepl.ao strrepl.ao tridpars.ao cpdtrans.ao rbt.ao rbt_data.ao rbt_pars.ao rbt_rule.ao rbt_set.ao nultrans.ao remtrans.ao casetrn.ao titletrn.ao tolowtrn.ao toupptrn.ao anytrans.ao name2uni.ao uni2name.ao nortrans.ao quant.ao transreg.ao brktrans.ao regexcmp.ao rematch.ao repattrn.ao regexst.ao regextxt.ao regeximp.ao uregex.ao uregexc.ao ulocdata.ao measfmt.ao currfmt.ao curramt.ao currunit.ao measure.ao utmscale.ao csdetect.ao csmatch.ao csr2022.ao csrecog.ao csrmbcs.ao csrsbcs.ao csrucode.ao csrutf8.ao inputext.ao wintzimpl.ao windtfmt.ao winnmfmt.ao basictz.ao dtrule.ao rbtz.ao tzrule.ao tztrans.ao vtzone.ao zonemeta.ao standardplural.ao upluralrules.ao plurrule.ao plurfmt.ao selfmt.ao dtitvfmt.ao dtitvinf.ao udateintervalformat.ao tmunit.ao tmutamt.ao tmutfmt.ao currpinf.ao uspoof.ao uspoof_impl.ao uspoof_build.ao uspoof_conf.ao smpdtfst.ao ztrans.ao zrule.ao vzone.ao fphdlimp.ao fpositer.ao ufieldpositer.ao decNumber.ao decContext.ao alphaindex.ao tznames.ao tznames_impl.ao tzgnames.ao tzfmt.ao compactdecimalformat.ao gender.ao region.ao scriptset.ao uregion.ao reldatefmt.ao quantityformatter.ao measunit.ao measunit_extra.ao sharedbreakiterator.ao scientificnumberformatter.ao dayperiodrules.ao nounit.ao number_affixutils.ao number_compact.ao number_decimalquantity.ao number_decimfmtprops.ao number_fluent.ao number_formatimpl.ao number_grouping.ao number_integerwidth.ao number_longnames.ao number_modifiers.ao number_notation.ao number_output.ao number_padding.ao number_patternmodifier.ao number_patternstring.ao number_rounding.ao number_scientific.ao number_utils.ao number_asformat.ao number_mapper.ao number_multiplier.ao number_currencysymbols.ao number_skeletons.ao number_capi.ao double-conversion-string-to-double.ao double-conversion-double-to-string.ao double-conversion-bignum-dtoa.ao double-conversion-bignum.ao double-conversion-cached-powers.ao double-conversion-fast-dtoa.ao double-conversion-strtod.ao string_segment.ao numparse_parsednumber.ao numparse_impl.ao numparse_symbols.ao numparse_decimal.ao numparse_scientific.ao numparse_currency.ao numparse_affixes.ao numparse_compositions.ao numparse_validators.ao numrange_fluent.ao numrange_impl.ao erarules.ao formattedvalue.ao formattedval_iterimpl.ao formattedval_sbimpl.ao formatted_string_builder.ao ar: creating ../lib/libicui18n.a ranlib ../lib/libicui18n.a make[1]: Leaving directory '/root/qbittorrent-build/icu/source/i18n' make[0]: Making `all' in `layoutex' make[1]: Entering directory '/root/qbittorrent-build/icu/source/layoutex' (deps) plruns.cpp (deps) playout.cpp (deps) LXUtilities.cpp (deps) RunArrays.cpp (deps) ParagraphLayout.cpp playout.cpp:13:10: fatal error: layout/LETypes.h: No such file or directory 13 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ plruns.cpp:9:10: fatal error: layout/LETypes.h: No such file or directory 9 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. compilation terminated. RunArrays.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory 10 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. LXUtilities.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory 10 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. ParagraphLayout.cpp:14:10: fatal error: layout/LETypes.h: No such file or directory 14 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. g++ ... ParagraphLayout.cpp g++ ... RunArrays.cpp g++ ... LXUtilities.cpp g++ ... playout.cpp g++ ... plruns.cpp RunArrays.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory 10 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. playout.cpp:13:10: fatal error: layout/LETypes.h: No such file or directory 13 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. LXUtilities.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory 10 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. *** Failed compilation command follows: ---------------------------------------------------------- *** Failed compilation command follows: ---------------------------------------------------------- g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o RunArrays.ao RunArrays.cpp g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o playout.ao playout.cpp --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) -------- --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) -------- make[1]: *** [../config/mh-linux:49: RunArrays.ao] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [../config/mh-linux:49: playout.ao] Error 1 *** Failed compilation command follows: ---------------------------------------------------------- g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o LXUtilities.ao LXUtilities.cpp --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) -------- make[1]: *** [../config/mh-linux:49: LXUtilities.ao] Error 1 ParagraphLayout.cpp:14:10: fatal error: layout/LETypes.h: No such file or directory 14 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. plruns.cpp:9:10: fatal error: layout/LETypes.h: No such file or directory 9 | #include "layout/LETypes.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. *** Failed compilation command follows: ---------------------------------------------------------- g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o plruns.ao plruns.cpp --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) -------- make[1]: *** [../config/mh-linux:49: plruns.ao] Error 1 *** Failed compilation command follows: ---------------------------------------------------------- g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o ParagraphLayout.ao ParagraphLayout.cpp --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) -------- make[1]: *** [../config/mh-linux:49: ParagraphLayout.ao] Error 1 make[1]: Leaving directory '/root/qbittorrent-build/icu/source/layoutex' make: *** [Makefile:153: all-recursive] Error 2 ```

Relative discussion: https://bugs.freedesktop.org/show_bug.cgi?id=64878

userdocs commented 4 years ago

I am not really able to understand this issue without more context.

OS / Platform.

Script used.

Modifications or changes

Please can you make the issue as informative as possible.

userdocs commented 4 years ago

Does it happen in 3.12. I am not testing on edge.

IceCodeNew commented 4 years ago

Does it happen in 3.12. I am not testing on edge.

I won't have a doubt that I can replicate this problem on Alpine Linux 3.12. After all, in the qbittorrent-nox-static-musl.sh script we almost build everything from source. And it seems unlikely that such file not found problem can be lead by the different version of some basic c build environment packages.

userdocs commented 4 years ago

I do not experience this issue.

Alpine linux 3.12 amd x64

   g++   ...  formatted_string_builder.cpp
ar r ../lib/libicui18n.a ucln_in.ao fmtable.ao format.ao msgfmt.ao umsg.ao numfmt.ao unum.ao decimfmt.ao dcfmtsym.ao fmtable_cnv.ao choicfmt.ao datefmt.ao smpdtfmt.ao reldtfmt.ao dtfmtsym.ao udat.ao dtptngen.ao udatpg.ao nfrs.ao nfrule.ao nfsubs.ao rbnf.ao numsys.ao unumsys.ao ucsdet.ao ucal.ao calendar.ao gregocal.ao timezone.ao simpletz.ao olsontz.ao astro.ao taiwncal.ao buddhcal.ao persncal.ao islamcal.ao japancal.ao gregoimp.ao hebrwcal.ao indiancal.ao chnsecal.ao cecal.ao coptccal.ao dangical.ao ethpccal.ao coleitr.ao coll.ao sortkey.ao bocsu.ao ucoleitr.ao ucol.ao ucol_res.ao ucol_sit.ao collation.ao collationsettings.ao collationdata.ao collationtailoring.ao collationdatareader.ao collationdatawriter.ao collationfcd.ao collationiterator.ao utf16collationiterator.ao utf8collationiterator.ao uitercollationiterator.ao collationsets.ao collationcompare.ao collationfastlatin.ao collationkeys.ao rulebasedcollator.ao collationroot.ao collationrootelements.ao collationdatabuilder.ao collationweights.ao collationruleparser.ao collationbuilder.ao collationfastlatinbuilder.ao listformatter.ao ulistformatter.ao strmatch.ao usearch.ao search.ao stsearch.ao translit.ao utrans.ao esctrn.ao unesctrn.ao funcrepl.ao strrepl.ao tridpars.ao cpdtrans.ao rbt.ao rbt_data.ao rbt_pars.ao rbt_rule.ao rbt_set.ao nultrans.ao remtrans.ao casetrn.ao titletrn.ao tolowtrn.ao toupptrn.ao anytrans.ao name2uni.ao uni2name.ao nortrans.ao quant.ao transreg.ao brktrans.ao regexcmp.ao rematch.ao repattrn.ao regexst.ao regextxt.ao regeximp.ao uregex.ao uregexc.ao ulocdata.ao measfmt.ao currfmt.ao curramt.ao currunit.ao measure.ao utmscale.ao csdetect.ao csmatch.ao csr2022.ao csrecog.ao csrmbcs.ao csrsbcs.ao csrucode.ao csrutf8.ao inputext.ao wintzimpl.ao windtfmt.ao winnmfmt.ao basictz.ao dtrule.ao rbtz.ao tzrule.ao tztrans.ao vtzone.ao zonemeta.ao standardplural.ao upluralrules.ao plurrule.ao plurfmt.ao selfmt.ao dtitvfmt.ao dtitvinf.ao udateintervalformat.ao tmunit.ao tmutamt.ao tmutfmt.ao currpinf.ao uspoof.ao uspoof_impl.ao uspoof_build.ao uspoof_conf.ao smpdtfst.ao ztrans.ao zrule.ao vzone.ao fphdlimp.ao fpositer.ao ufieldpositer.ao decNumber.ao decContext.ao alphaindex.ao tznames.ao tznames_impl.ao tzgnames.ao tzfmt.ao compactdecimalformat.ao gender.ao region.ao scriptset.ao uregion.ao reldatefmt.ao quantityformatter.ao measunit.ao measunit_extra.ao sharedbreakiterator.ao scientificnumberformatter.ao dayperiodrules.ao nounit.ao number_affixutils.ao number_compact.ao number_decimalquantity.ao number_decimfmtprops.ao number_fluent.ao number_formatimpl.ao number_grouping.ao number_integerwidth.ao number_longnames.ao number_modifiers.ao number_notation.ao number_output.ao number_padding.ao number_patternmodifier.ao number_patternstring.ao number_rounding.ao number_scientific.ao number_utils.ao number_asformat.ao number_mapper.ao number_multiplier.ao number_currencysymbols.ao number_skeletons.ao number_capi.ao double-conversion-string-to-double.ao double-conversion-double-to-string.ao double-conversion-bignum-dtoa.ao double-conversion-bignum.ao double-conversion-cached-powers.ao double-conversion-fast-dtoa.ao double-conversion-strtod.ao string_segment.ao numparse_parsednumber.ao numparse_impl.ao numparse_symbols.ao numparse_decimal.ao numparse_scientific.ao numparse_currency.ao numparse_affixes.ao numparse_compositions.ao numparse_validators.ao numrange_fluent.ao numrange_impl.ao erarules.ao formattedvalue.ao formattedval_iterimpl.ao formattedval_sbimpl.ao formatted_string_builder.ao
ar: creating ../lib/libicui18n.a
ranlib ../lib/libicui18n.a
make[1]: Leaving directory '/root/qbittorrent-build/icu/source/i18n'
make[0]: Making `all' in `io'
make[1]: Entering directory '/root/qbittorrent-build/icu/source/io'
   (deps)        ucln_io.cpp
IceCodeNew commented 4 years ago

I do not experience this issue.

Alpine linux 3.12 amd x64

It's a queer go... I'll give it a shot. BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve? It seems that ICU are officially encourage users of the "layoutex" ParagraphLayout library using the HarfBuzz engine to build it rather than the ICU LayoutEngine. And the latter has been deprecated for a while. Maybe we should take those changes into scripts here too? You can find the document here:

http://userguide.icu-project.org/layoutengine/paragraph

userdocs commented 4 years ago

I don't really understand what the problem is here. I cannot reproduce it and i don't specifically include it in the build process.

https://github.com/userdocs/qbittorrent-nox-static/blob/master/qbittorrent-nox-static-musl.sh#L288#L290

Can you please clarify the nature of the issue.

IceCodeNew commented 4 years ago

i don't specifically include it in the build process. Can you please clarify the nature of the issue.

Yes, I can see that too. I submit this issue because I thought we need to specifically pass something to gcc then, as I was believe that we may built some component that is unnecessary, and its dependencies we are not satisfied yet.

IceCodeNew commented 4 years ago

At this moment I'm perplexed too. I can only speculate that the verbose log wasn't showing the source of the problem, though such thing is very odd to me. The log itself was emit under command make VERBOSE=1 all

g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o plruns.ao plruns.cpp --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------

Now I'm not seek for a solution, as your previous advice works for me ;-) But I'm still trying to get an answer from you, hope that's not ill-mannered for you.

BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve?

userdocs commented 4 years ago

BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve?

To be honest, i don't know. I only build icu to use when building boost. Since i can't replicate your issue, it does exactly what i need and i have no specific expectations or requirements fro icu other than it builds and moves on to the next stage.

As long as it works, i don't need to know what ParagraphLayout is or does. I hope that makes sense.

IceCodeNew commented 4 years ago

As long as it works, i don't need to know what ParagraphLayout is or does. I hope that makes sense.

Sure.