- Re: mingw errors 1.3.0 1.4.0, (continued)
- Re: mingw errors 1.3.0 1.4.0, Dieter Baron (2018/01/05 17:04:42)
- Re: mingw errors 1.3.0 1.4.0, Peter Bohning (2018/01/05 17:20:48)
- Re: mingw errors 1.3.0 1.4.0, Dieter Baron (2018/01/05 18:27:25)
- Re: mingw errors 1.3.0 1.4.0, Peter Bohning (2018/01/08 17:13:22)
- Re: mingw errors 1.3.0 1.4.0, Dieter Baron (2018/01/08 18:12:02)
>>Yes, there are various standards, and for each requirement in them, there is a Unix variant that does not implement it fully.Well that's really on those Unix variants than isn't it.
It's not a matter of supporting non-standard variants. If people weren't so accommodating to the package maintainers, they would be emailing them and telling them the specific things that aren't standard. We should all be emailing any variants that aren't working right.
>>Treating all Unix variants as one system is a fundamental misconception. Each variant, and even each version of the same platform, differ in some way.It's not a fundamental misconception. It's how it should be.
>>Yes it *should* be this way, but it never was and likely never will be, so it’s counterproductive to pretend that it is.
I'm not pretending that it is. I wrote the mingw list first. There's *nix, and windows, which has this supposed mingw wrapper. This should all work perfectly.
>>Again, it’s pointless to speculate what should be. There *are* differences, and these are the things we check for:
- Check wether these functions exist: _chmod, _close, _dup, _fdopen, _fileno, _open, _setmode, _snprintf, _strdup, _stricmp, _strtoi64, _strtoui64, _umask, _unlink, clonefile, explict_bzero, explicit_memset, fileno, fseeko, ftello, getprogname, open, mkstemp, setmode, snprintf, strcasecmp, strdup, stricmp, strtoll, strtoull
- Check wether these include files exist: fts.h, stdbool.h, strings.h, unistd.h, inttypes.h, stdint.h, sys/types.h
- Check wether these types exist, and what their sizes are: __int8, int8_t, uint8_t, __int16, int16_t, uint16_t, __int32, int32_t, uint32_t, __int64, int64_t, uint64_t, short, int, long, long, off_t, size_t, ssize_t
- Find zlib, libbz2.
- Know how to build a shared library (which varies widely from system to system).
Do you have a concrete proposal how we achieve all this portably without autoconf/cmake? Then please let me know, because I can’t think of any.
>Please note: supporting old Unix versions is a must, as is supporting various Windows versions.
Yes, I am aware of some of the various differences. These are all pretty basic things. So basically, you're telling me that all of this autoconf/cmake... and there's a new one too I saw the other day.... all of this stuff is because somehow thousand and thousands of computer programmers all with 25 years of experience, can't get 20 functions to be uniform across a handful of very similar platforms... ... doesn't that seem strange to you?
>>That is not a realistic option. Neither of us is the maintainer of any standard compiler / system library, let alone of all of them. And neither of us is in a position to retroactively fix this in years old versions that are still in use.
To start with, every company on the planet regularly drops support for old versions. It's great that the open source community doesn't. Except that sometimes it does and if it's at the expense of ease of use and functionality in the present versions, it's a problem.
Besides this, obviously every package does not support every old version, and while autoconf/cmake/etc. might work some or even most of the time, they don't work always. At this point, any person out there who is somehow using a version of something so old that they need to compile software for ancient versions, is probably technically competent enough to write a wrapper library for the system library.
>>I have seen both, and by a huge margin, the projects using autoconf/cmake are more easy to compile on a multitude of Unix variants than those that don’t. I’m not sure how our experiences can be so different.
There's very few projects that don't use one of these.
>>autoconf was first released in 1991, and it’s still in wide use. 27 years doesn’t sound like a fad to me.
I didn't say autoconf was a fad, I said cmake was.
>>It works on Windows, and that alone is a huge improvement in the context of libzip. (Anything that only works on Unix is a non-starter for a project that wants to support both.)
So you're saying cmake is great because it works on windows and autoconf doesn't. Well windows and *nix, are basically the two different platforms now. And they're different enough that no matter what, you need some kind of wrapper. Which presumably would be mingw. If mingw was doing its job, then autoconf would work on windows and cmake would be unnecessary.
>> Wow, so either we are incompetent, or the majority of the platform maintainers are.
This is an easy one. The platform maintainers are all incompetent and the rest of us are too lazy to hassle them about it.
>>I have lined out in great detail why we use cmake. You have not provided any detail on how your proposed solution would work.
I think I've given the same amount of detail.
>>I understand your frustration with not getting cmake to work, but you are in the minority here. Did you follow up on any of my suggestions on how to fix this (using binary packages, asking on the cmake mailing lists for help on getting it to work with mingw)?
I don't think I am in the minority. Do an internet search for any error message and there's tons and tons and tons of people who didn't go to mailing lists and complain, because open source is free and you get what you pay for (if you're lucky), and instead went to stackexchange, quora, some forum, etc., etc.. All those problems are a huge waste of time.
What I might be in the minority with here is my annoyance about the whole thing. I don't like the idea that mingw is not functioning as it should. I don't like the idea that I have to download binaries because the source won't compile when it's supposed to be for this package that makes compiling source easier. Are you telling me that the cmake source doesn't even compile with the latest mingw and somehow it's so great and so necessary for compiling things for windows?
Further, I know that all this is generally fads. "ninja" is another one of these compiler projects. The idiot managers at google with more money than brains hire whowever they can, and have them make up projects for themselves. So some clever guy wrote this totally unnecessary ninja thing and google paid him handsomely for it. That guy could have fixed up Make and mingw instead of writing whatever nonsense and think of how much hassle would have been saved by everyone.
Yes. I'm in the minority because I don't immediately say gee, this thing that should work doesn't, I'll do something I shouldn't have to do to work around it.
As for your suggestions, I don't really have time for any of this. I may briefly try to uninstall and reinstall mingw to find one that supposedly works with cmake. If I can't compile cmake from source, I'm not going to use it. If I think it's unnecessary and it won't even compile properly on the one platform it's supposedly useful for, windows/mingw, then that's it.
Further, the whole point of this was because I wanted some kind of setup that, should some not-very-savvy user want to compile my software, they could do so with ease, with a short list of instructions. Not only does that seem hopeless, given mingw, and cmake, and I haven't even gotten to the other libraries it uses, but no one is paying me for this and I'm not sure I care enough to release it. So probably I'll mess around with it when I have a chance over the next month until I can finally get the software I wrote six months ago to compile again and then just have it for my own use.
And by the way I particularly hate libtool.
If you want my opinion, and I'm sure you don't, the problem with all of this is money. The wrong people have all the money, so everything gets worse and worse, and not just with software. Open source is almost a form of communism and the government should sponsor it while refraining from interfering with it's management. Maybe China could do this more. Or maybe cuba is the only communist government left in the world.
Package maintainers are always arrogant and indifferent, particularly so in the case of the ones that don't actually write software, which is always funny. After all, no one is being paid for any of this, so there's no "customer is always right" mentality and no one cares about things being user-friendly. Everyone is just defending their little ego turf. And then the reward for open source software which is "copy-left", the knowledge that, forever after anyone who uses your software will also have to do the right thing and support society, well that's stomped on by companies like google, who work around it in order to sell people crap they don't need, and then pay lip-service to open source by releasing a couple pieces of unnecessary software as open source, just to muddle everything up.
Ask your mother to install mingw and compile this stuff from source and then don't wonder why people choose Windows decade after decade. And then think of all that money that Microsoft puts through it's "charity" foundation, that's really just selling poison food to Mexicans and making all the Mexicans obese and diabetic for vast sums of money while all the americans complain about mexicans taking their jobs and elect a president because he wants to build a big wall. And that's our world. So why the hell are we wasting a single second messing with these damn computers.
And please, if you get a chance, figure out which parts of libzip actually don't work/won't compile on *nix and windows. Consult some standards for these things and write some maintainers about why their setups are non-standard.
Made by MHonArc.