This is the mail archive of the cygwin-apps@cygwin.com 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: setup.exe sucks


Christopher Faylor schrieb:
On Tue, Dec 07, 2004 at 10:50:36PM +0100, Reini Urban wrote:
But rpm doesn't handle Recommends and other UI interactions
other UI packagers offer. But better than nothing or our current setup.ini.

That's right. RPM does not have Recommends, and that would be nice. It isn't designed to be UI based, though.

At least yum can be used then. I already prepared a yum package, but didn't finish proper testing.

Yes, once we had yum, we could almost have the unattended install working. Of course, you couldn't use yum to install python or cygwin, as it stands right now.

A simple MSI?
I'll try that out after the postgresql-8.0 release, in about two weeks or so.


... or you could use statically linked rpm.

Btw, in case my "Sigh" wasn't clear, you can't produce statically linked
binaries right now with cygwin and I'm not really interested in getting
things working that way.  You'd still have the same issues with multiple
cygwin DLLs that you do now.  It would just be harder to detect.

But we could produce a simple installer, which checks the registry for the existing mountpoints to find our already installed cygwin1.dll.


If not, install cygwin1.dll, sh.exe, rpm.exe and optionally a bigger graphical packager. With python and some UI it will get very big.
Look at the current bittorrent packages, which include the wxpython dll's.


Let the user preselect in the simple installer some handy base packages to be installed by rpm from some mirror, and let the rest be done by rpm and friends. At the cmdline or graphically.
The needed spec files are almost the same as our current gbs rules + setup.hint


Scenario: cygwin.com "Install Cygwin now" => cygwin.msi or setup.exe
=> Dialog dependent on the existing setup:

* cygwin already installed:
check for necessary cygwin, ash and rpm update.
select a mirror and download.
if the preferred graphical packager is already present and selected last time, start this app and continue with that.
if no graphical packager is installed or selected last time, start a console and echo some basic rpm hints. "rpm -i mirror/package"


* or fresh:
select a mirror and download cygwin, ash and rpm.
ask if you want to continue with a graphical packager (long download...) or cmdline.
start this app as above.


This way the user can switch packagers as he wants and we only have to enable a radiobutton in the installer, start the rpm process to install this packager and continue with that.
even not rpm-based ones, like dpkg or emerge.


A year or so ago someone triumphantly announced that they had produce a way
to bundle the cygwin DLL (or any DLL) with an application so that there was
no need to have two separate files.  Anyone remember that?

Sounds tricky: Probably with attaching the dll as ressource into the exe, MapViewOfFile this ressource on startup, work around LoadLibrary, find all the symbols and fill the relocation table with the found syms. Bootstrap then.
Some kind of hand-made lazy loading. If the OS allows writing into that area. Or fill some prefabricated stubs (some binutils magic) with the syms in the ressource.
--
Reini



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