* Re: cmp missing from base
@ 2016-10-30 14:58 DAGwyn
2016-10-30 18:23 ` Ken Brown
0 siblings, 1 reply; 11+ messages in thread
From: DAGwyn @ 2016-10-30 14:58 UTC (permalink / raw)
To: cygwin
I was unpleasantly surprised to find that the "cmp" utility had been
removed from the Cygwin base, and a search for "cmp" in the Setup installer
didn't find it. (It used to exist.) I eventually found it hidden in the
"diffutils" package.
Upon searching the mailing list I found some discussion, most of it being
clueless. "cmp" is widely used in Unix makefiles! It's a basic utility
that has been around for over 40 years. Utilities like that are so essential
that it disrupts users when they are removed. There is a reason that
POSIX specifies them!
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-10-30 14:58 cmp missing from base DAGwyn
@ 2016-10-30 18:23 ` Ken Brown
2016-12-06 23:10 ` Eric Blake
0 siblings, 1 reply; 11+ messages in thread
From: Ken Brown @ 2016-10-30 18:23 UTC (permalink / raw)
To: cygwin
On 10/30/2016 4:05 AM, DAGwyn@aol.com wrote:
> I was unpleasantly surprised to find that the "cmp" utility had been
> removed from the Cygwin base, and a search for "cmp" in the Setup installer
> didn't find it. (It used to exist.) I eventually found it hidden in the
> "diffutils" package.
> Upon searching the mailing list I found some discussion, most of it being
> clueless. "cmp" is widely used in Unix makefiles! It's a basic utility
> that has been around for over 40 years. Utilities like that are so essential
> that it disrupts users when they are removed. There is a reason that
> POSIX specifies them!
I think the diffutils maintainer intended to add it to Base
(https://sourceware.org/ml/cygwin/2016-05/msg00099.html), but maybe he
forgot. Eric?
Ken
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-10-30 18:23 ` Ken Brown
@ 2016-12-06 23:10 ` Eric Blake
0 siblings, 0 replies; 11+ messages in thread
From: Eric Blake @ 2016-12-06 23:10 UTC (permalink / raw)
To: cygwin
[-- Attachment #1.1: Type: text/plain, Size: 1098 bytes --]
On 10/30/2016 09:58 AM, Ken Brown wrote:
> On 10/30/2016 4:05 AM, DAGwyn@aol.com wrote:
>> I was unpleasantly surprised to find that the "cmp" utility had been
>> removed from the Cygwin base, and a search for "cmp" in the Setup
>> installer
>> didn't find it. (It used to exist.) I eventually found it hidden in
>> the
>> "diffutils" package.
>> Upon searching the mailing list I found some discussion, most of it
>> being
>> clueless. "cmp" is widely used in Unix makefiles! It's a basic utility
>> that has been around for over 40 years. Utilities like that are so
>> essential
>> that it disrupts users when they are removed. There is a reason that
>> POSIX specifies them!
>
> I think the diffutils maintainer intended to add it to Base
> (https://sourceware.org/ml/cygwin/2016-05/msg00099.html), but maybe he
> forgot. Eric?
Thanks for the reminder; I've finally found time to rectify it today.
Look for 3.5-2 to hit a mirror near you soon.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
@ 2016-10-30 21:09 Steven Penny
0 siblings, 0 replies; 11+ messages in thread
From: Steven Penny @ 2016-10-30 21:09 UTC (permalink / raw)
To: cygwin
> There is a reason that POSIX specifies them!
Agreed. Both "cmp" and "diff" are required by POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-09 20:57 ` Eric Blake
@ 2016-05-09 21:29 ` Warren Young
0 siblings, 0 replies; 11+ messages in thread
From: Warren Young @ 2016-05-09 21:29 UTC (permalink / raw)
To: The Cygwin Mailing List
On May 9, 2016, at 2:57 PM, Eric Blake <eblake@redhat.com> wrote:
>
> On 05/09/2016 12:29 PM, Warren Young wrote:
>> RHEL’s coreutil depends on gmp, while Cygwin’s does not, but this does not tell us that Cygwin’s coreutils should be rebuilt to depend on gmp.
>
> Umm, the cygwin build of coreutils DOES depend on gmp
I was just quickly vdiffing package lists, and didn’t fix up a mismatch in package naming: RHEL calls it gmp, Cygwin calls it libgmp10. Oopsie.
The point still stands, though, because there are many other examples I could have chosen: glib, sqlite, expat...
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-09 18:30 ` Warren Young
2016-05-09 18:58 ` Warren Young
@ 2016-05-09 20:57 ` Eric Blake
2016-05-09 21:29 ` Warren Young
1 sibling, 1 reply; 11+ messages in thread
From: Eric Blake @ 2016-05-09 20:57 UTC (permalink / raw)
To: cygwin
[-- Attachment #1: Type: text/plain, Size: 1185 bytes --]
On 05/09/2016 12:29 PM, Warren Young wrote:
>>> I think the diffutils package should be part of the base installation.
Based on just the start of the thread, I was already considering adding
diffutils to Base the next time I package it...
> 3. We can also exclude all libraries. Discussions of which libraries the Base packages should depend on are wholly separate from this one. For example, RHEL’s coreutil depends on gmp, while Cygwin’s does not, but this does not tell us that Cygwin’s coreutils should be rebuilt to depend on gmp.
Umm, the cygwin build of coreutils DOES depend on gmp, unless I made a
mistake packaging it. [/me goes and checks...] Yep - libgmp10 is in the
coreutils 'requires:' setup.hint.
>
> After applying all of those rules, the only packages in RHEL 7 Minimal that aren’t in RHEL Base are diffutils and openssh-client, both of which I’d be happy to see in Cygwin Base.
...But you've added even more good justification for me to do so. All
right, sounds like something I should do when I next have the chance.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-09 18:30 ` Warren Young
@ 2016-05-09 18:58 ` Warren Young
2016-05-09 20:57 ` Eric Blake
1 sibling, 0 replies; 11+ messages in thread
From: Warren Young @ 2016-05-09 18:58 UTC (permalink / raw)
To: The Cygwin Mailing List
On May 9, 2016, at 12:29 PM, Warren Young <wyml@etr-usa.com> wrote:
>
> On May 6, 2016, at 7:41 PM, Warren Young <wyml@etr-usa.com> wrote:
>>
>> On May 6, 2016, at 3:53 AM, Thomas Wolff <towo@towo.net> wrote:
>>>
>>> after a recent fresh installation of cygwin, I was surprised that `cmp` was missing, which is part of the traditional Unix base commands.
>>> I think the diffutils package should be part of the base installation.
>>
>> I wonder if the rule should just be “POSIX”?
>
> I’ve come up with a much better rule: mimic the Minimal package set for RHEL.[1]
I decided to try a practical experiment: apply a simplified version of my rule set to a Cygwin Base installation. My thought was that if the goal is to change Cygwin Base to be as close to RHEL Minimal as is practical given platform differences, that my exclusion rules 2 and 4 should be dropped.
A 64-bit Cygwin Base installation is currently 112 MiB as reckoned by du -sh on my system. If you take that and add the packages in CentOS 7’s Minimal install that aren’t excluded by my exclusion rules 1 and 3, a “Cygwin Minimal” installation is 266 MiB.
That’s quite a jump in absolute terms, but still smallish by today’s standards. The corresponding RHEL 7 Minimal installation is 1.2 GiB, by comparison.
This does drag in one major package that isn’t in RHEL 7’s Minimal set: perl, by way of postfix. We’ve had repeated cases in the past where something in Base indirectly depended on Perl and dragged it in. Maybe it’s time to give up on excluding Perl?
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-07 1:41 ` Warren Young
2016-05-07 6:20 ` Thomas Wolff
@ 2016-05-09 18:30 ` Warren Young
2016-05-09 18:58 ` Warren Young
2016-05-09 20:57 ` Eric Blake
1 sibling, 2 replies; 11+ messages in thread
From: Warren Young @ 2016-05-09 18:30 UTC (permalink / raw)
To: The Cygwin Mailing List
On May 6, 2016, at 7:41 PM, Warren Young <wyml@etr-usa.com> wrote:
>
> On May 6, 2016, at 3:53 AM, Thomas Wolff <towo@towo.net> wrote:
>>
>> after a recent fresh installation of cygwin, I was surprised that `cmp` was missing, which is part of the traditional Unix base commands.
>> I think the diffutils package should be part of the base installation.
>
> I wonder if the rule should just be “POSIX”?
I’ve come up with a much better rule: mimic the Minimal package set for RHEL.[1]
Not only is this a nice nod toward the primary corporate sponsor for Cygwin, it turns out that the current Base set is already almost exactly the same thing after applying some fairly obvious exclusion rules:
1. We can exclude from consideration all of those packages that do something for RHEL that Cygwin leaves to Windows. e.g. chrony, dmidecode, iptables, the Linux kernel, etc.
2. We can also exclude any user space program that is included in RHEL not for its own sake but instead primarily to satisfy a dependency for some other user space program that Cygwin doesn’t need. Examples are curl, gpg, lua, make, and python.
3. We can also exclude all libraries. Discussions of which libraries the Base packages should depend on are wholly separate from this one. For example, RHEL’s coreutil depends on gmp, while Cygwin’s does not, but this does not tell us that Cygwin’s coreutils should be rebuilt to depend on gmp.
4. Perhaps controversially, I think we can also leave out anything where the use case set is far narrower on Cygwin due to the nature of the platform. This is my justification for excluding openssh-server and postfix: you’re not likely to find a rack full of 1U Windows boxes running Cygwin in a datacenter, accessible only via SSH and sending important messages to the local mail spool. Therefore, RHEL’s justification for including such packages in its Minimal set simply doesn’t apply to Cygwin.
After applying all of those rules, the only packages in RHEL 7 Minimal that aren’t in RHEL Base are diffutils and openssh-client, both of which I’d be happy to see in Cygwin Base.
I welcome anyone else to go through the RHEL/CentOS 7 Minimal package set[1] and see if they can provide a justification for one that currently isn’t in Cygwin Base which doesn’t run up against any of the exclusion rules above.
In terms of my original reply to this thread, adopting this rule removes one of the “standards” from the running, a good thing IMHO.
[1] https://gist.github.com/wyoung/42e7f6081e8d695f9656621be0f58eae
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-07 6:20 ` Thomas Wolff
@ 2016-05-09 15:16 ` Warren Young
0 siblings, 0 replies; 11+ messages in thread
From: Warren Young @ 2016-05-09 15:16 UTC (permalink / raw)
To: The Cygwin Mailing List
On May 7, 2016, at 12:20 AM, Thomas Wolff <towo@towo.net> wrote:
>
> Am 07.05.2016 um 03:41 schrieb Warren Young:
>> On May 6, 2016, at 3:53 AM, Thomas Wolff <towo@towo.net> wrote:
>>> after a recent fresh installation of cygwin, I was surprised that `cmp` was missing, which is part of the traditional Unix base commands.
>>> I think the diffutils package should be part of the base installation.
>> We’ve never really had a hard rule on what is in Base and what isn’t. It’s always been a judgement call.
>>
>> I wonder if the rule should just be “POSIX”?
Over the weekend, I realized that the rule can’t be that simple, because that would drag in GCC.
> maybe there can be a guideline, and more a guideline of common practice than of a 15th standard.
The problem, of course, is that there is no common practice.
I think the closest parallel to the Cygwin Base philosophy is the minimal or base installs of several other *ixes, particularly the BSDs. It is also something like a throwback to the SysV Unixes, prior to about 1992, when you could count on things like X and the C compiler to be separate installs.
But even that guideline isn’t especially useful, since often such OSes *do* include the C compiler and all its support tooling.
Ultimately, I think Cygwin Base is whatever Corinna and Yaakov say it is. :)
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
2016-05-07 1:41 ` Warren Young
@ 2016-05-07 6:20 ` Thomas Wolff
2016-05-09 15:16 ` Warren Young
2016-05-09 18:30 ` Warren Young
1 sibling, 1 reply; 11+ messages in thread
From: Thomas Wolff @ 2016-05-07 6:20 UTC (permalink / raw)
To: cygwin
Am 07.05.2016 um 03:41 schrieb Warren Young:
> On May 6, 2016, at 3:53 AM, Thomas Wolff <towo@towo.net> wrote:
>> after a recent fresh installation of cygwin, I was surprised that `cmp` was missing, which is part of the traditional Unix base commands.
>> I think the diffutils package should be part of the base installation.
> Weâve never really had a hard rule on what is in Base and what isnât. Itâs always been a judgement call.
>
> I wonder if the rule should just be âPOSIXâ? That is, if itâs on this page, it should be in Base:
>
> http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
>
> That would exclude other things weâve always excluded, such as Perl.
>
> Iâm not suggesting that we make this rule a strict one. Most importantly, it cannot be an exclusion rule: Cygwin must contain things not in POSIX. Iâm just suggesting that it would be nice if Cygwin were as close to POSIX as practical out-of-the-box.
>
> By that latter, I mean without extra effort other than adjusting some setup.hint files. I mean, if there is a command on that list that doesnât even have a Cygwin package, I donât mean to propose with this rule that someone must go out and package it just to satisfy POSIX.
>
> As a counterexample, that list contains pax(1), which is currently in Archive, not Base, so by that rule, pax(1) should also move to Base.
>
> By that very example, though, I can argue against this proposed rule: as I understand it, pax(1) was added to POSIX at the same time they dropped cpio(1) and tar(1), thinking that by doing so, theyâd change existing practice, moving everyone over to pax(1). That just created a Standard in the XKCD sense:
>
> https://xkcd.com/927/
Thanks, Warren, for some metaphysical insights :)
Right, there isn't and shouldn't be a strict rule. But maybe there can
be a guideline, and more a guideline of common practice than of a 15th
standard. By decade-long practice as a Unix user, I was simply expecting
cmp to be basic, like I would expect tar. Maybe others would agree with
that, or maybe not...
Cheers
Thomas
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: cmp missing from base
[not found] <572C697E.1090408@towo.net>
@ 2016-05-07 1:41 ` Warren Young
2016-05-07 6:20 ` Thomas Wolff
2016-05-09 18:30 ` Warren Young
0 siblings, 2 replies; 11+ messages in thread
From: Warren Young @ 2016-05-07 1:41 UTC (permalink / raw)
To: The Cygwin Mailing List
On May 6, 2016, at 3:53 AM, Thomas Wolff <towo@towo.net> wrote:
>
> after a recent fresh installation of cygwin, I was surprised that `cmp` was missing, which is part of the traditional Unix base commands.
> I think the diffutils package should be part of the base installation.
We’ve never really had a hard rule on what is in Base and what isn’t. It’s always been a judgement call.
I wonder if the rule should just be “POSIX”? That is, if it’s on this page, it should be in Base:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
That would exclude other things we’ve always excluded, such as Perl.
I’m not suggesting that we make this rule a strict one. Most importantly, it cannot be an exclusion rule: Cygwin must contain things not in POSIX. I’m just suggesting that it would be nice if Cygwin were as close to POSIX as practical out-of-the-box.
By that latter, I mean without extra effort other than adjusting some setup.hint files. I mean, if there is a command on that list that doesn’t even have a Cygwin package, I don’t mean to propose with this rule that someone must go out and package it just to satisfy POSIX.
As a counterexample, that list contains pax(1), which is currently in Archive, not Base, so by that rule, pax(1) should also move to Base.
By that very example, though, I can argue against this proposed rule: as I understand it, pax(1) was added to POSIX at the same time they dropped cpio(1) and tar(1), thinking that by doing so, they’d change existing practice, moving everyone over to pax(1). That just created a Standard in the XKCD sense:
https://xkcd.com/927/
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-12-06 23:10 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-30 14:58 cmp missing from base DAGwyn
2016-10-30 18:23 ` Ken Brown
2016-12-06 23:10 ` Eric Blake
-- strict thread matches above, loose matches on Subject: below --
2016-10-30 21:09 Steven Penny
[not found] <572C697E.1090408@towo.net>
2016-05-07 1:41 ` Warren Young
2016-05-07 6:20 ` Thomas Wolff
2016-05-09 15:16 ` Warren Young
2016-05-09 18:30 ` Warren Young
2016-05-09 18:58 ` Warren Young
2016-05-09 20:57 ` Eric Blake
2016-05-09 21:29 ` Warren Young
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).