[ITP] quilt-0.43 -- Tool to work with series of patches

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[ITP] quilt-0.43 -- Tool to work with series of patches

Jari Aalto-5

Here is more for review. Included in all major distros.

  http://freshmeat.net/projects/quilt/

  http://packages.debian.org/stable/devel/quilt

Jari

sdesc: "Tool to work with series of patches"
ldesc: "Program manages a series of patches by keeping track of the
changes each of them makes. They are logically organized as a stack,
and you can apply, un-apply, refresh them easily by traveling into the
stack (push/pop). Quilt is good for managing additional patches
applied to a package received as a tarball or maintained in another
version control system. The stacked organization proved to be
efficient for the management of very large patch sets (more than
hundred patches)."
category: Devel
requires: cygwin bzip2 patch

Method 1)

  wget        \
    http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2.sig \
    http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2 \
    http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2.sig \
    http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2 \
    http://cygwin.cante.net/quilt/setup.hint

Method 2) running get.sh will give further instructions

  gpg --keyserver wwwkeys.pgp.net --recv-keys 955A92D8

  mkdir quilt ; cd quilt
  rm -f get.sh get.sh.sig
  wget -q http://cygwin.cante.net/quilt/get.sh \
          http://cygwin.cante.net/quilt/get.sh.sig
  gpg --verify get.sh.sig get.sh &&
  sh get.sh

  cd /usr/src/cygwin-packages/quilt
  less /usr/src/cygwin-packages/quilt/get.sh
  tar jtvf /usr/src/cygwin-packages/quilt/quilt-0.43-1.tar.bz2

Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Brian Dessent
Jari Aalto wrote:

> sdesc: "Tool to work with series of patches"
> ldesc: "Program manages a series of patches by keeping track of the
> changes each of them makes. They are logically organized as a stack,
> and you can apply, un-apply, refresh them easily by traveling into the
> stack (push/pop). Quilt is good for managing additional patches
> applied to a package received as a tarball or maintained in another
> version control system. The stacked organization proved to be
> efficient for the management of very large patch sets (more than
> hundred patches)."
> category: Devel
> requires: cygwin bzip2 patch

The following files in the binary package are perl scripts (with #!/bin/perl as
the first line) yet you don't list perl in the "requires" line.  Is this package
meant to be usable without perl installed or is this an oversight?

/usr/bin/guards
/usr/share/quilt/scripts/dependency-graph
/usr/share/quilt/scripts/edmail
/usr/share/quilt/scripts/parse-patch
/usr/share/quilt/scripts/remove-trailing-ws

The postinstall/preremove system seems unnecessarily complex.  It includes
nearly 250 lines of shell script and two manifests to do what could be
accomplished simply with:

[ ! -f /etc/quilt.quiltrc ] && \
  cp /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc

and

cmp -s /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc && \
  rm -f /etc/quilt.quiltrc

...and by locating the default quiltrc file under /etc/defaults instead of
stashed away in /usr/share/doc/quilt-<VER>/examples/quilt.quiltrc and requiring
all that scripting to locate.  And these scripts have code for printing
warnings/messages to stderr but all postinstall/preremove scripts run in
setup.exe with both stdout and stderr connected to /dev/null so this can serve
no purpose.

However, it seems like these scripts are probably provided from some generic
build system (cygbuild?) and so if it's easier to do it the overly-complex way
then go with that.  Still, it seems a lot more error-prone.

Source builds fine, everything else looks OK.

Brian
Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Igor Peshansky
On Tue, 7 Feb 2006, Brian Dessent wrote:

> [snip]
> The postinstall/preremove system seems unnecessarily complex.  It
> includes nearly 250 lines of shell script and two manifests to do what
> could be accomplished simply with:
>
> [ ! -f /etc/quilt.quiltrc ] && \
>   cp /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc
>
> and
>
> cmp -s /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc && \
>   rm -f /etc/quilt.quiltrc
>
> ...and by locating the default quiltrc file under /etc/defaults instead
> of stashed away in /usr/share/doc/quilt-<VER>/examples/quilt.quiltrc and
> requiring all that scripting to locate.

Do we already have a package (like _update-info-dir) that takes care of
moving everything from /etc/defaults to the intended locations?  If not,
would such a package be useful (so that you can simply add
/etc/defaults/<pkg>.pkgrc, and then depend on that script)?  Maybe fold
the functionality right into _update-info-dir (since so many packages
already depend on it)?

I may be misremembering, and something like this may already exist, in
which case I'll crawl back under my rock.

> And these scripts have code for printing warnings/messages to stderr but
> all postinstall/preremove scripts run in setup.exe with both stdout and
> stderr connected to /dev/null so this can serve no purpose.

Script output goes to setup.log.full, not /dev/null.  So it's reasonably
useful to have output (to track script progress and print diagnostics), as
long as there aren't gobs and gobs of it.
        Igor
--
                                http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_    [hidden email] | [hidden email]
ZZZzz /,`.-'`'    -.  ;-;;,_ Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-' old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"
Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

John Morrison-10
On Wed, February 8, 2006 2:02 pm, Igor Peshansky wrote:

> On Tue, 7 Feb 2006, Brian Dessent wrote:
>
>> [snip]
>> The postinstall/preremove system seems unnecessarily complex.  It
>> includes nearly 250 lines of shell script and two manifests to do what
>> could be accomplished simply with:
>>
>> [ ! -f /etc/quilt.quiltrc ] && \
>>   cp /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc
>>
>> and
>>
>> cmp -s /etc/defaults/etc/quilt.quiltrc /etc/quilt.quiltrc && \
>>   rm -f /etc/quilt.quiltrc
>>
>> ...and by locating the default quiltrc file under /etc/defaults instead
>> of stashed away in /usr/share/doc/quilt-<VER>/examples/quilt.quiltrc and
>> requiring all that scripting to locate.
>
> Do we already have a package (like _update-info-dir) that takes care of
> moving everything from /etc/defaults to the intended locations?  If not,
> would such a package be useful (so that you can simply add
> /etc/defaults/<pkg>.pkgrc, and then depend on that script)?  Maybe fold
> the functionality right into _update-info-dir (since so many packages
> already depend on it)?
>
> I may be misremembering, and something like this may already exist, in
> which case I'll crawl back under my rock.

Not as far as I know - it was proposed when base-files started using
/etc/defaults, but it never got written.

J.

Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Jari Aalto-5
In reply to this post by Brian Dessent
Brian Dessent <[hidden email]> writes:

> Jari Aalto wrote:
>
> The following files in the binary package are perl scripts (with
> #!/bin/perl as the first line) yet you don't list perl in the
> "requires" line. Is this package meant to be usable without perl
> installed or is this an oversight?

Thanks. fixed.

> /usr/bin/guards
> /usr/share/quilt/scripts/dependency-graph
> /usr/share/quilt/scripts/edmail
> /usr/share/quilt/scripts/parse-patch
> /usr/share/quilt/scripts/remove-trailing-ws
>
> The postinstall/preremove system seems unnecessarily complex.  It includes
> nearly 250 lines of shell script and two manifests to do what could be
> accomplished simply with:

The build system is generic and meant to adapt for any package. It is not
written for quilt specifically.

> ...and by locating the default quiltrc file under /etc/defaults
> instead of stashed away in
> /usr/share/doc/quilt-<VER>/examples/quilt.quiltrc and requiring all
> that scripting to locate.

I need more information. The original quilt installs file to:

  /etc/quilt.quiltrc [1]

which would conflict with user settings during upgrades. So the file
is relocated with (CYGBUILD/install-after.sh) to:

  ./usr/share/doc/quilt-0.43/examples/quilt.quiltrc

That file will be installed to [1] by postinstall, if user did not
have [1] already.

I was under impression /etc is under user's control and scripts should
not overwrite files there. Is the /etc/defaults/* is meant to be used
differently? Like that you suggest using it for example files?

> And these scripts have code for printing
> warnings/messages to stderr but all postinstall/preremove scripts
> run in setup.exe with both stdout and stderr connected to /dev/null
> so this can serve no purpose.

The messages for the porter to verify the steps. They are no-ops
during setup.exe

> However, it seems like these scripts are probably provided from some
> generic build system (cygbuild?) and so if it's easier to do it the
> overly-complex way then go with that. Still, it seems a lot more
> error-prone.

True, but when prepremove/postinstall runs, the system is "clean" It
would help if cygbuild were available so that the additional scripts
could use it as a "library" and not duplicate the functions.

Now the install scrips are self sufficient itself.

> Source builds fine, everything else looks OK.

Good, thank you for testing.

Jari

Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Eric Blake (cygwin)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Jari Aalto on 2/8/2006 9:16 AM:

>
>>...and by locating the default quiltrc file under /etc/defaults
>>instead of stashed away in
>>/usr/share/doc/quilt-<VER>/examples/quilt.quiltrc and requiring all
>>that scripting to locate.
>
>
> I need more information. The original quilt installs file to:
>
>   /etc/quilt.quiltrc [1]
>
> which would conflict with user settings during upgrades. So the file
> is relocated with (CYGBUILD/install-after.sh) to:
>
>   ./usr/share/doc/quilt-0.43/examples/quilt.quiltrc
>
> That file will be installed to [1] by postinstall, if user did not
> have [1] already.

Correct concept, just a strange choice of template location compared to
other cygwin packages.

>
> I was under impression /etc is under user's control and scripts should
> not overwrite files there. Is the /etc/defaults/* is meant to be used
> differently? Like that you suggest using it for example files?

Yes, /etc/defaults is under cygwin package control for that very use.  For
example, coreutils now provides /etc/defaults/etc/DIR_COLORS, which used
to be provided by base-files.  By sticking the prefix /etc/defaults in
front of any user-editable template, it becomes easy to locate all
templates in a single hierarchy, regardless of which package installed
them.  This is easier than looking in /usr/share/doc/package/examples.

>>However, it seems like these scripts are probably provided from some
>>generic build system (cygbuild?) and so if it's easier to do it the
>>overly-complex way then go with that. Still, it seems a lot more
>>error-prone.

Have you ever considered proposing cygbuild as a cygwin package?

- --
Life is short - so eat dessert first!

Eric Blake             [hidden email]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD6hzO84KuGfSFAYARAq82AJ9ORdNA3ClCS3chybOwixbWvk/DawCgyL5Z
QB4pZQiXy41uBiNB0vLjUU0=
=ULvn
-----END PGP SIGNATURE-----
Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Jari Aalto-5
Eric Blake <ebb9-PGZyUNKar/[hidden email]> writes:
>
> Correct concept, just a strange choice of template location compared to
> other cygwin packages.

Coming from Debian, not at all that strange :-)

>> I was under impression /etc is under user's control and scripts should
>> not overwrite files there. Is the /etc/defaults/* is meant to be used
>> differently? Like that you suggest using it for example files?
>
> Yes, /etc/defaults is under cygwin package control for that very use.  For
> example, coreutils now provides /etc/defaults/etc/DIR_COLORS, which used
> to be provided by base-files.  By sticking the prefix /etc/defaults in
> front of any user-editable template, it becomes easy to locate all
> templates in a single hierarchy, regardless of which package installed
> them.  This is easier than looking in /usr/share/doc/package/examples.

Thank you, that explains it.

>>>However, it seems like these scripts are probably provided from some
>>>generic build system (cygbuild?) and so if it's easier to do it the
>>>overly-complex way then go with that. Still, it seems a lot more
>>>error-prone.
>
> Have you ever considered proposing cygbuild as a cygwin package?

I have wanted to test it for large number of packages so that I could
squeeze out bugs as much as possible. I have plans to add support for
direct SVN, CVS checkout (to make rolling out snapshot releases easy).
The current infrastructure would also benefit if cygbuild were in the
Base (like Debian has dh_* devel scripts), so that e.g.
postinstall/pre* scripts could rely on calling function (to avoid
duplicates in scripts).

The best way to use it now and get timely fixed is via CVS:

  cvs -z3 -d:pserver:[hidden email]:/cvsroot/cygbuild co cygbuild
  cd cygbuild ; make install-cvs

The HTMLized man page is here if someone gets interested:

  http://cygbuild.sourceforge.net/doc/cygbuild.html

Jari

Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Jari Aalto-5
In reply to this post by Brian Dessent
Brian Dessent <[hidden email]> writes:

Ok, the pending issues [1] have been fixed.

1) manual download

  wget        \
    http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2.sig \
    http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2 \
    http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2.sig \
    http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2 \
    http://cygwin.cante.net/quilt/setup.hint

2) automated download where get.sh will print further instructions

  gpg --keyserver wwwkeys.pgp.net --recv-keys 955A92D8

  mkdir quilt ; cd quilt
  rm -f get.sh get.sh.sig
  wget -q http://cygwin.cante.net/quilt/get.sh \
          http://cygwin.cante.net/quilt/get.sh.sig
  gpg --verify get.sh.sig get.sh &&
  sh get.sh

Jari

[1]
> The following files in the binary package are perl scripts (with
> #!/bin/perl as the first line) yet you don't list perl in the
> "requires" line. Is this package meant to be usable without perl
> installed or is this an oversight?

Done.

> ...and by locating the default quiltrc file under /etc/defaults instead of
> stashed away in /usr/share/doc/quilt-<VER>/examples/quilt.quiltrc

Done.

> Source builds fine, everything else looks OK.
>
> Brian

Reply | Threaded
Open this post in threaded view
|

Re: [ITP] quilt-0.43 -- Tool to work with series of patches

Corinna Vinschen-2
On Feb  9 13:15, Jari Aalto wrote:
>   wget        \
>     http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2.sig \
>     http://cygwin.cante.net/quilt/quilt-0.43-1.tar.bz2 \
>     http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2.sig \
>     http://cygwin.cante.net/quilt/quilt-0.43-1-src.tar.bz2 \
>     http://cygwin.cante.net/quilt/setup.hint

Looks good to me.  Uploaded.


Thanks,
Corinna

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