Packages that change without incrementing the version/release
Charles Wilson
cygwin@cwilson.fastmail.fm
Sat Nov 20 06:23:00 GMT 2004
Max Bowsher wrote:
> In my latest session of setup debugging, I discovered that setup was
> silently ignoring wrongly sized packages. Once I fixed that, I
> discovered that I had quite a few packages that failed the check.
> (Including all the xorg-x11 ones but also:
These are my packages...
> bzip2/libbz2_0/libbz2_0-1.0.2-1-src.tar.bz2
> gettext/libintl/libintl-0.10.38-3-src.tar.bz2
> gettext/libintl1/libintl1-0.10.40-1-src.tar.bz2
> libpng/libpng2/libpng2-1.0.12-1-src.tar.bz2
> ncurses/libncurses5/libncurses5-5.2-1-src.tar.bz2
> ncurses/libncurses6/libncurses6-5.2-8-src.tar.bz2
Notice something? They are ALL -src packages for superseded versions of
libraries.
See, when version X of gettext is released, it is a group of packages
that all share the same -src:
gettext-0.10.40-1.tar.bz2
gettext-devel-0.10.40-1.tar.bz2
gettext-0.10.40-1-src.tar.bz2
libintl1-0.10.40-1.tar.bz2
So, libintl1 and gettext-devel have an "external-source" line.
So, eventually, a new version of gettext changes the library API, and I
bump the version number: libintl2. So, now, we have in the main gettext
directory, newer versions of the -src package, and eventaully the
0.10.40-1 (and worse, the 0.10.40-1-src) version is pushed out.
But that's a problem, because in the gettext/libintl1/ directory, we're
still keeping the libintl1-0.10.40-1.tar.bz2 file around, for backwards
compatibility.
To comply with the GPL, I do the following to the "old" version of a
library when its DLL number is bumped:
(1) remove the external-source line in the old library package's
setup.hint
(2) copy & rename the old -src package:
cp gettext/gettext-0.10.40-1-src.tar.bz2 \
gettext/libintl1/libintl1-0.10.40-1-src.tar.bz2
I haven't been following this discussion, so I'm not sure what setup is
complaining about. The cron job on the server is supposed to update the
md5sum -- and create a new md5sum for the "new" libintl1-....-src
package. (Does setup check the md5sum of setup.hints?)
> I presume that at some point all of these have been replaced with
> slightly tweaked versions without a release increment.
Not exactly, in my case (see above). It's "no -src tarball in THIS
directory" to "look, here's a -src tarball!". Now, setup.hint changed,
and setup.ini changed, but that happens all the time.
> Anyway, this means many users are likely to have old 'invalid' versions
> of these packages. Which means, that before I can release a new setup, I
> need to make setup recover gracefully, rather than exiting at the first
> error as it currently does.
true.
> Currently I'm thinking along the lines of having setup rename the
> package files as it finds them, adding a ".BAD" suffix. As far as user
> feedback goes, I will probably go with a MessageBox summarizing all the
> problems at the end of the scan, for a short term quick hack to get a
> new setup out ASAP. Later though it should become a scrollable log
> textfield.
????
I'm not sure you've actually found the reason for the error. In "my"
cases, those files were created with those names once and only once, and
were never touched again. So I don't see how the end user's cache got
"out of sync". If the local repository's setup.ini claims that package
foo has an external-src, but the newly downloaded setup.ini says it has
its own -src tarball, maybe that's the cause (of some) of the problems.
--
Chuck
More information about the Cygwin-apps
mailing list