mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] ptxdist-2011.01.0 bug in make ipkg-push
Date: Thu, 8 Dec 2011 16:41:36 +0100	[thread overview]
Message-ID: <20111208154136.GG11859@pengutronix.de> (raw)
In-Reply-To: <20111208153738.GF11859@pengutronix.de>

On Thu, Dec 08, 2011 at 04:37:38PM +0100, Michael Olbrich wrote:
> Hi,
> 
> so I accidentally pushed it before I could really review it...
> I had some time today and I think it's at least better than before.
> 
> On Tue, Nov 29, 2011 at 03:59:41PM +0000, Benoît BURNICHON wrote:
> > Now, ptxd_ipkg_rev_smaller does not enforce a revision to be 1.2.3-4 but
> > allows everything debian like.
> 
> Well, not everything debian like, '~' is not handled correctly, right?
> Maybe something like this:
> ------------------------------------------------------------------------
> --- libptxdist.sh	2011-12-08 16:11:21.143970557 +0100
> +++ libptxdist.sh	2011-12-08 16:15:00.300421956 +0100
> @@ -741,13 +741,14 @@
>  #
>  ptxd_ipkg_rev_decimal_convert() {
>  	local ver=$*
> -	while echo $ver | grep -q '[^0-9.]'
> +	while echo $ver | grep -q '[^0-9.~]'
>  	do
> -		local char=`echo -n $ver | sed 's/.*\([^0-9.]\).*/\1/'`
> +		local char=`echo -n $ver | sed 's/.*\([^0-9.~]\).*/\1/'`
>  		local char_dec=`echo -n $char | od -b | head -n 1 | awk '{print $2}'`
>  		ver=`echo $ver | sed "s/$char/.$char_dec/g"`
>  	done
>  
> +	ver=`echo $ver | sed -r "s/\.?~/.-1/g"`

+	ver=`echo $ver | sed -r "s/\.?~/.-1./g"`

I think.

Michael

>  	ver=`echo $ver | sed 's/\.\./.0/g'`
>  
>  	echo "$ver"
> ------------------------------------------------------------------------
> 
> So I've been thinking about this whole version issue. The next step would
> be all versions with '-'. Maybe we should always add '-1' as packages
> revision. That would solve the problem for most of the packages is the
> list, you posted some time ago.
> What remains are 'broken' versions. For those few we could do, e.g.:
> 
> MYSQL_VERSION		:= 5.1.14-beta
> MYSQL_XPKG_VERSION	:= 5.1.14~beta
> 
> For that we would need something like the patch above.
> 
> Comments?
> 
> Michael
> 
> > ---
> >  scripts/libptxdist.sh |   76 ++++++++++++++++++++++++++++++++++++++++--------
> >  1 files changed, 63 insertions(+), 13 deletions(-)
> > 
> > diff --git a/scripts/libptxdist.sh b/scripts/libptxdist.sh
> > index 4385566..6b196cb 100644
> > --- a/scripts/libptxdist.sh
> > +++ b/scripts/libptxdist.sh
> > @@ -739,6 +739,49 @@ ptxd_ipkg_arch() {
> > 
> >  #
> >  #
> > +ptxd_ipkg_rev_decimal_convert() {
> > +       local ver=$*
> > +       while echo $ver | grep -q '[^0-9.]'
> > +       do
> > +               local char=`echo -n $ver | sed 's/.*\([^0-9.]\).*/\1/'`
> > +               local char_dec=`echo -n $char | od -b | head -n 1 | awk '{print $2}'`
> > +               ver=`echo $ver | sed "s/$char/.$char_dec/g"`
> > +       done
> > +
> > +       ver=`echo $ver | sed 's/\.\./.0/g'`
> > +
> > +       echo "$ver"
> > +}
> > +
> > +#
> > +#
> > +ptxd_ipkg_do_version_check() {
> > +       local ver1=$1
> > +       local ver2=$2
> > +
> > +       [ "$ver1" == "$ver2" ] && return 10
> > +
> > +       local ver1front=`echo $ver1 | cut -d . -f 1`
> > +       local ver1back=`echo $ver1 | cut -d . -f 2-`
> > +       local ver2front=`echo $ver2 | cut -d . -f 1`
> > +       local ver2back=`echo $ver2 | cut -d . -f 2-`
> > +
> > +       if [ "$ver1front" != "$ver1" -o "$ver2front" != "$ver2" ]
> > +       then
> > +               [ "$ver1front" -lt "$ver2front" ] && return 9
> > +               [ "$ver1front" -gt "$ver2front" ] && return 11
> > +
> > +               [ "$ver1front" == "$ver1" ] || [ -z "$ver1back" ] && ver1back=0
> > +               [ "$ver2front" == "$ver2" ] || [ -z "$ver2back" ] && ver2back=0
> > +               ptxd_ipkg_do_version_check "$ver1back" "$ver2back"
> > +               return $?
> > +       else
> > +               [ "$ver1" -lt "$ver2" ] && return 9 || return 11
> > +       fi
> > +}
> > +
> > +#
> > +#
> >  ptxd_ipkg_rev_smaller() {
> > 
> >         local first=`ptxd_ipkg_split $1`
> > @@ -747,19 +790,26 @@ ptxd_ipkg_rev_smaller() {
> >         local second=`ptxd_ipkg_split $2`
> >         local second_rev_upstream=`ptxd_ipkg_rev_upstream $second`
> >         local second_rev_packet=`ptxd_ipkg_rev_package $second`
> > -       local first_major=`echo $first_rev_upstream | awk -F. '{print $1}'`
> > -       local first_minor=`echo $first_rev_upstream | awk -F. '{print $2}'`
> > -       local first_micro=`echo $first_rev_upstream | awk -F. '{print $3}'`
> > -       local second_major=`echo $second_rev_upstream | awk -F. '{print $1}'`
> > -       local second_minor=`echo $second_rev_upstream | awk -F. '{print $2}'`
> > -       local second_micro=`echo $second_rev_upstream | awk -F. '{print $3}'`
> > -
> > -       [ $first_major -lt $second_major ] && return 0
> > -       [ $first_major -gt $second_major ] && return 1
> > -       [ $first_minor -lt $second_minor ] && return 0
> > -       [ $first_minor -gt $second_minor ] && return 1
> > -       [ $first_micro -lt $second_micro ] && return 0
> > -       [ $first_micro -gt $second_micro ] && return 1
> > +
> > +       if [ "$first_rev_upstream" != "$second_rev_upstream" ]
> > +       then
> > +               local first_rev_upstream_decimal=`ptxd_ipkg_rev_decimal_convert $first_rev_upstream`
> > +               local second_rev_upstream_decimal=`ptxd_ipkg_rev_decimal_convert $second_rev_upstream`
> > +               ptxd_ipkg_do_version_check "$first_rev_upstream_decimal" "$second_rev_upstream_decimal"
> > +               case "$?" in
> > +                       9)
> > +                               return 0;
> > +                               ;;
> > +                       10)
> > +                               ;;
> > +                       11)
> > +                               return 1;
> > +                               ;;
> > +                       *)
> > +                               ptxd_error "issue while checking upstream revisions"
> > +               esac
> > +       fi
> > +
> >         [ $first_rev_packet -lt $second_rev_packet ] && return 0
> >         [ $first_rev_packet -gt $second_rev_packet ] && return 1
> > 
> > --
> > 1.7.2.5
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2011-12-08 15:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-29 15:59 Benoît BURNICHON
2011-12-02 15:26 ` Michael Olbrich
2011-12-03  4:46   ` [ptxdist] [PATCH] ptxd_ipkg_rev_smaller: fix compare Jon Ringle
2011-12-05 10:35   ` [ptxdist] [PATCH] ptxdist-2011.01.0 bug in make ipkg-push Benoît BURNICHON
2011-12-08 15:37 ` Michael Olbrich
2011-12-08 15:41   ` Michael Olbrich [this message]
2011-12-08 15:45   ` Jon Ringle
2011-12-08 15:55     ` Michael Olbrich
2011-12-08 17:38       ` Benoît BURNICHON
2011-12-09 10:09         ` Michael Olbrich
2011-12-09 14:20         ` [ptxdist] [PATCH] more pkg_xpkg_version sanitizing Michael Olbrich
2011-12-12 16:51           ` Jon Ringle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111208154136.GG11859@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox