MSYS2-packages
MSYS2-packages copied to clipboard
ConEmu alternative for mintty
Here we will discuss about create package for ConEmu (http://conemu.github.io) as alternative for mintty. Previously we have some discussion here: https://github.com/Alexpux/MINGW-packages/pull/616 https://github.com/Alexpux/MINGW-packages/issues/664
I'm update patchset for building ConEmu from official repo: https://github.com/Alexpux/MSYS2-packages/commit/311c3df0cf1016c1482890f5cb2721f4b91687e2
ConEmu have a lot of warnings when building with GCC that need to be fixed I think, especially casting warnings
.
Here is build log - http://pastebin.com/WdTuxa6A
Also, ARAIR it uses functions not available on xp sp3. Is this still the case?
It? ConEmu supports Windows 2000. This is even less that xp. All functions not available in Win2k are dynamically linked!
What is the purpose of 0012-AssertMessageBox-is-not-supported-in-mingw-w64.patch
?
And 0013-Add-guard-to-gestureinfo-as-it-is-defined-in-mingw-w.patch
? ConEmu must be compiled for WINVER=0x500.
I think patch 0013
is right as it prevent redefines if they already present.
With disabling patches 0019
we get a lot of errors: http://pastebin.com/8t8HUivt
I see. OK
According to MSDN (https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb760540(v=vs.85).aspx), TaskDialog function is available from Vista only.
As I understand, ConEmu is for Windows only. Right?
If yes, then maybe the better will be replace all if defined(__GNUC__)
with if defined(__MINGW32__)
I'm not sure about these flags. __GNUC__
was added long ago to support old gcc compiler (from mingw AFAIR). How about cygwin version and __MINGW32__
?
Patches were applied into daily branch.
Are you support building ConEmu with Cygwin GCC? I don't think so.
__MINGW32__
is defined for all mingw.org and mingw-w64 toolchains (cross and native)
About patch 0012
I get errors without it:
compiling ConEmu.rc
linking ../../Release/ConEmu.exe
../../gcc/conemu/ConEmuApp.o:ConEmuApp.cpp:(.text+0x450f): undefined reference to `AssertMsgBox'
collect2: error: ld returned 1 exit status
makefile_gcc:240: recipe for target '../../Release/ConEmu.exe' failed
make[1]: *** [../../Release/ConEmu.exe] Error 1
strange. it's defined in common/MAssert.h
. will check this later
Having fun trying to figure out my patches guys :) I really should put in longer comments when making them.
Almost all patches are clear enough.
I'm successfully build ConEmu without patches now.
Was problem with missed GUIDs fixed by MinGW?
yes, it fixed in trunk.
By this commit https://github.com/Alexpux/mingw-w64/commit/4421b4a8a06c206ecd18420bf095552e6822eebd
Would this make it possible to get 256 colors in conemu (without mintty)?
Within msys2? Not yet I think. However...
- http://conemu.github.io/en/Xterm256Colors.html
- http://conemu.github.io/en/CygwinAnsi.html
- http://conemu.github.io/en/RoadMap.html#cygwin-terminal
I mean there are two possible ways and both require some additional code changes.
- Let msys2 core (ncurses AFAIK) write RAW ANSI to console without processing them internally.
- Let ConEmu support cygwin-compatible terminal API. This one requires much coding...
Using a program wrapping msys's shell may be a simpler solution.
http://pastebin.com/YKdL1Y9A Most code is from mintty, and it isn't working perfect. I'm not familiar with terminal protocol.
@qingxbl That's pretty cool! What are the issues with it?
Well, I can build this with cygwin (link to cygwin1.dll), but buid failed with msys. Seems like some packages are not installed.
What do I need to link executable with msys-2.0.dll or msys-1.0.dll (a lot of users are stuck on git 1.9)?
The problems start with includes "sys/wait.h", "w32api/wtypes.h" and others.
What do I need to link executable with msys-2.0.dll or msys-1.0.dll
The usual way would be to build the whole program using MSYS(2) gcc.
MSYS has some page about it on their wiki: HOWTO_Create_an_MSYS_Build_Environment
MSYS2 provides the necessary software in base-devel
and msys2-devel
groups.
Or are you trying something else?
What are the issues with it?
- The screen size is hard coded. It doesn't sync with current window size. And I don't know how to handle it correctly.
- Vim is broken in bash & ssh.
- tmux is not working completely.
Embedding mintty is acceptable for me, so I stop working on this.😜
https://github.com/Maximus5/cygwin-connector
pinging for status info