2020-02-29 | Journal | wx Supply Chain
Up to 1.4 GB of tmp files so far to compile the python gtk ui w/ webkit. I blew through 2GB, and had to bind the tmp directory to a different partition. "Python 3 with GTK and Webkit /w CSS" is a hard problem to solve.
As I'm working on this, I found a reference to a docker file that used a combination of git pulls and apt commands to create the image. Ironically, I am looking at files like this to figure out how to get the dependencies in place (just to get wx.html2 GTS sometime... I'm not the only one). I wish I could get across what that means somehow, how fragile that can be. But, as Sean and I talked about just the other day, it is much, much more meaningful when you can see a live slider bar that scans through versions of a model graphically, than it is going into depth on this stuff. I have of variety of readers on this site. I'm just excited seeing these patterns resonate.
Yaaaahhhssss!!!! I get beer now.
This is the supply chain for "wx.html2". Seriously... if I run ldd against the library, this is the output. I know... it is weird I'm using i386, here. The supply chain for 64 bit is just as long. I'm using i386 because that is the preferred format for a GNU/Linux distribution I like right now. It's sole purpose is to boot on anything and provide a full suite of apps. I need to coexist with it. Now that I know the full list of dependencies, I can make this work on anything. It should even compile on Rasberry Pi. What is even more complicated is that these dependencies interrelate. You have to compile them in a certain order.
This is the guy that made the OS that I want to co-exist with as a liger.
The problem with wx.html2 goes back a long ways. This is what is happening behind the curtain while all the happy CD folks are adding apt commands to their Dockerfiles: There is a large swath of GNU/Linux systems out there (including Ubuntu 18.04 and derivative... which means the Windows install for the Linux subsystem...) that have this and related issues. Even if they don't, it is in the middle of the Python 2 to Python 3 and GTK 2 to GTK3 transition. To be even more specific, wxpython wraps the actual OS windows widgets, using WXwidgets, a C++ library, so Python can use it. That means that any change in the native controls need to be dealt with. While it is possible to create a standalone app (much like how Docker works, actually) by including the entire UI library, what you end up with in that case is an aged set of UI interfaces where there are usually good reasons to not use them. Soooo... there are good reasons to understand the entire supply chain for this item. Once it is mapped, balls to bone, it is easier to navigate upgrades to the OS. It is an interesting focus for a supply chain. From my perspective it is like focusing on water coming out of the tap at somebodies home, because wx.html2 has the benefits of the full chain. So, not only do I not want to just pay a nickel for the jug of water (a la Red Headed Stranger... great movie), I want to control the supply (chain).
One other thing. I want the same version of Phoenix (wx) across all of my systems, 4.0.7. Besides all of the other stuff in motion, Phoenix is in motion too. It is a major rewrite of the 3 series which was under a completely different group. the 4 series (Phoenix) is much better, complete... and has wx.html2. I need to develop for the same version of wx.html2 running against the same version of GTK, etc.
One other thing, in my best Columbo voice. Pip (the python version of CPAN) tries to find binary builds based on matches with what it perceives your current OS to be. If it fails, it tries to compile. You can force it to always compile again, which is what I did. I was not able to simply go "pip install wxpython", which would amount to a pip installer for wx.html2 via wxpython. I really just needed the dependency list from ldd, like I added above. I have fought this wx.html2 thing for close to a year now. Believe me, if the supply chain was stable I would be happy. As long as I have to break it apart, though, put in the analysis to ensure I can create Phoenix 4.0.7 w/ wx.html2 at will, it is worth it to go all the way down to the full toolchain (libc.so.6 is a reasonable root... down to GNU C Library).computers ouroboros
Articles tagged with computers on Mud Hut Club:
Articles tagged with computers on O.R.N.G.:
Articles tagged with ouroboros on Mud Hut Club:
Articles tagged with ouroboros on O.R.N.G.:
2019-08-03: Bits of Tree
2019-06-27: Straight Down the Line
2019-05-19: Triple Tree
2019-05-18: Honeycomb Start
2019-05-11: Ouroboros Tree
2018-07-10: Woman Emerging from Manhole
2018-03-07: Braid of Life
2018-01-11: Train Circle
2017-11-05: Wu-Tang Clan
2017-10-13: Fire and Data
2017-10-11: risk of frameworks
2017-08-06: Finger Divine
2017-06-25: 1279 BC
2010-11-02: Do you see?
2006-08-03: Information Markup