Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the build environment closer to Cygwin #3012

Open
4 tasks
lazka opened this issue May 22, 2022 · 21 comments
Open
4 tasks

Move the build environment closer to Cygwin #3012

lazka opened this issue May 22, 2022 · 21 comments

Comments

@lazka
Copy link
Member

lazka commented May 22, 2022

Because there hasn't been an issue about this, just chat in various places, a short summary:

We want to move closer to cygwin, in short, msys should no longer be a thing you target, just a slight variation of cygwin.

Done:

To do:

Overall Goals/Strategy:

  • Share as much as possible with cygwin
  • Make cygwin documentation apply to msys where possible
  • In cases where possible and needed allow users to still detect msys in addition to cygwin
@mati865
Copy link
Collaborator

mati865 commented May 22, 2022

What about GCC and binutils?

Less patching because of:

Change the default triplet to cygwin

@angelog0
Copy link

What would be the difference between MSYS2 an CYGWIN? Why an user should continue to use MSYS2 and not Cygwin which has many more packages and allows also to run X apps? Why do not rename MSYS2 to CYGWIN2, then? Would the only difference that MSYS2 uses pacman and Cygwin setup.exe? or you are thinking to reintroduce also setup.exe in place of pacman? Please, destroy something that works and is original..

NO, I do not concord with above choices.

@mati865
Copy link
Collaborator

mati865 commented May 29, 2022

@angelog0 note this change affects only MSYS environment (/usr).
Our goal is still the same: provide users with means to build native applications/libraries.
This is sort of opposite of Cygwin where AFAIK everything runs with their POSIX emulation layer.

So for the end user everything related to installation and native compilation (all subsystems other that MSYS) remains the same. For maintainers however it means less effort to keep POSIX emulated things working.

@angelog0
Copy link

@mati865, I understood this

this change affects only MSYS environment

but Cygwin has a lot of mingw* packages and if they would, they could produce the same native apps as you. A that point, MSYS2 would be the bad copy of Cygwin, bad because MSYS2 lacks X-apps...

Yes, preserving originality could cost...

In any case, do your best.

@mati865
Copy link
Collaborator

mati865 commented May 30, 2022

Yes, preserving originality could cost...

What do you mean?
MSYS2 runtime is just Cygwin runtime with a bit over 30 patches atop it. Target triple is basically the same except the name and linked libraries.

There is no a lot of originality here, MSYS subsystem always have been Cygwin with some patches and different name.

@goyalyashpal
Copy link

goyalyashpal commented Jun 29, 2022

hi, i am an end user. will it make msys any more heavy? will it affect performance?

as i dont use msys2 for building, i use it (bash and all the coreutils etc) as my default shell and like i am using these as my main system and do all my tasks on it. so....

@Biswa96
Copy link
Member

Biswa96 commented Jun 29, 2022

In ideal situation, no one should feel any change in normal usage. This change should be transparent to every users.

@sskras
Copy link

sskras commented Jun 29, 2022

@mati865 commented on May 30:

There is no a lot of originality here, MSYS subsystem always have been Cygwin with some patches and different name.

... and a nice package manager:)

@sskras
Copy link

sskras commented Jun 29, 2022

@angelog0 commented on May 30:

but Cygwin has a lot of mingw* packages and if they would, they could produce the same native apps as you. A that point, MSYS2 would be the bad copy of Cygwin, bad because MSYS2 lacks X-apps...

Well, if you seek for something different than Cygwin, but still would like to run X11 apps (and of course use POSIX-like interfaces), I suggest you to join midipix project:
https://sysdeer.net/
https://www.midipix.org/

Though I am not sure how well the X11 apps works after they are build on midipix. I have made my first build only a few days ago, and still haven't managed how to run it.

@yashpalgoyal1304 commented 4 hours ago:

hi, i am an end user. will it make msys any more heavy? will it affect performance?

as i dont use msys2 for building, i use it and all the coreutils etc as my default shell and like i am using these as my main system and do all my tasks on it. so....

Same here. I invite you too to try the aforementioned midipix project.

It has no fancy installer yet, and there are two repositories (out of 36 in total) that are being opened to the user only on direct request in person. So, it's still young project, but gives me a sense of the right solution for such tasks (and even some thrill):
https://dev.midipix.org/build/midipix_build

@goyalyashpal
Copy link

goyalyashpal commented Jul 1, 2022

also, so, how will this take place on my end.

like will it be delivered by some package update? or will i have to do a reinstall? i am asking as i only see these 3 msys packages installed, and only msys2-launcher seems to be one which might be related to this.

$ pacman -Q | grep msys
msys2-keyring 1~20210904-1
msys2-launcher 1.5-1
msys2-runtime 3.3.5-2

@sskras thanks for the info, i will look into it. but i am a newbie and most of the time i cant get stuff to work 😅 . so... but yeah, i will see...


Addition (2022-12-26): the uname -a reflects msys2-runtime

@lazka lazka changed the title Move closer to Cygwin Move the build environment closer to Cygwin Jul 1, 2022
@Biswa96
Copy link
Member

Biswa96 commented Jul 1, 2022

Users don't have to do anything. The msys2 packages that you've mentioned were present since th beginning. See this page for any futher info about those packages https://packages.msys2.org/search?t=pkg&q=msys2

@lazka
Copy link
Member Author

lazka commented Jul 5, 2022

There is now a Cygwin mode for uname:

$ uname -a
MSYS_NT-10.0-22000 desktop 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Msys
$ MSYSTEM=CYGWIN uname -a
CYGWIN_NT-10.0-22000 desktop 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Cygwin

@goyalyashpal

This comment was marked as outdated.

@lazka
Copy link
Member Author

lazka commented Jul 6, 2022

just for the records and bookkeeping, foll is the output on my system:

this is not the newest version (see uname -v)

@goyalyashpal
Copy link

goyalyashpal commented Jul 6, 2022

$ uname -v                              #  -v, --kernel-version     print the kernel version
2022-05-30 21:10 UTC

update:

so, i did update pacman -Syu (and by default, it did core system update of filesystem and msys ---- something; rerunning it was asking for full system update, which i denied), and now, instead of mingw64, it is showing cygwin in the front, but on the end, it's still showing msys like before

$ uname -a
MSYS_NT-10.0-19042 LAPTOP 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Msys

$ MSYSTEM=CYGWIN uname -a
CYGWIN_NT-10.0-19042 LAPTOP 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Msys

update2:

i had completed the full system update too, and now, it is shown cygwin in the end too:

$ uname -v
2022-07-04 21:33 UTC

$ uname -a
MSYS_NT-10.0-19042 LAPTOP 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Msys

$ MSYSTEM=CYGWIN uname -a
CYGWIN_NT-10.0-19042 LAPTOP 3.3.5-341.x86_64 2022-07-04 21:33 UTC x86_64 Cygwin

@goyalyashpal
Copy link

goyalyashpal commented Aug 20, 2022

edit: moved to a more apt issue

@goyalyashpal

This comment was marked as off-topic.

@cbrt64
Copy link
Contributor

cbrt64 commented Dec 27, 2022

Looks like ea0a844, see also CYGPORT_RELEASE_INFO in afa957a. HTH

@lazka
Copy link
Member Author

lazka commented Dec 27, 2022

If that's a problem please file an issue and we can have a look. Otherwise this seems off topic here ;)

@Kreijstal
Copy link
Contributor

tbh, if this could just be cygwin with pacman +(the dev enviroments), I wouldn't complain (I would love msys2 with X) (No, cygwin has no pacman)

@goyalyashpal
Copy link

i think u forgot (or didn't notice) the msys2 path conversions i.e. no requirement of cygpath/c/... and that cygwin doesn't generate native code on compiling; so, it can't be used as a buildchain.

cygwin with pacman +(the dev enviroments), I wouldn't complain

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

8 participants