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

Ralph Versteegen teeemcee at gmail.com
Mon Oct 25 22:15:37 PDT 2021


On Mon, 20 Sept 2021 at 07:06, James Paige <Bob at hamsterrepublic.com> wrote:
>
>
> 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


Mike reported a different but related problem. He cloned the repo on
Windows and ended up with \n\r line endings in reloadbasic.py due to
his particular git settings, and then tried to compile under WSL, but
got the error

  /usr/bin/env: 'python3\r': No such file or directory

Appending an explicit 'python3' to the commandline in SConscript fixed
it. I guess we really should do that.

Actually... why don't we make the choice of python2/python3/python an
envvar or scons option? Why didn't I think of that earlier?


>
>
> Right now the current error I am bumping into is:
>
> windres --input gicon.rc --output build\gicon.o
> windres: 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.o
> windres: 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
>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org


More information about the Ohrrpgce mailing list