Installation of Julia on SCO OpenServer

Consider whether there is a Julia library that can talk to the proprietary SQL solution on SCO

Daniel,

Here I thought SQL was a standard like xBase. My SCO xBase files can be opened by any spreadsheet out there. I would expect the SQL files created on any proprietary system to meet that standard and be available to any software that also meets that standard. I don’t see how that can be proprietary to SCO.

But that’s off the subject, I am now looking for paid help to get Julia running on SCO since it appears that’s the only place we might find people skilled enough to help me get the job done. | will be calling them on Tuesday (Monday’s a holiday) since emailing hasn’t worked.

There are still users of SCO that have not gone anywhere else and there may be an interest on their part, too (how else does Xinuos keep in business? Their last upgrade wasn’t that long ago, 2018).

Thanks for your input.

Jim

I think you really need to NOT convert 1.5 million lines. If you already had OpenServer 6.0 from 2005, then it was based on SVR5, not FreeBSD, and you’ve migrated once before. At least SCO migrated to FreeBSD, and I find it very likely you can then also migrate to newer FreeBSD, if not Linux.

It’s much better and wiser to port to a newer system than backwards, because in the long run nobody cares about the old systems.

If the database matters to you and it’s on SCO, I find it very likely you can move the app, and keep the database there.

In what language is your app written, and what’s the database?

EDIT: I see it’s xBase, can you specify exactly which?

https://www.dbase.com/Knowledgebase/INT/xbase_to_sql/x2sql.htm

In my world, that’s moving very slowly. SCO is a legacy system.

SQL is a language for forming queries, but there is very little standardized beyond that. PgSQL, mySQL/MariaDB, Oracle, Sybase, MsSQL server, SQLite, etc all have entirely different methods of connecting, sending, and receiving queries. Many of them can be attached to via ODBC, but that just adds another dependency. Best of luck! Hope you find someone who can help.

Since it’s xBase (i.e. some dBase variant), you must choose, do you want to keep using some xBase, protecting your investment, it’s likely going to be cheaper in the short-run, since it’s not just a database, but a language too.

If you move to SQL, which is a standard (xBase, a de facto standard), it will mean a lot of rewriting of at least the queries, unless you have a tool doing that, see below. Maybe you do want to migrate away from xBase, the language, but then it’s not clear you need SCO (well not clear either way), nor that Julia is best to migrate too, as much as I’m a proponent of.

[I’ve been asked before to migrate Visual FoxPro, Microsoft’s xBase they stopped supporting years ago, so I feel your pain.]

You need to choose carefully what you migrate to, e.g. open source X#, and despite the name, it’s not a Microsoft product, even though it uses Microsoft’s compiler:

I see there’s Harbour (open source/APGL), an xBase variant, and xHarbour, and more xBase variants:

xHarbour Builder is a set of tools built around the open source xHarbour compiler from xHarbour.org . The xHarbour programming language is a superset of the well known xBase language, often referred to as Clipper. Though xHarbour is 100% backward compatible with the Clipper Language, xHarbour Builder adds many modern features and tools found in most modern compilers

Reading between the lines xHarbour Builder, ir proprietary even though xHarbour compiler/language is open source.

Bringing the power of native code and no-limits to the Clipper and Visual FoxPro xBase language dialects
[…]

Xbase++ Professional Edition

[…] Modernize existing DBF/NTX/CDX applications by migrating them over to PostgreSQL server without any code changes.

Xbase++ comes with the widest choice of technologies, concepts, and tools to protect your existing Clipper or Visual FoxPro solutions and modernize them right away.

PostgreSQL is nice and open source, but xBase++ which builds on it is proprietary, so make up your mind if you want that.

https://www.dbase.com/Knowledgebase/INT/xbase_to_sql/x2sql.htm

https://groups.google.com/g/harbour-users/c/aGVUwtvJbEw

a file management program written in FORTRAN.

JPLDIS is important because it was the inspiration and precursor to dBASE, arguably one of the most influential DBMS programs for early microcomputers
[…]
That ruling was based on a legal doctrine known as “unclean hands”.

You didn’t include Recital and Servoy

1 Like

I appreciate your input. It’s helping me prioritize the things I want to accomplish. This is great. I ask for help in one thing and you offer much more! Now here’s what I’m seeing:

  1. The most important thing is to get this package into a modern language that’s easy to learn so we have access to more programmers which we are going to need.

  2. The next thing is to get this into an open source operating system so we don’t have to depend on one source, SCO.

  3. I don’t think SQL is all that important, tables in VFP will serve our needs, DB2 will work, too. Looking for that which most programmers are familiar with. Movement of data from one type to another is not difficult as long as it looks similar to the operator as it did before. It was suggested we use MY-SQL and C# but now we have encountered Julia.

In all these changes we want to minimize the learning curve of the users. Gradual changes keep retraining at the minimum and the users profitable.

The same goes for programmers, keep the language as simple as we can and the programmer’s learning curve is shorter.

You asked, “In what language is your app written, and what’s the database?” the answer is FoxPlus and dBaseIII

We have done some clever things (I’m not patting myself on my back, I had lot’s of help) that I would like to implement in the new language. I can already see some shortcuts to getting our source code into Julia and I’m anxious to try them out…

1 Like

Moving the data is going to be the easy part, either to SQL database, or just read the files:

You must really look into if rewriting the program, is the right choice, now; and if then to Julia. Maybe you can try if for a part of the system, as a proof-of-concept. I suspect, the user-interface is a big part of this, and you can go to a GUI solution if that’s what you want. But other languages might currently be more used for GUI (and/or database work).

Most likely MySql/MariaDB + Julia will work fine for almost any backend thing you might want to do. For front end/GUI there are a number of options someone else would likely be better to suggest, but Electron based GUI would be reasonable.

I’d suggest to experiment with bringing your data files over to Linux, and try out developing some of what you’re interested in doing on Linux and then see if you want to move forward, well before trying to get someone to port Julia to an old SCO version. Only if you see that using Julia to more forward is the right way for you, then consider whether you want to port Julia, or port your product to Linux.

1 Like

make is a build system. Among other things, it tries to locate a compiler and then invokes it.
On Linux, we would usually be referring to GNU make.

Git a version control system. It was originally created in 2005 by Linus Torvalds.
Julia uses git and it’s source code hosted on a website called Github: GitHub - JuliaLang/julia: The Julia Programming Language .

If you want to grab the most recent changes to the Julia source code or propose your own changes, git is usually the easiest way to do so. At this point is quite ubiquitous among open source projects. Even if the original project does not use git there is usually a git mirror available.

However, if you just want the source code, do not care about tracking changes, then you could probably just download source code tarball from here:

https://github.com/JuliaLang/julia/releases/download/v1.8.0/julia-1.8.0.tar.gz

In case you do not know how to use tar, try this tar -xvzf julia-1.8.0.tar.gz.

That said, I share the other’s concerns. You are asking some very basic questions. Questions that could be easily answered by looking up make and git on Wikipedia. While I think we could help use those very specific tools, the skill that you really need is the ability to efficiently look up this information yourself. I’m not really sure where the impediment is there. Have you tried typing in “what is make software?” into a search engine like Google?

Yet, you are trying to compile a very complicated piece of software on an operating system that no one has tried to compile the software on. While some of Julia is operating system agnostic, there are some parts that need to interface with the operating system. You will likely need to rewrite this layer, which will require intimate knowledge of the operating system development environment. As other have mentioned, not only do you have to do this for Julia’s C source code, but you will also need to do this for Julia’s dependencies.

Perhaps we could better help by finding some open source software that does readily run on your operating system.

Year end issues have delayed my project but I am still determined to do it…
Here is what I have done:
downloaded

https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.0-linux-x86_64.tar.gz
and put it on my SCO system in /u/julia
ran the following:

cd /u/julia
gunzip julia-1.9.0-linux-x86_64.tar
tar xvfA julia-1.9.0-linux-x86_64.tar
cd julia-1.9.0/bin
ls -l julia (it is an executable)
./julia (and I got ./julia: syntax error at line 1: `(’ unexpected )

I need to make my own binaries so I looked up all the “make” files and found 10 of them, which one do I use? or do I use them all? and if so, what order?
here they are:
julia-1.9.0/share/julia/test/clangsa/Makefile
julia-1.9.0/share/julia/test/gcext/Makefile
julia-1.9.0/share/julia/test/embedding/Makefile
julia-1.9.0/share/julia/test/llvmpasses/Makefile
julia-1.9.0/share/julia/stdlib/v1.9/SparseArrays/docs/make.jl
julia-1.9.0/share/julia/stdlib/v1.9/TOML/docs/make.jl
julia-1.9.0/share/julia/stdlib/v1.9/Pkg/docs/make.jl
julia-1.9.0/share/julia/stdlib/v1.9/DelimitedFiles/docs/make.jl
julia-1.9.0/share/julia/stdlib/v1.9/Statistics/docs/make.jl
julia-1.9.0/share/julia/base/Makefile

Why are you downloading Linux binaries?

If you want to try to build this, download the source tarball:
https://github.com/JuliaLang/julia/releases/download/v1.9.0/julia-1.9.0.tar.gz

There is a toplevel Makefile. It’s the very first one listed below.

$ tar tvf julia-1.9.0.tar.gz | grep Makefile
-rw-r--r-- ararslan/ararslan  30183 2023-05-08 11:24 julia-1.9.0/Makefile
-rw-r--r-- ararslan/ararslan  12194 2023-05-08 11:24 julia-1.9.0/base/Makefile
-rw-r--r-- ararslan/ararslan   7941 2023-05-08 11:24 julia-1.9.0/cli/Makefile
-rw-r--r-- ararslan/ararslan   4743 2022-12-23 17:31 julia-1.9.0/contrib/mac/app/Makefile
-rw-r--r-- ararslan/ararslan  10111 2022-12-23 17:31 julia-1.9.0/contrib/mac/framework/Makefile
-rw-r--r-- ararslan/ararslan   5440 2023-01-18 11:25 julia-1.9.0/contrib/mac/frameworkapp/Makefile
-rw-r--r-- ararslan/ararslan   5818 2023-05-08 11:24 julia-1.9.0/deps/Makefile
-rw-r--r-- ararslan/ararslan   2178 2023-01-18 11:25 julia-1.9.0/doc/Makefile
-rw-r--r-- ararslan/ararslan  29204 2023-05-08 11:24 julia-1.9.0/src/Makefile
-rw-r--r-- ararslan/ararslan   4473 2022-12-23 17:31 julia-1.9.0/src/flisp/Makefile
-rw-r--r-- ararslan/ararslan   2565 2022-12-23 17:31 julia-1.9.0/src/support/Makefile
-rw-r--r-- ararslan/ararslan   3233 2023-05-08 11:24 julia-1.9.0/stdlib/Makefile
-rw-r--r-- ararslan/ararslan   1602 2022-12-23 17:31 julia-1.9.0/test/Makefile
-rw-r--r-- ararslan/ararslan    759 2022-12-23 17:31 julia-1.9.0/test/clangsa/Makefile
-rw-r--r-- ararslan/ararslan   2097 2022-12-23 17:31 julia-1.9.0/test/embedding/Makefile
-rw-r--r-- ararslan/ararslan   2725 2023-01-18 11:25 julia-1.9.0/test/gcext/Makefile
-rw-r--r-- ararslan/ararslan   1389 2023-01-18 11:25 julia-1.9.0/test/llvmpasses/Makefile

Thank you… I have downloaded and extracted the .tar file… I assume I need to make Makefile executable (with chmod +x Makefile)… now that I have the right file I will wait till Xinuos support gets back to me…

No. Just execute make in that directory.

Before we proceed any further, I really want to encourage you to learn how to do this on Linux first. I do not see how you are going to make any progress at all on this if you do not learn how to do proceed down the supported path.

Just grab an old spare computer and install Ubuntu Linux on it. It can be an old desktop or laptop computer. Go through the steps there. Once you’ve mastered it, then you might have a very small chance of actually making progress.

1 Like

@Jim, could you run a Docker (or Podman) container with Julia in it? That might bypass some of the issues with OS … I have not personally tried to build Julia in a container, but it might be a “simple” matter of setting Docker up on your system (say, Ubuntu, which is clearly supported - I’m running it now - and then installing git and then perhaps Juliaup?

Edit: quotes around simple … it might not be so simple.

Xinuos is going to help me install Julia on SCO Openserver 6.0.0 I will have to buy the developers package and then get tech help to get all the settings right. I will then possess the binaries. Under the open source community am I at liberty to sell those and help recoup my cost?

Permission is hereby granted…to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software…subject to the following conditions…

From: https://github.com/JuliaLang/julia/blob/master/LICENSE.md

This question is complicated and this forum is not the correct place for obtaining legal advice. In general, the MIT license does not prohibit selling. However, depending on what exactly you’re shipping, the GPL might apply, which also does not prohibit selling, but does have notice and conveyance requirements. There’s also trademark considerations, questions around what exactly the terms of your support agreement with Xinuos are, etc. You’ll need a licensing specialist look at your particular circumstances.

It appears that Julia is too complex for it to work on the simple SCO openserver platform. The tech I talked to will not wade through the resolution of all the errors Make is generating for Julia. He’s trying to get Python to work and knows where Julia is going in this process. So, I have abandoned this project and marking this closed.