-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch from CMake's ExternalProject to git submodules #380
Comments
Hey there, thanks for the heads up---I've never used openSUSE and didn't know about the "no internet during build" thing. Does Extempore build from source ok on openSUSE (i.e. not in OBS)? Currently not all the things that the build process uses I don't have any time right at this minute to re-jig the build process to use git submodules, but it's something I can look into in the future. |
Technically my local openSUSE build stops at 58% of the progress with this error:
It copies
Technically submodules can be downloaded during cloning:
But I agree that most people who clone into repos don't necessarily think of it immediately! It could be specified in the build instructions, though. Git submodules are very used nowadays and that's why I proposed them, as a compromise. They are not the most comfortable solution though, that'd be including pre-downloaded directories, but that does take more space and some devs might be opposed to it. My personal belief is that nowadays hard disk space is aplenty so it should not be a concern, but I understand other views. |
Ok, thanks.
Hmm, any idea why it's failing? Re: the submodule thing, as you say there are pros and cons---but your points are valid. I guess the first step is to get it building successfully, then to worry about the packaging part. |
I checked and they build correctly. Maybe it doesn't get copied because unlike the other libraries (which are copied indeed), Since those are shared libraries, is there a way to tell CMake to use my system's libraries instead of building them? |
Ok, that's a bummer. Extempore has some kinda kludgey stuff in I don't know if the symlink is the problem; on macOS it's the same ( I'm not saying this hacked-together approach is great; it's pretty painful (I know---I had to write it 😉 ). But having a build process which works across macOS/Win/Ubuntu at least is a pretty high priority, and this is the way we currently achieve it. I have done a bunch of work this morning refactoring the ExternalProject stuff so that there's less duplication and that it's better separated from the AOT stuff, so in principle that'd make it easier to refactor in the future. That stuff is in the |
Oh, and on your other question about using the system shared libs, you could just set However, be warned that the argument/return types are hard-coded into the various xtm files, so if you use a version of the shared lib with a different API in any way then things will probably break. |
With both
|
Ok, cool, good to know.
This means that it can't find There's a bigger issue, though---because many other extempore libraries (e.g. If you just build the
|
It should be Could it have something to do with the fact that openSUSE installs 64-bit libraries to Hard-coded references to
Yes, it does build. When I run it, this is the output:
|
Does it load the math lib though (when you pass |
No, it doesn't - what I posted is the absolute last output (I tried again, same results) |
Hmm, ok. I take it that means you can't load the math library interactively, either (by starting Extempore, connecting your editor, and evaluating If that's the case, then sadly there are bigger issues than CMake's |
The good news is that it's not an infinite loop, it goes into Could you please share the correct output for running Edit: I tried |
The sleep is ok-- Without AOT-compiling the xtlang libraries, you should see something like:
|
Hello, apologies if I have not responded for a long time but I waited until I switched to openSUSE Leap 15.2 to see if things would change and they did - Extempore now properly works, I tested it with Emacs. I'm keeping the issue open because it would be nice for all packagers if extempore could be easily built without the Internet. This means not just switching to submodules - although that would make our jobs easier already - but also providing releases which already include the downloaded submodules. I will start making the openSUSE package soon in any case. |
Ok, thanks for the update. As I mentioned above, I'm unlikely to have time to refactor the build stuff in the forseeable future, but if anyone else wants to have a crack at it then PRs would be welcome - and we could discuss them here first. |
Hello,
I am building an
extempore
package for openSUSE.openSUSE uses an automated build system called OBS which works in a virtualized environment without an internet connection.
Right now
extempore
extensively uses CMake to download external libraries. This makes compiling it without the internet really hard, especially because packages are downloaded at build time.Switching to git submodules is a very simple change which makes the life of packagers much easier.
The text was updated successfully, but these errors were encountered: