Setting a goal

Sub-forum to lay a basic framework for future expansion and/or modifications to OXT
Post Reply
mdm
Posts: 22
Joined: Thu Sep 16, 2021 2:15 pm
Contact:

Setting a goal

Post by mdm »

Thanks Paul
for the effort of setting up this forum,
also I think OXT is a good choice for the name as it excludes no idea of going forward.

Having read a lot of the stuff that has been posted (already too much to review it all! :-),
I would like to suggest a few things:

1. Actually executing a clean fork is a lot of work (as can be seen already from efforts of search & replace etc), but it gets only worse from there because all the issues present in and with LC are naturally still present after a fork. Then it would get even much worser ;-) because to evolve the code base in a certain direction (e.g. weed out errors or adapt to changing APIs) is ... well you know. Big fun!

2. I think it is crucial to carefully re-read the post by MarkW on the use-LC list (that has already been cited here). I read it as an invitation to actually proceed with a fork and even an offer to help, as long as strict borders are mutually respected which is only smart and fair and must actually be so.

Perhaps such help might be already welcome now to make a clean cut. Because e.g. when LC Ltd at some point would formally write that a certain starting code base of a fork is fine for them (legally etc.) then this project here could feel to be on a safer side somehow.

I totally agree with people saying here that whatever flaws LC might have it is incredible what the team has achieved in the past 20 years and we can only be grateful to have that and even be able to work with the code.

It could be smart to ask LC Ltd for permission to advertise this forums address on the use-LC list just once (or has that happened already?) so people interested in an OS fork might learn where to look first. I came here by Google though, so this also works.

I would expect that an OXT effort can only be pulled through with some key personnel present, but such people can always be invited by personal communication.

3. My personal view on xTalk(s) is that it is (they are) just another language. I do not feel a need to convince anyone that they are a must or best (or even best for everything).

The tremendous strength of LC in my view lies in being a relatively-easy-entry one-stop-shop for rapidly prototyping and building apps that also offer to be cross-platform (even if you do not need this now, you might want to have it just so, for later).

I still see it as an xTalk advantage to offer perspectives different from the current browser-oriented software development chain.

As I am on Windows these days, the LC IDE rather soon stopped being useful and usable to me (as everybody knows it works better on Mac). So I use LC (almost) without the IDE and all the other fancy (or cluttered and overgrown) stuff. This has the benefit of being compatible with merits of modern software development (e.g. version control). I am not against a xTalk IDE written in xTalk though (like LC does), not at all! Just many people might think of LC/xTalk too much as a block or blob as LC Ltd has produced such a cosy sellable package.

With a little guidance though, a different offering might not be any more difficult also for a beginner than finding his/her way around in the many historical layers of the LC IDE and system, in fact I would expect it to be easier, if properly done. This could be a chance of an OXT effort to grow its own relevance.

4. So what to do ASAP... I would say there should be some discussion of what the OXT package is - in order to define a goal that allows to prioritize efforts. It could pay to think and define what a xTalk system actually consists of and what is peripheral, what the components actually are and what role they play in future plans.

From the amount of work cut out (see 1) concentration on crucial aspects and core components even might be live-saving.
I then would say being different would make sense, from a search for helpful relationships (see 2) and from an opportunity to improve the xTalk experience (see 3). OXT should allow itself to grow away from what LC offers (and will continue to offer) and especially never become a "cheap" clone (meaning being free/OS but lower quality regarding the horrible moving target of APIs and platforms to deploy to). I would hope OXT will be seen as a proud and strong offering in itself.
From my experience (as in 3) I would say that the engine (or runtime) plus other loadable core components are key - meaning you would not want to work without a tree widget or a browser widget nowadays I guess. I would not see a standalone builder or an IDE as key. Still they can be part of a package, of course.

As has been mentioned by many people it should be clear that OXT would also need to offer compiled packages for download because the target group would hardly be able or willing to compile the code themselves. A compilation manufacture or factory is a hairy and daring project in itself as we know from listening to reports by LC Ltd people in the past years. This should be an important part of the discussion.

Another obvious crucial starting question is if there is something missing or defect in the available github code that needs to be amended or replaced first with regards to a working OXT. Saw no mention of such things yet. Is the code base sufficient also for compiling on all platforms?

I am a HC veteran (as many here), just have visited many other systems and layers of software development after that. I would love to see an OXT system alive and kicking!
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

mdm wrote: Thu Sep 16, 2021 4:07 pm Another obvious crucial starting question is if there is something missing or defect in the available github code that needs to be amended or replaced first with regards to a working OXT. Saw no mention of such things yet. Is the code base sufficient also for compiling on all platforms?

I am a HC veteran (as many here), just have visited many other systems and layers of software development after that. I would love to see an OXT system alive and kicking!
Welcome! Thanks for your interest!
Wow, that's a LOT to talk about! I'll just start with trying to answer that last question...
The code base is mostly the same as it was left to the public. My fork actually started a few years ago when I made some contributions to fixing up some of the documentation. I just updated it when it was announced that they were dropping support for the open source community version, so my fork was in sync with LCC 9.6.3 when I started to make changes.

I have had some brief, cordial communications with Mark, and I very much appreciated it. He made clear what they expect going forward, and even offered some very helpful advice about things like the GPL3 license attached to it, and the exceptions they had to make to that licensing, for OpenSSL for example, which I'm looking into removing/replacing with another library (but there isn't all that many OS SSL libs out there to pick from).

So far most of the changes I've made have been removing or replacing previous logos, branded icons, textual references, and things like links to old forums or their servers, this is because we don't want to confuse any of their customers about their involvement, or rather lack of involvement, in this project going forward. They understandably want to make a clean break. We wouldn't want people constantly asking them for support for something that they no longer support. So that is the immediate priority right now.

I did make one bug fix (Extension Builder issue), which I mistakenly reported to them with a link to the change in my fork. I was thinking it could still be helpful for them, but the problem with that is they simply can not use any changes in any of these forks going forward due to the GPL3 Licensing still in effect (forever), which is no longer bound by the previous agreement (you had to sign an agreement with LC to become a contributor previously). Beyond that it could also lead to confusion in there quality control bugzilla system and we don't want that. I don't want any legal hassles or any other sort of grief and neither do they. With the exception of retaining the existing copyright notice for their, now legacy, code base, It must be a clean break, that's just how it has to be! I'm ok with that and anyone else who wants to try their hand at working on their own fork the open source batch, or contributing to this one, should be ok with that too.

After the initial work of, as quickly as possible, facilitating that clean break is done, I have some ideas about what I'd like to add to it and change about it in my fork (see elsewhere in this forum). Most of the IDE is bootstrapped (written in itself) so any user should already know the language and IDE used to modify most of it, as far as the IDE / GUI, is concerned. Many more things could be added with LCS libraries & LCB libraries and widgets. The part that I may not be able to handle myself is any modifications to the Engine itself, which is written in C++, a language that I'm a novice with at best. But I'm going to try, as soon as I need to. I've already had to look at some of the source code while doing certain things with LCB FFI, and it looks fairly clean and well commented. Ultimately I'd like at least like to get a build of 9.6 engine that runs on Linux ARRM (Raspberry Pi), which it hasn't been compiled for since 7.0.4 (I believe), and possibly for the new Apple Silicon CPU architecture (although I don't have access to one to test on right now, maybe in a year or so).

We may be taking on a monster task with this but why the hell not just go for it?
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

Also to address the macOS centric thing, vs. Windows / Linux... yes I've been a mac user since about 1987 (Still have my Mac512KE with HyperCard) and it's still my preferred OS, probably the same with a lot of xTalk people including at the mothership, but I'm more platform agnostic these days. I do have a Windows install for testing, and I've tried a lot of Linux distros (I could see myself switching to Linux fully some day) including the Raspberry Pi LC builds. I plan to build for these other platforms as much as I can. I understand the IDE can be slow on Windows and some features are lagging behind on the Linux, maybe I can fix some of that. I mean just removing the license / version checking and Start Window stuff on startup gave me a little speedup in launch times! Maybe I can actually make this beast run better, but I'm not making any promises.
mdm
Posts: 22
Joined: Thu Sep 16, 2021 2:15 pm
Contact:

Re: Setting a goal

Post by mdm »

> We may be taking on a monster task with this but why the hell not just go for it?

Good thinking!
I'll stay in touch.
User avatar
richmond62
Posts: 2621
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Setting a goal

Post by richmond62 »

As far as I am aware (having been developing stuff on Linux for 18 years) the only Linux thing lagging
behind in any serious way is media (sound and films).
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

richmond62 wrote: Fri Sep 17, 2021 12:12 pm As far as I am aware (having been developing stuff on Linux for 18 years) the only Linux thing lagging
behind in any serious way is media (sound and films).
That's what I was thinking about, media is important to a lot of people! This might not be all that difficult to fix, some library like GStreamer or libVLC could be tapped into via LCB FFI for a Linux "native" player widget (LCB has "my native layer" syntax). According to the LCB FFI docs it's relatively easy to tap GTK views, although I have yet to try that. I thought pretty easy incorporating a macOS NSView into a widget, so if it's easier than that, then that is awesome!
mdm
Posts: 22
Joined: Thu Sep 16, 2021 2:15 pm
Contact:

Re: Setting a goal

Post by mdm »

Ok, as this is the ASAP topic, I am trying to be practical.

Paul, I see OXT is split into two Github repositories, following the LC legacy, thus it probably will stay this way for a long time.

Core/engine:
https://github.com/PaulMcClernan/OpenXT ... munity-DPE
It seems to me (can not check in detail right now) the readme files here originate from the LC repository, and you have started to change them to fit OXT.

IDE:
https://github.com/PaulMcClernan/OpenXt ... nicEdition
It is only this repository that you have mentioned on the use-LC list early on as
https://github.com/PaulMcClernan/LiveCo ... nicEdition
which link also still works because Github provides a redirect.
There is not much readme in here (and it is all by you?) supposedly because all the explanation is in the other repository anyway (correct?).

You might be actively working on the readme files for both repositories anyway right now.
In fact these are probably the pieces that should be in place first. It may crucial to get them right also relating to LC.
Additionally it seems not so many people have realized yet that they can find an entry point for a fork here.
So I would suggest:
- you introduce a prominent link to the other repository in both read-mes so it is immediately clear that there is more to look at. Also it might not be wrong to have a link to the original 9.6.3. repositories left by LC. Like, saying a word what the starting point is of it all.
- you make the link to this forum more prominent in both read-mes ("all discussion happens at ..."), because if people do not come and there is no community, then there can be no community-driven fork, and we want it to be community-driven, do we? :-)

If you like to have more involvement in editing stuff just say a word.
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

mdm wrote: Sun Sep 19, 2021 12:28 pm Ok, as this is the ASAP topic, I am trying to be practical.

Paul, I see OXT is split into two Github repositories, following the LC legacy, thus it probably will stay this way for a long time.

Core/engine:
https://github.com/PaulMcClernan/OpenXT ... munity-DPE
It seems to me (can not check in detail right now) the readme files here originate from the LC repository, and you have started to change them to fit OXT.

IDE:
https://github.com/PaulMcClernan/OpenXt ... nicEdition
It is only this repository that you have mentioned on the use-LC list early on as
https://github.com/PaulMcClernan/LiveCo ... nicEdition
which link also still works because Github provides a redirect.
There is not much readme in here (and it is all by you?) supposedly because all the explanation is in the other repository anyway (correct?).

You might be actively working on the readme files for both repositories anyway right now.
In fact these are probably the pieces that should be in place first. It may crucial to get them right also relating to LC.
Additionally it seems not so many people have realized yet that they can find an entry point for a fork here.
So I would suggest:
- you introduce a prominent link to the other repository in both read-mes so it is immediately clear that there is more to look at. Also it might not be wrong to have a link to the original 9.6.3. repositories left by LC. Like, saying a word what the starting point is of it all.
- you make the link to this forum more prominent in both read-mes ("all discussion happens at ..."), because if people do not come and there is no community, then there can be no community-driven fork, and we want it to be community-driven, do we? :-)

If you like to have more involvement in editing stuff just say a word.
Definitely looking for all the help we can get! This has all sort of come together so quickly, and we've been digging through the IDE so much that I haven't had enough time to edit those readme.md files, but the repos themselves are still linked to the LCC repos (which are now in an archived state, so there will be no merging with that)

I'd like to move all of these edits so far to the repo Seth setup under an OpenXTalk account, and get it out of my personal GitHub account. My interests may not always be relevant to OpenXTalk. I'd also like to put up a web page through Git Pages ( would be OpenXTalk.github.io, as example here https://paulmcclernan.github.io). I need more info on what the best way to move my Repo to another on GitHub.
mdm
Posts: 22
Joined: Thu Sep 16, 2021 2:15 pm
Contact:

Re: Setting a goal

Post by mdm »

I guess you have already checked this:
https://docs.github.com/en/repositories ... repository

What is the address of the OXT Github account - is it live already? Did not find anything over there.
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

I did look at that, thanks. I'm just waiting to discuss with Seth some account control details for the OTX GitHub account that he made.

I moved this to a new OpenXTalk Manifesto sub-forum, because it's essentially the same discussion I've been having with various individuals in a bunch of different places.
FourthWorld
Posts: 280
Joined: Sat Sep 11, 2021 4:37 pm
Contact:

Re: Setting a goal

Post by FourthWorld »

OpenXTalkPaul wrote: Fri Sep 17, 2021 6:09 am I have had some brief, cordial communications with Mark, and I very much appreciated it. He made clear what they expect going forward, and even offered some very helpful advice about things like the GPL3 license attached to it, and the exceptions they had to make to that licensing, for OpenSSL for example, which I'm looking into removing/replacing with another library (but there isn't all that many OS SSL libs out there to pick from).
What are the licensing concerns with OpenSSL?
xAction
Posts: 282
Joined: Thu Sep 16, 2021 1:40 pm
Contact:

Re: Setting a goal

Post by xAction »

OpenSSL is not GPLv3
They had their own license then finally settled on Apache license.
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

FourthWorld wrote: Fri Nov 12, 2021 3:57 pm
OpenXTalkPaul wrote: Fri Sep 17, 2021 6:09 am I have had some brief, cordial communications with Mark, and I very much appreciated it. He made clear what they expect going forward, and even offered some very helpful advice about things like the GPL3 license attached to it, and the exceptions they had to make to that licensing, for OpenSSL for example, which I'm looking into removing/replacing with another library (but there isn't all that many OS SSL libs out there to pick from).
What are the licensing concerns with OpenSSL?
Versions prior to OpenSSL 3.0 are Dual Licensed, newer versions are Apache Licensed
xAction wrote: Fri Nov 12, 2021 5:13 pm OpenSSL is not GPLv3
They had their own license then finally settled on Apache license.
Yes, the LCC License has an exception for OpenSSL, which is only included in Windows builds I believe (macOS and most Linux have it on the OS level so doesn't it need to be included) used for the revBrowser External which could just be removed as the Browser Widget is better anyway. I was recently looking at LibreSSL which is a GPL safe fork of OpenSSL.
FourthWorld
Posts: 280
Joined: Sat Sep 11, 2021 4:37 pm
Contact:

Re: Setting a goal

Post by FourthWorld »

xAction wrote: Fri Nov 12, 2021 5:13 pm OpenSSL is not GPLv3
They had their own license then finally settled on Apache license.
Apache and FSF say Apache V2 license (which OpenSSL uses) is GPL-compatible:
https://www.apache.org/licenses/GPL-compatibility.html
User avatar
OpenXTalkPaul
Posts: 1486
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Setting a goal

Post by OpenXTalkPaul »

FourthWorld wrote: Sat Nov 13, 2021 3:29 am
xAction wrote: Fri Nov 12, 2021 5:13 pm OpenSSL is not GPLv3
They had their own license then finally settled on Apache license.
Apache and FSF say Apache V2 license (which OpenSSL uses) is GPL-compatible:
https://www.apache.org/licenses/GPL-compatibility.html
Mark sent me an email when I first started working on this which kindly provided a little bit of clarity on this, but perhaps he wasn't aware of post OpenSSL 3.x license change to the more liberal Apache license?
The virality of the GPLv3 license stops at 'system' boundaries - so in
the precise case you mention here - i.e. where a work is using system
(i.e. OS provided) frameworks, libraries, or executables (processes)
there is no issue. The CoreMIDI APIs are part of macOS and as such a
GPLv3 application can use them - i.e. the OS does not need to be GPLv3.

However, any third-party libraries/frameworks/executables which a
derived work requires to perform its function must be under a license
compatible with the GPLv3. Specifically, you must be able to provide, or
point to the source of those (albeit separate) components when asked by
someone who receives a distributed derived work relying on them.

So open-source libraries under GPLv3 compatible licenses (e.g. BSD, MIT)
are fine, commercial libraries are not (unless they are dual-licensed).

Note: Pre-installation, or separate installation of such third-party
components does not circumvent the GPLv3's virality - it is whether a
component is required for a derived work to perform at least part of its
function or not which is the test, not whether the components ship
directly with a distribution of it.

Having said that, it is important to note at this point that the license
applied to the open-source version of LiveCode (and thus any forks) is
*actually* a GPLv3 with exceptions license (the exact text is in the
LICENSE file at the root of the engine repository). The security and
encryption features in LiveCode use OpenSSL and whilst OpenSSL is
open-source, its license is not strictly compatible with the GPLv3.

Unfortunately this means that, technically, pure GPLv3 code cannot be
combined with derived works of the LiveCode source-code - any GPLv3 code
in a derived-work has to allow the OpenSSL exception (at least) as well
(assuming the derived work needs to include the 'revsecurity' component.
(The dual-licensed nature of LiveCode meant that whilst being GPLv3 we
had to avoid GPLv3 license third-party source entirely anyway so this
was never really an issue for LiveCode Ltd.)

(The other exception relates to revBrowser on Windows - but since that
component is inferior to the browser widget it isn't really an issue as
it could easily be removed).

I should also remind you that LiveCode Ltd. takes the Wordpress plugin
interpretation in regards to the virality of the GPLv3 when applied to
stacks (whether script-only or not) developed using GPLv3 licensed
LiveCode - specifically, that any such stacks are de-facto GPLv3
themselves. LiveCode Ltd.'s view and interpretation in this matter will
continue, and also extend to any stacks developed using any forks of the
GPLv3 licensed LiveCode source.

This bit:

Code: Select all

assuming the derived work needs to include the 'revsecurity' component. 
tells me if we want to switch out OpenSSL with LibreSSL (which should be a drop-in replacement) we would have to recompile revSecurity (which are separate binary from the Engines ).
FourthWorld
Posts: 280
Joined: Sat Sep 11, 2021 4:37 pm
Contact:

Re: Setting a goal

Post by FourthWorld »

Sounds to me like they were either using an older version of OpenSSL (I hope not), or had set up the exception prior to OpenSSL's switch to a GPL-compatible license.

Either way, recompile will be needed sooner or later, just to keep current with patching if nothing else. If recompile also raises confidence with regard to any licensing questions, so much the better.
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests