[Ohrrpgce] SVN: james/12449 Docker: ohrrpgce-build-env-wine now has mingw64 and euphoria

James Paige Bob at hamsterrepublic.com
Sun Sep 19 12:06:02 PDT 2021


I made a bunch of fixes, and now *wine scons* gets further.

Switching to 32 bit compiler packages instead of 64 bit helped a lot.

Also, I did manage to get reloadbasic.py running with just "python3" and
not needing the whole path (The base image I am using sets up the PATH
environment variable inside wine incorrectly for python). I have not made
the change in the SConscript yet because i still need to upgrade from
python2 to python3 on the Windows nightly build machine

Right now the current error I am bumping into is:


*windres --input gicon.rc --output build\gicon.owindres: can't popen `gcc
-E -xc -DRC_INVOKED  gicon.rc': Bad file descriptor*

I searched around for that error message, and found people suggesting to
add the *windres.exe *argument *--use-temp-file* but that didn't help, it
just changed the failure


*windres --use-temp-file --input gicon.rc --output build\gicon.owindres:
can't redirect stdout: `C:\users\root\Temp\cca00360.irc': Bad file
descriptor*

Too much fun :D

I am also thinking ahead about how to do a docker build for Mac. Running
darwin in Docker is apparently possible, but sounds impractical. An actual
OSX inside KVM inside Docker is also apparently possible, but I feel like
that defeats the point of dockerizing it. I guess i'll look at OSXcross
more later.

Of course, the real goal I am working towards is not Dockerizing all the
builds, it is really making Jenkins do all the builds-- so if dockerizing a
build is more work than setting up an always-on VM with a Jenkins agent
installed in it, then I just switch my approach :D

---
James

On Sat, Sep 18, 2021 at 11:09 PM Ralph Versteegen <teeemcee at gmail.com>
wrote:

>
>
> On Sun, 19 Sept 2021 at 12:56, James Paige <Bob at hamsterrepublic.com>
> wrote:
>
>> So now not only does fbc work in the wine docker container, so does
>> mingw64 and euphoria
>>
>>  *wine scons hspeak* actually works, and produces a working hspeak.exe
>> (tested with *wine hspeak*)
>>
>> compiling game and custom fails though. I see two problems so far.
>>
>> First, when scons executes reloadbasic/reloadbasic.py on Windows, this
>> relies on the .py file type being associated with python, so scons seems to
>> be directly invoking *reloadbasic/reloadbasic.py* and this works on Real
>> windows because the filetype is associated with python.exe but on Wine,
>> this type of file association does not seem to work, even when I make sure
>> the association is set up with regedit.
>>
>> Editing the constructor for the rbasic_builder in Sconscript to *Builder
>> (action = ["C:\Python39\python.exe", [File('reloadbasic/reloadbasic.py'),
>> ...* does work and fixes the problem, so I just need to work out a clean
>> way to do that without breaking other platforms.
>>
>
> Can't you just invoke python or python3 instead of C:\Python39\python.exe?
> (I'm not sure whether we dropped python 2 support when you switched all
> the #! lines to python3; maybe python2 would still work if invoked
> explicitly, or maybe python3 will be called somewhere whether installed or
> not)
>
>
>>
>> The other error is this:
>>
>> os_windows.bas(107) error 20: Type mismatch, before ')' in 'dim fd as
>> integer = _open_osfhandle(cast(integer, fhandle), 0)'
>> os_windows.bas(714) warning 35(1): Mixing signed/unsigned operands
>> os_windows.bas(784) warning 35(1): Mixing signed/unsigned operands
>>
>> Which makes me think I might have a mismatch in my FreeBasic/mingw64
>> versions, but I don't really know yet, just a wild guess.
>>
>
> This error is thrown by fbc, so the mingw version isn't related.
> I suspect that maybe you're trying to compile for win64/x86_64? If fbc
> itself is a win64 .exe then it probably also defaults to win64 builds. If
> it has 32-bit libraries then it can compile for x86 with scons arch=32, and
> we should make that the default.
> [Note: win64 informally is used to mean 64-bit windows, but win32 does not
> mean 32-bit Windows, it means not-16-bit, and for example compilers such as
> FB define __FB_WIN32__ (or equivalent in C) on 64-bit Windows]
>
> I also see that you're downloading a 6-bit version of Euphoria for
> Windows, that should be 32-bit instead (I assume Euphoria can't
> crosscompile on Windows, just as it can't on Unix).
>
>
>>
>> ---
>> James
>>
>>
>>
>>
>>
>> On Sat, Sep 18, 2021 at 6:55 PM <subversion at hamsterrepublic.com> wrote:
>>
>>> james
>>> 2021-09-18 15:55:34 -0700 (Sat, 18 Sep 2021)
>>> 60
>>> Docker: ohrrpgce-build-env-wine now has mingw64 and euphoria
>>> ---
>>> U   wip/docker/ohrrpgce-build-env-wine/Dockerfile
>>>
>>> _______________________________________________
>>> Ohrrpgce mailing list
>>> ohrrpgce at lists.motherhamster.org
>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20210919/db9b8c43/attachment.html>


More information about the Ohrrpgce mailing list