Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Henrik Nordstrom
mån 2009-09-07 klockan 12:18 +1200 skrev Amos Jeffries:

 Tricky. That would place the hash at the wrong end of the file (last) where
 its most likely to be overlooked. Particularly on the longer config files.

Doesn't matter if it's overlooked.

 There are also some distros (notably Gentoo and clones) which override our
 upgrades and move squid.conf.documented into place post-install as their
 main squid.conf.

Distros using package managers is not a problem.

 Would embeding the hash(es) into Makefile or an install.state data file
 work instead?

No thanks. make all/install should not modify Makefile, and I do not
want yet another installed file.

But here is another idea. Have uninstall compare with the source
directory and not the target. Would probably be best. Will screw up if
someone tries make clean before make uninstall but that's their
problem. And if that's a problem then we can keep these built files
until make distclean.

 Um, we might also have problems with distro like FreeBSD where md5sum is a
 non-standard script install. The srcformat scripts struggle with that
 already.

The format proposed used is output-agnostic, as long as the hasher
outputs something with a hash and no timestamps or other variable data
it will work.

but it's a bit messy as we also need to detect the proper binary for
making hashes.. md5 / md5sum.

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Amos Jeffries

Henrik Nordstrom wrote:

mån 2009-09-07 klockan 12:18 +1200 skrev Amos Jeffries:


Tricky. That would place the hash at the wrong end of the file (last) where
its most likely to be overlooked. Particularly on the longer config files.


Doesn't matter if it's overlooked.


?huh?  if its overlooked it stays after an edit and the removal will 
find it and delete the changed file when it should not have.





There are also some distros (notably Gentoo and clones) which override our
upgrades and move squid.conf.documented into place post-install as their
main squid.conf.


Distros using package managers is not a problem.


Would embeding the hash(es) into Makefile or an install.state data file
work instead?


No thanks. make all/install should not modify Makefile, and I do not
want yet another installed file.

But here is another idea. Have uninstall compare with the source
directory and not the target. Would probably be best. Will screw up if
someone tries make clean before make uninstall but that's their
problem. And if that's a problem then we can keep these built files
until make distclean.


Thats more doable IMO.




Um, we might also have problems with distro like FreeBSD where md5sum is a
non-standard script install. The srcformat scripts struggle with that
already.


The format proposed used is output-agnostic, as long as the hasher
outputs something with a hash and no timestamps or other variable data
it will work.

but it's a bit messy as we also need to detect the proper binary for
making hashes.. md5 / md5sum.


You misunderstood me.
On FreeBSD from what I've seen of squid-cache the md5sum 'binary' is:
  /path/to/pythonversion /path/to/md5sum.py


Amos
--
Please be using
  Current Stable Squid 2.7.STABLE6 or 3.0.STABLE18
  Current Beta Squid 3.1.0.13


Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Robert Collins
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Amos Jeffries wrote:

 You misunderstood me.
 On FreeBSD from what I've seen of squid-cache the md5sum 'binary' is:
   /path/to/pythonversion /path/to/md5sum.py


'md5'

- -Rob
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkqkyFMACgkQ42zgmrPGrq5v1gCfVg5djbsXoG+wP/fe4vecUI43
SBMAmQHm96PZ0oZAm8FtPcO7THcvM/n7
=QiDt
-END PGP SIGNATURE-


Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Henrik Nordstrom
mån 2009-09-07 klockan 11:52 +1200 skrev Amos Jeffries:

 This seems to be related: 
 http://www.squid-cache.org/bugs/show_bug.cgi?id=2719

I do't think so. Works for me.

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Henrik Nordstrom
mån 2009-09-07 klockan 19:51 +1200 skrev Amos Jeffries:
 Henrik Nordstrom wrote:
  mån 2009-09-07 klockan 12:18 +1200 skrev Amos Jeffries:
  
  Tricky. That would place the hash at the wrong end of the file (last) where
  its most likely to be overlooked. Particularly on the longer config files.
  
  Doesn't matter if it's overlooked.
 
 ?huh?  if its overlooked it stays after an edit and the removal will 
 find it and delete the changed file when it should not have.

No, the hash will differ if edited so it's not deleted.

removing the line will just keep the file even if it happens to be
identical to the original.

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-07 Thread Henrik Nordstrom
mån 2009-09-07 klockan 19:51 +1200 skrev Amos Jeffries:

  But here is another idea. Have uninstall compare with the source
  directory and not the target. Would probably be best. Will screw up if
  someone tries make clean before make uninstall but that's their
  problem. And if that's a problem then we can keep these built files
  until make distclean.
 
 Thats more doable IMO.

I think so too.

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Amos Jeffries

n...@squid-cache.org wrote:

See http://build.squid-cache.org/job/3.1-amd64-CentOS-5.3/14/changes

Changes:

[Amos Jeffries squ...@treenet.co.nz] Prep for 3.0.STABLE19


snip

ERROR: files left after uninstall:
./etc/mime.conf
./etc/squid.conf
make[1]: *** [distuninstallcheck] Error 1
make[1]: Leaving directory 
`http://build.squid-cache.org/job/3.1-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.1.0.13-BZR/_build'


Is there a bleeping random generator deciding the order of these 
automake targets?


This is ridiculous.

Amos
--
Please be using
  Current Stable Squid 2.7.STABLE6 or 3.0.STABLE18
  Current Beta Squid 3.1.0.13


Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Henrik Nordstrom
mån 2009-09-07 klockan 00:16 +1200 skrev Amos Jeffries:

  ERROR: files left after uninstall:
  ./etc/mime.conf
  ./etc/squid.conf
  make[1]: *** [distuninstallcheck] Error 1
  make[1]: Leaving directory 
  `http://build.squid-cache.org/job/3.1-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.1.0.13-BZR/_build'
 
 Is there a bleeping random generator deciding the order of these 
 automake targets?

Yes.

With no dependencies to guide it make reorders as it sees fit for the
day, especially if running parallel jobs.

squid.conf.default is listed as sysconf_DATA, which means it gets
automatically installed and uninstalled as such.

We also install that manually to $(DEFAULT_CONFIG_FILE).default in
install-data-local (slightly misplaced, shold be a local variant ofthe
sysconf_DATA targets, not general data)

The best is probably to make these be manually installed only by the
-local rules, marking them as noinst_sysconf_DATA in Makefile.am and
making sure the -local rules properly install/uninstall them. Just
remember to add a comment on why these are tagged as noinst_..

I guess it would also work adding a dependency that
uninstall-sysconfDATA depends on uninstall-data-local, if automake
accepts such dependency to be added, but we still have the issue of
automake installing them in sysconf on the Makefile.am specified name,
not caring about our DEFAULT_... variables. And looking closely I see
what we don't even have a rule to install $(DEFAULT_MIME_TABLE). It's
only installed by sysconf_DATA automatic rule as $(sysconfdir)/mime.conf

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Robert Collins
On Sun, 2009-09-06 at 22:52 +0200, Henrik Nordstrom wrote:


 Yes.
 
 With no dependencies to guide it make reorders as it sees fit for the
 day, especially if running parallel jobs.

We should be fine if we just list the dependencies.

-Rob


signature.asc
Description: This is a digitally signed message part


Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Henrik Nordstrom
mån 2009-09-07 klockan 07:08 +1000 skrev Robert Collins:
 On Sun, 2009-09-06 at 22:52 +0200, Henrik Nordstrom wrote:
 
 
  Yes.
  
  With no dependencies to guide it make reorders as it sees fit for the
  day, especially if running parallel jobs.
 
 We should be fine if we just list the dependencies.

Not sure I am comfortable with adding dependencies to automakes own
targets..

and no, we are not fine with just that. See the rest of previous
response.. To repeat there is more issues here than uninstall racing, we
don't even install properly if someone tries to override the default
locations by make DEFAULT_CONFIG_FILE=... DEFAULT_MIME_TABLE=...

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Robert Collins
On Sun, 2009-09-06 at 23:25 +0200, Henrik Nordstrom wrote:
 Not sure I am comfortable with adding dependencies to automakes own
 targets..
 
 and no, we are not fine with just that. See the rest of previous
 response.. To repeat there is more issues here than uninstall racing, we
 don't even install properly if someone tries to override the default
 locations by make DEFAULT_CONFIG_FILE=... DEFAULT_MIME_TABLE=...

We should definitely fix that :). If its plausible that automake should
know and avoid the problem itself, lets file a bug. Otherwise we'll have
to work around it I guess.

-Rob


signature.asc
Description: This is a digitally signed message part


Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Henrik Nordstrom
mån 2009-09-07 klockan 07:29 +1000 skrev Robert Collins:
 On Sun, 2009-09-06 at 23:25 +0200, Henrik Nordstrom wrote:
  Not sure I am comfortable with adding dependencies to automakes own
  targets..
  
  and no, we are not fine with just that. See the rest of previous
  response.. To repeat there is more issues here than uninstall racing, we
  don't even install properly if someone tries to override the default
  locations by make DEFAULT_CONFIG_FILE=... DEFAULT_MIME_TABLE=...
 
 We should definitely fix that :). If its plausible that automake should
 know and avoid the problem itself, lets file a bug. Otherwise we'll have
 to work around it I guess.

automake can't know.

There is two things about this, both unsupported by automake

a) The xxx.default construct, where xxx is only installed if missing and
only removed if identical to xxx.default.

b) make time override of certain filenames (full path including name) on
a per-file basis.


Support for 'a' is missing from automake, which is a shortcoming. Can
imagine other projects may see benefit from this.

The way automake expects 'b' to be done is to specify a different prefix
at configure time for the whole category of files but keeping the
filename as specified in automake.am (possibly with suffix depending
type  os, i.e. .exe on Windows).


Regarding 'a' I have another idea.. we could just add a comment with the
hash of the file.

# Config install hash. Remove if editing the file: `md5sum squid.conf.default`

and compare this hash instead of looking for squid.conf.default.

At build time when making squid.conf:

   echo # Config install hash. Remove if editing the file:`md5sum squid.conf` 
squid.conf

Uninstall:

   orig_sum=`grep ^# Config install hash. Remove if editing the file: 
squid.conf | cut -d: -f2`
   sum=`grep -v # Config install hash. Remove if editing the file: squid.conf 
| md5sum`
   test $sum = $orig_sum  rm squid.conf

Regards
Henrik



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Amos Jeffries
On Sun, 06 Sep 2009 23:25:29 +0200, Henrik Nordstrom
hen...@henriknordstrom.net wrote:
 mån 2009-09-07 klockan 07:08 +1000 skrev Robert Collins:
 On Sun, 2009-09-06 at 22:52 +0200, Henrik Nordstrom wrote:
 
 
  Yes.
  
  With no dependencies to guide it make reorders as it sees fit for the
  day, especially if running parallel jobs.
 
 We should be fine if we just list the dependencies.
 
 Not sure I am comfortable with adding dependencies to automakes own
 targets..
 
 and no, we are not fine with just that. See the rest of previous
 response.. To repeat there is more issues here than uninstall racing, we
 don't even install properly if someone tries to override the default
 locations by make DEFAULT_CONFIG_FILE=... DEFAULT_MIME_TABLE=...
 
 Regards
 Henrik

This seems to be related: 
http://www.squid-cache.org/bugs/show_bug.cgi?id=2719

Amos



Re: Build failed in Hudson: 3.1-amd64-CentOS-5.3 #14

2009-09-06 Thread Amos Jeffries
On Sun, 06 Sep 2009 23:51:54 +0200, Henrik Nordstrom
hen...@henriknordstrom.net wrote:
 mån 2009-09-07 klockan 07:29 +1000 skrev Robert Collins:
 On Sun, 2009-09-06 at 23:25 +0200, Henrik Nordstrom wrote:
  Not sure I am comfortable with adding dependencies to automakes own
  targets..
  
  and no, we are not fine with just that. See the rest of previous
  response.. To repeat there is more issues here than uninstall racing,
  we
  don't even install properly if someone tries to override the default
  locations by make DEFAULT_CONFIG_FILE=... DEFAULT_MIME_TABLE=...
 
 We should definitely fix that :). If its plausible that automake should
 know and avoid the problem itself, lets file a bug. Otherwise we'll have
 to work around it I guess.
 
 automake can't know.
 
 There is two things about this, both unsupported by automake
 
 a) The xxx.default construct, where xxx is only installed if missing and
 only removed if identical to xxx.default.
 
 b) make time override of certain filenames (full path including name) on
 a per-file basis.
 
 
 Support for 'a' is missing from automake, which is a shortcoming. Can
 imagine other projects may see benefit from this.
 
 The way automake expects 'b' to be done is to specify a different prefix
 at configure time for the whole category of files but keeping the
 filename as specified in automake.am (possibly with suffix depending
 type  os, i.e. .exe on Windows).
 
 
 Regarding 'a' I have another idea.. we could just add a comment with the
 hash of the file.
 
 # Config install hash. Remove if editing the file: `md5sum
 squid.conf.default`
 
 and compare this hash instead of looking for squid.conf.default.
 
 At build time when making squid.conf:
 
echo # Config install hash. Remove if editing the file:`md5sum
squid.conf` squid.conf
 

Tricky. That would place the hash at the wrong end of the file (last) where
its most likely to be overlooked. Particularly on the longer config files.

There are also some distros (notably Gentoo and clones) which override our
upgrades and move squid.conf.documented into place post-install as their
main squid.conf.

Would embeding the hash(es) into Makefile or an install.state data file
work instead?


Um, we might also have problems with distro like FreeBSD where md5sum is a
non-standard script install. The srcformat scripts struggle with that
already.

 Uninstall:
 
orig_sum=`grep ^# Config install hash. Remove if editing the file:
squid.conf | cut -d: -f2`
sum=`grep -v # Config install hash. Remove if editing the file:
squid.conf | md5sum`
test $sum = $orig_sum  rm squid.conf
 
 Regards
 Henrik

Amos