As far as a remember the DLL list that is hard-coded into setup_win32.py is specific to gtk version/distribution
since in fact it lists not only DLLs that meld loads via pygobject interface but all their dependencies too.
For example list content changed (both additions and deletions) with last switch of gtk version - and chances are that for mingw64 version it'll change again.
So from the msys's pacman point of view - if gtk, gtksourceview and pygobject packages are installed - all really needed DLLs are already inplace.
And if meld starts locally with libzzz.dll and libxmlxpat.dll absent - it looks that they are not dependencies of this gtk version and can be just dropped from list.
Instead some other Dlls may become needed.
> I'm working on getting this running locally in MSYS2 now. It looks like the DLLs are in /mingw32/bin/ instead of Python's sites-packages directory. There's 2 DLLs I'm missing thoughlibzzz.dll
> libxmlxpat.dll
>
> Do you know what these are? I'm having trouble finding the package that will install them.
>
> On Sat, Apr 28, 2018 at 11:21 PM, Keegan Witt <keeganwitt gmail com> wrote:
>
>> Installing mingw-w64-i686-python3-cx_Freeze instead of installing through pip gets around the compilation problem, but then I again hit the
>>
>> error: invalid command 'bdist_msi'
>>
>> problem. I'm also wondering about the glib2-devel package. There's a msys2 package, but not a mingw32 or mingw64 packages.
>>
>> On Sat, Apr 28, 2018 at 10:43 PM, Keegan Witt <keeganwitt gmail com> wrote:
>>
>>> It appears there's actually 3 different installations of Python 3 in MSYS2: mingw32 (/mingw32/bin/python3), mingw64 (/mingw64/bin/python3), and msys2 (/usr/bin/python3). To make sure we use the right version of Python, I set a MSYSTEM environment variable (I also tried with fully-qualified path to python3). I also tried with the 64 bit version instead of 32.
>>>
>>> version: 3.18.2.{build}
>>>
>>> branches:
>>> only:
>>> - meld-3-18
>>> skip_non_tags: true
>>> clone_depth: 1
>>>
>>> environment:
>>> MSYSTEM: MINGW32
>>> PATH: C:\msys64\mingw32\bin;C:\msys64\usr\bin;$(PATH)
>>>
>>> install:
>>> - cmd: >-
>>> bash -lc 'pacman --sync --refresh'
>>> REM bash -lc 'pacman --noconfirm --sync --sysupgrade'
>>>
>>> bash -lc 'pacman --noconfirm --sync mingw-w64-i686-python3 mingw-w64-i686-python3-pip mingw-w64-i686-gtk3 mingw-w64-i686-gtksourceview3'
>>> bash -lc 'pacman --noconfirm --sync glib2-devel'
>>> bash -lc 'python3 -m pip install --upgrade pip'
>>> bash -lc 'python3 -m pip install cx_Freeze'
>>>
>>> build_script:
>>> - cmd: >-
>>> bash -lc 'cd "%APPVEYOR_BUILD_FOLDER%" && sed --in-place --regexp-extended "s/site.getsitepackages\(\)\[1\]/site.getsitepackages()[-1] /" setup_win32.py'
>>> bash -lc 'cd "%APPVEYOR_BUILD_FOLDER%" && glib-compile-schemas data && python3 setup_win32.py bdist_msi'
>>>
>>> artifacts:
>>> - path: dist/*.msi
>>> name: Meld installer
>>>
>>> The problem now is, I can't build cx_freeze
>>>
>>> C:\msys64\mingw32\bin/i686-w64-mingw32-gcc.exe -s build/temp.mingw-3.6/source/ bases/Console.o build/temp.mingw-3.6/source/ bases/manifest.rc.o -LC:/msys64/mingw32/lib/ python3.6/config-3.6m -LC:/msys64/mingw32/lib -limagehlp -lShlwapi -lpython3.6m -lversion -o build/lib.mingw-3.6/cx_Freeze/ bases/Console.exe
>>>
>>> C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../ ../../../i686-w64-mingw32/lib/ ../lib/libmingw32.a(lib32_ libmingw32_a-crt0_c.o): In function `main':
>>>
>>> C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/ crt0_c.c:18: undefined reference to `WinMain@16'
>>>
>>> collect2.exe: error: ld returned 1 exit status
>>>
>>> error: command 'C:\\msys64\\mingw32\\bin/i686-w64-mingw32-gcc.exe' failed with exit status 1
>>>
>>> ----------------------------------------
>>>
>>> Command "C:/msys64/mingw32/bin/python3.exe -u -c "import setuptools, tokenize;__file__='C:/Users/ appveyor/AppData/Local/Temp/1/ pip-install-wytire78/cx- Freeze/setup.py';f=getattr( tokenize, 'open', open)(__file__);code=f.read(). replace('\r\n', '\n');f.close();exec(compile( code, __file__, 'exec'))" install --record C:/Users/appveyor/AppData/ Local/Temp/1/pip-record- 0y2u7oho/install-record.txt --single-version-externally- managed --compile" failed with error code 1 in C:/Users/appveyor/AppData/ Local/Temp/1/pip-install- wytire78/cx-Freeze/
>>>
>>> Command exited with code 1
>>>
>>> I think the gtk packages I was installing before weren't affecting the version of Python I was invoking because it defaults to the msys2 installation, but the packages I was installing were for mingw (actually a mix of both mingw32 and mingw64 the way I originally had it).
>>>
>>> On Sat, Apr 28, 2018 at 9:01 PM, Vasily Galkin <galkin-vv yandex ru> wrote:
>>>
>>>> I tried again building without pywin32 and its definitely not required while building with msvc-built python on appveyour.
>>>>
>>>> There is only warning
>>>>
>>>>>running build_exe
>>>>
>>>>>creating directory build\exe.win32-3.4
>>>>
>>>>>copying C:\Python34\lib\site-packages\cx_Freeze\bases\Win32GUI.exe -> build\exe.win32-3.4\Meld.exe
>>>>
>>>>>copying C:\windows\SYSTEM32\python34.dll -> build\exe.win32-3.4\python34. dll
>>>>
>>>>>*** WARNING *** unable to create version resource
>>>>
>>>>>install pywin32 extensions first
>>>>
>>>>>writing zip file build\exe.win32-3.4\python34.zip
>>>>
>>>> The full log is available at (note, it's huge!) https://ci.appveyor.com/project/galkinvv/meld-ljlj2? fullLog=true
>>>>
>>>> (see below for yml file link).
>>>>
>>>> By the way, about direct building from gitlab - preclone red errors in the log above are caused by using "direct branch building" from Gnome gitlab
>>>>
>>>> that was done by setting the "Custom configuration .yml file name" to direct link
>>>>
>>>> https://gitlab.gnome.org/galkinvv/meld/raw/meld-3-18- appveyour-experiments/ appveyor.yml
>>>>
>>>> So there is at least two minor issues with direct building from Gnome gitlab with current appveyor:
>>>>
>>>> -build versioning issue (Preclone red error)
>>>>
>>>> -and explicit branch setting in path to appveyour.yml
>>>>
>>>> I didn't test automated building on commit.
>>>>
>>>>> Are you sure
>>>>
>>>>>
>>>>
>>>>> pywin32 isn't required? When I edited the site-packages list, it wouldn't let me run the bdist_msi command
>>>>
>>>>>
>>>>
>>>>> bash -lc 'cd "%APPVEYOR_BUILD_FOLDER%" && sed --in-place --regexp-extended "s/site.getsitepackages\(\)\[1\]/site.getsitepackages()[-1] /" setup_win32.py'
>>>>
>>>>>
>>>>
>>>>> bash -lc 'cd "%APPVEYOR_BUILD_FOLDER%" && glib-compile-schemas data && python3 setup_win32.py bdist_msi'
>>>>
>>>>>
>>>>
>>>>> usage: setup_win32.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
>>>>
>>>>>
>>>>
>>>>> or: setup_win32.py --help [cmd1 cmd2 ...]
>>>>
>>>>>
>>>>
>>>>> or: setup_win32.py --help-commands
>>>>
>>>>>
>>>>
>>>>> or: setup_win32.py cmd --help
>>>>
>>>>>
>>>>
>>>>> error: invalid command 'bdist_msi'
>>>>
>>>>>
>>>>
>>>>> On Sat, Apr 28, 2018 at 4:06 PM, Vasily Galkin <galkin-vv yandex ru> wrote:
>>>>
>>>>>
>>>>
>>>>>>> Once I take out pypiwin32, then I run into the same issue as reported in the "Building MSI package under MSYS" thread
>>>>
>>>>>>
>>>>
>>>>>>> bash -lc 'cd "%APPVEYOR_BUILD_FOLDER%" && glib-compile-schemas data && python3 setup_win32.py bdist_msi'