Jump to page: 1 2
Thread overview
GDC CI on MacOS, FreeBSD, Windows
Sep 18
wjoe
Sep 18
wjoe
Sep 18
wjoe
Sep 18
wjoe
Sep 22
wjoe
Sep 23
wjoe
Sep 22
wjoe
September 18
The approach I took for building, testing and creating a tarball for Linux is to build a Docker container which contains enough of an installation of the latest Debian with all the dependencies necessary to build GDC.

In order to move forward the next targets I want to add are Mac OS, FreeBSD, and Windows (but not necessarily in that order) and I want to build Docker containers for those like I did for Linux.

Which versions are relevant ?

September 18
On 2020-09-18 15:46, wjoe wrote:
> The approach I took for building, testing and creating a tarball for Linux is to build a Docker container which contains enough of an installation of the latest Debian with all the dependencies necessary to build GDC.
> 
> In order to move forward the next targets I want to add are Mac OS, FreeBSD, and Windows (but not necessarily in that order) and I want to build Docker containers for those like I did for Linux.
> 
> Which versions are relevant ?

macOS and FreeBSD don't support Docker. FreeBSD has similar features (at least some of them) that Docker is built on. macOS doesn't.

For macOS, DMD and LDC support 10.7 (I think). Only supporting 10.9 and later wouldn't be any problem, in my opinion.

I know that Iain has talked about supporting GDC on macOS on PowerPC. That means something like 10.4, which is ancient.

-- 
/Jacob Carlborg
September 18
On Friday, 18 September 2020 at 14:32:15 UTC, Jacob Carlborg wrote:
> On 2020-09-18 15:46, wjoe wrote:
>> [...]
>
> macOS and FreeBSD don't support Docker. FreeBSD has similar features (at least some of them) that Docker is built on. macOS doesn't.

That's unfortunate.

> For macOS, DMD and LDC support 10.7 (I think). Only supporting 10.9 and later wouldn't be any problem, in my opinion.
>
> I know that Iain has talked about supporting GDC on macOS on PowerPC. That means something like 10.4, which is ancient.

Speaking of ancient... The most recent contact I had with macOs was around version 8.5 :)
September 18
On 2020-09-18 17:05, wjoe wrote:

> Speaking of ancient... The most recent contact I had with macOs was around version 8.5 :)

Funny thing. Back then it was call "Mac OS", which is now referred to as "Classic Mac OS". After Mac OS 9, they release Mac OS X 10.0, which was a completely new OS. At some point it was renamed to only OS X. Then a couple of years ago it was renamed to macOS, to better match with Apple's other OSes: iOS, tvOS and iPadOS. Full circle, just different capitalization :)

-- 
/Jacob Carlborg
September 18
On 2020-09-18 17:05, wjoe wrote:

> That's unfortunate.

Yes. Docker depends on several features only available in the Linux kernel. Docker is more a less a nice package to interact with these features.

I can mention that there's something call "Docker for Mac" (and Windows). But that just installs a highly optimized virtual machine running Linux. Some command line tools that will interact, from the Mac host, with Docker on the VM. So you get Linux containers on Mac.

Windows do support native containers, in addition to the above.

-- 
/Jacob Carlborg
September 18
On Friday, 18 September 2020 at 15:23:05 UTC, Jacob Carlborg wrote:
> On 2020-09-18 17:05, wjoe wrote:
>
>> That's unfortunate.
>
> Yes. Docker depends on several features only available in the Linux kernel. Docker is more a less a nice package to interact with these features.
>
> I can mention that there's something call "Docker for Mac" (and Windows). But that just installs a highly optimized virtual machine running Linux. Some command line tools that will interact, from the Mac host, with Docker on the VM. So you get Linux containers on Mac.

I'm not sure if that would work since macOs itself runs in a VM at CirrusCI.
Also they support Dockerfiles directly. So if Docker were available I would just have to make the Dockerfile with a pre-installed environment, ready to build GDC, and add that to the matrix and adapt the build script.
But then again CirrusCI may not be the best CI provider in this scenario and if there's something else... I mean there's no hard requirement to use Cirrus.

> Windows do support native containers, in addition to the above.

As for Windows, if memory serves the way to build gcc on Windows was by using MinGW.
But last thing I heard was that Windows 10 has Windows Subsystem for Linux and I wouldn't be surprised if that was a VM with a Linux installation and some interface to be able to interact with the Windows host.


September 18
On 2020-09-18 17:55, wjoe wrote:

> I'm not sure if that would work since macOs itself runs in a VM at CirrusCI.

As I said, that will give you a Linux container. Not what you're looking for.

> But last thing I heard was that Windows 10 has Windows Subsystem for Linux and I wouldn't be surprised if that was a VM with a Linux installation and some interface to be able to interact with the Windows host.

No, it's the actual Linux kernel running side-by-side with the Windows kernel. Anything you compile there will give you a Linux binary.

-- 
/Jacob Carlborg
September 18
On Friday, 18 September 2020 at 18:21:37 UTC, Jacob Carlborg wrote:
> On 2020-09-18 17:55, wjoe wrote:
>
> [...]
>
>> But last thing I heard was that Windows 10 has Windows Subsystem for Linux and I wouldn't be surprised if that was a VM with a Linux installation and some interface to be able to interact with the Windows host.
>
> No, it's the actual Linux kernel running side-by-side with the Windows kernel. Anything you compile there will give you a Linux binary.

Thanks for the clarification.
September 19
On Friday, 18 September 2020 at 14:32:15 UTC, Jacob Carlborg wrote:
> On 2020-09-18 15:46, wjoe wrote:
>> The approach I took for building, testing and creating a tarball for Linux is to build a Docker container which contains enough of an installation of the latest Debian with all the dependencies necessary to build GDC.
>> 
>> In order to move forward the next targets I want to add are Mac OS, FreeBSD, and Windows (but not necessarily in that order) and I want to build Docker containers for those like I did for Linux.
>> 
>> Which versions are relevant ?
>
> macOS and FreeBSD don't support Docker. FreeBSD has similar features (at least some of them) that Docker is built on. macOS doesn't.
>
> For macOS, DMD and LDC support 10.7 (I think). Only supporting 10.9 and later wouldn't be any problem, in my opinion.
>
> I know that Iain has talked about supporting GDC on macOS on PowerPC. That means something like 10.4, which is ancient.

Yeah, I know people who still maintain this hardware (I've even donated a PPC Mac Xserve G5 to them!)

Newer versions of OSX just add on top of former, so there's nothing wrong about restricting yourself to a common subset of the available API to bind druntime to.
September 19
On Friday, 18 September 2020 at 15:55:10 UTC, wjoe wrote:
>> Windows do support native containers, in addition to the above.
>
> As for Windows, if memory serves the way to build gcc on Windows was by using MinGW.
> But last thing I heard was that Windows 10 has Windows Subsystem for Linux and I wouldn't be surprised if that was a VM with a Linux installation and some interface to be able to interact with the Windows host.

Cygwin should also work as well, and that might be easier to get set-up as a baseline to bootstrap newer versions of gcc if required.  If you've got one working, it should be trivial to have the other.  The difference should only be what extern(C) bindings are pulled into druntime.
« First   ‹ Prev
1 2