This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Test: zip-2.31 and unzip-5.52

Charles D. Russell wrote:

I use zip and gzip for backup files, where a bug is unlikely to be detected before the problem is catastrophic. Thus I like to stick to old, well-tested versions, and am interested in understanding where problems might arise. I would have thought that the cygwin executable would be the same as that obtained by taking the standard source and
> running make.

Do you really think that every cygwin package compiles out-of-box with no changes? Not even close to true! In this case, there are a number of changes -- even in the "old, well-tested versions" that you've been happily using. For your perusal, I've attached the patches -- of course, you could easily have downloaded the -src packages and extracted these yourself.

The changes boil down to three areas: (1) ensuring we do not use windows-isms when we should be using cygwin/posix-isms (2) ensuring that files are opened in binary, not text, mode (e.g. ensuring we don't use posix-isms when we should use windows-isms!), and (3) routine changes to the build system (enabling DESTDIR installs, building outside the source directory, .exe extensions on applications, etc)

> What is special about cygwin that requires patches?

Notwithstanding the 'use posix instead of windows' ethos, we ARE, undeniably, running on windows. That's special. Most non-autotool-based packages (like zip and unzip) which have been ported to windows, do so making assumptions about make/nmake, msvc-cl/gcc, etc. These assumptions are usually wrong for cygwin, as we are a hybrid blend with posix and gcc features, but also some windows restrictions.

Why does cygwin require patches, indeed...


Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]