Closed lbarrosoneto closed 1 year ago
Attaching test application
As reported by @otavio on https://github.com/mono/mono/issues/21367, this is yocto specific and does not happen on Debian or NixOS
I've seen something similar in the past. If I remember correctly, downgrading libgdiplus to version 6.0.2 solved it for me.
@mnme what is interesting is it works on Desktop so something more subtle is impacting it.
Is master still doing this?
@ajlennon I am currently having issues building the mono layer, from master, using a ubuntu20.04 LTS machine. Yocto is using gatesgarth, Mono from Master.
Build Configuration:
BB_VERSION = "1.48.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "intel-corei7-64"
DISTRO = "poky"
DISTRO_VERSION = "3.2.4"
TUNE_FEATURES = "m64 corei7"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "gatesgarth:bc71ec0f1d97c983cb0a089b15e283c56de30844"
meta-intel = "gatesgarth:adf3288b9890cbeb2519b57ca548a025ef7a82b0"
meta-virtualization = "gatesgarth:2e5df1cd76265587e6db67f020a06566c4ed6dc4"
meta-oe
meta-networking
meta-python
meta-perl
meta-filesystems
meta-xfce
meta-gnome
meta-multimedia = "gatesgarth:f3f7a5f1a4713f145107bb043e0d14cb3a51c62f"
meta-tpm = "gatesgarth:3daf99fd138b0eebe864bbe1b9c71241d97c4512"
meta-mono = "master:c93841d4c5afc9808840cd4c0ae0697c6c3ef7e0"
make[4]: Entering directory '/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/mono-6.12.0.122/mono/eglib' ../../doltlibtool --tag=CC --mode=link gcc -g -Wall -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -isystem/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/usr/include -O2 -pipe -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -std=gnu99 -fno-strict-aliasing -fwrapv -DMONO_DLL_EXPORT -g -mno-tls-direct-seg-refs -Werror=return-type -Werror-implicit-function-declaration -L/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/usr/lib -L/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/lib -Wl,--enable-new-dtags -Wl,-rpath-link,/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/lib -Wl,-rpath,/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home1/luiz/gatesgarth/yocto/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -Wl,--export-dynamic -Wl,-Bsymbolic -Wl,-z,now -o libeglib.la libeglib_la-garray.lo libeglib_la-gbytearray.lo libeglib_la-gerror.lo libeglib_la-ghashtable.lo libeglib_la-giconv.lo libeglib_la-gmem.lo libeglib_la-goutput.lo libeglib_la-gqsort.lo libeglib_la-gstr.lo libeglib_la-gslist.lo libeglib_la-gstring.lo libeglib_la-gptrarray.lo libeglib_la-glist.lo libeglib_la-gqueue.lo libeglib_la-gpath.lo libeglib_la-gshell.lo libeglib_la-gspawn.lo libeglib_la-gfile.lo libeglib_la-gfile-posix.lo libeglib_la-gpattern.lo libeglib_la-gmarkup.lo libeglib_la-gutf8.lo libeglib_la-gunicode.lo libeglib_la-gdate-unix.lo libeglib_la-gdir-unix.lo libeglib_la-gfile-unix.lo libeglib_la-gmisc-unix.lo libeglib_la-gmodule-unix.lo libeglib_la-gtimer-unix.lo libeglib_la-gmodule-aix.lo -lm -lm -lm -lrt -ldl -lpthread ../../doltlibtool: line 19: /home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/mono-6.12.0.122/mono/eglib/../../libtool: No such file or directory make[4]: [Makefile:720: libeglib.la] Error 127 make[4]: Leaving directory '/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/mono-6.12.0.122/mono/eglib' make[3]: [Makefile:1089: all-recursive] Error 1 make[3]: Leaving directory '/home1/luiz/gatesgarth/yocto/tmp/work/x86_64-linux/mono-native/6.12.0.161-r0/mono-6.12.0.122/mono/eglib'
Thanks - I'm doing a lot of work at the moment to try to make all layers pass tests which I believe will be useful for the future.
Unfortunately this involves change and perhaps some pain for now.
To avoid this - pin your use of meta-mono to what you have been using and none of this will affect you.
Please look at the read me for what is building and testing successfully as this will be the source of truth moving forward.
We have a system now for building with standard host environments which are here -
https://github.com/DynamicDevices/yocto-ci-build
So the idea moving forward is master will always build and test against a standard host build environment for MACHINE={qemux86,qemuarm}
I would love to see contributions on ideas for how to improve build and test for us all
@ajlennon Looks like build does not fail from this tag: https://github.com/DynamicDevices/meta-mono/commit/da01212939e79ef0d2e5fe81c55d764a4f8f7205 (will know in 1 hour or 2)
Loading cache: 100% | | ETA: --:--:-- Loaded 0 entries from dependency cache. Parsing recipes: 100% |###########################################################################| Time: 0:00:24 Parsing of 2916 .bb files complete (0 cached, 2916 parsed). 4237 targets, 130 skipped, 0 masked, 0 errors. Removing 1 recipes from the corei7-64 sysroot: 100% |#############################################| Time: 0:00:03 Removing 1 recipes from the x86_64 sysroot: 100% |################################################| Time: 0:00:03 NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.48.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "intel-corei7-64"
DISTRO = "poky"
DISTRO_VERSION = "3.2.4"
TUNE_FEATURES = "m64 corei7"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "gatesgarth:bc71ec0f1d97c983cb0a089b15e283c56de30844"
meta-intel = "gatesgarth:adf3288b9890cbeb2519b57ca548a025ef7a82b0"
meta-virtualization = "gatesgarth:2e5df1cd76265587e6db67f020a06566c4ed6dc4"
meta-oe
meta-networking
meta-python
meta-perl
meta-filesystems
meta-xfce
meta-gnome
meta-multimedia = "gatesgarth:f3f7a5f1a4713f145107bb043e0d14cb3a51c62f"
meta-tpm = "gatesgarth:3daf99fd138b0eebe864bbe1b9c71241d97c4512"
meta-mono = "HEAD:da01212939e79ef0d2e5fe81c55d764a4f8f7205"
Given the nature of the error I am experiencing when using yocto gatesgarth + meta-mono from master, I suspect this might be a breaking change when using gatesgarth.
https://github.com/DynamicDevices/meta-mono/commit/588fe511a32cdf03a414e3d1fb2ff7eb91e9c463
So, if you look at the README gatesgarth is building successfully.
This is the latest build run - https://github.com/DynamicDevices/meta-mono/actions/runs/1777249145
This is the container image that builds it - https://github.com/DynamicDevices/meta-mono/blob/master/.github/workflows/CI_github.yml#L14
And what is in that image is defined here - https://github.com/DynamicDevices/yocto-ci-build
So from my end this is "working" atm.
@ajlennon
Sorry, I think I was doing the build a non-traditional way. Yocto gatesgarth with meta-mono from gatesgarth branch: Builds ok Yocto gatesgarth with meta-mono from master: Builds if I take out the commit I mentioned above.
A few things I will try and report back:
@ajlennon
I just confirmed that mono issue with TextBoxes is still happening on Master
Build Configuration:
BB_VERSION = "1.53.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-18.04"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
DISTRO = "poky"
DISTRO_VERSION = "3.4+snapshot-74a8a74a553a33dc5f41939f8070d75e6d57d3da"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "master:74a8a74a553a33dc5f41939f8070d75e6d57d3da"
meta-intel = "master:76cc0cce2c8cbe547009573901a1d7247e43fc97"
meta-oe
meta-networking
meta-python
meta-perl
meta-filesystems
meta-xfce
meta-gnome
meta-multimedia = "master:c597a154dd66c615aa636b071bb8220904ee19a5"
meta-tpm = "master:deeadddfb4539d9fe3b78ef704e279ac4fc1e07b"
meta-mono = "master:c93841d4c5afc9808840cd4c0ae0697c6c3ef7e0"
Gatesgarth also has same problem.
Build Configuration:
BB_VERSION = "1.48.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
DISTRO = "poky"
DISTRO_VERSION = "3.2.4"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "gatesgarth:bc71ec0f1d97c983cb0a089b15e283c56de30844"
meta-intel = "gatesgarth:adf3288b9890cbeb2519b57ca548a025ef7a82b0"
meta-virtualization = "gatesgarth:2e5df1cd76265587e6db67f020a06566c4ed6dc4"
meta-oe
meta-networking
meta-python
meta-perl
meta-filesystems
meta-xfce
meta-gnome
meta-multimedia = "gatesgarth:f3f7a5f1a4713f145107bb043e0d14cb3a51c62f"
meta-tpm = "gatesgarth:3daf99fd138b0eebe864bbe1b9c71241d97c4512"
meta-mono = "gatesgarth:307a884aea5c111920b2b7b24683a94353f020e6"
@mnme @otavio @ajlennon
We did some additional experimentation while chasing another bug.
Tested on a x86_64 using yocto zeus branch + mono from gatesgarth: Copying the libgdi plus binary to yocto seems to solve the issue when using mono 6.10. This was the binary used: libgdiplus_6.0.5-0xamarin1+debian10b1.debian.tar.xz Sources: https://download.mono-project.com/repo/debian/dists/stable-buster/snapshots/6.8.0.123/main/source/ File is attached. libgdiplus.so.0.0.0.zip
Will do some testing on ARM.
So issue seems to be localized to libgdi, as @mnme suspected.
Interesting @lbarrosoneto and thanks for the update. I've been working hard to get a CI self-hosted runner system up and running which is pretty much done now.
So I guess my question is - is this still an issue with hardknott and master ?
I am also very interested to know if you can think of an automated test for this we can add in
What do you get if you print out the size properties for those incorrect boxes?
Hi ...
We found out that pango was responsible for this, which is used in the layer for compiling libgdiplus. By disabling pango, the cursor is again normal size.
In fact this seems logical, since pango is then used to measure fonts (and draw them) instead of cairo, and it seems there is an issue in the way pango measures the font for the (empty char ?) cursor.
Anyway, the following bbappend fixed it:
$ more libgdiplus_6.0.5.bbappend SRC_URI_remove = "file://0001-configure-Fix-build-with-Gentoo-pango.patch"
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} jpeg tiff gif exif" PACKAGECONFIG[pango] = "--with-pango,,pango"
Excellent thanks. Can you provide some PRs into the relevant branches which will kick off the automated build & test cycle. When that passes I'll merge in
(Bonus points if you can provide some C# source that'll do a simple test...)
Hi there - thanks for the PRs. I'm not sure if I am misunderstanding but normally I would expect a single PR to include a range of commits, not have one commit per PR. Just makes it a lot easier to see what's going on and makes build failures less likely
Hi Alex,
I just did it, i hope this ws wht yo exected.
BTW, I also updated https://github.com/mono/mono/issues/21367, which is the parent bug on this issue. [https://opengraph.githubassets.com/ad12c7e8bbdd463e51c443c445297562a10c4e3bece9adbb9d0bcd9e8624d847/mono/mono/issues/21367]https://github.com/mono/mono/issues/21367 Yocto Zeus and Gatesgarth issues with Mono 6.10.0.104 Large cursor on TextBox · Issue #21367 · mono/monohttps://github.com/mono/mono/issues/21367 Steps to Reproduce Compile Mono 6.10.0.104 from source (as part of the Yocto Linux image build) using the Meta Layer https://git.yoctoproject.org/meta-mono for gatesgarth branch Execute the TxtBoxT... github.com Friendly,
Sven Luther
De : Alex Lennon @.> Envoyé : mercredi 9 février 2022 17:32 À : DynamicDevices/meta-mono @.> Cc : Luther, Sven @.>; Comment @.> Objet : Re: [DynamicDevices/meta-mono] Yocto Zeus and Gatesgarth issues with Mono 6.10 and 6.12 Large cursor on TextBox (Issue #105)
[Please note: This e-mail is from an EXTERNAL e-mail address]
Hi there - thanks for the PRs. I'm not sure if I am misunderstanding but normally I would expect a single PR to include a range of commits, not have one commit per PR. Just makes it a lot easier to see what's going on and makes build failures less likely
— Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/DynamicDevices/meta-mono/issues/105*issuecomment-1033954484__;Iw!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzBOp2TWI$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ABSADA6RY53LYU2QQKLUA63U2KJKRANCNFSM5KS7LMHQ__;!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzsRSQCJM$. Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.com/v3/__https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675__;!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzYFaMlmY$ or Androidhttps://urldefense.com/v3/__https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign*3Dnotification-email*26utm_medium*3Demail*26utm_source*3Dgithub__;JSUlJSU!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzWjOXIQU$. You are receiving this because you commented.Message ID: @.***>
@ajlennon
Updating the app to show the text box height and will share here.
Luiz
Ah, sorry about that, my gihub skills are not all that god i gues, will do so next time.
De : Alex Lennon @.> Envoyé : mercredi 9 février 2022 17:32 À : DynamicDevices/meta-mono @.> Cc : Luther, Sven @.>; Comment @.> Objet : Re: [DynamicDevices/meta-mono] Yocto Zeus and Gatesgarth issues with Mono 6.10 and 6.12 Large cursor on TextBox (Issue #105)
[Please note: This e-mail is from an EXTERNAL e-mail address]
Hi there - thanks for the PRs. I'm not sure if I am misunderstanding but normally I would expect a single PR to include a range of commits, not have one commit per PR. Just makes it a lot easier to see what's going on and makes build failures less likely
— Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/DynamicDevices/meta-mono/issues/105*issuecomment-1033954484__;Iw!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzBOp2TWI$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ABSADA6RY53LYU2QQKLUA63U2KJKRANCNFSM5KS7LMHQ__;!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzsRSQCJM$. Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.com/v3/__https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675__;!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzYFaMlmY$ or Androidhttps://urldefense.com/v3/__https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign*3Dnotification-email*26utm_medium*3Demail*26utm_source*3Dgithub__;JSUlJSU!!AjveYdw8EvQ!IUmuMtHU9H71uAmQKHRHEo9jYGWSinoB0QuTh-ul7p-S4rNwF3o20zdoAmFzWjOXIQU$. You are receiving this because you commented.Message ID: @.***>
No worries at all. I appreciate the contribution. We’re all learning as we go.
What I tend to do is
Cheers
So your first PR failed to build. Could you go through the process above and combine your commits into a single PR and then we can check that it builds? Thanks!
Ah - my mistake - my apologies. I was looking at a mobile phone and missed that you were making PRs into different branches which is totally the right thing. So we just need to look at why the build is failing...
@svenluther - take a look here. It's saying there's a cairo include file missing. Maybe a dependency missing?
https://github.com/DynamicDevices/meta-mono/runs/5128432001?check_suite_focus=true#step:7:11749
yeah, i don't know why this happens, on my own build it pulls in cairo all by itself, but i guess it may be pulled in by something else maybe ?
Cairo is used as default if --with-pango is not used, so the error makes sense.
also, the recipe has: DEPENDS =+ "cairo freetype fontconfig libpng"
so cairo should be there ?
Looks to me as though you need a dependency on cairo-dev maybe?
my .bbappend does :+1: $ more libgdiplus_6.0.5.bbappend SRC_URI_remove = "file://0001-configure-Fix-build-with-Gentoo-pango.patch"
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} jpeg tiff gif exif" PACKAGECONFIG[pango] = "--with-pango,,pango"
We need to remove the patch too which is in the libgdiplus_6.0.5.bb (and related) files.
How can i extend the PR to include this ?
Push to your own branch again with the new commit and it should update the PR.
I tried adding cairo-dev
here and it didn't help
no you need to drop the patch.
I've closed your older PRs and your latest PR is building...
Great stuff. That build and test worked - merged in
Do you need to submit any PRs for other branches?
no, i didn't (yet)
Shall we close this issue or do you want to submit more PRs @svenluther ?
I think there where three branches affected on top of master.
I didn’t find the way to easily duplicate the PR for the other branches, so I need to find time to do this (unless you know of a magic way to do this, in which case you are welcome to handle it).
If not, I will try to do the remaining PRs easy next week.
Friendly,
Sven Luther
Envoyé de mon iPhone
Le 18 févr. 2022 à 15:30, Alex Lennon @.***> a écrit :
[Please note: This e-mail is from an EXTERNAL e-mail address]
Shall we close this issue or do you want to submit more PRs @svenlutherhttps://urldefense.com/v3/__https://github.com/svenluther__;!!AjveYdw8EvQ!PIorJcgZywBQZ3YCTWyj100jc7AnVuAovAIFhvWPCcei3BQvoHEP_xQoQxYEan71Wks$ ?
— Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/DynamicDevices/meta-mono/issues/105*issuecomment-1044614344__;Iw!!AjveYdw8EvQ!PIorJcgZywBQZ3YCTWyj100jc7AnVuAovAIFhvWPCcei3BQvoHEP_xQoQxYEVPLv84M$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ABSADA7WO7TZOTN7Q2KRMYLU3ZJWJANCNFSM5KS7LMHQ__;!!AjveYdw8EvQ!PIorJcgZywBQZ3YCTWyj100jc7AnVuAovAIFhvWPCcei3BQvoHEP_xQoQxYELYOVPx0$. Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.com/v3/__https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675__;!!AjveYdw8EvQ!PIorJcgZywBQZ3YCTWyj100jc7AnVuAovAIFhvWPCcei3BQvoHEP_xQoQxYEaw2JqZM$ or Androidhttps://urldefense.com/v3/__https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign*3Dnotification-email*26utm_medium*3Demail*26utm_source*3Dgithub__;JSUlJSU!!AjveYdw8EvQ!PIorJcgZywBQZ3YCTWyj100jc7AnVuAovAIFhvWPCcei3BQvoHEP_xQoQxYEEFpOiQQ$. You are receiving this because you were mentioned.Message ID: @.***>
Closing due to inactivity
Steps to Reproduce
Current Behavior
TextBox is display a cursor way bigger than the font (this is happening on Windriver Linux)![image](https://user-images.githubusercontent.com/7077968/145654777-80e4411f-4c4b-4526-9e50-d85a1b49fdd4.png)
Issue does not happen on Debian Linux.
Expected Behavior
Cursor should be same size of the fonts used in TextBox (this is on a Windows Host):![image](https://user-images.githubusercontent.com/7077968/145654878-b2b8a09a-066c-4946-bc16-ff7c19ff1b0f.png)
On which platforms did you notice this
[ ] macOS [ x] Linux - Yocto Zeus or Gatesgarth [ ] Windows
Version Used:
6.10.0.104
Stacktrace
Not applicable.
Remark
The issue does not happen with Mono Version 6.8.0.123.