Libwebkitgtk deprecation and feedback 59272

I have literally spent the last two days on this issue and after having danced around the subject (I didn’t even know what the subject was myself, but all sorts of crashes and bugs, including this deprecation) I thought I would post a quick synopsis here.

There are several issues I’ve been experiencing from random crashes on copy and paste (it has to do with what’s in the clipboard, what exactly I’m not sure, but a clean install on Mint seems to have fixed that (I think) lol

But installation on mint wasn’t as smooth as it should have been.

For one, the still provide a .deb and .rpm package and AFAIK, the .deb won’t work on anything beyond 18.04 unless the user manually installs a non supported, buggy and security risk dependency. So you have to manually install xojo via the tgz and I’m no linux guru, if it wasn’t for vague instructions spread over a few forum posts (which eventually led me to a document on it), my shiny new install would have been wiped out.

Did I mention I only just bought Pro yesterday? I’m feeling a bit stupid now, but I’ll test the hell out of it over the next couple of months.

Feedback case 59272 details the dependency issue and the exact dkpg log in that feedback is the same log you get today if you run dkpg -i Xojo-version.deb Exactly the same down to the offending dependencies.

Since I wasn’t getting much love on their forums (TBH, I STILL didn’t know, and still don’t know where the problems exactly lie) I reached out on reddit and got this informative response:

That coupled with the feedback report where they’ve explicitly said they’ve fixed an issue, and they haven’t (because the dependency is still there), leaves a bit of a bitter taste in my mouth.

Then couple that with no automatic project upgrade when breaking changed are introduced in updates and a whole host of other issues as I’ve discovered in the last 24 hours (since payment!), it’s just crazy.

It is such a shame

Make sure that you file a bug report with as much detail as you can about this

Yeah I have (re detail), but it’s been difficult because I really still don’t know what the exact problem is, but I think I have nutted it down to this. I will file a new report, just not tonight.

Any ideas which controls they’re relying on this library for? According to this, all the issues were fixed in webkit2gtk

libwebkitgtk would probably be the HTMLViewer for use in user projects
It might be used for the built in help system as well

I must admit that I havent run into such missing library issues
BUT I just used the 2019r3.2 tgz and expended it using the built in archive manager (literally downloaded it and double clicked it which opens in the archive manager)
I drag the contents to the desktop and off it goes
This is on Mint 20

and you can build/run the examples? The four I kept testing were:

  • databases: SQLExample, SQLBackup
  • games: combat something and block something

With the tgz, yeah, I get xojo running, it’s up and running no problems, (AFAIK), but I can’t get many examples to run

SQLiteExample runs fine
SQLiteBackup works fine

Combat compiles & runs - doesnt run well but runs
Block attack runs & functions

Ok, this is crazy shit happening here…

ALL MY EXAMPLES ARE NOW WORKING

I only have one possible explanation for it at the moment and I’m trying to keep some sanity.

Is it possible the example projects in the .deb and .tgz packages are different? I don’t know how to check (I have an idea, but I’m busy trying to clean this mess).

Yesterday a lot of examples weren’t working, and today they are. I have just unarchived the .tgz files and some of the examples have “Opening”, “Pressed”, “Closing” type events instead of “Action” events. But today they are correct. Why is what I have on the drive different to whats in the archive?

A lot has happened, not limited to but including:

  • I have installed the feedback app on this computer
  • I have installed the pre-release
  • I have installed tested the .tgz for 2019r3.1
    but interestingly, when I tried to check dependencies of the .deb package, I THINK I may have forced installation without checking for the dependencies. (dpkg -i xojo2019r3.2.deb) I thought I was checking the package contents but today when I try and update/upgrade and install some hashing tools (because some shit is weird and I’m trying to work out why some files are different), I can’t because xojo dependencies aren’t met!!
dave@redmint:/opt/xojo$ sudo apt install hashdeep
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 xojo2019r3.2 : Depends: libwebkit2gtk-4 (>= 1.0.0) but it is not installable or
                         libwebkit2gtk-3 (>= 1.0.0) but it is not installable or
                         libwebkitgtk-3.0-0 (>= 1.0.0) but it is not installable
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

So before I can do anything I need to clean the above and I think the only way to do that is force an uninstall via dpkg and reinstall via .tgz at which point I think I am going to have the legacy Examples…

I dont believe they are given what I know about how the Linux set ups are created

MATE!!! You are not going to BELIEVE the crap I am looking at. It TOTALLY does not make any sense. It is so unbelievable I have had to make a video about this because I just don’t believe it myself.

It’s all coming down to WHERE ARE THE EXAMPLE FILES BEING LOADED FROM???

How can I possibly tell? Because what I’m seeing is just UNBELIEVABLE.

SOMEHOW I have TWO sets of example files (I actually have a lot more than that, but they’re all duplicates)… Except the example files that are started from the desktop, and where the hell they are coming from is anyone’s guess. I am going to make a new video right now (since the last one was too long, and unfortunately I don’t have a microphone on this computer, so you’re going to just have to follow along with what’s detailed below.

When I originally installed 2019R3.2 onto Mint, a lot of the projects just didn’t work, they had the wrong event types associated with them. I worked out I could fix it and they would work. But I don’t think that changes the actual Example files, it only changes them in memory until you save it and then it saves it in whatever location you save them to. All good so far?

I’ve installed pre-release (and this seems to have included newer and updated example files, because all of a sudden they work in pre-release. Well, that’s to be expected.

But then I open 2019r3.2 AND THEY WORK! ???

So now, 2019r3.2 EXAMPLES WORK, they didn’t before.

So now I want to hash the files and the copy of the files in the /opt/xojo2019r3.2 directory hash identical to the ones I have saved off elsewhere.

SAME HASH, but one works and one doesn’t

In the video there are two sets of Example Files, those in /opt/xojo2019r3.2 and those in BACKUP/xojo2019r3.2-good

THEY HASH IDENTICAL:

dave@redmint:~/$ md5deep /opt/xojo/xojo2019r3.2/Example\ Projects/Games/2K/2K-Desktop.xojo_binary_project 
654ecdcf1d78982a8f97eee927426c4b  /opt/xojo/xojo2019r3.2/Example Projects/Games/2K/2K-Desktop.xojo_binary_project
dave@redmint:~/$ md5deep /home/dave/BACKUP/xojo2019r3.2-good/Example\ Projects/Games/2K/2K-Desktop.xojo_binary_project 
654ecdcf1d78982a8f97eee927426c4b  /home/dave/BACKUP/xojo2019r3.2-good/Example Projects/Games/2K/2K-Desktop.xojo_binary_project

They’re the same example file, yeah?

Well, they’re not (I believe they are, I think the issue is where /opt/xojo loads it’s examples from, but I can’t work out how to tell, anyway, let’s continue).

The executables are the same in the two directories:

dave@redmint:~/$ md5deep /opt/xojo/xojo2019r3.2/Xojo
9dff7c3478a632acf1e099f4eccdaf83  /opt/xojo/xojo2019r3.2/Xojo
dave@redmint:~/$ md5deep ~/BACKUP/xojo2019r3.2-good/Xojo
9dff7c3478a632acf1e099f4eccdaf83  /home/dave/BACKUP/xojo2019r3.2-good/Xojo

These are the commands I will be running in the video:

# This one will work
~/BACKUP/xojo2019r3.2-good/Xojo ~/BACKUP/xojo2019r3.2-good/Example\ Projects/Games/2K/2K-Desktop.xojo_binary_project 

#This one will not work
/opt/xojo/xojo2019r3.2/Xojo /opt/xojo/xojo2019r3.2/Example\ Projects/Games/2K/2K-Desktop.xojo_binary_project 

When I load the project up, check the file path of the example file in the middle right of the dialog. Also check the version number of the IDE in the bottom right corner (it is the same version of the IDE)

If you can see where the example projects are different, please let me know :slight_smile:

I BELIEVE I know where the error is coming from, but Xojo is not making it easy. It is REPORTING one thing to the user, but using something else from somewhere else*. How can I debug that?

I do apologise, I have a 4K monitor and dual screen, I’ve only recorded one screen, but xojo repeatedly opens up on the other one (that’s another bug, the IDE opens on one screen, but the open project dialog appears on the other screen. I’ll file feedback for that)

The video is uploading, hopefully by the time I hit send on this post, the video will be uploaded.

Hopefully someone can tell me what’s going on.

Buckle up and grab some popcorn:

  1. When the video starts, I begin by showing all the hash values, they appear above anyway, so if you want, jump forward to 1m30 and watch me open the IDEs
  2. 1m25 I open /opt/xojo example project, and drag it to the screen
  3. 1m34 I open the BACKUP IDE and drag it to the screen
  4. 1m55 I am opening the Event handlers for the first IDE, they are the wrong API version
  5. 2m01 I open the other event handlers for the second IDE
  6. I then open the event handlers for the button and you see “Pressed” vs “Action”
  7. 2m40 I open the “Choose a project Dialog” and you can see it’s location
  8. 3m05 I do the same for the second IDE
  9. 3m30 I am trying to point out the version of the IDE (bottom right corner)

I forgot to ask, you are using Linux or another OS?

What version of what OS are you using?

I’m guessing this is only a problem on linux.

And I just realised I didn’t actually run the applications in each IDE, but you can take it that with the incorrect event handlers, the one on the left doesn’t work. But according to the hashing, the one on the left and right are both equal!

Am I going insane?

I’ve never had any lick with the DEB or RPM
So I NEVER use them
Plus they put things is weird locations (/opt ??? seriously ???)
So I always use the TGZ so I know exactly where its located

The examples from the “New Project” dialog should be from the Examples directory located right next to running IDE itself
Or you can use File > Open and simply navigate to a specific one and open it (that should be all the Examples item in the New Project pane does)

I just don’t know enough about installing packages directly though, especially if they have hard coded links and expect certain locations.

But I am learning though

I dont “install” it
TGZ is basically like zip file
Open it
Literally drag the contents from it where ever you want (99% of the time I just put it on the desktop)
And use