This is the mail archive of the cygwin-apps 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]

Setup process for long-lived projects


Hi there.  We use cygwin quite a bit as part of the build process for
a deeply embedded system with a very long life cycle.  One problem is
maintaining the tools over the life of the product - I'd like to have
a way of installing the same set of packages on new development
machines, having exactly the same set available in five years, and an
easy way of re-basing to later cygwin versions as needed.

I think I can do this as follows:

To prepare:
 * Take a local mirror of the current cygwin version using rsync
 * Export it using a web server
 * Use setup.exe against the mirror to select all the packages needed
 * Take a copy of the local download directory

The mirror gives a stable archive to add new packages from.  The local
download directory gives a standard set of packages to install.

To install on a new machine:
 * Use setup.exe's quiet local install mode to install everything from
the local download stash

To re-base:
 * Update the mirror using rsync
 * Get the list of installed packages by grepping /etc/setup/installed.db
 * Re-create the local download directory by re-getting the needed
packages using the setup.exe named package mode

I'm keen to write up a howto if this works. Is there one already?

I'd also like to prune the mirror of previous versions of a package to
shrink it down a bit.  setup.ini seems easy to parse and a simple
Python script should take care of that.  Is there a tool that does
this already?

If I can parse the meta data then it's tempting to write a combined
installer.  Python should be able to spit out a NSIS installer script
which could be built and then installed offline.  Has anyone attempted
this?

-- Michael


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