Re: setup

2015-08-10 Thread Achim Gratz
Warren Young writes:
 But that’s a side issue, because I don’t see why you think you need
 Busybox in the first place, unless it is to be able to run postinst
 scripts.  Can’t you just say that that setup-*.tar.xz package never
 has a postinst script, so that all you need to do is un-tar it?

The idea was that you have a fairly complete POSIX environment with as
small a footprint as possible, then use that to bootstrap a more
conventionally styled Cygwin install.

 In that sense, setup.exe is already bootstrapped: it has everything
 within itself to be able to replace itself.

I do like the concept of a self-contained executable, but teaching
setup.exe new tricks is likely a larger effort than adding a script here
and there to an install system.


Regards,
Achim.
-- 
+[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves


Re: setup

2015-08-10 Thread Warren Young
On Aug 10, 2015, at 10:40 AM, Achim Gratz wrote:
 
 Warren Young writes:
 
 In that sense, setup.exe is already bootstrapped: it has everything
 within itself to be able to replace itself.
 
 I do like the concept of a self-contained executable, but teaching
 setup.exe new tricks is likely a larger effort than adding a script here
 and there to an install system.

Isn’t the whole point of this discussion that setup.exe already knows all the 
tricks it needs to in order to do what we want here, except for the “replace 
setup.exe in place” issue I’ve brought up separately?

Why do you need a self-contained POSIX environment to replace setup.exe?

Re: setup

2015-08-10 Thread Warren Young
 On Aug  7 15:05, Warren Young wrote:
 
 You’d have to couple this either with a MoveFileEx(…,
 MOVEFILE_DELAY_UNTIL_REBOOT) call or a background task that replaces
 /bin/setup.exe with %LOCALAPPDATA%/Temp/setup-v$next.exe.
 
 Why?

I was assuming a world where setup.exe lives in /bin and you can call it from 
Bash.  (In such a world, I hope it gets renamed to something less generic, like 
cygpkg.)  I was further assuming that setup-*.tar.xz would be packaged the same 
as any other Cygwin package, unpacking directly into /bin.

Thus, the MoveFileEx() call would be the one setup.exe normally offers, where 
it sees you’re trying to replace an in-use executable.

I was offering the background task alternative as a way around that.  However, 
the rest of your reply gives me a different idea.

 The idea is that setup is called, performs a CopyFile of itself
 and then exec's its copy.

If you mean that it always copies itself to some kind of temp space and execs 
it from there, that feels kind of wasteful, since you’re trading my design that 
copies only when required for one that copies every time.

But what if we invert it?  Why couldn't setup-*.tar.xz package unpack into 
/tmp?  The running setup.exe would exec it there with a flag that causes the 
second setup.exe instance to copy itself back into /bin.  Then there is only a 
copy made when setup.exe is actually being replaced, and /bin/setup.exe is kept 
up-to-date.

Re: setup

2015-08-10 Thread Achim Gratz
Corinna Vinschen writes:
 Link?

I'd think Jon needs to give his OK for me to post it or he should post
it himself.

 I'm using setup with the -m option exclusively so I'm mostly
 interested that this still works.

That's pretty extensively tested by now since that is what I use for the
installations at work.

 However, you might want to make a quick list what scenarios you want
 to have tested as well.  I try to do that over the next couple of days
 and hopfully other maintainers try, too.

Installs from the internet (with and without proxy) and ad-hoc installs
of single packages and package groups from a local directory that
doesn't have a setup.ini.

 IIUC, you mean that the current method of downloading setup only from
 sware should be maintained?  What kind of key are you talking about?

Currently the integrity of setup.exe and therefore the whole
installation hinges on it being downloaded from sware via https, so
that's a strong reason to keep it that way.

The key I'm talking about was that in addition to setup-version: we
could have an additional setup-trial-version or something like that
would inform setup that a successor is waiting in the wings.

 That's a general problem.  I'm not sure how much exposure the Cygwin
 test DLLs really have, either.  I'm reasonable sure that some of you
 maintainers are using them, but otherwise it's a bit of a black hole.

You should at least be able to find out how often they were downloaded.
For setup trial versions this isn't enough, so they'd have to contact
sourceware and HEAD/GET something that indicated success or failure (and
some script to extract that out of the logs on sourceware).  It also
must not be sneaky about this, ideally the user consents before the
trial version gets downloaded at all.

 Not sure I follow.  How would such an install system look like?
 I have a vague notion that busybox could run the scripts, but there
 are installation path issues and requirements of some postinstall
 scripts which might not be suffiecently handled by busybox.

I have done a few manual installations from a running Cygwin onto a
cold installation on the same machine, mainly to switch out the Cygwin
DLL.  You need to mount the other Cygwin somewhere (I use /mnt/cygwin
or something like that) and then redirect the install root there (tar -C
/mnt/cygwin).  The postinstall scripts on the other hand must be started
from within the new Cygwin installation anyway.


Regards,
Achim.
-- 
+[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra


Re: setup

2015-08-10 Thread Achim Gratz
Warren Young writes:
 Isn’t the whole point of this discussion that setup.exe already knows
 all the tricks it needs to in order to do what we want here, except
 for the “replace setup.exe in place” issue I’ve brought up separately?

Well, setup.exe today has a lot of probably bitrotted features that
Cygwin never used (even if some of it looks quite interesting and
useful) and there are other things it doesn't do even though it should
probably be doing it.

 Why do you need a self-contained POSIX environment to replace
 setup.exe?

At the moment I'm just thinking whether that might be a more sustainable
way forward.


Regards,
Achim.
-- 
+[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra


Re: setup

2015-08-10 Thread Warren Young
On Aug 10, 2015, at 12:03 PM, Achim Gratz wrote:
 
 There have been a bunch of attempts in the past at replacing
 setup.exe. At least 3, that I can think of.  All have fizzled.
 
 These were?

The Debian and Red Hat packaging systems have both been ported to Cygwin.  
Those could be used along with a bare-bones setup.exe to bootstrap Cygwin, 
after which setup.exe would no longer be needed.

  https://github.com/transcode-open/apt-cyg
  https://cygwin.com/ml/cygwin-announce/2003-05/msg1.html

Then there was a pretty GUI installer someone made many years ago; I believe we 
were still in the 1.5.x line at the time.  I don’t remember enough about it to 
find it via Google again, but I do remember a few posts to the mailing list 
with positive responses.  Then the developer disappeared and no one took up the 
code base.

That’s part of what I mean about the difficulty of replacing key 
infrastructure.  Without either a change at the core or an overwhelming attack 
from outside, there just isn’t enough reason for someone to try to adopt 
something nonstandard.  Without that user base, there isn’t enough drive to 
continue development, so the project fizzles.

Consider the rise of Ubuntu-based Linuxes, replacing the various the RPM-based 
ones.  That didn’t happen purely because Ubuntu was “better.”  A necessary part 
of this was Shuttleworth pouring millions of dollars from a really lucky IPO 
into the project.

As proof, consider all of the Ubuntu clones that have gone nowhere, despite 
being “better” in some way.

The closest thing I can think of to success in the area you propose to tackle 
is mintty, which stepped into a gap between Windows Console and Cygwin/X + 
rxvt.  It didn’t try to replace either one, exactly, so it didn’t have to 
succeed by first making the other disappear.  “Better and separate” beats 
“better.”

Re: setup

2015-08-10 Thread Achim Gratz
Warren Young writes:
 Replacing core infrastructure like this almost never works out
 smoothly, and usually fails outright.  It’s far better to remediate
 the code base in-place, if at all possible.

That's my sentiment as well, but that doesn't preclude the exploration
of alternatives.

 There have been a bunch of attempts in the past at replacing
 setup.exe. At least 3, that I can think of.  All have fizzled.

These were?


Regards,
Achim.
-- 
+[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds


Re: setup

2015-08-10 Thread Warren Young
On Aug 10, 2015, at 11:00 AM, Achim Gratz wrote:
 
 Warren Young writes:
 Isn’t the whole point of this discussion that setup.exe already knows
 all the tricks it needs to in order to do what we want here, except
 for the “replace setup.exe in place” issue I’ve brought up separately?
 
 Well, setup.exe today has a lot of probably bitrotted features that
 Cygwin never used (even if some of it looks quite interesting and
 useful)

I don’t think there is any call for setup.exe to be highly 
backwards-compatible.  It isn’t asked to deal with old package repos, very old 
versions of setup.ini, etc.  Therefore, I would say that whoever is in charge 
of this code base should simply get rid of the bitrotted features.  

If any of these obsolete features are needed again in the future, they can be 
pulled out of the SCM history.

 there are other things it doesn't do even though it should
 probably be doing it.

Okay, but...

 Why do you need a self-contained POSIX environment to replace
 setup.exe?
 
 At the moment I'm just thinking whether that might be a more sustainable
 way forward.

Replacing core infrastructure like this almost never works out smoothly, and 
usually fails outright.  It’s far better to remediate the code base in-place, 
if at all possible.

There have been a bunch of attempts in the past at replacing setup.exe. At 
least 3, that I can think of.  All have fizzled.

Re: setup

2015-08-10 Thread Warren Young
On Aug 7, 2015, at 11:22 PM, Achim Gratz strom...@nexgo.de wrote:
 
 a minimal Cygwin install system w/ busybox

Busybox isn’t going to be usable in its normal sense without cygwin1.dll to map 
symlinks to argv[0] so that Busybox can tell how it was called, and thus which 
function to provide.

But that’s a side issue, because I don’t see why you think you need Busybox in 
the first place, unless it is to be able to run postinst scripts.  Can’t you 
just say that that setup-*.tar.xz package never has a postinst script, so that 
all you need to do is un-tar it?

In that sense, setup.exe is already bootstrapped: it has everything within 
itself to be able to replace itself.

Poco: Please remove empty directories

2015-08-10 Thread David Stacey
With the release of poco-1.6.1, I've decided to do some housekeeping and 
remove some of the earlier versions. I've managed to do this, but it has 
left some empty directories lying around. Please could some kind soul 
remove the following:


x86_64/release/poco/libpoco16/
x86_64/release/poco/libpoco17/
x86/release/poco/libpoco17/

Is there a way I can remove directories myself, or should I continue to 
ask here in future?


Many thanks in advance,

Dave.



Re: Poco: Please remove empty directories

2015-08-10 Thread David Stacey

On 10/08/15 22:49, Yaakov Selkowitz wrote:

On Mon, 2015-08-10 at 22:29 +0100, David Stacey wrote:

With the release of poco-1.6.1, I've decided to do some housekeeping
and remove some of the earlier versions. I've managed to do this, but
it has left some empty directories lying around. Please could some
kind soul remove the following:

  x86_64/release/poco/libpoco16/
  x86_64/release/poco/libpoco17/
  x86/release/poco/libpoco17/

Done.


Thanks,

Dave.



Re: setup

2015-08-10 Thread Corinna Vinschen
On Aug  7 15:05, Warren Young wrote:
 On Aug 7, 2015, at 1:47 PM, Corinna Vinschen corinna-cyg...@cygwin.com 
 wrote:
  
  On Aug  6 17:57, Achim Gratz wrote:
  
  I would consider this a release candidate.  Some more testing with
  interactive and ad-hoc installs would be useful, though.
  
  I have a vague idea that setup should ideally be part of the Cygwin
  distro package set.  So setup updates itself, and it would be possible
  to handle public test releases.
  
  The issue of overwriting setup while setup is running could be worked
  around by setup first copying itself to a intermediate filename (e.g.
  .setup.exe) and then exce'ing that copy.
 
 You’d have to couple this either with a MoveFileEx(…,
 MOVEFILE_DELAY_UNTIL_REBOOT) call or a background task that replaces
 /bin/setup.exe with %LOCALAPPDATA%/Temp/setup-v$next.exe.

Why?  The idea is that setup is called, performs a CopyFile of itself
and then exec's its copy.  If the copyfile fails with a sharing
violation or something like that, the copy is in use, which means, setup
is already running.  However, if the copy already exists and can be
overwritten. it's just some older copy.  I don't think there's a
necessity to remove the copy at all.

 This would be a nice point to give setup.exe a CLI language for
 installing packages in yum/apt-get fashion, too.  (Yes, yes, I know,
 SHTDI.)

I like the idea in genral, but I'd also like to write SHTDI in all
uppercase.  Well, it already is, but you get my meaning...


Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat


pgpnX1OHe4uoa.pgp
Description: PGP signature


Re: setup

2015-08-10 Thread Corinna Vinschen
On Aug  8 07:22, Achim Gratz wrote:
 Corinna Vinschen writes:
  I would consider this a release candidate.  Some more testing with
  interactive and ad-hoc installs would be useful, though.
 
  How do you want to handle this?  We don't have real provisions for
  setup.exe release candidates.
 
 True.  At the moment it'd probably mean that some other folks on this
 list try it and give their GTG.  They'd either have to build it
 themselves or maybe use the AppVeyor build from Jon Turney.

Link?  I'm using setup with the -m option exclusively so I'm mostly
interested that this still works.  However, you might want to make a
quick list what scenarios you want to have tested as well.  I try to
do that over the next couple of days and hopfully other maintainers
try, too.

  Maybe we should change how we provide setup updates in future?
 
  I have a vague idea that setup should ideally be part of the Cygwin
  distro package set.  So setup updates itself, and it would be possible
  to handle public test releases.
 
 We could add a new key to setup.ini that indicates the existence of a
 test version and have setup ask if the user would maybe want to use that
 instead.  Ideally setup would then download and exec it if the user
 choses to run it.

IIUC, you mean that the current method of downloading setup only from
sware should be maintained?  What kind of key are you talking about?

 I don't have code ready to do that, though…  Another
 problem that needs to be solved is to know how much exposure the new
 setup.exe really had to decide if it's good for release.

That's a general problem.  I'm not sure how much exposure the Cygwin
test DLLs really have, either.  I'm reasonable sure that some of you
maintainers are using them, but otherwise it's a bit of a black hole.

  The issue of overwriting setup while setup is running could be worked
  around by setup first copying itself to a intermediate filename (e.g.
  .setup.exe) and then exce'ing that copy.
 
  Other ideas how we could handle this?
 
 As said before, the idea that setup.exe needs to be entirely
 self-contained is both an advantage and limiting what it can do.  I
 haven't had time yet to check, but a minimal Cygwin install system w/
 busybox might not be too large compared to the connectivity demands of
 todays' Windows itself.  Here setup.exe would just need to unpack the
 current image of the install system and provide the GUI to pick the
 packages and control the actual installation.

Not sure I follow.  How would such an install system look like?
I have a vague notion that busybox could run the scripts, but there
are installation path issues and requirements of some postinstall
scripts which might not be suffiecently handled by busybox.


Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat


pgpPv9oPV0Y8h.pgp
Description: PGP signature


Re: Adding a subpackage

2015-08-10 Thread Yaakov Selkowitz
On Sat, 2015-08-08 at 19:39 +0100, Adam Dinwoodie wrote:
 On 08/08/2015 06:31, Achim Gratz wrote:
  Adam Dinwoodie writes:
   I've discovered a neat Git tool -- git subtree -- which is part 
   of Git's
   contrib directory and isn't something we currently distribute 
   as part
   of any of the existing Git-related packages.
  openSUSE ships this in git-core since some time.  AFAIK the only 
  reason
  it is still in contrib is the fact that it can't work on Windows.
 
 Yes, I discovered it at least in part via my Mac, where Homebrew 
 installs it as part of the core Git installation too. I'd been 
 planning 
 on just adding it as a new package in Cygwin, without really thinking 
 about whether that's actually the right thing to do; do you/anyone 
 else 
 think it'd be preferable to just roll this into the main Cygwin 
 package 
 instead of defining a new one?

There seems to be a consensus among distros to include it as part of
the main git package.  I suggest we do the same.

--
Yaakov